Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libjni-ecwcompress / include / include-sdk / NCSJPCCODMarker.h @ 12522

History | View | Annotate | Download (2.73 KB)

1
/********************************************************
2
** Copyright 2002 Earth Resource Mapping Ltd.
3
** This document contains proprietary source code of
4
** Earth Resource Mapping Ltd, and can only be used under
5
** one of the three licenses as described in the 
6
** license.txt file supplied with this distribution. 
7
** See separate license.txt file for license details 
8
** and conditions.
9
**
10
** This software is covered by US patent #6,442,298,
11
** #6,102,897 and #6,633,688.  Rights to use these patents 
12
** is included in the license agreements.
13
**
14
** FILE:     $Archive: /NCS/Source/include/NCSJPCCODMarker.h $
15
** CREATED:  05/12/2002 3:27:34 PM
16
** AUTHOR:   Simon Cope
17
** PURPOSE:  CNCSJPCCODMarker class header
18
** EDITS:    [xx] ddMmmyy NAME COMMENTS
19
 *******************************************************/
20

    
21
#ifndef NCSJPCCODMARKER_H
22
#define NCSJPCCODMARKER_H
23

    
24
#include "NCSJPCMarker.h"
25
#include "NCSJPCCOCMarker.h"
26
#include "NCSJPCCodingStyleParameter.h"
27
#include "NCSJPCProgressionOrderType.h"
28

    
29
        /**
30
         * CNCSJPCCODMarker class - the JPC COD marker.
31
         * 
32
         * @author       Simon Cope
33
         * @version      $Revision: 3538 $ $Author: nacho $ $Date: 2006-01-09 12:56:54 +0100 (Mon, 09 Jan 2006) $ 
34
         */        
35
class NCSJPC_EXPORT_ALL CNCSJPCCODMarker: public CNCSJPCMarker {
36
public:
37
                /** Coding Style flags for Scod field */
38
        typedef struct {
39
                bool        bDefinedPrecincts: 1;
40
                bool        bSOPMarkers: 1;
41
                bool        bEPHMarkers: 1;
42
        } CodingStyle;
43

    
44
                /** SG Parameter values */
45
        typedef struct {
46
                        /** Progression Order */
47
                CNCSJPCProgressionOrderType        m_ProgressionOrder;
48
                        /** Number of layers, 1-65535 */
49
                UINT16                                        m_nLayers;
50
                        /** Multi-Component Transform */
51
                bool                                        m_bMCT;
52
        } StyleParameters;
53

    
54
                /** Coding style for all components */
55
        CodingStyle                        m_Scod;
56
                /** SG Coding style parameters */
57
        StyleParameters                m_SGcod;
58
                /** SP Coding style parameters */
59
        CNCSJPCCodingStyleParameter        m_SPcod;
60

    
61
                /** Default constructor, initialises members */
62
        CNCSJPCCODMarker();
63
                /** Virtual destructor */
64
        virtual ~CNCSJPCCODMarker();
65

    
66
                /** 
67
                 * Parse the marker from the JPC codestream.
68
                 * @param                JPC                        CNCSJPC to use to parse file.
69
                 * @param                Stream                IOStream to use to parse file.
70
                 * @return      CNCSError        NCS_SUCCESS, or Error code on failure.
71
                 */
72
        virtual CNCSError Parse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream);
73
                /** 
74
                 * UnParse the marker to the JPC codestream.
75
                 * @param                Stream                IOStream to use to parse file.
76
                 * @param                JPC                        CNCSJPC to use to parse file.
77
                 * @return      CNCSError        NCS_SUCCESS, or Error code on failure.
78
                 */
79
        virtual CNCSError UnParse(class CNCSJPC &JPC, CNCSJPCIOStream &Stream);
80

    
81
                /** 
82
                 * Assignment operator
83
                 * @param                src                COC Marker.
84
                 * @return      CNCSJPCCODMarker        Updated CODMarker.
85
                 */
86
        class CNCSJPCCODMarker& operator=( const class CNCSJPCCOCMarker& src );
87
};
88

    
89

    
90
#endif // !NCSJPCCODMARKER_H