| /* ************************************************************************** */ |
| /* * For conditions of distribution and use, * */ |
| /* * see copyright notice in libmng.h * */ |
| /* ************************************************************************** */ |
| /* * * */ |
| /* * project : libmng * */ |
| /* * file : libmng_chunk_prc.h copyright (c) 2000-2007 G.Juyn * */ |
| /* * version : 1.0.10 * */ |
| /* * * */ |
| /* * purpose : Chunk initialization & cleanup (definition) * */ |
| /* * * */ |
| /* * author : G.Juyn * */ |
| /* * * */ |
| /* * comment : definition of the chunk initialization & cleanup routines * */ |
| /* * * */ |
| /* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */ |
| /* * - changed strict-ANSI stuff * */ |
| /* * * */ |
| /* * 0.9.2 - 08/05/2000 - G.Juyn * */ |
| /* * - changed file-prefixes * */ |
| /* * * */ |
| /* * 0.9.3 - 08/26/2000 - G.Juyn * */ |
| /* * - added MAGN chunk * */ |
| /* * 0.9.3 - 10/16/2000 - G.Juyn * */ |
| /* * - added support for JDAA * */ |
| /* * * */ |
| /* * 1.0.5 - 08/19/2002 - G.Juyn * */ |
| /* * - B597134 - libmng pollutes the linker namespace * */ |
| /* * 1.0.5 - 09/14/2002 - G.Juyn * */ |
| /* * - added event handling for dynamic MNG * */ |
| /* * * */ |
| /* * 1.0.6 - 07/07/2003 - G.R-P * */ |
| /* * - added NO_DELTA_PNG support * */ |
| /* * 1.0.6 - 07/29/2003 - G.R-P * */ |
| /* * - added conditionals around PAST chunk support * */ |
| /* * * */ |
| /* * 1.0.9 - 12/05/2004 - G.Juyn * */ |
| /* * - added conditional MNG_OPTIMIZE_CHUNKINITFREE * */ |
| /* * 1.0.9 - 12/06/2004 - G.Juyn * */ |
| /* * - added conditional MNG_OPTIMIZE_CHUNKASSIGN * */ |
| /* * * */ |
| /* * 1.0.10 - 04/08/2007 - G.Juyn * */ |
| /* * - added support for mPNG proposal * */ |
| /* * 1.0.10 - 04/12/2007 - G.Juyn * */ |
| /* * - added support for ANG proposal * */ |
| /* * * */ |
| /* ************************************************************************** */ |
| |
| #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI) |
| #pragma option -A /* force ANSI-C */ |
| #endif |
| |
| #ifndef _libmng_chunk_prc_h_ |
| #define _libmng_chunk_prc_h_ |
| |
| /* ************************************************************************** */ |
| |
| void mng_add_chunk (mng_datap pData, |
| mng_chunkp pChunk); |
| |
| /* ************************************************************************** */ |
| |
| #define INIT_CHUNK_HDR(n) mng_retcode n (mng_datap pData, \ |
| mng_chunkp pHeader, \ |
| mng_chunkp* ppChunk) |
| |
| #ifdef MNG_OPTIMIZE_CHUNKINITFREE |
| INIT_CHUNK_HDR (mng_init_general) ; |
| #else |
| INIT_CHUNK_HDR (mng_init_ihdr) ; |
| INIT_CHUNK_HDR (mng_init_plte) ; |
| INIT_CHUNK_HDR (mng_init_idat) ; |
| INIT_CHUNK_HDR (mng_init_iend) ; |
| INIT_CHUNK_HDR (mng_init_trns) ; |
| INIT_CHUNK_HDR (mng_init_gama) ; |
| INIT_CHUNK_HDR (mng_init_chrm) ; |
| INIT_CHUNK_HDR (mng_init_srgb) ; |
| INIT_CHUNK_HDR (mng_init_iccp) ; |
| INIT_CHUNK_HDR (mng_init_text) ; |
| INIT_CHUNK_HDR (mng_init_ztxt) ; |
| INIT_CHUNK_HDR (mng_init_itxt) ; |
| INIT_CHUNK_HDR (mng_init_bkgd) ; |
| INIT_CHUNK_HDR (mng_init_phys) ; |
| INIT_CHUNK_HDR (mng_init_sbit) ; |
| INIT_CHUNK_HDR (mng_init_splt) ; |
| INIT_CHUNK_HDR (mng_init_hist) ; |
| INIT_CHUNK_HDR (mng_init_time) ; |
| INIT_CHUNK_HDR (mng_init_mhdr) ; |
| INIT_CHUNK_HDR (mng_init_mend) ; |
| INIT_CHUNK_HDR (mng_init_loop) ; |
| INIT_CHUNK_HDR (mng_init_endl) ; |
| INIT_CHUNK_HDR (mng_init_defi) ; |
| INIT_CHUNK_HDR (mng_init_basi) ; |
| INIT_CHUNK_HDR (mng_init_clon) ; |
| #ifndef MNG_SKIPCHUNK_PAST |
| INIT_CHUNK_HDR (mng_init_past) ; |
| #endif |
| INIT_CHUNK_HDR (mng_init_disc) ; |
| INIT_CHUNK_HDR (mng_init_back) ; |
| INIT_CHUNK_HDR (mng_init_fram) ; |
| INIT_CHUNK_HDR (mng_init_move) ; |
| INIT_CHUNK_HDR (mng_init_clip) ; |
| INIT_CHUNK_HDR (mng_init_show) ; |
| INIT_CHUNK_HDR (mng_init_term) ; |
| INIT_CHUNK_HDR (mng_init_save) ; |
| INIT_CHUNK_HDR (mng_init_seek) ; |
| INIT_CHUNK_HDR (mng_init_expi) ; |
| INIT_CHUNK_HDR (mng_init_fpri) ; |
| INIT_CHUNK_HDR (mng_init_need) ; |
| INIT_CHUNK_HDR (mng_init_phyg) ; |
| #ifdef MNG_INCLUDE_JNG |
| INIT_CHUNK_HDR (mng_init_jhdr) ; |
| INIT_CHUNK_HDR (mng_init_jdaa) ; |
| INIT_CHUNK_HDR (mng_init_jdat) ; |
| INIT_CHUNK_HDR (mng_init_jsep) ; |
| #endif |
| #ifndef MNG_NO_DELTA_PNG |
| INIT_CHUNK_HDR (mng_init_dhdr) ; |
| INIT_CHUNK_HDR (mng_init_prom) ; |
| INIT_CHUNK_HDR (mng_init_ipng) ; |
| INIT_CHUNK_HDR (mng_init_pplt) ; |
| #ifdef MNG_INCLUDE_JNG |
| INIT_CHUNK_HDR (mng_init_ijng) ; |
| #endif |
| INIT_CHUNK_HDR (mng_init_drop) ; |
| INIT_CHUNK_HDR (mng_init_dbyk) ; |
| INIT_CHUNK_HDR (mng_init_ordr) ; |
| #endif |
| INIT_CHUNK_HDR (mng_init_magn) ; |
| INIT_CHUNK_HDR (mng_init_evnt) ; |
| INIT_CHUNK_HDR (mng_init_unknown) ; |
| #endif /* MNG_OPTIMIZE_CHUNKINITFREE */ |
| |
| /* ************************************************************************** */ |
| |
| #define FREE_CHUNK_HDR(n) mng_retcode n (mng_datap pData, \ |
| mng_chunkp pHeader) |
| |
| #ifdef MNG_OPTIMIZE_CHUNKINITFREE |
| FREE_CHUNK_HDR (mng_free_general) ; |
| #else /* MNG_OPTIMIZE_CHUNKINITFREE */ |
| FREE_CHUNK_HDR (mng_free_ihdr) ; |
| FREE_CHUNK_HDR (mng_free_plte) ; |
| FREE_CHUNK_HDR (mng_free_iend) ; |
| FREE_CHUNK_HDR (mng_free_trns) ; |
| FREE_CHUNK_HDR (mng_free_gama) ; |
| FREE_CHUNK_HDR (mng_free_chrm) ; |
| FREE_CHUNK_HDR (mng_free_srgb) ; |
| FREE_CHUNK_HDR (mng_free_bkgd) ; |
| FREE_CHUNK_HDR (mng_free_phys) ; |
| FREE_CHUNK_HDR (mng_free_sbit) ; |
| FREE_CHUNK_HDR (mng_free_hist) ; |
| FREE_CHUNK_HDR (mng_free_time) ; |
| FREE_CHUNK_HDR (mng_free_mhdr) ; |
| FREE_CHUNK_HDR (mng_free_mend) ; |
| FREE_CHUNK_HDR (mng_free_endl) ; |
| FREE_CHUNK_HDR (mng_free_defi) ; |
| FREE_CHUNK_HDR (mng_free_basi) ; |
| FREE_CHUNK_HDR (mng_free_clon) ; |
| FREE_CHUNK_HDR (mng_free_back) ; |
| FREE_CHUNK_HDR (mng_free_move) ; |
| FREE_CHUNK_HDR (mng_free_clip) ; |
| FREE_CHUNK_HDR (mng_free_show) ; |
| FREE_CHUNK_HDR (mng_free_term) ; |
| FREE_CHUNK_HDR (mng_free_fpri) ; |
| FREE_CHUNK_HDR (mng_free_phyg) ; |
| #ifdef MNG_INCLUDE_JNG |
| FREE_CHUNK_HDR (mng_free_jhdr) ; |
| FREE_CHUNK_HDR (mng_free_jsep) ; |
| #endif |
| #ifndef MNG_NO_DELTA_PNG |
| FREE_CHUNK_HDR (mng_free_dhdr) ; |
| FREE_CHUNK_HDR (mng_free_prom) ; |
| FREE_CHUNK_HDR (mng_free_ipng) ; |
| FREE_CHUNK_HDR (mng_free_pplt) ; |
| #ifdef MNG_INCLUDE_JNG |
| FREE_CHUNK_HDR (mng_free_ijng) ; |
| #endif |
| #endif |
| FREE_CHUNK_HDR (mng_free_magn) ; |
| #endif /* MNG_OPTIMIZE_CHUNKINITFREE */ |
| |
| FREE_CHUNK_HDR (mng_free_idat) ; |
| FREE_CHUNK_HDR (mng_free_iccp) ; |
| FREE_CHUNK_HDR (mng_free_text) ; |
| FREE_CHUNK_HDR (mng_free_ztxt) ; |
| FREE_CHUNK_HDR (mng_free_itxt) ; |
| FREE_CHUNK_HDR (mng_free_splt) ; |
| FREE_CHUNK_HDR (mng_free_loop) ; |
| #ifndef MNG_SKIPCHUNK_PAST |
| FREE_CHUNK_HDR (mng_free_past) ; |
| #endif |
| FREE_CHUNK_HDR (mng_free_disc) ; |
| FREE_CHUNK_HDR (mng_free_fram) ; |
| FREE_CHUNK_HDR (mng_free_save) ; |
| FREE_CHUNK_HDR (mng_free_seek) ; |
| FREE_CHUNK_HDR (mng_free_expi) ; |
| FREE_CHUNK_HDR (mng_free_need) ; |
| #ifdef MNG_INCLUDE_JNG |
| FREE_CHUNK_HDR (mng_free_jdaa) ; |
| FREE_CHUNK_HDR (mng_free_jdat) ; |
| #endif |
| #ifndef MNG_NO_DELTA_PNG |
| FREE_CHUNK_HDR (mng_free_drop) ; |
| FREE_CHUNK_HDR (mng_free_dbyk) ; |
| FREE_CHUNK_HDR (mng_free_ordr) ; |
| #endif |
| #ifdef MNG_INCLUDE_MPNG_PROPOSAL |
| FREE_CHUNK_HDR (mng_free_mpng) ; |
| #endif |
| #ifdef MNG_INCLUDE_ANG_PROPOSAL |
| FREE_CHUNK_HDR (mng_free_adat) ; |
| #endif |
| FREE_CHUNK_HDR (mng_free_evnt) ; |
| FREE_CHUNK_HDR (mng_free_unknown) ; |
| |
| /* ************************************************************************** */ |
| |
| #ifdef MNG_INCLUDE_WRITE_PROCS |
| |
| #define ASSIGN_CHUNK_HDR(n) mng_retcode n (mng_datap pData, \ |
| mng_chunkp pChunkto, \ |
| mng_chunkp pChunkfrom) |
| |
| #ifdef MNG_OPTIMIZE_CHUNKASSIGN |
| ASSIGN_CHUNK_HDR (mng_assign_general) ; |
| #else /* MNG_OPTIMIZE_CHUNKASSIGN */ |
| ASSIGN_CHUNK_HDR (mng_assign_ihdr) ; |
| ASSIGN_CHUNK_HDR (mng_assign_plte) ; |
| ASSIGN_CHUNK_HDR (mng_assign_iend) ; |
| ASSIGN_CHUNK_HDR (mng_assign_trns) ; |
| ASSIGN_CHUNK_HDR (mng_assign_gama) ; |
| ASSIGN_CHUNK_HDR (mng_assign_chrm) ; |
| ASSIGN_CHUNK_HDR (mng_assign_srgb) ; |
| ASSIGN_CHUNK_HDR (mng_assign_bkgd) ; |
| ASSIGN_CHUNK_HDR (mng_assign_phys) ; |
| ASSIGN_CHUNK_HDR (mng_assign_sbit) ; |
| ASSIGN_CHUNK_HDR (mng_assign_hist) ; |
| ASSIGN_CHUNK_HDR (mng_assign_time) ; |
| ASSIGN_CHUNK_HDR (mng_assign_mhdr) ; |
| ASSIGN_CHUNK_HDR (mng_assign_mend) ; |
| ASSIGN_CHUNK_HDR (mng_assign_endl) ; |
| ASSIGN_CHUNK_HDR (mng_assign_defi) ; |
| ASSIGN_CHUNK_HDR (mng_assign_basi) ; |
| ASSIGN_CHUNK_HDR (mng_assign_clon) ; |
| ASSIGN_CHUNK_HDR (mng_assign_back) ; |
| ASSIGN_CHUNK_HDR (mng_assign_move) ; |
| ASSIGN_CHUNK_HDR (mng_assign_clip) ; |
| ASSIGN_CHUNK_HDR (mng_assign_show) ; |
| ASSIGN_CHUNK_HDR (mng_assign_term) ; |
| ASSIGN_CHUNK_HDR (mng_assign_fpri) ; |
| ASSIGN_CHUNK_HDR (mng_assign_phyg) ; |
| #ifdef MNG_INCLUDE_JNG |
| ASSIGN_CHUNK_HDR (mng_assign_jhdr) ; |
| ASSIGN_CHUNK_HDR (mng_assign_jsep) ; |
| #endif |
| #ifndef MNG_NO_DELTA_PNG |
| ASSIGN_CHUNK_HDR (mng_assign_dhdr) ; |
| ASSIGN_CHUNK_HDR (mng_assign_prom) ; |
| ASSIGN_CHUNK_HDR (mng_assign_ipng) ; |
| ASSIGN_CHUNK_HDR (mng_assign_pplt) ; |
| #ifdef MNG_INCLUDE_JNG |
| ASSIGN_CHUNK_HDR (mng_assign_ijng) ; |
| #endif |
| #endif |
| ASSIGN_CHUNK_HDR (mng_assign_magn) ; |
| #endif /* MNG_OPTIMIZE_CHUNKASSIGN */ |
| |
| ASSIGN_CHUNK_HDR (mng_assign_idat) ; |
| ASSIGN_CHUNK_HDR (mng_assign_iccp) ; |
| ASSIGN_CHUNK_HDR (mng_assign_text) ; |
| ASSIGN_CHUNK_HDR (mng_assign_ztxt) ; |
| ASSIGN_CHUNK_HDR (mng_assign_itxt) ; |
| ASSIGN_CHUNK_HDR (mng_assign_splt) ; |
| ASSIGN_CHUNK_HDR (mng_assign_loop) ; |
| #ifndef MNG_SKIPCHUNK_PAST |
| ASSIGN_CHUNK_HDR (mng_assign_past) ; |
| #endif |
| ASSIGN_CHUNK_HDR (mng_assign_disc) ; |
| ASSIGN_CHUNK_HDR (mng_assign_fram) ; |
| ASSIGN_CHUNK_HDR (mng_assign_save) ; |
| ASSIGN_CHUNK_HDR (mng_assign_seek) ; |
| ASSIGN_CHUNK_HDR (mng_assign_need) ; |
| ASSIGN_CHUNK_HDR (mng_assign_expi) ; |
| #ifdef MNG_INCLUDE_JNG |
| ASSIGN_CHUNK_HDR (mng_assign_jdaa) ; |
| ASSIGN_CHUNK_HDR (mng_assign_jdat) ; |
| #endif |
| #ifndef MNG_NO_DELTA_PNG |
| ASSIGN_CHUNK_HDR (mng_assign_drop) ; |
| ASSIGN_CHUNK_HDR (mng_assign_dbyk) ; |
| ASSIGN_CHUNK_HDR (mng_assign_ordr) ; |
| #endif |
| #ifdef MNG_INCLUDE_MPNG_PROPOSAL |
| ASSIGN_CHUNK_HDR (mng_assign_mpng) ; |
| #endif |
| #ifdef MNG_INCLUDE_ANG_PROPOSAL |
| ASSIGN_CHUNK_HDR (mng_assign_ahdr) ; |
| ASSIGN_CHUNK_HDR (mng_assign_adat) ; |
| #endif |
| ASSIGN_CHUNK_HDR (mng_assign_evnt) ; |
| ASSIGN_CHUNK_HDR (mng_assign_unknown) ; |
| |
| /* ************************************************************************** */ |
| |
| #else /* MNG_INCLUDE_WRITE_PROCS */ |
| #define mng_assign_general 0 |
| #define mng_assign_ihdr 0 |
| #define mng_assign_plte 0 |
| #define mng_assign_idat 0 |
| #define mng_assign_iend 0 |
| #define mng_assign_trns 0 |
| #define mng_assign_gama 0 |
| #define mng_assign_chrm 0 |
| #define mng_assign_srgb 0 |
| #define mng_assign_iccp 0 |
| #define mng_assign_text 0 |
| #define mng_assign_ztxt 0 |
| #define mng_assign_itxt 0 |
| #define mng_assign_bkgd 0 |
| #define mng_assign_phys 0 |
| #define mng_assign_sbit 0 |
| #define mng_assign_splt 0 |
| #define mng_assign_hist 0 |
| #define mng_assign_time 0 |
| #define mng_assign_mhdr 0 |
| #define mng_assign_mend 0 |
| #define mng_assign_loop 0 |
| #define mng_assign_endl 0 |
| #define mng_assign_defi 0 |
| #define mng_assign_basi 0 |
| #define mng_assign_clon 0 |
| #ifndef MNG_SKIPCHUNK_PAST |
| #define mng_assign_past 0 |
| #endif |
| #define mng_assign_disc 0 |
| #define mng_assign_back 0 |
| #define mng_assign_fram 0 |
| #define mng_assign_move 0 |
| #define mng_assign_clip 0 |
| #define mng_assign_show 0 |
| #define mng_assign_term 0 |
| #define mng_assign_save 0 |
| #define mng_assign_seek 0 |
| #define mng_assign_expi 0 |
| #define mng_assign_fpri 0 |
| #define mng_assign_phyg 0 |
| #ifdef MNG_INCLUDE_JNG |
| #define mng_assign_jhdr 0 |
| #define mng_assign_jdaa 0 |
| #define mng_assign_jdat 0 |
| #define mng_assign_jsep 0 |
| #endif |
| #ifndef MNG_NO_DELTA_PNG |
| #define mng_assign_dhdr 0 |
| #define mng_assign_prom 0 |
| #define mng_assign_ipng 0 |
| #define mng_assign_pplt 0 |
| #ifdef MNG_INCLUDE_JNG |
| #define mng_assign_ijng 0 |
| #endif |
| #define mng_assign_drop 0 |
| #define mng_assign_dbyk 0 |
| #define mng_assign_ordr 0 |
| #endif |
| #define mng_assign_magn 0 |
| #define mng_assign_need 0 |
| #define mng_assign_mpng 0 |
| #define mng_assign_ahdr 0 |
| #define mng_assign_adat 0 |
| #define mng_assign_evnt 0 |
| #define mng_assign_unknown 0 |
| #endif /* MNG_INCLUDE_WRITE_PROCS */ |
| |
| /* ************************************************************************** */ |
| |
| #endif /* _libmng_chunk_prc_h_ */ |
| |
| /* ************************************************************************** */ |
| /* * end of file * */ |
| /* ************************************************************************** */ |