16acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn/*
26acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennOpenCV for Android NDK
36acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennCopyright (c) 2006-2009 SIProp Project http://www.siprop.org/
46acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
56acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennThis software is provided 'as-is', without any express or implied warranty.
66acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennIn no event will the authors be held liable for any damages arising from the use of this software.
76acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius RennPermission is granted to anyone to use this software for any purpose,
86acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennincluding commercial applications, and to alter it and redistribute it freely,
96acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennsubject to the following restrictions:
106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn3. This notice may not be removed or altered from any source distribution.
146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn*/
156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifndef _WLNonFileByteStream_H_
166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define _WLNonFileByteStream_H_
176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include <stdio.h>
196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "cv.h"
206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "cxcore.h"
216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "cvaux.h"
226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "highgui.h"
236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "ml.h"
246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#include "utils.h"
256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennclass WLNonFileByteStream {
276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennpublic:
286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    WLNonFileByteStream();
296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    ~WLNonFileByteStream();
306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    bool    Open(int data_size);
326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    void    Close();
336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    void    PutByte( int val );
346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    void    PutBytes( const void* buffer, int count );
356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    void    PutWord( int val );
366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    void    PutDWord( int val );
376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    uchar*  GetByte();
386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    int     GetSize();
396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennprotected:
416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    void    Allocate(int data_size);
426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn	void    Deallocate();
436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    int     _size;
446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    uchar*  m_start;
456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    uchar*  m_end;
466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    uchar*  m_current;
476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn    bool    m_is_opened;
486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn};
506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif/*_WLNonFileByteStream_H_*/
52