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_chunks.h copyright (c) 2000 G.Juyn * */ 00008 /* * version : 1.0.0 * */ 00009 /* * * */ 00010 /* * purpose : Chunk structures (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 known chunk structures * */ 00017 /* * * */ 00018 /* * changes : 0.5.1 - 05/04/2000 - G.Juyn * */ 00019 /* * - put in some extra comments * */ 00020 /* * 0.5.1 - 05/06/2000 - G.Juyn * */ 00021 /* * - fixed layout for sBIT, PPLT * */ 00022 /* * 0.5.1 - 05/08/2000 - G.Juyn * */ 00023 /* * - changed write callback definition * */ 00024 /* * - changed strict-ANSI stuff * */ 00025 /* * 0.5.1 - 05/11/2000 - G.Juyn * */ 00026 /* * - fixed layout for PPLT again (missed deltatype ?!?) * */ 00027 /* * * */ 00028 /* * 0.5.2 - 05/31/2000 - G.Juyn * */ 00029 /* * - removed useless definition (contributed by Tim Rowley) * */ 00030 /* * 0.5.2 - 06/03/2000 - G.Juyn * */ 00031 /* * - fixed makeup for Linux gcc compile * */ 00032 /* * * */ 00033 /* * 0.9.2 - 08/05/2000 - G.Juyn * */ 00034 /* * - changed file-prefixes * */ 00035 /* * * */ 00036 /* * 0.9.3 - 08/26/2000 - G.Juyn * */ 00037 /* * - added MAGN chunk * */ 00038 /* * 0.9.3 - 09/10/2000 - G.Juyn * */ 00039 /* * - fixed DEFI behavior * */ 00040 /* * 0.9.3 - 10/16/2000 - G.Juyn * */ 00041 /* * - added JDAA chunk * */ 00042 /* * * */ 00043 /* ************************************************************************** */ 00044 00045 #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI) 00046 #pragma option -A /* force ANSI-C */ 00047 #endif 00048 00049 #ifndef _libmng_chunks_h_ 00050 #define _libmng_chunks_h_ 00051 00052 /* ************************************************************************** */ 00053 00054 #ifdef MNG_SWAP_ENDIAN 00055 #define PNG_SIG 0x474e5089L 00056 #define JNG_SIG 0x474e4a8bL 00057 #define MNG_SIG 0x474e4d8aL 00058 #define POST_SIG 0x0a1a0a0dL 00059 #else 00060 #define PNG_SIG 0x89504e47L 00061 #define JNG_SIG 0x8b4a4e47L 00062 #define MNG_SIG 0x8a4d4e47L 00063 #define POST_SIG 0x0d0a1a0aL 00064 #endif 00065 00066 /* ************************************************************************** */ 00067 00068 typedef mng_retcode (*mng_createchunk) (mng_datap pData, 00069 mng_chunkp pHeader, 00070 mng_chunkp* ppChunk); 00071 00072 typedef mng_retcode (*mng_cleanupchunk) (mng_datap pData, 00073 mng_chunkp pHeader); 00074 00075 typedef mng_retcode (*mng_readchunk) (mng_datap pData, 00076 mng_chunkp pHeader, 00077 mng_uint32 iRawlen, 00078 mng_uint8p pRawdata, 00079 mng_chunkp* pChunk); 00080 00081 typedef mng_retcode (*mng_writechunk) (mng_datap pData, 00082 mng_chunkp pChunk); 00083 00084 /* ************************************************************************** */ 00085 00086 typedef struct { /* generic header */ 00087 mng_chunkid iChunkname; 00088 mng_createchunk fCreate; 00089 mng_cleanupchunk fCleanup; 00090 mng_readchunk fRead; 00091 mng_writechunk fWrite; 00092 mng_chunkp pNext; /* for double-linked list */ 00093 mng_chunkp pPrev; 00094 } mng_chunk_header; 00095 typedef mng_chunk_header * mng_chunk_headerp; 00096 00097 /* ************************************************************************** */ 00098 00099 typedef struct { /* IHDR */ 00100 mng_chunk_header sHeader; 00101 mng_uint32 iWidth; 00102 mng_uint32 iHeight; 00103 mng_uint8 iBitdepth; 00104 mng_uint8 iColortype; 00105 mng_uint8 iCompression; 00106 mng_uint8 iFilter; 00107 mng_uint8 iInterlace; 00108 } mng_ihdr; 00109 typedef mng_ihdr * mng_ihdrp; 00110 00111 /* ************************************************************************** */ 00112 00113 typedef struct { /* PLTE */ 00114 mng_chunk_header sHeader; 00115 mng_bool bEmpty; 00116 mng_uint32 iEntrycount; 00117 mng_rgbpaltab aEntries; 00118 } mng_plte; 00119 typedef mng_plte * mng_pltep; 00120 00121 /* ************************************************************************** */ 00122 00123 typedef struct { /* IDAT */ 00124 mng_chunk_header sHeader; 00125 mng_bool bEmpty; 00126 mng_uint32 iDatasize; 00127 mng_ptr pData; 00128 } mng_idat; 00129 typedef mng_idat * mng_idatp; 00130 00131 /* ************************************************************************** */ 00132 00133 typedef struct { /* IEND */ 00134 mng_chunk_header sHeader; 00135 } mng_iend; 00136 typedef mng_iend * mng_iendp; 00137 00138 /* ************************************************************************** */ 00139 00140 typedef struct { /* tRNS */ 00141 mng_chunk_header sHeader; 00142 mng_bool bEmpty; 00143 mng_bool bGlobal; 00144 mng_uint8 iType; /* colortype (0,2,3) */ 00145 mng_uint32 iCount; 00146 mng_uint8arr aEntries; 00147 mng_uint16 iGray; 00148 mng_uint16 iRed; 00149 mng_uint16 iGreen; 00150 mng_uint16 iBlue; 00151 mng_uint32 iRawlen; 00152 mng_uint8arr aRawdata; 00153 } mng_trns; 00154 typedef mng_trns * mng_trnsp; 00155 00156 /* ************************************************************************** */ 00157 00158 typedef struct { /* gAMA */ 00159 mng_chunk_header sHeader; 00160 mng_bool bEmpty; 00161 mng_uint32 iGamma; 00162 } mng_gama; 00163 typedef mng_gama * mng_gamap; 00164 00165 /* ************************************************************************** */ 00166 00167 typedef struct { /* cHRM */ 00168 mng_chunk_header sHeader; 00169 mng_bool bEmpty; 00170 mng_uint32 iWhitepointx; 00171 mng_uint32 iWhitepointy; 00172 mng_uint32 iRedx; 00173 mng_uint32 iRedy; 00174 mng_uint32 iGreenx; 00175 mng_uint32 iGreeny; 00176 mng_uint32 iBluex; 00177 mng_uint32 iBluey; 00178 } mng_chrm; 00179 typedef mng_chrm * mng_chrmp; 00180 00181 /* ************************************************************************** */ 00182 00183 typedef struct { /* sRGB */ 00184 mng_chunk_header sHeader; 00185 mng_bool bEmpty; 00186 mng_uint8 iRenderingintent; 00187 } mng_srgb; 00188 typedef mng_srgb * mng_srgbp; 00189 00190 /* ************************************************************************** */ 00191 00192 typedef struct { /* iCCP */ 00193 mng_chunk_header sHeader; 00194 mng_bool bEmpty; 00195 mng_uint32 iNamesize; 00196 mng_pchar zName; 00197 mng_uint8 iCompression; 00198 mng_uint32 iProfilesize; 00199 mng_ptr pProfile; 00200 } mng_iccp; 00201 typedef mng_iccp * mng_iccpp; 00202 00203 /* ************************************************************************** */ 00204 00205 typedef struct { /* tEXt */ 00206 mng_chunk_header sHeader; 00207 mng_uint32 iKeywordsize; 00208 mng_pchar zKeyword; 00209 mng_uint32 iTextsize; 00210 mng_pchar zText; 00211 } mng_text; 00212 typedef mng_text * mng_textp; 00213 00214 /* ************************************************************************** */ 00215 00216 typedef struct { /* zTXt */ 00217 mng_chunk_header sHeader; 00218 mng_uint32 iKeywordsize; 00219 mng_pchar zKeyword; 00220 mng_uint8 iCompression; 00221 mng_uint32 iTextsize; 00222 mng_pchar zText; 00223 } mng_ztxt; 00224 typedef mng_ztxt * mng_ztxtp; 00225 00226 /* ************************************************************************** */ 00227 00228 typedef struct { /* iTXt */ 00229 mng_chunk_header sHeader; 00230 mng_uint32 iKeywordsize; 00231 mng_pchar zKeyword; 00232 mng_uint8 iCompressionflag; 00233 mng_uint8 iCompressionmethod; 00234 mng_uint32 iLanguagesize; 00235 mng_pchar zLanguage; 00236 mng_uint32 iTranslationsize; 00237 mng_pchar zTranslation; 00238 mng_uint32 iTextsize; 00239 mng_pchar zText; 00240 } mng_itxt; 00241 typedef mng_itxt * mng_itxtp; 00242 00243 /* ************************************************************************** */ 00244 00245 typedef struct { /* bKGD */ 00246 mng_chunk_header sHeader; 00247 mng_bool bEmpty; 00248 mng_uint8 iType; /* 3=indexed, 0=gray, 2=rgb */ 00249 mng_uint8 iIndex; 00250 mng_uint16 iGray; 00251 mng_uint16 iRed; 00252 mng_uint16 iGreen; 00253 mng_uint16 iBlue; 00254 } mng_bkgd; 00255 typedef mng_bkgd * mng_bkgdp; 00256 00257 /* ************************************************************************** */ 00258 00259 typedef struct { /* pHYs */ 00260 mng_chunk_header sHeader; 00261 mng_bool bEmpty; 00262 mng_uint32 iSizex; 00263 mng_uint32 iSizey; 00264 mng_uint8 iUnit; 00265 } mng_phys; 00266 typedef mng_phys * mng_physp; 00267 00268 /* ************************************************************************** */ 00269 00270 typedef struct { /* sBIT */ 00271 mng_chunk_header sHeader; 00272 mng_bool bEmpty; 00273 mng_uint8 iType; /* colortype (0,2,3,4,6,10,12,14,16) */ 00274 mng_uint8arr4 aBits; 00275 } mng_sbit; 00276 typedef mng_sbit * mng_sbitp; 00277 00278 /* ************************************************************************** */ 00279 00280 typedef struct { /* sPLT */ 00281 mng_chunk_header sHeader; 00282 mng_bool bEmpty; 00283 mng_uint32 iNamesize; 00284 mng_pchar zName; 00285 mng_uint8 iSampledepth; 00286 mng_uint32 iEntrycount; 00287 mng_ptr pEntries; 00288 } mng_splt; 00289 typedef mng_splt * mng_spltp; 00290 00291 /* ************************************************************************** */ 00292 00293 typedef struct { /* hIST */ 00294 mng_chunk_header sHeader; 00295 mng_uint32 iEntrycount; 00296 mng_uint16arr aEntries; 00297 } mng_hist; 00298 typedef mng_hist * mng_histp; 00299 00300 /* ************************************************************************** */ 00301 00302 typedef struct { /* tIME */ 00303 mng_chunk_header sHeader; 00304 mng_uint16 iYear; 00305 mng_uint8 iMonth; 00306 mng_uint8 iDay; 00307 mng_uint8 iHour; 00308 mng_uint8 iMinute; 00309 mng_uint8 iSecond; 00310 } mng_time; 00311 typedef mng_time * mng_timep; 00312 00313 /* ************************************************************************** */ 00314 00315 typedef struct { /* MHDR */ 00316 mng_chunk_header sHeader; 00317 mng_uint32 iWidth; 00318 mng_uint32 iHeight; 00319 mng_uint32 iTicks; 00320 mng_uint32 iLayercount; 00321 mng_uint32 iFramecount; 00322 mng_uint32 iPlaytime; 00323 mng_uint32 iSimplicity; 00324 } mng_mhdr; 00325 typedef mng_mhdr * mng_mhdrp; 00326 00327 /* ************************************************************************** */ 00328 00329 typedef struct { /* MEND */ 00330 mng_chunk_header sHeader; 00331 } mng_mend; 00332 typedef mng_mend * mng_mendp; 00333 00334 /* ************************************************************************** */ 00335 00336 typedef struct { /* LOOP */ 00337 mng_chunk_header sHeader; 00338 mng_uint8 iLevel; 00339 mng_uint32 iRepeat; 00340 mng_uint8 iTermination; 00341 mng_uint32 iItermin; 00342 mng_uint32 iItermax; 00343 mng_uint32 iCount; 00344 mng_uint32p pSignals; 00345 } mng_loop; 00346 typedef mng_loop * mng_loopp; 00347 00348 /* ************************************************************************** */ 00349 00350 typedef struct { /* ENDL */ 00351 mng_chunk_header sHeader; 00352 mng_uint8 iLevel; 00353 } mng_endl; 00354 typedef mng_endl * mng_endlp; 00355 00356 /* ************************************************************************** */ 00357 00358 typedef struct { /* DEFI */ 00359 mng_chunk_header sHeader; 00360 mng_uint16 iObjectid; 00361 mng_bool bHasdonotshow; 00362 mng_uint8 iDonotshow; 00363 mng_bool bHasconcrete; 00364 mng_uint8 iConcrete; 00365 mng_bool bHasloca; 00366 mng_int32 iXlocation; 00367 mng_int32 iYlocation; 00368 mng_bool bHasclip; 00369 mng_int32 iLeftcb; 00370 mng_int32 iRightcb; 00371 mng_int32 iTopcb; 00372 mng_int32 iBottomcb; 00373 } mng_defi; 00374 typedef mng_defi * mng_defip; 00375 00376 /* ************************************************************************** */ 00377 00378 typedef struct { /* BASI */ 00379 mng_chunk_header sHeader; 00380 mng_uint32 iWidth; 00381 mng_uint32 iHeight; 00382 mng_uint8 iBitdepth; 00383 mng_uint8 iColortype; 00384 mng_uint8 iCompression; 00385 mng_uint8 iFilter; 00386 mng_uint8 iInterlace; 00387 mng_uint16 iRed; 00388 mng_uint16 iGreen; 00389 mng_uint16 iBlue; 00390 mng_uint16 iAlpha; 00391 mng_uint8 iViewable; 00392 } mng_basi; 00393 typedef mng_basi * mng_basip; 00394 00395 /* ************************************************************************** */ 00396 00397 typedef struct { /* CLON */ 00398 mng_chunk_header sHeader; 00399 mng_uint16 iSourceid; 00400 mng_uint16 iCloneid; 00401 mng_uint8 iClonetype; 00402 mng_uint8 iDonotshow; 00403 mng_uint8 iConcrete; 00404 mng_bool bHasloca; 00405 mng_uint8 iLocationtype; 00406 mng_int32 iLocationx; 00407 mng_int32 iLocationy; 00408 } mng_clon; 00409 typedef mng_clon * mng_clonp; 00410 00411 /* ************************************************************************** */ 00412 00413 typedef struct { /* PAST source */ 00414 mng_uint16 iSourceid; 00415 mng_uint8 iComposition; 00416 mng_uint8 iOrientation; 00417 mng_uint8 iOffsettype; 00418 mng_int32 iOffsetx; 00419 mng_int32 iOffsety; 00420 mng_uint8 iBoundarytype; 00421 mng_int32 iBoundaryl; 00422 mng_int32 iBoundaryr; 00423 mng_int32 iBoundaryt; 00424 mng_int32 iBoundaryb; 00425 } mng_past_source; 00426 typedef mng_past_source * mng_past_sourcep; 00427 00428 typedef struct { /* PAST */ 00429 mng_chunk_header sHeader; 00430 mng_uint16 iDestid; 00431 mng_uint8 iTargettype; 00432 mng_int32 iTargetx; 00433 mng_int32 iTargety; 00434 mng_uint32 iCount; 00435 mng_past_sourcep pSources; 00436 } mng_past; 00437 typedef mng_past * mng_pastp; 00438 00439 /* ************************************************************************** */ 00440 00441 typedef struct { /* DISC */ 00442 mng_chunk_header sHeader; 00443 mng_uint32 iCount; 00444 mng_uint16p pObjectids; 00445 } mng_disc; 00446 typedef mng_disc * mng_discp; 00447 00448 /* ************************************************************************** */ 00449 00450 typedef struct { /* BACK */ 00451 mng_chunk_header sHeader; 00452 mng_uint16 iRed; 00453 mng_uint16 iGreen; 00454 mng_uint16 iBlue; 00455 mng_uint8 iMandatory; 00456 mng_uint16 iImageid; 00457 mng_uint8 iTile; 00458 } mng_back; 00459 typedef mng_back * mng_backp; 00460 00461 /* ************************************************************************** */ 00462 00463 typedef struct { /* FRAM */ 00464 mng_chunk_header sHeader; 00465 mng_bool bEmpty; 00466 mng_uint8 iMode; 00467 mng_uint32 iNamesize; 00468 mng_pchar zName; 00469 mng_uint8 iChangedelay; 00470 mng_uint8 iChangetimeout; 00471 mng_uint8 iChangeclipping; 00472 mng_uint8 iChangesyncid; 00473 mng_uint32 iDelay; 00474 mng_uint32 iTimeout; 00475 mng_uint8 iBoundarytype; 00476 mng_int32 iBoundaryl; 00477 mng_int32 iBoundaryr; 00478 mng_int32 iBoundaryt; 00479 mng_int32 iBoundaryb; 00480 mng_uint32 iCount; 00481 mng_uint32p pSyncids; 00482 } mng_fram; 00483 typedef mng_fram * mng_framp; 00484 00485 /* ************************************************************************** */ 00486 00487 typedef struct { /* MOVE */ 00488 mng_chunk_header sHeader; 00489 mng_uint16 iFirstid; 00490 mng_uint16 iLastid; 00491 mng_uint8 iMovetype; 00492 mng_int32 iMovex; 00493 mng_int32 iMovey; 00494 } mng_move; 00495 typedef mng_move * mng_movep; 00496 00497 /* ************************************************************************** */ 00498 00499 typedef struct { /* CLIP */ 00500 mng_chunk_header sHeader; 00501 mng_uint16 iFirstid; 00502 mng_uint16 iLastid; 00503 mng_uint8 iCliptype; 00504 mng_int32 iClipl; 00505 mng_int32 iClipr; 00506 mng_int32 iClipt; 00507 mng_int32 iClipb; 00508 } mng_clip; 00509 typedef mng_clip * mng_clipp; 00510 00511 /* ************************************************************************** */ 00512 00513 typedef struct { /* SHOW */ 00514 mng_chunk_header sHeader; 00515 mng_bool bEmpty; 00516 mng_uint16 iFirstid; 00517 mng_uint16 iLastid; 00518 mng_uint8 iMode; 00519 } mng_show; 00520 typedef mng_show * mng_showp; 00521 00522 /* ************************************************************************** */ 00523 00524 typedef struct { /* TERM */ 00525 mng_chunk_header sHeader; 00526 mng_uint8 iTermaction; 00527 mng_uint8 iIteraction; 00528 mng_uint32 iDelay; 00529 mng_uint32 iItermax; 00530 } mng_term; 00531 typedef mng_term * mng_termp; 00532 00533 /* ************************************************************************** */ 00534 00535 typedef struct { /* SAVE entry */ 00536 mng_uint8 iEntrytype; 00537 mng_uint32arr2 iOffset; /* 0=MSI, 1=LSI */ 00538 mng_uint32arr2 iStarttime; /* 0=MSI, 1=LSI */ 00539 mng_uint32 iLayernr; 00540 mng_uint32 iFramenr; 00541 mng_uint32 iNamesize; 00542 mng_pchar zName; 00543 } mng_save_entry; 00544 typedef mng_save_entry * mng_save_entryp; 00545 00546 typedef struct { /* SAVE */ 00547 mng_chunk_header sHeader; 00548 mng_bool bEmpty; 00549 mng_uint8 iOffsettype; 00550 mng_uint32 iCount; 00551 mng_save_entryp pEntries; 00552 } mng_save; 00553 typedef mng_save * mng_savep; 00554 00555 /* ************************************************************************** */ 00556 00557 typedef struct { /* SEEK */ 00558 mng_chunk_header sHeader; 00559 mng_uint32 iNamesize; 00560 mng_pchar zName; 00561 } mng_seek; 00562 typedef mng_seek * mng_seekp; 00563 00564 /* ************************************************************************** */ 00565 00566 typedef struct { /* eXPI */ 00567 mng_chunk_header sHeader; 00568 mng_uint16 iSnapshotid; 00569 mng_uint32 iNamesize; 00570 mng_pchar zName; 00571 } mng_expi; 00572 typedef mng_expi * mng_expip; 00573 00574 /* ************************************************************************** */ 00575 00576 typedef struct { /* fPRI */ 00577 mng_chunk_header sHeader; 00578 mng_uint8 iDeltatype; 00579 mng_uint8 iPriority; 00580 } mng_fpri; 00581 typedef mng_fpri * mng_fprip; 00582 00583 /* ************************************************************************** */ 00584 00585 typedef struct { /* nEED */ 00586 mng_chunk_header sHeader; 00587 mng_uint32 iKeywordssize; 00588 mng_pchar zKeywords; 00589 } mng_need; 00590 typedef mng_need * mng_needp; 00591 00592 /* ************************************************************************** */ 00593 00594 typedef mng_phys mng_phyg; /* pHYg */ 00595 typedef mng_phyg * mng_phygp; 00596 00597 /* ************************************************************************** */ 00598 00599 #ifdef MNG_INCLUDE_JNG 00600 00601 typedef struct { /* JHDR */ 00602 mng_chunk_header sHeader; 00603 mng_uint32 iWidth; 00604 mng_uint32 iHeight; 00605 mng_uint8 iColortype; 00606 mng_uint8 iImagesampledepth; 00607 mng_uint8 iImagecompression; 00608 mng_uint8 iImageinterlace; 00609 mng_uint8 iAlphasampledepth; 00610 mng_uint8 iAlphacompression; 00611 mng_uint8 iAlphafilter; 00612 mng_uint8 iAlphainterlace; 00613 } mng_jhdr; 00614 typedef mng_jhdr * mng_jhdrp; 00615 00616 /* ************************************************************************** */ 00617 00618 typedef mng_idat mng_jdaa; /* JDAA */ 00619 typedef mng_jdaa * mng_jdaap; 00620 00621 /* ************************************************************************** */ 00622 00623 typedef mng_idat mng_jdat; /* JDAT */ 00624 typedef mng_jdat * mng_jdatp; 00625 00626 /* ************************************************************************** */ 00627 00628 typedef struct { /* JSEP */ 00629 mng_chunk_header sHeader; 00630 } mng_jsep; 00631 typedef mng_jsep * mng_jsepp; 00632 00633 #endif /* MNG_INCLUDE_JNG */ 00634 00635 /* ************************************************************************** */ 00636 00637 typedef struct { /* DHDR */ 00638 mng_chunk_header sHeader; 00639 mng_uint16 iObjectid; 00640 mng_uint8 iImagetype; 00641 mng_uint8 iDeltatype; 00642 mng_uint32 iBlockwidth; 00643 mng_uint32 iBlockheight; 00644 mng_uint32 iBlockx; 00645 mng_uint32 iBlocky; 00646 } mng_dhdr; 00647 typedef mng_dhdr * mng_dhdrp; 00648 00649 /* ************************************************************************** */ 00650 00651 typedef struct { /* PROM */ 00652 mng_chunk_header sHeader; 00653 mng_uint8 iColortype; 00654 mng_uint8 iSampledepth; 00655 mng_uint8 iFilltype; 00656 } mng_prom; 00657 typedef mng_prom * mng_promp; 00658 00659 /* ************************************************************************** */ 00660 00661 typedef struct { /* IPNG */ 00662 mng_chunk_header sHeader; 00663 } mng_ipng; 00664 typedef mng_ipng *mng_ipngp; 00665 00666 /* ************************************************************************** */ 00667 00668 typedef struct { /* PPLT entry */ 00669 mng_uint8 iRed; 00670 mng_uint8 iGreen; 00671 mng_uint8 iBlue; 00672 mng_uint8 iAlpha; 00673 mng_bool bUsed; 00674 } mng_pplt_entry; 00675 typedef mng_pplt_entry * mng_pplt_entryp; 00676 00677 typedef struct { /* PPLT */ 00678 mng_chunk_header sHeader; 00679 mng_uint8 iDeltatype; 00680 mng_uint32 iCount; 00681 mng_pplt_entry aEntries [256]; 00682 } mng_pplt; 00683 typedef mng_pplt * mng_ppltp; 00684 00685 /* ************************************************************************** */ 00686 00687 typedef struct { /* IJNG */ 00688 mng_chunk_header sHeader; 00689 } mng_ijng; 00690 typedef mng_ijng *mng_ijngp; 00691 00692 /* ************************************************************************** */ 00693 00694 typedef struct { /* DROP */ 00695 mng_chunk_header sHeader; 00696 mng_uint32 iCount; 00697 mng_chunkidp pChunknames; 00698 } mng_drop; 00699 typedef mng_drop * mng_dropp; 00700 00701 /* ************************************************************************** */ 00702 00703 typedef struct { /* DBYK */ 00704 mng_chunk_header sHeader; 00705 mng_chunkid iChunkname; 00706 mng_uint8 iPolarity; 00707 mng_uint32 iKeywordssize; 00708 mng_pchar zKeywords; 00709 } mng_dbyk; 00710 typedef mng_dbyk * mng_dbykp; 00711 00712 /* ************************************************************************** */ 00713 00714 typedef struct { /* ORDR entry */ 00715 mng_chunkid iChunkname; 00716 mng_uint8 iOrdertype; 00717 } mng_ordr_entry; 00718 typedef mng_ordr_entry * mng_ordr_entryp; 00719 00720 typedef struct mng_ordr_struct { /* ORDR */ 00721 mng_chunk_header sHeader; 00722 mng_uint32 iCount; 00723 mng_ordr_entryp pEntries; 00724 } mng_ordr; 00725 typedef mng_ordr * mng_ordrp; 00726 00727 /* ************************************************************************** */ 00728 00729 typedef struct { /* MAGN */ 00730 mng_chunk_header sHeader; 00731 mng_uint16 iFirstid; 00732 mng_uint16 iLastid; 00733 mng_uint16 iMethodX; 00734 mng_uint16 iMX; 00735 mng_uint16 iMY; 00736 mng_uint16 iML; 00737 mng_uint16 iMR; 00738 mng_uint16 iMT; 00739 mng_uint16 iMB; 00740 mng_uint16 iMethodY; 00741 } mng_magn; 00742 typedef mng_magn * mng_magnp; 00743 00744 /* ************************************************************************** */ 00745 00746 typedef struct { /* unknown chunk */ 00747 mng_chunk_header sHeader; 00748 mng_uint32 iDatasize; 00749 mng_ptr pData; 00750 } mng_unknown_chunk; 00751 typedef mng_unknown_chunk * mng_unknown_chunkp; 00752 00753 /* ************************************************************************** */ 00754 00755 #endif /* _libmng_chunks_h_ */ 00756 00757 /* ************************************************************************** */ 00758 /* * end of file * */ 00759 /* ************************************************************************** */