"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSImageLib/Src/Jpeg/LSIJpt.h

00001 /*
00002  * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
00003  * Copyright (c) 2002-2007, Professor Benoit Macq
00004  * Copyright (c) 2002-2003, Yannick Verschueren
00005  * Copyright (c) 2005, Herve Drolon, FreeImage Team
00006  * All rights reserved.
00007  *
00008  * Redistribution and use in source and binary forms, with or without
00009  * modification, are permitted provided that the following conditions
00010  * are met:
00011  * 1. Redistributions of source code must retain the above copyright
00012  *    notice, this list of conditions and the following disclaimer.
00013  * 2. Redistributions in binary form must reproduce the above copyright
00014  *    notice, this list of conditions and the following disclaimer in the
00015  *    documentation and/or other materials provided with the distribution.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
00018  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00021  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00022  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00023  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00024  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00025  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00026  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00027  * POSSIBILITY OF SUCH DAMAGE.
00028  */
00029 
00030 
00031 #ifndef __LSI_JPT_H__
00032 #define __LSI_JPT_H__
00033 
00034 #include "../LSIImageLib.h"
00035 #include "LSICio.h"
00036 #include "LSIJpegCommonStructs.h"
00037 
00038 namespace lsi {
00039 
00046         class CJpt {
00047         public :
00048                 // == Types.
00052                 typedef struct opj_jpt_msg_header_t {
00054                         LSUINT32                                                        Id;
00056                         LSUINT32                                                        last_byte;      
00058                         LSUINT32                                                        Class_Id;       
00060                         LSUINT32                                                        CSn_Id;
00062                         LSUINT32                                                        Msg_offset;
00064                         LSUINT32                                                        Msg_length;
00066                         LSUINT32                                                        Layer_nb;
00067                 } * LPopj_jpt_msg_header_t, * const LPCopj_jpt_msg_header_t;
00068 
00069 
00070                 // == Functions.
00076                 static LSVOID LSE_CALL                                  jpt_init_msg_header( opj_jpt_msg_header_t * _pjmhHeader );
00077 
00085                 static LSVOID LSE_CALL                                  jpt_read_msg_header( CJpegCommonStructs::opj_common_ptr _cpInfo, CCio::opj_cio_t * _pcCio, opj_jpt_msg_header_t * _pjmhHeader );
00086 
00087 
00088         protected :
00089                 // == Functions.
00097                 static LSUINT32 LSE_CALL                                ReadVbasInfo( CCio::opj_cio_t * _pcCio, LSUINT32 _ui32Value );
00098 
00105                 static LSVOID LSE_CALL                                  ReInitMsgHeader( opj_jpt_msg_header_t * _pjmhHeader );
00106 
00107         };
00108 
00109 }       // namespace lsi
00110 
00111 #endif  // __LSI_JPT_H__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator