svn-gvsig-desktop / trunk / libraries / libjni-readecw-linux / include / NCSECWCompress.h @ 10630
History | View | Annotate | Download (2.59 KB)
1 | 1448 | igbrotru | /**********************************************************
|
---|---|---|---|
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 |