unpack.h

00001 /*
00002  * libopenraw - unpack.cpp
00003  *
00004  * Copyright (C) 2008 Hubert Figuiere
00005  * Copyright (C) 2008 Novell, Inc.
00006  *
00007  * This library is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU Lesser General Public
00009  * License as published by the Free Software Foundation; either
00010  * version 2.1 of the License, or (at your option) any later version.
00011  *
00012  * This library is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015  * Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public
00018  * License along with this library; if not, write to the Free Software
00019  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
00020  */
00021 
00022 
00023 #ifndef __UNPACK_H__
00024 #define __UNPACK_H__
00025 
00026 #include <stdint.h>
00027 #include <stddef.h>
00028 
00029 #include <boost/noncopyable.hpp>
00030 
00031 namespace OpenRaw { namespace Internals {
00032 
00034     class Unpack
00035         : public boost::noncopyable
00036     {
00037     public:
00038         Unpack(uint32_t w, uint32_t h, uint32_t t);
00039 
00040         size_t block_size();
00041         size_t row_advance();
00042         size_t unpack_be12to16(uint8_t *dest, size_t outsize, 
00043                                const uint8_t *src, size_t insize);
00044     private:
00045         uint32_t m_w;
00046         uint32_t m_h;
00047         uint32_t m_col, m_row;
00048         uint32_t m_type;
00049     };
00050 
00051 } }
00052 
00053 #endif

Generated on Sun Mar 23 09:28:21 2008 for libopenraw by  doxygen 1.5.5