Eneboo - Documentación para desarrolladores
|
00001 /* ************************************************************************** */ 00002 /* * For conditions of distribution and use, * */ 00003 /* * see copyright notice in libmng.h * */ 00004 /* ************************************************************************** */ 00005 /* * * */ 00006 /* * project : libmng * */ 00007 /* * file : libmng_chunk_io.h copyright (c) 2000 G.Juyn * */ 00008 /* * version : 1.0.0 * */ 00009 /* * * */ 00010 /* * purpose : Chunk I/O routines (definition) * */ 00011 /* * * */ 00012 /* * author : G.Juyn * */ 00013 /* * web : http://www.3-t.com * */ 00014 /* * email : mailto:info@3-t.com * */ 00015 /* * * */ 00016 /* * comment : Definition of the chunk input/output routines * */ 00017 /* * * */ 00018 /* * changes : 0.5.1 - 05/04/2000 - G.Juyn * */ 00019 /* * - changed CRC initializtion to use dynamic structure * */ 00020 /* * (wasn't thread-safe the old way !) * */ 00021 /* * 0.5.1 - 05/08/2000 - G.Juyn * */ 00022 /* * - changed write routines definition * */ 00023 /* * - changed strict-ANSI stuff * */ 00024 /* * * */ 00025 /* * 0.9.2 - 08/05/2000 - G.Juyn * */ 00026 /* * - changed file-prefixes * */ 00027 /* * * */ 00028 /* * 0.9.3 - 08/26/2000 - G.Juyn * */ 00029 /* * - added MAGN chunk * */ 00030 /* * 0.9.3 - 10/16/2000 - G.Juyn * */ 00031 /* * - added support for JDAA * */ 00032 /* * * */ 00033 /* ************************************************************************** */ 00034 00035 #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI) 00036 #pragma option -A /* force ANSI-C */ 00037 #endif 00038 00039 #ifndef _libmng_chunk_io_h_ 00040 #define _libmng_chunk_io_h_ 00041 00042 /* ************************************************************************** */ 00043 00044 mng_uint32 crc (mng_datap pData, 00045 mng_uint8p buf, 00046 mng_int32 len); 00047 00048 /* ************************************************************************** */ 00049 00050 #ifdef MNG_INCLUDE_READ_PROCS 00051 00052 #define READ_CHUNK(n) mng_retcode n (mng_datap pData, \ 00053 mng_chunkp pHeader, \ 00054 mng_uint32 iRawlen, \ 00055 mng_uint8p pRawdata, \ 00056 mng_chunkp* ppChunk) 00057 00058 READ_CHUNK (read_ihdr) ; 00059 READ_CHUNK (read_plte) ; 00060 READ_CHUNK (read_idat) ; 00061 READ_CHUNK (read_iend) ; 00062 READ_CHUNK (read_trns) ; 00063 READ_CHUNK (read_gama) ; 00064 READ_CHUNK (read_chrm) ; 00065 READ_CHUNK (read_srgb) ; 00066 READ_CHUNK (read_iccp) ; 00067 READ_CHUNK (read_text) ; 00068 READ_CHUNK (read_ztxt) ; 00069 READ_CHUNK (read_itxt) ; 00070 READ_CHUNK (read_bkgd) ; 00071 READ_CHUNK (read_phys) ; 00072 READ_CHUNK (read_sbit) ; 00073 READ_CHUNK (read_splt) ; 00074 READ_CHUNK (read_hist) ; 00075 READ_CHUNK (read_time) ; 00076 READ_CHUNK (read_mhdr) ; 00077 READ_CHUNK (read_mend) ; 00078 READ_CHUNK (read_loop) ; 00079 READ_CHUNK (read_endl) ; 00080 READ_CHUNK (read_defi) ; 00081 READ_CHUNK (read_basi) ; 00082 READ_CHUNK (read_clon) ; 00083 READ_CHUNK (read_past) ; 00084 READ_CHUNK (read_disc) ; 00085 READ_CHUNK (read_back) ; 00086 READ_CHUNK (read_fram) ; 00087 READ_CHUNK (read_move) ; 00088 READ_CHUNK (read_clip) ; 00089 READ_CHUNK (read_show) ; 00090 READ_CHUNK (read_term) ; 00091 READ_CHUNK (read_save) ; 00092 READ_CHUNK (read_seek) ; 00093 READ_CHUNK (read_expi) ; 00094 READ_CHUNK (read_fpri) ; 00095 READ_CHUNK (read_phyg) ; 00096 READ_CHUNK (read_jhdr) ; 00097 READ_CHUNK (read_jdaa) ; 00098 READ_CHUNK (read_jdat) ; 00099 READ_CHUNK (read_jsep) ; 00100 READ_CHUNK (read_dhdr) ; 00101 READ_CHUNK (read_prom) ; 00102 READ_CHUNK (read_ipng) ; 00103 READ_CHUNK (read_pplt) ; 00104 READ_CHUNK (read_ijng) ; 00105 READ_CHUNK (read_drop) ; 00106 READ_CHUNK (read_dbyk) ; 00107 READ_CHUNK (read_ordr) ; 00108 READ_CHUNK (read_magn) ; 00109 READ_CHUNK (read_need) ; 00110 READ_CHUNK (read_unknown) ; 00111 00112 /* ************************************************************************** */ 00113 00114 #else /* MNG_INCLUDE_READ_PROCS */ 00115 #define read_ihdr 0 00116 #define read_plte 0 00117 #define read_idat 0 00118 #define read_iend 0 00119 #define read_trns 0 00120 #define read_gama 0 00121 #define read_chrm 0 00122 #define read_srgb 0 00123 #define read_iccp 0 00124 #define read_text 0 00125 #define read_ztxt 0 00126 #define read_itxt 0 00127 #define read_bkgd 0 00128 #define read_phys 0 00129 #define read_sbit 0 00130 #define read_splt 0 00131 #define read_hist 0 00132 #define read_time 0 00133 #define read_mhdr 0 00134 #define read_mend 0 00135 #define read_loop 0 00136 #define read_endl 0 00137 #define read_defi 0 00138 #define read_basi 0 00139 #define read_clon 0 00140 #define read_past 0 00141 #define read_disc 0 00142 #define read_back 0 00143 #define read_fram 0 00144 #define read_move 0 00145 #define read_clip 0 00146 #define read_show 0 00147 #define read_term 0 00148 #define read_save 0 00149 #define read_seek 0 00150 #define read_expi 0 00151 #define read_fpri 0 00152 #define read_phyg 0 00153 #define read_jhdr 0 00154 #define read_jdaa 0 00155 #define read_jdat 0 00156 #define read_jsep 0 00157 #define read_dhdr 0 00158 #define read_prom 0 00159 #define read_ipng 0 00160 #define read_pplt 0 00161 #define read_ijng 0 00162 #define read_drop 0 00163 #define read_dbyk 0 00164 #define read_ordr 0 00165 #define read_magn 0 00166 #define read_need 0 00167 #define read_unknown 0 00168 #endif /* MNG_INCLUDE_READ_PROCS */ 00169 00170 /* ************************************************************************** */ 00171 00172 #ifdef MNG_INCLUDE_WRITE_PROCS 00173 00174 #define WRITE_CHUNK(n) mng_retcode n (mng_datap pData, \ 00175 mng_chunkp pChunk) 00176 00177 WRITE_CHUNK (write_ihdr) ; 00178 WRITE_CHUNK (write_plte) ; 00179 WRITE_CHUNK (write_idat) ; 00180 WRITE_CHUNK (write_iend) ; 00181 WRITE_CHUNK (write_trns) ; 00182 WRITE_CHUNK (write_gama) ; 00183 WRITE_CHUNK (write_chrm) ; 00184 WRITE_CHUNK (write_srgb) ; 00185 WRITE_CHUNK (write_iccp) ; 00186 WRITE_CHUNK (write_text) ; 00187 WRITE_CHUNK (write_ztxt) ; 00188 WRITE_CHUNK (write_itxt) ; 00189 WRITE_CHUNK (write_bkgd) ; 00190 WRITE_CHUNK (write_phys) ; 00191 WRITE_CHUNK (write_sbit) ; 00192 WRITE_CHUNK (write_splt) ; 00193 WRITE_CHUNK (write_hist) ; 00194 WRITE_CHUNK (write_time) ; 00195 WRITE_CHUNK (write_mhdr) ; 00196 WRITE_CHUNK (write_mend) ; 00197 WRITE_CHUNK (write_loop) ; 00198 WRITE_CHUNK (write_endl) ; 00199 WRITE_CHUNK (write_defi) ; 00200 WRITE_CHUNK (write_basi) ; 00201 WRITE_CHUNK (write_clon) ; 00202 WRITE_CHUNK (write_past) ; 00203 WRITE_CHUNK (write_disc) ; 00204 WRITE_CHUNK (write_back) ; 00205 WRITE_CHUNK (write_fram) ; 00206 WRITE_CHUNK (write_move) ; 00207 WRITE_CHUNK (write_clip) ; 00208 WRITE_CHUNK (write_show) ; 00209 WRITE_CHUNK (write_term) ; 00210 WRITE_CHUNK (write_save) ; 00211 WRITE_CHUNK (write_seek) ; 00212 WRITE_CHUNK (write_expi) ; 00213 WRITE_CHUNK (write_fpri) ; 00214 WRITE_CHUNK (write_phyg) ; 00215 WRITE_CHUNK (write_jhdr) ; 00216 WRITE_CHUNK (write_jdaa) ; 00217 WRITE_CHUNK (write_jdat) ; 00218 WRITE_CHUNK (write_jsep) ; 00219 WRITE_CHUNK (write_dhdr) ; 00220 WRITE_CHUNK (write_prom) ; 00221 WRITE_CHUNK (write_ipng) ; 00222 WRITE_CHUNK (write_pplt) ; 00223 WRITE_CHUNK (write_ijng) ; 00224 WRITE_CHUNK (write_drop) ; 00225 WRITE_CHUNK (write_dbyk) ; 00226 WRITE_CHUNK (write_ordr) ; 00227 WRITE_CHUNK (write_magn) ; 00228 WRITE_CHUNK (write_need) ; 00229 WRITE_CHUNK (write_unknown) ; 00230 00231 /* ************************************************************************** */ 00232 00233 #else /* MNG_INCLUDE_WRITE_PROCS */ 00234 #define write_ihdr 0 00235 #define write_plte 0 00236 #define write_idat 0 00237 #define write_iend 0 00238 #define write_trns 0 00239 #define write_gama 0 00240 #define write_chrm 0 00241 #define write_srgb 0 00242 #define write_iccp 0 00243 #define write_text 0 00244 #define write_ztxt 0 00245 #define write_itxt 0 00246 #define write_bkgd 0 00247 #define write_phys 0 00248 #define write_sbit 0 00249 #define write_splt 0 00250 #define write_hist 0 00251 #define write_time 0 00252 #define write_mhdr 0 00253 #define write_mend 0 00254 #define write_loop 0 00255 #define write_endl 0 00256 #define write_defi 0 00257 #define write_basi 0 00258 #define write_clon 0 00259 #define write_past 0 00260 #define write_disc 0 00261 #define write_back 0 00262 #define write_fram 0 00263 #define write_move 0 00264 #define write_clip 0 00265 #define write_show 0 00266 #define write_term 0 00267 #define write_save 0 00268 #define write_seek 0 00269 #define write_expi 0 00270 #define write_fpri 0 00271 #define write_phyg 0 00272 #define write_jhdr 0 00273 #define write_jdaa 0 00274 #define write_jdat 0 00275 #define write_jsep 0 00276 #define write_dhdr 0 00277 #define write_prom 0 00278 #define write_ipng 0 00279 #define write_pplt 0 00280 #define write_ijng 0 00281 #define write_drop 0 00282 #define write_dbyk 0 00283 #define write_ordr 0 00284 #define write_magn 0 00285 #define write_need 0 00286 #define write_unknown 0 00287 #endif /* MNG_INCLUDE_WRITE_PROCS */ 00288 00289 /* ************************************************************************** */ 00290 00291 #endif /* _libmng_chunk_io_h_ */ 00292 00293 /* ************************************************************************** */ 00294 /* * end of file * */ 00295 /* ************************************************************************** */