Statistics
| Revision:

root / trunk / libraries / libjni-readecw-linux / include / NCSECWCompress.h @ 1868

History | View | Annotate | Download (2.59 KB)

1
/********************************************************** 
2
** Copyright 1999 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:           NCSECWCompess.wc
15
** CREATED:        21 May 1999
16
** AUTHOR:         TIS
17
** PURPOSE:        Public Interface library to compress ECW v2.0 image files
18
** EDITS:
19
** [01] tis        21May99 Created file
20
** [02] sjc 30Apr00        Merged Mac SDK port
21
**
22
********************************************************/
23

    
24
#ifndef NCSECWCOMPRESS_H
25
#define NCSECWCOMPRESS_H
26

    
27
#ifndef NCSECWCOMPRESSCLIENT_H
28
#include "NCSECWCompressClient.h"
29
#endif
30

    
31
#if !defined(_WIN32_WCE)
32
        #include <time.h>
33
#endif
34

    
35
#ifdef __cplusplus
36
extern "C" {
37
#endif
38

    
39

    
40
/*
41
**        The EcwCompressionTask is used to simply do compressions.
42
**
43
**        Usage is:
44
**                ecw_compress_task_new()                        - to create one of these structures
45
**                ecw_compress_task_parse_args()        - (optional step) parse command line args into task structure
46
**                ecw_compress_task_setup()                - will open input, and compute size details
47
**                ecw_compress_task_compress()        - do the actional compression. Skip this step to just get file sizes
48
**                ecw_compress_task_delete()                - to close the structure and any associated data
49
*/
50

    
51
#define MAX_THREAD_LINES 10
52

    
53
typedef struct {
54
        NCSQueueNode        qNode;
55
        IEEE4                        **ppLines;
56
} EcwCompressionQueueNode;
57

    
58
typedef struct EcwCompressionTask {
59
                // Any routine will set this if an error occurred
60
                NCSError                eInputError;                                                /* NCSError */
61

    
62
#ifdef MACINTOSH
63
                char                        szTmpDir[64];
64
#else        /* MACINTOSH */
65
                char                        szTmpDir[MAX_PATH];
66
#endif        /* MACINTOSH */
67

    
68
                // private values. Do not use or modify. You must call the task_delete routine to free
69
                struct qmf_level_struct        *pQmf;
70
                NCS_FILE_HANDLE                OutputHandle;
71
                void                                *pClient;
72
                NCSThread                        tThread;
73
                BOOLEAN                                bKillThread;
74
                UINT32                                nNextInputLine;
75
                NCSPool                                *pQueuePool;
76
                NCSQueue                        *pReadQueue;
77
                NCSQueue                        *pFreeQueue;
78
                IEEE4                                **ppLines;                        /* For Non-Threaded reads when converting RGB to YUV */
79

    
80
                CompressFormat                eInternalFormat;
81
                NCSError                        (*pReadCallback)(void *pClient, UINT32 nNextLine, IEEE4 **ppInputArray);        
82
                void                                (*pStatusCallback)(void *pClient, UINT32 nCurrentLine);
83
                BOOLEAN                                (*pCancelCallback)(void *pClient);
84
} EcwCompressionTask;
85

    
86
#ifdef __cplusplus
87
}
88
#endif
89

    
90
#endif        // NCSECWCOMPRESS_H