123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689 |
- //
- // Chunks.cpp
- //
- // The following functions are to assemble a string for each chunk
- // The function name "Info_????" denote which chunk it handles
- //
- // Comments marked @todo@ may, or maynot, be filled in at a later date !
- //
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #pragma hdrstop
- #include "Main.h"
- # define xUSE_UNKNOWN // remove "x" to report of "UNKNOWN" - else ""
- # define FFACTOR ((float)100000.0)
- // NB We must use Octal for RichEdit's newlines - MicroSoft love Octal !
- # define nl "\015\012"
- # define TAB asTab
- // Ps : If anyone reading this knows how to do this using token
- // pasting please let me know ! (AP)
- // ConCat newline to string
- # define NL as = as + nl
- // Integer ARGuement
- # define IARG( _str_, _int_ )\
- as = as + TAB + (_str_) + " " + String( _int_ )
- // Bool ARGuement
- # define BARG( _str_, _bool_ )\
- if( WantsBool() )\
- as = as + TAB + (_str_) + " " + ((_bool_) ? "true" : "false");\
- else\
- as = as + TAB + (_str_) + " " + IntToStr( _bool_ );
- // Float ARGuement
- # define FARG( _str_, _float_ )\
- as = as + TAB + (_str_) + " " + String( _float_ )
- // szText ARGuement
- # define ZARG( _str_, _sz_ )\
- as = as + TAB + (_str_) + " \"" + String( _sz_ ) + "\""
- // Concat general strings
- # define STR( _str_ ) as = as + _str_
- // Concat Hex string
- # define HEXSTR( _str_ ) as = as + IntToHex(_str_,2)
- // Concat Macro Identifier to ARG
- #define MI( _str_ ) as = as + TAB + _str_;
- // Concat "(" Comment ")" to ARG
- #define PCOM( _str_ )\
- if( WantsComments() ) as = as + TAB + "(" + _str_ + ")";
- // Concat "float(" Comment ")" to ARG
- #define FPCOM( _str_ )\
- if( WantsComments() ) as = as + TAB + "float(" + _str_ + ")";
- //---------------------------------------------------------------------------
- // Macro Identifiers - these, below, are used several times
- // NB those used once have local #define's and #undef's
- //---------------------------------------------------------------------------
- # ifdef USE_UNKNOWN
- # define UNKNOWN "UNKNOWN"
- # else
- # define UNKNOWN ""
- # endif
- // Does this need two to be more visible ?
- # define ILLEGAL_VALUE ">> ILLEGAL VALUE << "
- // IHDR, BASI, JHDR, PROM, sPLT
- # define MI_BITDEPTH( _i_ )\
- if( WantsMacroIds() )\
- switch( (_i_) ) {\
- case MNG_BITDEPTH_1 : MI( "MNG_BITDEPTH_1" ); break;\
- case MNG_BITDEPTH_2 : MI( "MNG_BITDEPTH_2" ); break;\
- case MNG_BITDEPTH_4 : MI( "MNG_BITDEPTH_4" ); break;\
- case MNG_BITDEPTH_8 : MI( "MNG_BITDEPTH_8" ); break;\
- case MNG_BITDEPTH_16 : MI( "MNG_BITDEPTH_16" ); break;\
- default : MI(ILLEGAL_VALUE);\
- }
- // IHDR, BASI, PROM
- # define MI_COLORTYPE( _i_ )\
- if( WantsMacroIds() )\
- switch( (_i_) ) {\
- case MNG_COLORTYPE_GRAY : MI( "MNG_COLORTYPE_GRAY" ); break;\
- case MNG_COLORTYPE_RGB : MI( "MNG_COLORTYPE_RGB" ); break;\
- case MNG_COLORTYPE_INDEXED : MI( "MNG_COLORTYPE_INDEXED" ); break;\
- case MNG_COLORTYPE_GRAYA : MI( "MNG_COLORTYPE_GRAYA" ); break;\
- case MNG_COLORTYPE_RGBA : MI( "MNG_COLORTYPE_RGBA" ); break;\
- default : MI(ILLEGAL_VALUE);\
- }
- // IHDR, zTXt, iTXt, iCCP, BASI, JHDR
- # define MI_COMPRESSION_DEFLATE( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_COMPRESSION_DEFLATE ) {\
- MI( "MNG_COMPRESSION_DEFLATE" );\
- } else {\
- MI( ILLEGAL_VALUE );\
- }\
- }
- // IHDR, BASI, JHDR
- # define MI_FILTER( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_FILTER_ADAPTIVE : MI( "MNG_FILTER_ADAPTIVE" ); break;\
- case MNG_FILTER_NO_ADAPTIVE : MI( "MNG_FILTER_NO_ADAPTIVE" ); break;\
- case MNG_FILTER_DIFFERING : MI( "MNG_FILTER_DIFFERING" ); break;\
- case MNG_FILTER_MASK : MI( "MNG_FILTER_MASK" ); break;\
- default : MI(UNKNOWN);\
- }
- //NB MNG_FILTER_NO_DIFFERING == MNG_FILTER_ADAPTIVE
- // IHDR, BASI, JHDR
- #define MI_INTERLACE( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_INTERLACE_NONE ) {\
- MI( "MNG_INTERLACE_NONE" )\
- } else if( (_i_) == MNG_INTERLACE_ADAM7 ) {\
- MI( "MNG_INTERLACE_ADAM7" );\
- } else { MI(ILLEGAL_VALUE);} \
- }
- // pHYs, pHYg
- #define MI_UNITS( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_UNIT_UNKNOWN ) {\
- MI( "MNG_UNIT_UNKNOWN" )\
- } else if( (_i_) == MNG_UNIT_METER ) {\
- MI( "MNG_UNIT_METER" );\
- } else { MI(UNKNOWN);} \
- }
- // CLON & MOVE
- #define MI_LOCATION( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_LOCATION_ABSOLUTE ) {\
- MI( "MNG_LOCATION_ABSOLUTE" )\
- } else if( (_i_) == MNG_LOCATION_RELATIVE ) {\
- MI( "MNG_LOCATION_RELATIVE" );\
- } else { MI(ILLEGAL_VALUE);} \
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_BACK( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- // NB for BACKGROUND other values are only advisory
- #define MI_BACKGROUND( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_BACKGROUNDCOLOR_MANDATORY ) {\
- MI( "MNG_BACKGROUNDCOLOR_MANDATORY" )\
- } else if( (_i_) == MNG_BACKGROUNDIMAGE_MANDATORY ) {\
- MI( "MNG_BACKGROUNDIMAGE_MANDATORY" );\
- } \
- }
- # define MI_BACKGROUND_TILE( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_BACKGROUNDIMAGE_NOTILE : MI( "MNG_BACKGROUNDIMAGE_NOTILE" ); break;\
- case MNG_BACKGROUNDIMAGE_TILE : MI( "MNG_BACKGROUNDIMAGE_TILE" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_uint16 iRed;
- mng_uint16 iGreen;
- mng_uint16 iBlue;
- mng_uint8 iMandatory;
- mng_uint16 iImageid;
- mng_uint8 iTile;
- if( mng_getchunk_back( hMNG, hChunk,
- &iRed, &iGreen, &iBlue,
- &iMandatory, &iImageid, &iTile ) != 0 )
- return false;
- IARG( "iRed", iRed );
- NL; IARG( "iGreen",iGreen );
- NL; IARG( "iBlue", iBlue );
- NL; IARG( "iMandatory", iMandatory ); MI_BACKGROUND( iMandatory );
- NL; IARG( "iImageid", iImageid );
- NL; IARG( "iTile", iTile ); MI_BACKGROUND_TILE( iTile );
- return true;
- # undef MI_BACKGROUND
- # undef MI_BACKGROUND_TILE
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_BASI( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- #define MI_VIEWABLE( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_NOTVIEWABLE ) {\
- MI( "MNG_NOTVIEWABLE" )\
- } else if( (_i_) == MNG_VIEWABLE ) {\
- MI( "MNG_VIEWABLE" );\
- } else { MI(UNKNOWN);} \
- }
- mng_uint32 iWidth;
- mng_uint32 iHeight;
- mng_uint8 iBitdepth;
- mng_uint8 iColortype;
- mng_uint8 iCompression;
- mng_uint8 iFilter;
- mng_uint8 iInterlace;
- mng_uint16 iRed;
- mng_uint16 iGreen;
- mng_uint16 iBlue;
- mng_uint16 iAlpha;
- mng_uint8 iViewable;
- if( mng_getchunk_basi( hMNG, hChunk,
- &iWidth, &iHeight, &iBitdepth, &iColortype,
- &iCompression, &iFilter, &iInterlace,
- &iRed, &iGreen, &iBlue, &iAlpha,
- &iViewable ) != 0 )
- return false;
- IARG( "iWidth", iWidth );
- NL; IARG( "iHeight", iHeight );
- NL; IARG( "iBitdepth", iBitdepth ); MI_BITDEPTH( iBitdepth );
- NL; IARG( "iColortype", iColortype ); MI_COLORTYPE( iColortype );
- NL; IARG( "iCompression", iCompression ); MI_COMPRESSION_DEFLATE( iCompression );
- NL; IARG( "iFilter", iFilter ); MI_FILTER( iFilter );
- NL; IARG( "iInterlace", iInterlace ); MI_INTERLACE( iInterlace );
- NL; IARG( "iRed", iRed );
- NL; IARG( "iGreen", iGreen );
- NL; IARG( "iBlue", iBlue );
- NL; IARG( "iAlpha", iAlpha );
- NL; IARG( "iViewable", iViewable ); MI_VIEWABLE( iViewable );
- return true;
- # undef MI_VIEWABLE
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_CLIP( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_CLIPPING( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_CLIPPING_ABSOLUTE : MI( "MNG_CLIPPING_ABSOLUTE" ); break;\
- case MNG_CLIPPING_RELATIVE : MI( "MNG_CLIPPING_RELATIVE" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_uint16 iFirstid;
- mng_uint16 iLastid;
- mng_uint8 iCliptype;
- mng_int32 iClipl;
- mng_int32 iClipr;
- mng_int32 iClipt;
- mng_int32 iClipb;
- if( mng_getchunk_clip( hMNG, hChunk,
- &iFirstid, &iLastid,
- &iCliptype, &iClipl, &iClipr, &iClipt, &iClipb ) != 0 )
- return false;
- IARG( "iFirstid", iFirstid );
- NL; IARG( "iLastid", iLastid );
- NL; IARG( "iCliptype", iCliptype ); MI_CLIPPING( iCliptype );
- NL; IARG( "iClipl", iClipl );
- NL; IARG( "iClipr", iClipr );
- NL; IARG( "iClipt", iClipt );
- NL; IARG( "iClipb", iClipb );
- return true;
- # undef MI_CLIPPING
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_CLON( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_CLONTYPE( _i_ )\
- if( WantsMacroIds() )\
- switch( (_i_) ) {\
- case MNG_FULL_CLONE : MI( "MNG_FULL_CLONE" ); break;\
- case MNG_PARTIAL_CLONE : MI( "MNG_PARTIAL_CLONE" ); break;\
- case MNG_RENUMBER : MI( "MNG_RENUMBER" ); break;\
- default : MI(UNKNOWN);\
- }
- #define MI_CLON_CONCRETE( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_CONCRETE_ASPARENT ) {\
- MI( "MNG_CONCRETE_ASPARENT" )\
- } else if( (_i_) == MNG_CONCRETE_MAKEABSTRACT ) {\
- MI( "MNG_CONCRETE_MAKEABSTRACT" );\
- } else { MI(UNKNOWN);} \
- }
- mng_uint16 iSourceid;
- mng_uint16 iCloneid;
- mng_uint8 iClonetype;
- mng_uint8 iDonotshow;
- mng_uint8 iConcrete;
- mng_bool bHasloca;
- mng_uint8 iLocationtype;
- mng_int32 iLocationx;
- mng_int32 iLocationy;
- if( mng_getchunk_clon( hMNG, hChunk,
- &iSourceid, &iCloneid, &iClonetype, &iDonotshow,
- &iConcrete, &bHasloca,
- &iLocationtype, &iLocationx, &iLocationy ) != 0 )
- return false;
- IARG( "iSourceid", iSourceid );
- NL; IARG( "iCloneid", iCloneid );
- NL; IARG( "iClonetype", iClonetype ); MI_CLONTYPE( iClonetype );
- NL; IARG( "iDonotshow", iDonotshow );
- NL; IARG( "iConcrete", iConcrete ); MI_CLON_CONCRETE( iConcrete );
- NL; BARG( "bHasloca", bHasloca );
- NL; IARG( "iLocationtype", iLocationtype ); MI_LOCATION( iLocationtype );
- NL; IARG( "iLocationx", iLocationx );
- NL; IARG( "iLocationy", iLocationy );
- return true;
- # undef MI_CLONTYPE
- # undef MI_CLON_CONCRETE
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_DBYK( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_POLARITY( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_POLARITY_ONLY : MI( "MNG_POLARITY_ONLY" ); break;\
- case MNG_POLARITY_ALLBUT : MI( "MNG_POLARITY_ALLBUT" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_chunkid iChunkname;
- mng_uint8 iPolarity;
- mng_uint32 iKeywordssize;
- mng_pchar zKeywords;
- if( mng_getchunk_dbyk( hMNG, hChunk,
- &iChunkname, &iPolarity, &iKeywordssize, &zKeywords ) != 0 )
- return false;
- IARG( "iChunkname", iChunkname ); // show chunk name ? @todo@
- NL; IARG( "iPolarity", iPolarity ); MI_POLARITY( iPolarity );
- NL; IARG( "iKeywordssize", iKeywordssize );
- NL; ZARG( "zKeywords", zKeywords );
- return true;
- # undef MI_POLARITY
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_DEFI( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- #define MI_DONOTSHOW( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_DONOTSHOW_VISIBLE ) {\
- MI( "MNG_DONOTSHOW_VISIBLE" )\
- } else if( (_i_) == MNG_DONOTSHOW_NOTVISIBLE ) {\
- MI( "MNG_DONOTSHOW_NOTVISIBLE" );\
- }\
- }
- #define MI_DEFI_CONCRETE( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_ABSTRACT ) {\
- MI( "MNG_ABSTRACT" )\
- } else if( (_i_) == MNG_CONCRETE ) {\
- MI( "MNG_CONCRETE" );\
- }\
- }
- mng_uint16 iObjectid;
- mng_uint8 iDonotshow;
- mng_uint8 iConcrete;
- mng_bool bHasloca;
- mng_int32 iXlocation;
- mng_int32 iYlocation;
- mng_bool bHasclip;
- mng_int32 iLeftcb;
- mng_int32 iRightcb;
- mng_int32 iTopcb;
- mng_int32 iBottomcb;
- if( mng_getchunk_defi( hMNG, hChunk,
- &iObjectid, &iDonotshow, &iConcrete,
- &bHasloca, &iXlocation, &iYlocation,
- &bHasclip, &iLeftcb, &iRightcb, &iTopcb, &iBottomcb ) != 0 )
- return false;
- IARG( "iObjectid", iObjectid );
- NL; IARG( "iDonotshow", iDonotshow ); MI_DONOTSHOW( iDonotshow );
- NL; IARG( "iConcrete", iConcrete ); MI_DEFI_CONCRETE( iConcrete );
- NL; BARG( "bHasloca", bHasloca );
- NL; IARG( "iXlocation", iXlocation );
- NL; IARG( "iYlocation", iYlocation );
- NL; BARG( "bHasclip", bHasclip );
- NL; IARG( "iLeftcb", iLeftcb );
- NL; IARG( "iRightcb", iRightcb );
- NL; IARG( "iTopcb", iTopcb );
- NL; IARG( "iBottomcb", iBottomcb );
- return true;
- # undef MI_DONOTSHOW
- # undef MI_DEFI_CONCRETE
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_DHDR( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_IMAGETYPE( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_IMAGETYPE_UNKNOWN : MI( "MNG_IMAGETYPE_UNKNOWN" ); break;\
- case MNG_IMAGETYPE_PNG : MI( "MNG_IMAGETYPE_PNG" ); break;\
- case MNG_IMAGETYPE_JNG : MI( "MNG_IMAGETYPE_JNG" ); break;\
- default : MI(UNKNOWN);\
- }
- # define MI_DELTATYPE( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_DELTATYPE_REPLACE : MI( "MNG_DELTATYPE_REPLACE" ); break;\
- case MNG_DELTATYPE_BLOCKPIXELADD : MI( "MNG_DELTATYPE_BLOCKPIXELADD" ); break;\
- case MNG_DELTATYPE_BLOCKALPHAADD : MI( "MNG_DELTATYPE_BLOCKALPHAADD" ); break;\
- case MNG_DELTATYPE_BLOCKCOLORADD : MI( "MNG_DELTATYPE_BLOCKCOLORADD" ); break;\
- case MNG_DELTATYPE_BLOCKPIXELREPLACE : MI( "MNG_DELTATYPE_BLOCKPIXELREPLACE" ); break;\
- case MNG_DELTATYPE_BLOCKALPHAREPLACE : MI( "MNG_DELTATYPE_BLOCKALPHAREPLACE" ); break;\
- case MNG_DELTATYPE_BLOCKCOLORREPLACE : MI( "MNG_DELTATYPE_BLOCKCOLORREPLACE" ); break;\
- case MNG_DELTATYPE_NOCHANGE : MI( "MNG_DELTATYPE_NOCHANGE" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_uint16 iObjectid;
- mng_uint8 iImagetype;
- mng_uint8 iDeltatype;
- mng_uint32 iBlockwidth;
- mng_uint32 iBlockheight;
- mng_uint32 iBlockx;
- mng_uint32 iBlocky;
- if( mng_getchunk_dhdr( hMNG, hChunk,
- &iObjectid, &iImagetype, &iDeltatype,
- &iBlockwidth, &iBlockheight, &iBlockx, &iBlocky ) != 0 )
- return false;
- IARG( "iObjectid", iObjectid );
- NL; IARG( "iImagetype", iImagetype ); MI_IMAGETYPE( iImagetype );
- NL; IARG( "iDeltatype", iDeltatype ); MI_DELTATYPE( iDeltatype );
- NL; IARG( "iBlockwidth", iBlockwidth );
- NL; IARG( "iBlockheight", iBlockheight );
- NL; IARG( "iBlockx", iBlockx );
- NL; IARG( "iBlocky", iBlocky );
- return true;
- # undef MI_IMAGETYPE
- # undef MI_DELTATYPE
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_DISC( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iCount;
- mng_uint16p pObjectids;
- if( mng_getchunk_disc( hMNG, hChunk, &iCount, &pObjectids ) != 0 )
- return false;
- IARG( "iCount", iCount );
- //pObjectids pObjectids
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_DROP( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iCount;
- mng_chunkidp pChunknames;
- if( mng_getchunk_drop( hMNG, hChunk, &iCount, &pChunknames ) != 0 )
- return false;
- IARG( "iCount", iCount );
- // pChunknamesp Chunknames // Iterate chunk names ? @todo@
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_ENDL( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint8 iLevel;
- if( mng_getchunk_endl( hMNG, hChunk, &iLevel ) != 0 )
- return false;
- IARG( "iLevel", iLevel );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_FRAM( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_BOUNDARY( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_BOUNDARY_ABSOLUTE : MI( "MNG_BOUNDARY_ABSOLUTE" ); break;\
- case MNG_BOUNDARY_RELATIVE : MI( "MNG_BOUNDARY_RELATIVE" ); break;\
- default : MI(UNKNOWN);\
- }
- # define MI_FRAMINGMODE( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_FRAMINGMODE_NOCHANGE : MI( "MNG_FRAMINGMODE_NOCHANGE" ); break;\
- case MNG_FRAMINGMODE_1 : MI( "MNG_FRAMINGMODE_1" ); break;\
- case MNG_FRAMINGMODE_2 : MI( "MNG_FRAMINGMODE_2" ); break;\
- case MNG_FRAMINGMODE_3 : MI( "MNG_FRAMINGMODE_3" ); break;\
- case MNG_FRAMINGMODE_4 : MI( "MNG_FRAMINGMODE_4" ); break;\
- default : MI(UNKNOWN);\
- }
- # define MI_CHANGEDELAY( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_CHANGEDELAY_NO : MI( "MNG_CHANGEDELAY_NO" ); break;\
- case MNG_CHANGEDELAY_NEXTSUBFRAME : MI( "MNG_CHANGEDELAY_NEXTSUBFRAME" ); break;\
- case MNG_CHANGEDELAY_DEFAULT : MI( "MNG_CHANGEDELAY_DEFAULT" ); break;\
- default : MI(UNKNOWN);\
- }
- # define MI_CHANGETIMOUT( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_CHANGETIMOUT_NO : MI( "MNG_CHANGETIMOUT_NO" ); break;\
- case MNG_CHANGETIMOUT_DETERMINISTIC_1 : MI( "MNG_CHANGETIMOUT_DETERMINISTIC_1" ); break;\
- case MNG_CHANGETIMOUT_DETERMINISTIC_2 : MI( "MNG_CHANGETIMOUT_DETERMINISTIC_2" ); break;\
- case MNG_CHANGETIMOUT_DECODER_1 : MI( "MNG_CHANGETIMOUT_DECODER_1" ); break;\
- case MNG_CHANGETIMOUT_DECODER_2 : MI( "MNG_CHANGETIMOUT_DECODER_2" ); break;\
- case MNG_CHANGETIMOUT_USER_1 : MI( "MNG_CHANGETIMOUT_USER_1" ); break;\
- case MNG_CHANGETIMOUT_USER_2 : MI( "MNG_CHANGETIMOUT_USER_2" ); break;\
- case MNG_CHANGETIMOUT_EXTERNAL_1 : MI( "MNG_CHANGETIMOUT_EXTERNAL_1" ); break;\
- case MNG_CHANGETIMOUT_EXTERNAL_2 : MI( " MNG_CHANGETIMOUT_EXTERNAL_2" ); break;\
- default : MI(UNKNOWN);\
- }
- # define MI_CHANGECLIPPING( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_CHANGECLIPPING_NO : MI( "MNG_CHANGECLIPPING_NO" ); break;\
- case MNG_CHANGECLIPPING_NEXTSUBFRAME : MI( "MNG_CHANGECLIPPING_NEXTSUBFRAME" ); break;\
- case MNG_CHANGECLIPPING_DEFAULT : MI( "MNG_CHANGECLIPPING_DEFAULT" ); break;\
- default : MI(UNKNOWN);\
- }
- # define MI_CHANGESYNCID( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_CHANGESYNCID_NO : MI( "MNG_CHANGESYNCID_NO" ); break;\
- case MNG_CHANGESYNCID_NEXTSUBFRAME : MI( "MNG_CHANGESYNCID_NEXTSUBFRAME" ); break;\
- case MNG_CHANGESYNCID_DEFAULT : MI( "MNG_CHANGESYNCID_DEFAULT" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_bool bEmpty;
- mng_uint8 iMode;
- mng_uint32 iNamesize;
- mng_pchar zName;
- mng_uint8 iChangedelay;
- mng_uint8 iChangetimeout;
- mng_uint8 iChangeclipping;
- mng_uint8 iChangesyncid;
- mng_uint32 iDelay;
- mng_uint32 iTimeout;
- mng_uint8 iBoundarytype;
- mng_int32 iBoundaryl;
- mng_int32 iBoundaryr;
- mng_int32 iBoundaryt;
- mng_int32 iBoundaryb;
- mng_uint32 iCount;
- mng_uint32p pSyncids;
- if( mng_getchunk_fram( hMNG, hChunk,
- &bEmpty, &iMode, &iNamesize, &zName,
- &iChangedelay, &iChangetimeout, &iChangeclipping, &iChangesyncid,
- &iDelay, &iTimeout,
- &iBoundarytype, &iBoundaryl, &iBoundaryr,&iBoundaryt, &iBoundaryb,
- &iCount, &pSyncids ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iMode", iMode ); MI_FRAMINGMODE( iMode );
- NL; IARG( "iNamesize", iNamesize );
- NL; ZARG( "zName", zName );
- NL; IARG( "iChangedelay", iChangedelay ); MI_CHANGEDELAY( iChangedelay );
- NL; IARG( "iChangetimeout", iChangetimeout ); MI_CHANGETIMOUT( iChangetimeout );
- NL; IARG( "iChangeclipping", iChangeclipping ); MI_CHANGECLIPPING( iChangeclipping );
- NL; IARG( "iChangesyncid", iChangesyncid ); MI_CHANGESYNCID( iChangesyncid );
- NL; IARG( "iDelay", iDelay );
- NL; IARG( "iTimeout", iTimeout );
- NL; IARG( "iBoundarytype", iBoundarytype ); MI_BOUNDARY( iBoundarytype );
- NL; IARG( "iBoundaryl", iBoundaryl );
- NL; IARG( "iBoundaryr", iBoundaryr );
- NL; IARG( "iBoundaryt", iBoundaryt );
- NL; IARG( "iBoundaryb", iBoundaryb );
- NL; IARG( "iCount", iCount );
- //pSyncids pSyncids @todo@
- return true;
- # undef MI_BOUNDARY
- # undef MI_FRAMINGMODE
- # undef MI_CHANGEDELAY
- # undef MI_CHANGETIMOUT
- # undef MI_CHANGECLIPPING
- # undef MI_CHANGESYNCID
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_IDAT( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iRawlen;
- mng_ptr pRawdata;
- if( mng_getchunk_idat( hMNG, hChunk, &iRawlen, &pRawdata ) != 0 )
- return false;
- IARG( "iRawlen", iRawlen );
- if( WantsRawData() ) {
- Byte *bp = (Byte*)pRawdata;
- NL; STR( TAB + "Rawdata : " );
- // show the first 16 bytes, as hex
- for( int n = 0; n < 16; n +=1 )
- HEXSTR( (int)bp[n] ) + " ";
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_IEND( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- NL + TAB; STR( "End of Image." );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_IHDR(
- mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iWidth;
- mng_uint32 iHeight;
- mng_uint8 iBitdepth;
- mng_uint8 iColortype;
- mng_uint8 iCompression;
- mng_uint8 iFilter;
- mng_uint8 iInterlace;
- if( mng_getchunk_ihdr( hMNG, hChunk, &iWidth, &iHeight, &iBitdepth,
- &iColortype, &iCompression, &iFilter, &iInterlace ) != 0 )
- return false;
- IARG( "iWidth", iWidth );
- NL; IARG( "iHeight", iHeight );
- NL; IARG( "iBitdepth", iBitdepth ); MI_BITDEPTH( iBitdepth );
- NL; IARG( "iColortype", iColortype ); MI_COLORTYPE( iColortype );
- NL; IARG( "iCompression", iCompression ); MI_COMPRESSION_DEFLATE( iCompression );
- NL; IARG( "iFilter", iFilter ); MI_FILTER( iFilter );
- NL; IARG( "iInterlace", iInterlace ); MI_INTERLACE( iInterlace );
- if( WantsComments() )
- {
- NL; NL + TAB;
- switch( iColortype ) {
- case MNG_COLORTYPE_GRAY :
- switch( iBitdepth ) {
- case 1 : case 2 : case 4 : case 8 : case 16 :
- STR( "Each pixel value is a greyscale level -" );
- } // inner switch
- break;
- case MNG_COLORTYPE_RGB :
- switch( iBitdepth ) {
- case 8 : case 16 :
- STR( "Each pixel value is an R,G,B series -" );
- } // inner switch
- break;
- case MNG_COLORTYPE_INDEXED :
- switch( iBitdepth ) {
- case 1 : case 2 : case 4 : case 8 :
- STR( "Each pixel value is a palette index -" );
- } // inner switch
- break;
- case MNG_COLORTYPE_GRAYA :
- switch( iBitdepth ) {
- case 8 : case 16 :
- STR( "Each pixel value is a greyscale level, "\
- "followed by an Alpha channel level -" );
- } // inner switch
- break;
- case MNG_COLORTYPE_RGBA :
- switch( iBitdepth ){
- case 8 : case 16:
- STR( "Each pixel value is an R,G,B "\
- "series, followed by an Alpha channel level -" );
- } // inner switch
- break;
- }
- STR( " " + String(iBitdepth) + " bits per pixel." );
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_JDAT( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iRawlen;
- mng_ptr pRawdata = NULL;
- if( mng_getchunk_jdat( hMNG, hChunk, &iRawlen, &pRawdata ) != 0 )
- return false;
- IARG( "iRawlen", iRawlen );
- if( WantsRawData() ) {
- Byte *bp = (Byte*)pRawdata;
- NL; STR( TAB + "Rawdata : " );
- // show the first 16 bytes, as hex
- for( int n = 0; n < 16; n +=1 )
- HEXSTR( (int)bp[n] ) + " ";
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_JHDR( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_JPEG_COLORTYPE( _i_ )\
- if( WantsMacroIds() ) {\
- switch( _i_ ){\
- case MNG_COLORTYPE_JPEGGRAY : MI( "MNG_COLORTYPE_JPEGGRAY");break;\
- case MNG_COLORTYPE_JPEGCOLOR : MI( "MNG_COLORTYPE_JPEGCOLOR");break;\
- case MNG_COLORTYPE_JPEGGRAYA : MI( "MNG_COLORTYPE_JPEGGRAYA");break;\
- case MNG_COLORTYPE_JPEGCOLORA : MI( "MNG_COLORTYPE_JPEGCOLORA");break;\
- default : MI(UNKNOWN);\
- }\
- }
- # define MI_JPEG_BITDEPTH( _i_ )\
- if( WantsMacroIds() ) {\
- switch( _i_ ){\
- case MNG_BITDEPTH_JPEG8 : MI("MNG_BITDEPTH_JPEG8");break;\
- case MNG_BITDEPTH_JPEG12 : MI("MNG_BITDEPTH_JPEG12");break;\
- case MNG_BITDEPTH_JPEG8AND12 : MI("MNG_BITDEPTH_JPEG8AND12");break;\
- default : MI(UNKNOWN);\
- }\
- }
- # define MI_JPEGCOMPRESSION( _i_ )\
- if( WantsMacroIds() ) {\
- if( iImagecompression == MNG_COMPRESSION_BASELINEJPEG ) {\
- MI( "MNG_COMPRESSION_BASELINEJPEG" );\
- } else { MI(ILLEGAL_VALUE); };\
- }
- # define MI_JPEGINTERLACE( _i_ )\
- if( WantsMacroIds() ) {\
- if( iImageinterlace == MNG_INTERLACE_SEQUENTIAL ) {\
- MI( "MNG_INTERLACE_SEQUENTIAL");\
- } else {\
- MI( "MNG_INTERLACE_PROGRESSIVE" );\
- }\
- }
- // NB alpha bitdepth is not png bitdepth because it can be 0 (zero)
- # define MI_ALPHABITDEPTH( _i_ )\
- if( WantsMacroIds() )\
- switch( (_i_) ) {\
- case MNG_BITDEPTH_1 : MI( "MNG_BITDEPTH_1" ); break;\
- case MNG_BITDEPTH_2 : MI( "MNG_BITDEPTH_2" ); break;\
- case MNG_BITDEPTH_4 : MI( "MNG_BITDEPTH_4" ); break;\
- case MNG_BITDEPTH_8 : MI( "MNG_BITDEPTH_8" ); break;\
- case MNG_BITDEPTH_16 : MI( "MNG_BITDEPTH_16" ); break;\
- case 0 : break;\
- default : MI(ILLEGAL_VALUE);\
- }
- mng_uint32 iWidth;
- mng_uint32 iHeight;
- mng_uint8 iColortype;
- mng_uint8 iImagesampledepth;
- mng_uint8 iImagecompression;
- mng_uint8 iImageinterlace;
- mng_uint8 iAlphasampledepth;
- mng_uint8 iAlphacompression;
- mng_uint8 iAlphafilter;
- mng_uint8 iAlphainterlace;
- if( mng_getchunk_jhdr( hMNG, hChunk,
- &iWidth, &iHeight, &iColortype, &iImagesampledepth,
- &iImagecompression, &iImageinterlace,
- &iAlphasampledepth, &iAlphacompression,
- &iAlphafilter, &iAlphainterlace ) != 0 )
- return false;
- IARG( "iWidth", iWidth );
- NL; IARG( "iHeight", iHeight );
- NL; IARG( "iColortype", iColortype ); MI_JPEG_COLORTYPE( iColortype );
- NL; IARG( "iImagesampledepth", iImagesampledepth ); MI_JPEG_BITDEPTH( iImagesampledepth );
- NL; IARG( "iImagecompression", iImagecompression ); MI_JPEGCOMPRESSION( iImagecompression );
- NL; IARG( "iImageinterlace", iImageinterlace ); MI_JPEGINTERLACE( iImageinterlace );
- NL; IARG( "iAlphasampledepth", iAlphasampledepth ); MI_ALPHABITDEPTH( iAlphasampledepth );
- NL; IARG( "iAlphacompression", iAlphacompression ); MI_COMPRESSION_DEFLATE( iAlphacompression );
- NL; IARG( "iAlphafilter", iAlphafilter ); MI_FILTER( iAlphafilter );
- NL; IARG( "iAlphainterlace", iAlphainterlace ); MI_INTERLACE( iAlphainterlace );
- return true;
- # undef MI_JPEG_COLORTYPE
- # undef MI_JPEG_BITDEPTH
- # undef MI_JPEGCOMPRESSION
- # undef MI_JPEGINTERLACE
- # undef MI_ALPHABITDEPTH
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_LOOP( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_TERMINATION( _i_ )\
- if( WantsMacroIds() )\
- switch( (_i_) ) {\
- case MNG_TERMINATION_DECODER_NC :\
- MI( "MNG_TERMINATION_DECODER_NC" ); break;\
- case MNG_TERMINATION_USER_NC :\
- MI( "MNG_TERMINATION_USER_NC" ); break;\
- case MNG_TERMINATION_EXTERNAL_NC :\
- MI( "MNG_TERMINATION_EXTERNAL_NC" ); break;\
- case MNG_TERMINATION_DETERMINISTIC_NC :\
- MI( "MNG_TERMINATION_DETERMINISTIC_NC" ); break;\
- case MNG_TERMINATION_DECODER_C :\
- MI( "MNG_TERMINATION_DECODER_C" ); break;\
- case MNG_TERMINATION_USER_C :\
- MI( "MNG_TERMINATION_USER_C" ); break;\
- case MNG_TERMINATION_EXTERNAL_C :\
- MI( "MNG_TERMINATION_EXTERNAL_C" ); break;\
- case MNG_TERMINATION_DETERMINISTIC_C :\
- MI( "MNG_TERMINATION_DETERMINISTIC_C" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_uint8 iLevel;
- mng_uint32 iRepeat;
- mng_uint8 iTermination;
- mng_uint32 iItermin;
- mng_uint32 iItermax;
- mng_uint32 iCount;
- mng_uint32p pSignals;
- if( mng_getchunk_loop( hMNG, hChunk,
- &iLevel, &iRepeat, &iTermination,
- &iItermin, &iItermax, &iCount, &pSignals ) != 0 )
- return false;
- IARG( "iLevel", iLevel );
- NL; IARG( "iRepeat", iRepeat );
- NL; IARG( "iTermination", iTermination ); MI_TERMINATION( iTermination );
- NL; IARG( "iItermin", iItermin );
- NL; IARG( "iItermax", iItermax );
- NL; IARG( "iCount", iCount );
- //pSignals pSignals //@todo@
- return true;
- # undef MI_TERMINATION
- }
- //---------------------------------------------------------------------------
- /*
- bool __fastcall TMainForm::Info_M?GN( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint16 iFirstid;
- mng_uint16 iLastid;
- mng_uint16 iMethodX;
- mng_uint16 iMX;
- mng_uint16 iMY;
- mng_uint16 iML;
- mng_uint16 iMR;
- mng_uint16 iMT;
- mng_uint16 iMB;
- mng_uint16 iMethodY;
- if( mng_getchunk_magn( hMNG, hChunk,
- &iFirstid, &iLastid,
- &iMethodX, &iMX, &iMY, &iML, &iMR, &iMT, &iMB,
- &iMethodY ) != 0 )
- return false;
- IARG( "iFirstid", iFirstid );
- NL; IARG( "iLastid", iLastid );
- NL; IARG( "iMethodX", iMethodX );
- NL; IARG( "iMX", iMX );
- NL; IARG( "iMY", iMY );
- NL; IARG( "iML", iML );
- NL; IARG( "iMR", iMR );
- NL; IARG( "iMT", iMT );
- NL; IARG( "iMB", iMB );
- NL; IARG( "iMethodY", iMethodY );
- return true;
- }
- */
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_MEND( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- NL + TAB; STR( "End of Multiply Network Graphic." );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_MHDR( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- // NB "iSimplicity" is a bit field
- # define MI_SIMPLICITY( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) & MNG_SIMPLICITY_VALID )\
- MI( "MNG_SIMPLICITY_VALID" );\
- if( (_i_) & MNG_SIMPLICITY_SIMPLEFEATURES )\
- MI( "MNG_SIMPLICITY_SIMPLEFEATURES" );\
- if( (_i_) & MNG_SIMPLICITY_COMPLEXFEATURES )\
- MI( "MNG_SIMPLICITY_COMPLEXFEATURES" );\
- if( (_i_) & MNG_SIMPLICITY_TRANSPARENCY )\
- MI( "MNG_SIMPLICITY_TRANSPARENCY" );\
- if( (_i_) & MNG_SIMPLICITY_JNG )\
- MI( "MNG_SIMPLICITY_JNG" );\
- if( (_i_) & MNG_SIMPLICITY_DELTAPNG )\
- MI( "MNG_SIMPLICITY_DELTAPNG" );\
- }
- mng_uint32 iWidth;
- mng_uint32 iHeight;
- mng_uint32 iTicks;
- mng_uint32 iLayercount;
- mng_uint32 iFramecount;
- mng_uint32 iPlaytime;
- mng_uint32 iSimplicity;
- if( mng_getchunk_mhdr( hMNG, hChunk,
- &iWidth, &iHeight, &iTicks,
- &iLayercount, &iFramecount, &iPlaytime,
- &iSimplicity ) != 0 )
- return false;
- IARG( "iWidth", iWidth );
- NL; IARG( "iHeight", iHeight );
- NL; IARG( "iTicks", iTicks );
- NL; IARG( "iLayercount", iLayercount );
- NL; IARG( "iFramecount", iFramecount );
- NL; IARG( "iPlaytime", iPlaytime );
- NL; IARG( "iSimplicity", iSimplicity ); MI_SIMPLICITY( iSimplicity );
- return true;
- # undef MI_SIMPLICITY
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_MOVE( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint16 iFirstid;
- mng_uint16 iLastid;
- mng_uint8 iMovetype;
- mng_int32 iMovex;
- mng_int32 iMovey;
- if( mng_getchunk_move( hMNG, hChunk,
- &iFirstid, &iLastid, &iMovetype, &iMovex, &iMovey ) != 0 )
- return false;
- IARG( "iFirstid", iFirstid );
- NL; IARG( "iLastid", iLastid );
- NL; IARG( "iMovetype", iMovetype ); MI_LOCATION( iMovetype );
- NL; IARG( "iMovex", iMovex );
- NL; IARG( "iMovey", iMovey );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_ORDR( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iCount;
- if( mng_getchunk_ordr( hMNG, hChunk, &iCount ) != 0 )
- return false;
- IARG( "iCount", iCount );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_PAST( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- // PAST
- # define MI_TARGET( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_TARGET_ABSOLUTE : MI( "MNG_TARGET_ABSOLUTE" ); break;\
- case MNG_TARGET_RELATIVE_SAMEPAST : MI( "MNG_TARGET_RELATIVE_SAMEPAST" ); break;\
- case MNG_TARGET_RELATIVE_PREVPAST : MI( "MNG_TARGET_RELATIVE_PREVPAST" ); break;\
- default : MI(UNKNOWN);\
- }
- // COMPOSITE, ORIENTATION, OFFSET & BOUNDARY depend upon "iCount"
- mng_uint16 iDestid;
- mng_uint8 iTargettype;
- mng_int32 iTargetx;
- mng_int32 iTargety;
- mng_uint32 iCount;
- if( mng_getchunk_past( hMNG, hChunk,
- &iDestid, &iTargettype, &iTargetx, &iTargety, &iCount ) != 0 )
- return false;
- IARG( "iDestid", iDestid );
- NL; IARG( "iTargettype", iTargettype ); MI_TARGET( iTargettype );
- NL; IARG( "iTargetx", iTargetx );
- NL; IARG( "iTargety", iTargety );
- NL; IARG( "iCount", iCount );
- return true;
- # undef MI_TARGET
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_PLTE( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iCount;
- mng_palette8 aPalette;
- mng_uint32 iPalEntry;
- if( mng_getchunk_plte( hMNG, hChunk, &iCount, &aPalette ) != 0 )
- return false;
- IARG( "iCount", iCount );
- if( WantsPaletteEntries() )
- {
- iPalEntry = 0;
- do{
- if( WantsRgbOrder() )
- {
- as = as + nl +
- TAB + "Palette entry [" + PadInt( iPalEntry ) + "]" +
- TAB + "R(" + PadInt( aPalette[ iPalEntry ].iRed ) + ") " +
- TAB + "G(" + PadInt( aPalette[ iPalEntry ].iGreen ) + ") " +
- TAB + "B(" + PadInt( aPalette[ iPalEntry ].iBlue ) + ")";
- }
- else
- {
- as = as + nl +
- TAB + "Palette entry [" + PadInt( iPalEntry ) + "]" +
- TAB + "B(" + PadInt( aPalette[ iPalEntry ].iBlue ) + ") " +
- TAB + "G(" + PadInt( aPalette[ iPalEntry ].iGreen ) + ") " +
- TAB + "R(" + PadInt( aPalette[ iPalEntry ].iRed ) + ")";
- };
- iPalEntry += 1;
- } while( iPalEntry < iCount );
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_PPLT( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- /*
- # define MI_DELTATYPE( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_DELTATYPE_REPLACERGB : MI( "MNG_DELTATYPE_REPLACERGB" ); break;\
- case MNG_DELTATYPE_DELTARGB : MI( "MNG_DELTATYPE_DELTARGB" ); break;\
- case MNG_DELTATYPE_REPLACEALPHA : MI( "MNG_DELTATYPE_REPLACEALPHA" ); break;\
- case MNG_DELTATYPE_DELTAALPHA : MI( "MNG_DELTATYPE_DELTAALPHA" ); break;\
- case MNG_DELTATYPE_REPLACERGBA : MI( "MNG_DELTATYPE_REPLACERGBA" ); break;\
- case MNG_DELTATYPE_DELTARGBA : MI( "MNG_DELTATYPE_DELTARGBA" ); break;\
- default : MI(UNKNOWN);\
- }
- */
- mng_uint32 iCount;
- if( mng_getchunk_pplt( hMNG, hChunk, &iCount ) != 0 )
- return false;
- IARG( "iCount", iCount );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_PROM( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_FILLMETHOD( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_FILLMETHOD_LEFTBITREPLICATE : MI( "MNG_FILLMETHOD_LEFTBITREPLICATE" ); break;\
- case MNG_FILLMETHOD_ZEROFILL : MI( "MNG_FILLMETHOD_ZEROFILL" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_uint8 iColortype;
- mng_uint8 iSampledepth;
- mng_uint8 iFilltype;
- if( mng_getchunk_prom( hMNG, hChunk,
- &iColortype, &iSampledepth, &iFilltype ) != 0 )
- return false;
- IARG( "iColortype", iColortype ); MI_COLORTYPE( iColortype );
- NL; IARG( "iSampledepth", iSampledepth ); MI_BITDEPTH( iSampledepth );
- NL; IARG( "iFilltype", iFilltype ); MI_FILLMETHOD( iFilltype );
- return true;
- # undef MI_FILLMETHOD
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_SAVE( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_SAVEOFFSET( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_SAVEOFFSET_4BYTE : MI( "MNG_SAVEOFFSET_4BYTE" ); break;\
- case MNG_SAVEOFFSET_8BYTE : MI( "MNG_SAVEOFFSET_8BYTE" ); break;\
- default : MI(UNKNOWN);\
- }
- /*
- # define MI_SAVEENTRY( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_SAVEENTRY_SEGMENTFULL : MI( "MNG_SAVEENTRY_SEGMENTFULL" ); break;\
- case MNG_SAVEENTRY_SEGMENT : MI( "MNG_SAVEENTRY_SEGMENT" ); break;\
- case MNG_SAVEENTRY_SUBFRAME : MI( "MNG_SAVEENTRY_SUBFRAME" ); break;\
- case MNG_SAVEENTRY_EXPORTEDIMAGE : MI( "MNG_SAVEENTRY_EXPORTEDIMAGE" ); break;\
- default : MI(UNKNOWN);\
- }
- */
- mng_bool bEmpty;
- mng_uint8 iOffsettype;
- mng_uint32 iCount;
- if( mng_getchunk_save( hMNG, hChunk,
- &bEmpty, &iOffsettype, &iCount ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iOffsettype", iOffsettype ); MI_SAVEOFFSET( iOffsettype );
- NL; IARG( "iCount", iCount );
- return true;
- # undef MI_SAVEOFFSET
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_SEEK( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iNamesize;
- mng_pchar zName;
- if( mng_getchunk_seek( hMNG, hChunk, &iNamesize, &zName ) != 0 )
- return false;
- IARG( "iNamesize", iNamesize );
- NL; ZARG( "zName", zName );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_SHOW( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_SHOWMODE( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_SHOWMODE_0 : MI( "MNG_SHOWMODE_0" ); break;\
- case MNG_SHOWMODE_1 : MI( "MNG_SHOWMODE_1" ); break;\
- case MNG_SHOWMODE_2 : MI( "MNG_SHOWMODE_2" ); break;\
- case MNG_SHOWMODE_3 : MI( "MNG_SHOWMODE_3" ); break;\
- case MNG_SHOWMODE_4 : MI( "MNG_SHOWMODE_4" ); break;\
- case MNG_SHOWMODE_5 : MI( "MNG_SHOWMODE_5" ); break;\
- case MNG_SHOWMODE_6 : MI( "MNG_SHOWMODE_6" ); break;\
- case MNG_SHOWMODE_7 : MI( "MNG_SHOWMODE_7" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_bool bEmpty;
- mng_uint16 iFirstid;
- mng_uint16 iLastid;
- mng_uint8 iMode;
- if( mng_getchunk_show( hMNG, hChunk,
- &bEmpty, &iFirstid, &iLastid, &iMode ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iFirstid", iFirstid );
- NL; IARG( "iLastid", iLastid );
- NL; IARG( "iMode", iMode ); MI_SHOWMODE( iMode );
- return true;
- # undef MI_SHOWMODE
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_TERM( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_TERMACTION( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_TERMACTION_LASTFRAME : MI( "MNG_TERMACTION_LASTFRAME" ); break;\
- case MNG_TERMACTION_CLEAR : MI( "MNG_TERMACTION_CLEAR" ); break;\
- case MNG_TERMACTION_FIRSTFRAME : MI( "MNG_TERMACTION_FIRSTFRAME" ); break;\
- case MNG_TERMACTION_REPEAT : MI( "MNG_TERMACTION_REPEAT" ); break;\
- default : MI(UNKNOWN);\
- }
- # define MI_ITERACTION( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_ITERACTION_LASTFRAME : MI( "MNG_ITERACTION_LASTFRAME" ); break;\
- case MNG_ITERACTION_CLEAR : MI( "MNG_ITERACTION_CLEAR" ); break;\
- case MNG_ITERACTION_FIRSTFRAME : MI( "MNG_ITERACTION_FIRSTFRAME" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_uint8 iTermaction;
- mng_uint8 iIteraction;
- mng_uint32 iDelay;
- mng_uint32 iItermax;
- if( mng_getchunk_term( hMNG, hChunk,
- &iTermaction, &iIteraction, &iDelay, &iItermax ) != 0 )
- return false;
- IARG( "iTermaction", iTermaction ); MI_TERMACTION( iTermaction );
- NL; IARG( "iIteraction", iIteraction ); MI_ITERACTION( iIteraction );
- NL; IARG( "iDelay", iDelay );
- NL; IARG( "iItermax", iItermax );
- return true;
- # undef MI_TERMACTION
- # undef MI_ITERACTION
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_bKGD( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_bool bEmpty;
- mng_uint8 iType;
- mng_uint8 iIndex;
- mng_uint16 iGray;
- mng_uint16 iRed;
- mng_uint16 iGreen;
- mng_uint16 iBlue;
- if( mng_getchunk_bkgd( hMNG, hChunk,
- &bEmpty, &iType, &iIndex, &iGray,
- &iRed, &iGreen, &iBlue ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iType", iType );
- NL; IARG( "iIndex", iIndex );
- NL; IARG( "iGray", iGray );
- NL; IARG( "iRed", iRed );
- NL; IARG( "iGreen", iGreen );
- NL; IARG( "iBlue", iBlue );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_cHRM( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_bool bEmpty;
- mng_uint32 iWhitepointx;
- mng_uint32 iWhitepointy;
- mng_uint32 iRedx;
- mng_uint32 iRedy;
- mng_uint32 iGreenx;
- mng_uint32 iGreeny;
- mng_uint32 iBluex;
- mng_uint32 iBluey;
- if( mng_getchunk_chrm( hMNG, hChunk,
- &bEmpty, &iWhitepointx, &iWhitepointy,
- &iRedx, &iRedy,
- &iGreenx,&iGreeny,
- &iBluex, &iBluey ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; FARG( "iWhitepointx", iWhitepointx );
- FPCOM( String( (float)(iWhitepointx /FFACTOR) ) );
- NL; FARG( "iWhitepointy", iWhitepointy );
- FPCOM( String( (float)(iWhitepointy /FFACTOR) ) );
- NL; FARG( "iRedx", iRedx );
- FPCOM( String( (float)(iRedx /FFACTOR) ) );
- NL; FARG( "iRedy", iRedy );
- FPCOM( String( (float)(iRedy /FFACTOR) ) );
- NL; FARG( "iGreenx", iGreenx );
- FPCOM( String( (float)(iGreenx /FFACTOR) ) );
- NL; FARG( "iGreeny", iGreeny );
- FPCOM( String( (float)(iGreeny /FFACTOR) ) );
- NL; FARG( "iBluex", iBluex );
- FPCOM( String( (float)(iBluex /FFACTOR) ) );
- NL; FARG( "iBluey", iBluey );
- FPCOM( String( (float)(iBluey /FFACTOR) ) );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_eXPI( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint16 iSnapshotid;
- mng_uint32 iNamesize;
- mng_pchar zName;
- if( mng_getchunk_expi( hMNG, hChunk,
- &iSnapshotid, &iNamesize, &zName ) != 0 )
- return false;
- IARG( "iSnapshotid", iSnapshotid );
- NL; IARG( "iNamesize", iNamesize );
- NL; ZARG( "zName", zName );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_fPRI( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_PRIORITY( _i_ )\
- if( WantsMacroIds() )\
- switch( _i_ ) {\
- case MNG_PRIORITY_ABSOLUTE : MI( "MNG_PRIORITY_ABSOLUTE" ); break;\
- case MNG_PRIORITY_RELATIVE : MI( "MNG_PRIORITY_RELATIVE" ); break;\
- default : MI(UNKNOWN);\
- }
- mng_uint8 iDeltatype;
- mng_uint8 iPriority;
- if( mng_getchunk_fpri( hMNG, hChunk, &iDeltatype, &iPriority ) != 0 )
- return false;
- IARG( "iDeltatype", iDeltatype ); MI_PRIORITY( iDeltatype );
- NL; IARG( "iPriority", iPriority );
- return true;
- # undef MI_PRIORITY
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_gAMA( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_bool bEmpty;
- mng_uint32 iGamma;
- if( mng_getchunk_gama( hMNG, hChunk, &bEmpty, &iGamma ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; FARG( "iGamma", iGamma );
- FPCOM( String( (float)(iGamma /FFACTOR) ) );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_hIST( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iEntrycount;
- mng_uint16arr aEntries;
- if( mng_getchunk_hist( hMNG, hChunk, &iEntrycount, &aEntries ) != 0 )
- return false;
- IARG( "iEntrycount", iEntrycount );
- //aEntries aEntries @todo@
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_iCCP( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_bool bEmpty;
- mng_uint32 iNamesize;
- mng_pchar zName;
- mng_uint8 iCompression;
- mng_uint32 iProfilesize;
- mng_ptr pProfile;
- if( mng_getchunk_iccp( hMNG, hChunk,
- &bEmpty, &iNamesize, &zName, &iCompression,
- &iProfilesize,&pProfile ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iNamesize", iNamesize );
- NL; ZARG( "Name", zName );
- NL; IARG( "iCompression", iCompression ); MI_COMPRESSION_DEFLATE( iCompression );
- NL; IARG( "iProfilesize", iProfilesize );
- // "pProfile " + String( pProfile );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_iTXt( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- #define MI_ITXT_FLAG( _i_ )\
- if( WantsMacroIds() ) {\
- if( (_i_) == MNG_FLAG_UNCOMPRESSED ) {\
- MI( "MNG_FLAG_UNCOMPRESSED" )\
- } else if( (_i_) == MNG_FLAG_COMPRESSED ) {\
- MI( "MNG_FLAG_COMPRESSED" );\
- }\
- }
- mng_uint32 iKeywordsize;
- mng_pchar zKeyword;
- mng_uint8 iCompressionflag;
- mng_uint8 iCompressionmethod;
- mng_uint32 iLanguagesize;
- mng_pchar zLanguage;
- mng_uint32 iTranslationsize;
- mng_pchar zTranslation;
- mng_uint32 iTextsize;
- mng_pchar zText;
- if( mng_getchunk_itxt( hMNG, hChunk,
- &iKeywordsize, &zKeyword,
- &iCompressionflag, &iCompressionmethod,
- &iLanguagesize, &zLanguage,
- &iTranslationsize, &zTranslation,
- &iTextsize, &zText ) != 0 )
- return false;
- IARG( "iKeywordsize", iKeywordsize );
- NL; ZARG( "zKeyword", zKeyword );
- NL; IARG( "iCompressionflag", iCompressionflag ); MI_ITXT_FLAG( iCompressionflag );
- NL; IARG( "iCompressionmethod", iCompressionmethod ); MI_COMPRESSION_DEFLATE( iCompressionflag );
- NL; IARG( "iLanguagesize", iLanguagesize );
- NL; ZARG( "zLanguage", zLanguage );
- NL; IARG( "iTranslationsize", iTranslationsize );
- NL; ZARG( "zTranslation", zTranslation );
- NL; IARG( "iTextsize", iTextsize );
- NL; ZARG( "zText", zText );
- return true;
- # undef MI_ITXT_FLAG
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_nEED( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iKeywordssize;
- mng_pchar zKeywords;
- if( mng_getchunk_need( hMNG, hChunk, &iKeywordssize, &zKeywords ) != 0)
- return false;
- IARG( "iKeywordssize", iKeywordssize );
- NL; IARG( "zKeywords", zKeywords );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_pHYg( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_bool bEmpty;
- mng_uint32 iSizex;
- mng_uint32 iSizey;
- mng_uint8 iUnit;
- if( mng_getchunk_phyg( hMNG, hChunk,
- &bEmpty, &iSizex, &iSizey, &iUnit ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iSizex", iSizex );
- NL; IARG( "iSizey", iSizey );
- NL; IARG( "iUnit", iUnit ); MI_UNITS( iUnit );
- if( iUnit ) {
- PCOM("X/Y pixels per unit" );
- } else {
- if( iSizex == iSizey ) {
- PCOM( "Square pixels" );
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_pHYs( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_bool bEmpty;
- mng_uint32 iSizex;
- mng_uint32 iSizey;
- mng_uint8 iUnit;
- if( mng_getchunk_phys( hMNG, hChunk,
- &bEmpty, &iSizex, &iSizey, &iUnit ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iSizex", iSizex );
- NL; IARG( "iSizey", iSizey );
- NL; IARG( "iUnit", iUnit ); MI_UNITS( iUnit );
- if( iUnit ) {
- PCOM("X/Y pixels per unit" );
- } else {
- if( iSizex == iSizey ) {
- PCOM( "Square pixels" );
- }
- }
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_sBIT( mng_handle hMNG, mng_handle hChunk, String &as )
- { // tested with cs3* cs5* cs8*
- mng_bool bEmpty;
- mng_uint8 iType;
- mng_uint8arr4 aBits;
- if( mng_getchunk_sbit( hMNG, hChunk, &bEmpty, &iType, &aBits ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iType", iType );
- //aBits aBits @todo@
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_sPLT( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_bool bEmpty;
- mng_uint32 iNamesize;
- mng_pchar zName;
- mng_uint8 iSampledepth;
- mng_uint32 iEntrycount;
- mng_ptr pEntries;
- if( mng_getchunk_splt( hMNG, hChunk,
- &bEmpty, &iNamesize, &zName,
- &iSampledepth, &iEntrycount, &pEntries ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iNamesize", iNamesize );
- NL; ZARG( "zName", zName );
- NL; IARG( "iSampledepth", iSampledepth ); MI_BITDEPTH( iSampledepth );
- NL; IARG( "iEntrycount", iEntrycount );
- //pEntries pEntries @todo@
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_sRGB( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- # define MI_RENDERINGINTENT( _i_ )\
- if( WantsMacroIds() ) {\
- switch( (_i_) ) {\
- case MNG_INTENT_PERCEPTUAL :\
- MI( "MNG_INTENT_PERCEPTUAL" ); break;\
- case MNG_INTENT_RELATIVECOLORIMETRIC :\
- MI( "MNG_INTENT_RELATIVECOLORIMETRIC" );break;\
- case MNG_INTENT_SATURATION :\
- MI( "MNG_INTENT_SATURATION" ); break;\
- case MNG_INTENT_ABSOLUTECOLORIMETRIC :\
- MI( "MNG_INTENT_ABSOLUTECOLORIMETRIC" );break;\
- }\
- }
- mng_bool bEmpty;
- mng_uint8 iRenderingintent;
- if( mng_getchunk_srgb( hMNG, hChunk,&bEmpty, &iRenderingintent ) != 0)
- return false;
- BARG( "bEmpty", bEmpty );
- NL; IARG( "iRenderingintent", iRenderingintent );
- MI_RENDERINGINTENT( iRenderingintent );
- return true;
- # undef MI_RENDERINGINTENT
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_tEXt( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iKeywordsize;
- mng_pchar zKeyword;
- mng_uint32 iTextsize;
- mng_pchar zText;
- if( mng_getchunk_text( hMNG, hChunk,
- &iKeywordsize, &zKeyword, &iTextsize, &zText ) != 0 )
- return false;
- IARG( "iKeywordsize", iKeywordsize );
- NL; ZARG( "zKeyword", zKeyword );
- NL; IARG( "iTextsize", iTextsize );
- NL; ZARG( "zText", zText );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_tIME( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint16 iYear;
- mng_uint8 iMonth;
- mng_uint8 iDay;
- mng_uint8 iHour;
- mng_uint8 iMinute;
- mng_uint8 iSecond;
- if( mng_getchunk_time( hMNG, hChunk,
- &iYear, &iMonth, &iDay, &iHour, &iMinute, &iSecond ) != 0 )
- return false;
- IARG( "iYear", iYear );
- NL; IARG( "iMonth", iMonth );
- NL; IARG( "iDay", iDay );
- NL; IARG( "iHour", iHour );
- NL; IARG( "iMinute", iMinute );
- NL; IARG( "iSecond", iSecond );
- // Do not do help line here - may confuse international readers !
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_tRNS( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_bool bEmpty;
- mng_bool bGlobal;
- mng_uint8 iType;
- mng_uint32 iCount;
- mng_uint8arr aAlphas;
- mng_uint16 iGray;
- mng_uint16 iRed;
- mng_uint16 iGreen;
- mng_uint16 iBlue;
- mng_uint32 iRawlen;
- mng_uint8arr aRawdata;
- if( mng_getchunk_trns( hMNG, hChunk,
- &bEmpty, &bGlobal, &iType, &iCount,
- &aAlphas,
- &iGray, &iRed, &iGreen, &iBlue,
- &iRawlen,
- &aRawdata ) != 0 )
- return false;
- BARG( "bEmpty", bEmpty );
- NL; BARG( "bGlobal", bGlobal );
- NL; IARG( "iType", iType );
- NL; IARG( "iCount", iCount );
- //aAlphas aAlphas @todo@
- NL; IARG( "iGray", iGray );
- NL; IARG( "iRed", iRed );
- NL; IARG( "iGreen", iGreen );
- NL; IARG( "iBlue", iBlue );
- NL; IARG( "iRawlen", iRawlen );
- //aRawdata aRawdata @todo@
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_zTXt( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- mng_uint32 iKeywordsize;
- mng_pchar zKeyword;
- mng_uint8 iCompression;
- mng_uint32 iTextsize;
- mng_pchar zText;
- if( mng_getchunk_ztxt( hMNG, hChunk,
- &iKeywordsize, &zKeyword, &iCompression, &iTextsize, &zText ) != 0 )
- return false;
- IARG( "iKeywordsize", iKeywordsize );
- NL; ZARG( "zKeyword", zKeyword );
- NL; IARG( "iCompression", iCompression ); MI_COMPRESSION_DEFLATE( iCompression );
- NL; IARG( "iTextsize", iTextsize );
- NL; ZARG( "zText", zText );
- return true;
- }
- //---------------------------------------------------------------------------
- bool __fastcall TMainForm::Info_Unknown( mng_handle hMNG, mng_handle hChunk, String &as )
- {
- NL + TAB; STR( "Unknown Chunk" );
- NL + TAB; STR( nl + TAB + "(See help tab for a list of unsupported chunks)!" );
- return true;
- }
- //---------------------------------------------------------------------------
|