libmng_prop_xs.c 81 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799
  1. /* ************************************************************************** */
  2. /* * For conditions of distribution and use, * */
  3. /* * see copyright notice in libmng.h * */
  4. /* ************************************************************************** */
  5. /* * * */
  6. /* * project : libmng * */
  7. /* * file : libmng_prop_xs.c copyright (c) 2000-2006 G.Juyn * */
  8. /* * version : 1.0.10 * */
  9. /* * * */
  10. /* * purpose : property get/set interface (implementation) * */
  11. /* * * */
  12. /* * author : G.Juyn * */
  13. /* * * */
  14. /* * comment : implementation of the property get/set functions * */
  15. /* * * */
  16. /* * changes : 0.5.1 - 05/08/2000 - G.Juyn * */
  17. /* * - fixed calling convention * */
  18. /* * - changed strict-ANSI stuff * */
  19. /* * 0.5.1 - 05/11/2000 - G.Juyn * */
  20. /* * - added set_outputprofile2 & set_srgbprofile2 * */
  21. /* * 0.5.1 - 05/12/2000 - G.Juyn * */
  22. /* * - changed trace to macro for callback error-reporting * */
  23. /* * * */
  24. /* * 0.5.2 - 05/23/2000 - G.Juyn * */
  25. /* * - changed inclusion of cms-routines * */
  26. /* * 0.5.2 - 05/24/2000 - G.Juyn * */
  27. /* * - added support for get/set default zlib/IJG parms * */
  28. /* * 0.5.2 - 05/31/2000 - G.Juyn * */
  29. /* * - fixed up punctuation (contribution by Tim Rowley) * */
  30. /* * 0.5.2 - 06/05/2000 - G.Juyn * */
  31. /* * - added support for RGB8_A8 canvasstyle * */
  32. /* * * */
  33. /* * 0.5.3 - 06/21/2000 - G.Juyn * */
  34. /* * - added get/set for speedtype to facilitate testing * */
  35. /* * - added get for imagelevel during processtext callback * */
  36. /* * 0.5.3 - 06/26/2000 - G.Juyn * */
  37. /* * - changed userdata variable to mng_ptr * */
  38. /* * 0.5.3 - 06/29/2000 - G.Juyn * */
  39. /* * - fixed incompatible return-types * */
  40. /* * * */
  41. /* * 0.9.1 - 07/08/2000 - G.Juyn * */
  42. /* * - added get routines for internal display variables * */
  43. /* * - added get/set routines for suspensionmode variable * */
  44. /* * 0.9.1 - 07/15/2000 - G.Juyn * */
  45. /* * - added get/set routines for sectionbreak variable * */
  46. /* * * */
  47. /* * 0.9.2 - 07/31/2000 - G.Juyn * */
  48. /* * - added status_xxxx functions * */
  49. /* * 0.9.2 - 08/05/2000 - G.Juyn * */
  50. /* * - changed file-prefixes * */
  51. /* * * */
  52. /* * 0.9.3 - 10/10/2000 - G.Juyn * */
  53. /* * - added support for alpha-depth prediction * */
  54. /* * 0.9.3 - 10/16/2000 - G.Juyn * */
  55. /* * - added functions to retrieve PNG/JNG specific header-info * */
  56. /* * 0.9.3 - 10/20/2000 - G.Juyn * */
  57. /* * - added get/set for bKGD preference setting * */
  58. /* * 0.9.3 - 10/21/2000 - G.Juyn * */
  59. /* * - added get function for interlace/progressive display * */
  60. /* * * */
  61. /* * 1.0.1 - 04/21/2001 - G.Juyn (code by G.Kelly) * */
  62. /* * - added BGRA8 canvas with premultiplied alpha * */
  63. /* * 1.0.1 - 05/02/2001 - G.Juyn * */
  64. /* * - added "default" sRGB generation (Thanks Marti!) * */
  65. /* * * */
  66. /* * 1.0.2 - 06/23/2001 - G.Juyn * */
  67. /* * - added optimization option for MNG-video playback * */
  68. /* * 1.0.2 - 06/25/2001 - G.Juyn * */
  69. /* * - added option to turn off progressive refresh * */
  70. /* * * */
  71. /* * 1.0.3 - 08/06/2001 - G.Juyn * */
  72. /* * - added get function for last processed BACK chunk * */
  73. /* * * */
  74. /* * 1.0.4 - 06/22/2002 - G.Juyn * */
  75. /* * - B495442 - invalid returnvalue in mng_get_suspensionmode * */
  76. /* * * */
  77. /* * 1.0.5 - 09/14/2002 - G.Juyn * */
  78. /* * - added event handling for dynamic MNG * */
  79. /* * 1.0.5 - 09/22/2002 - G.Juyn * */
  80. /* * - added bgrx8 canvas (filler byte) * */
  81. /* * 1.0.5 - 11/07/2002 - G.Juyn * */
  82. /* * - added support to get totals after mng_read() * */
  83. /* * * */
  84. /* * 1.0.6 - 05/11/2003 - G. Juyn * */
  85. /* * - added conditionals around canvas update routines * */
  86. /* * 1.0.6 - 07/07/2003 - G.R-P * */
  87. /* * - added conditionals around some JNG-supporting code * */
  88. /* * 1.0.6 - 07/11/2003 - G.R-P * */
  89. /* * - added conditionals zlib and jpeg property accessors * */
  90. /* * 1.0.6 - 07/14/2003 - G.R-P * */
  91. /* * - added conditionals around various unused functions * */
  92. /* * * */
  93. /* * 1.0.7 - 11/27/2003 - R.A * */
  94. /* * - added CANVAS_RGB565 and CANVAS_BGR565 * */
  95. /* * 1.0.7 - 12/06/2003 - R.A * */
  96. /* * - added CANVAS_RGBA565 and CANVAS_BGRA565 * */
  97. /* * 1.0.7 - 01/25/2004 - J.S * */
  98. /* * - added premultiplied alpha canvas' for RGBA, ARGB, ABGR * */
  99. /* * 1.0.7 - 03/07/2004 - G.R-P. * */
  100. /* * - put gamma, cms-related functions inside #ifdef * */
  101. /* * * */
  102. /* * 1.0.8 - 04/02/2004 - G.Juyn * */
  103. /* * - added CRC existence & checking flags * */
  104. /* * * */
  105. /* * 1.0.9 - 09/18/2004 - G.R-P. * */
  106. /* * - added some MNG_SUPPORT_WRITE conditionals * */
  107. /* * 1.0.9 - 10/03/2004 - G.Juyn * */
  108. /* * - added function to retrieve current FRAM delay * */
  109. /* * 1.0.9 - 10/14/2004 - G.Juyn * */
  110. /* * - added bgr565_a8 canvas-style (thanks to J. Elvander) * */
  111. /* * 1.0.9 - 12/20/2004 - G.Juyn * */
  112. /* * - cleaned up macro-invocations (thanks to D. Airlie) * */
  113. /* * * */
  114. /* * 1.0.10 - 03/07/2006 - (thanks to W. Manthey) * */
  115. /* * - added CANVAS_RGB555 and CANVAS_BGR555 * */
  116. /* * * */
  117. /* ************************************************************************** */
  118. #include "libmng.h"
  119. #include "libmng_data.h"
  120. #include "libmng_error.h"
  121. #include "libmng_trace.h"
  122. #ifdef __BORLANDC__
  123. #pragma hdrstop
  124. #endif
  125. #include "libmng_objects.h"
  126. #include "libmng_memory.h"
  127. #include "libmng_cms.h"
  128. #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
  129. #pragma option -A /* force ANSI-C */
  130. #endif
  131. /* ************************************************************************** */
  132. /* * * */
  133. /* * Property set functions * */
  134. /* * * */
  135. /* ************************************************************************** */
  136. mng_retcode MNG_DECL mng_set_userdata (mng_handle hHandle,
  137. mng_ptr pUserdata)
  138. {
  139. #ifdef MNG_SUPPORT_TRACE
  140. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_USERDATA, MNG_LC_START);
  141. #endif
  142. MNG_VALIDHANDLE (hHandle)
  143. ((mng_datap)hHandle)->pUserdata = pUserdata;
  144. #ifdef MNG_SUPPORT_TRACE
  145. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_USERDATA, MNG_LC_END);
  146. #endif
  147. return MNG_NOERROR;
  148. }
  149. /* ************************************************************************** */
  150. mng_retcode MNG_DECL mng_set_canvasstyle (mng_handle hHandle,
  151. mng_uint32 iStyle)
  152. {
  153. #ifdef MNG_SUPPORT_TRACE
  154. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CANVASSTYLE, MNG_LC_START);
  155. #endif
  156. MNG_VALIDHANDLE (hHandle)
  157. switch (iStyle)
  158. {
  159. #ifndef MNG_SKIPCANVAS_RGB8
  160. case MNG_CANVAS_RGB8 : break;
  161. #endif
  162. #ifndef MNG_SKIPCANVAS_RGBA8
  163. case MNG_CANVAS_RGBA8 : break;
  164. #endif
  165. #ifndef MNG_SKIPCANVAS_RGBA8_PM
  166. case MNG_CANVAS_RGBA8_PM: break;
  167. #endif
  168. #ifndef MNG_SKIPCANVAS_ARGB8
  169. case MNG_CANVAS_ARGB8 : break;
  170. #endif
  171. #ifndef MNG_SKIPCANVAS_ARGB8_PM
  172. case MNG_CANVAS_ARGB8_PM: break;
  173. #endif
  174. #ifndef MNG_SKIPCANVAS_RGB8_A8
  175. case MNG_CANVAS_RGB8_A8 : break;
  176. #endif
  177. #ifndef MNG_SKIPCANVAS_BGR8
  178. case MNG_CANVAS_BGR8 : break;
  179. #endif
  180. #ifndef MNG_SKIPCANVAS_BGRX8
  181. case MNG_CANVAS_BGRX8 : break;
  182. #endif
  183. #ifndef MNG_SKIPCANVAS_BGRA8
  184. case MNG_CANVAS_BGRA8 : break;
  185. #endif
  186. #ifndef MNG_SKIPCANVAS_BGRA8_PM
  187. case MNG_CANVAS_BGRA8_PM: break;
  188. #endif
  189. #ifndef MNG_SKIPCANVAS_ABGR8
  190. case MNG_CANVAS_ABGR8 : break;
  191. #endif
  192. #ifndef MNG_SKIPCANVAS_ABGR8_PM
  193. case MNG_CANVAS_ABGR8_PM: break;
  194. #endif
  195. #ifndef MNG_SKIPCANVAS_RGB565
  196. case MNG_CANVAS_RGB565 : break;
  197. #endif
  198. #ifndef MNG_SKIPCANVAS_RGBA565
  199. case MNG_CANVAS_RGBA565 : break;
  200. #endif
  201. #ifndef MNG_SKIPCANVAS_BGR565
  202. case MNG_CANVAS_BGR565 : break;
  203. #endif
  204. #ifndef MNG_SKIPCANVAS_BGRA565
  205. case MNG_CANVAS_BGRA565 : break;
  206. #endif
  207. #ifndef MNG_SKIPCANVAS_BGR565_A8
  208. case MNG_CANVAS_BGR565_A8 : break;
  209. #endif
  210. #ifndef MNG_SKIPCANVAS_RGB555
  211. case MNG_CANVAS_RGB555 : break;
  212. #endif
  213. #ifndef MNG_SKIPCANVAS_BGR555
  214. case MNG_CANVAS_BGR555 : break;
  215. #endif
  216. /* case MNG_CANVAS_RGB16 : break; */
  217. /* case MNG_CANVAS_RGBA16 : break; */
  218. /* case MNG_CANVAS_ARGB16 : break; */
  219. /* case MNG_CANVAS_BGR16 : break; */
  220. /* case MNG_CANVAS_BGRA16 : break; */
  221. /* case MNG_CANVAS_ABGR16 : break; */
  222. /* case MNG_CANVAS_INDEX8 : break; */
  223. /* case MNG_CANVAS_INDEXA8 : break; */
  224. /* case MNG_CANVAS_AINDEX8 : break; */
  225. /* case MNG_CANVAS_GRAY8 : break; */
  226. /* case MNG_CANVAS_GRAY16 : break; */
  227. /* case MNG_CANVAS_GRAYA8 : break; */
  228. /* case MNG_CANVAS_GRAYA16 : break; */
  229. /* case MNG_CANVAS_AGRAY8 : break; */
  230. /* case MNG_CANVAS_AGRAY16 : break; */
  231. /* case MNG_CANVAS_DX15 : break; */
  232. /* case MNG_CANVAS_DX16 : break; */
  233. default : { MNG_ERROR (((mng_datap)hHandle), MNG_INVALIDCNVSTYLE) };
  234. }
  235. ((mng_datap)hHandle)->iCanvasstyle = iStyle;
  236. #ifdef MNG_SUPPORT_TRACE
  237. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CANVASSTYLE, MNG_LC_END);
  238. #endif
  239. return MNG_NOERROR;
  240. }
  241. /* ************************************************************************** */
  242. mng_retcode MNG_DECL mng_set_bkgdstyle (mng_handle hHandle,
  243. mng_uint32 iStyle)
  244. {
  245. #ifdef MNG_SUPPORT_TRACE
  246. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_BKGDSTYLE, MNG_LC_START);
  247. #endif
  248. MNG_VALIDHANDLE (hHandle)
  249. switch (iStyle) /* alpha-modes not supported */
  250. {
  251. #ifndef MNG_SKIPCANVAS_RGB8
  252. case MNG_CANVAS_RGB8 : break;
  253. #endif
  254. #ifndef MNG_SKIPCANVAS_BGR8
  255. case MNG_CANVAS_BGR8 : break;
  256. #endif
  257. #ifndef MNG_SKIPCANVAS_BGRX8
  258. case MNG_CANVAS_BGRX8 : break;
  259. #endif
  260. #ifndef MNG_SKIPCANVAS_RGB565
  261. case MNG_CANVAS_RGB565 : break;
  262. #endif
  263. #ifndef MNG_SKIPCANVAS_BGR565
  264. case MNG_CANVAS_BGR565 : break;
  265. #endif
  266. /* case MNG_CANVAS_RGB16 : break; */
  267. /* case MNG_CANVAS_BGR16 : break; */
  268. /* case MNG_CANVAS_INDEX8 : break; */
  269. /* case MNG_CANVAS_GRAY8 : break; */
  270. /* case MNG_CANVAS_GRAY16 : break; */
  271. /* case MNG_CANVAS_DX15 : break; */
  272. /* case MNG_CANVAS_DX16 : break; */
  273. default : MNG_ERROR (((mng_datap)hHandle), MNG_INVALIDCNVSTYLE);
  274. }
  275. ((mng_datap)hHandle)->iBkgdstyle = iStyle;
  276. #ifdef MNG_SUPPORT_TRACE
  277. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_BKGDSTYLE, MNG_LC_END);
  278. #endif
  279. return MNG_NOERROR;
  280. }
  281. /* ************************************************************************** */
  282. mng_retcode MNG_DECL mng_set_bgcolor (mng_handle hHandle,
  283. mng_uint16 iRed,
  284. mng_uint16 iGreen,
  285. mng_uint16 iBlue)
  286. {
  287. #ifdef MNG_SUPPORT_TRACE
  288. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_BGCOLOR, MNG_LC_START);
  289. #endif
  290. MNG_VALIDHANDLE (hHandle)
  291. ((mng_datap)hHandle)->iBGred = iRed;
  292. ((mng_datap)hHandle)->iBGgreen = iGreen;
  293. ((mng_datap)hHandle)->iBGblue = iBlue;
  294. ((mng_datap)hHandle)->bUseBKGD = MNG_FALSE;
  295. #ifdef MNG_SUPPORT_TRACE
  296. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_BGCOLOR, MNG_LC_END);
  297. #endif
  298. return MNG_NOERROR;
  299. }
  300. /* ************************************************************************** */
  301. mng_retcode MNG_DECL mng_set_usebkgd (mng_handle hHandle,
  302. mng_bool bUseBKGD)
  303. {
  304. #ifdef MNG_SUPPORT_TRACE
  305. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_USEBKGD, MNG_LC_START);
  306. #endif
  307. MNG_VALIDHANDLE (hHandle)
  308. ((mng_datap)hHandle)->bUseBKGD = bUseBKGD;
  309. #ifdef MNG_SUPPORT_TRACE
  310. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_USEBKGD, MNG_LC_END);
  311. #endif
  312. return MNG_NOERROR;
  313. }
  314. /* ************************************************************************** */
  315. mng_retcode MNG_DECL mng_set_storechunks (mng_handle hHandle,
  316. mng_bool bStorechunks)
  317. {
  318. #ifdef MNG_SUPPORT_TRACE
  319. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_STORECHUNKS, MNG_LC_START);
  320. #endif
  321. MNG_VALIDHANDLE (hHandle)
  322. ((mng_datap)hHandle)->bStorechunks = bStorechunks;
  323. #ifdef MNG_SUPPORT_TRACE
  324. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_STORECHUNKS, MNG_LC_END);
  325. #endif
  326. return MNG_NOERROR;
  327. }
  328. /* ************************************************************************** */
  329. mng_retcode MNG_DECL mng_set_sectionbreaks (mng_handle hHandle,
  330. mng_bool bSectionbreaks)
  331. {
  332. #ifdef MNG_SUPPORT_TRACE
  333. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SECTIONBREAKS, MNG_LC_START);
  334. #endif
  335. MNG_VALIDHANDLE (hHandle)
  336. ((mng_datap)hHandle)->bSectionbreaks = bSectionbreaks;
  337. #ifdef MNG_SUPPORT_TRACE
  338. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SECTIONBREAKS, MNG_LC_END);
  339. #endif
  340. return MNG_NOERROR;
  341. }
  342. /* ************************************************************************** */
  343. mng_retcode MNG_DECL mng_set_cacheplayback (mng_handle hHandle,
  344. mng_bool bCacheplayback)
  345. {
  346. #ifdef MNG_SUPPORT_TRACE
  347. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CACHEPLAYBACK, MNG_LC_START);
  348. #endif
  349. MNG_VALIDHANDLE (hHandle)
  350. if (((mng_datap)hHandle)->bHasheader)
  351. MNG_ERROR (((mng_datap)hHandle), MNG_FUNCTIONINVALID);
  352. ((mng_datap)hHandle)->bCacheplayback = bCacheplayback;
  353. #ifdef MNG_SUPPORT_TRACE
  354. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CACHEPLAYBACK, MNG_LC_END);
  355. #endif
  356. return MNG_NOERROR;
  357. }
  358. /* ************************************************************************** */
  359. mng_retcode MNG_DECL mng_set_doprogressive (mng_handle hHandle,
  360. mng_bool bDoProgressive)
  361. {
  362. #ifdef MNG_SUPPORT_TRACE
  363. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DOPROGRESSIVE, MNG_LC_START);
  364. #endif
  365. MNG_VALIDHANDLE (hHandle)
  366. ((mng_datap)hHandle)->bDoProgressive = bDoProgressive;
  367. #ifdef MNG_SUPPORT_TRACE
  368. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DOPROGRESSIVE, MNG_LC_END);
  369. #endif
  370. return MNG_NOERROR;
  371. }
  372. /* ************************************************************************** */
  373. mng_retcode MNG_DECL mng_set_crcmode (mng_handle hHandle,
  374. mng_uint32 iCrcmode)
  375. {
  376. #ifdef MNG_SUPPORT_TRACE
  377. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CRCMODE, MNG_LC_START);
  378. #endif
  379. MNG_VALIDHANDLE (hHandle)
  380. ((mng_datap)hHandle)->iCrcmode = iCrcmode;
  381. #ifdef MNG_SUPPORT_TRACE
  382. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_CRCMODE, MNG_LC_END);
  383. #endif
  384. return MNG_NOERROR;
  385. }
  386. /* ************************************************************************** */
  387. #ifdef MNG_SUPPORT_DISPLAY
  388. mng_retcode MNG_DECL mng_set_srgb (mng_handle hHandle,
  389. mng_bool bIssRGB)
  390. {
  391. #ifdef MNG_SUPPORT_TRACE
  392. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGB, MNG_LC_START);
  393. #endif
  394. MNG_VALIDHANDLE (hHandle)
  395. ((mng_datap)hHandle)->bIssRGB = bIssRGB;
  396. #ifdef MNG_SUPPORT_TRACE
  397. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGB, MNG_LC_END);
  398. #endif
  399. return MNG_NOERROR;
  400. }
  401. #endif /* MNG_SUPPORT_DISPLAY */
  402. /* ************************************************************************** */
  403. #ifdef MNG_SUPPORT_DISPLAY
  404. #ifndef MNG_SKIPCHUNK_iCCP
  405. mng_retcode MNG_DECL mng_set_outputprofile (mng_handle hHandle,
  406. mng_pchar zFilename)
  407. {
  408. #ifdef MNG_INCLUDE_LCMS
  409. mng_datap pData;
  410. #endif
  411. #ifdef MNG_SUPPORT_TRACE
  412. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTPROFILE, MNG_LC_START);
  413. #endif
  414. #ifdef MNG_INCLUDE_LCMS
  415. MNG_VALIDHANDLE (hHandle)
  416. pData = (mng_datap)hHandle; /* address the structure */
  417. if (pData->hProf2) /* previously defined ? */
  418. mnglcms_freeprofile (pData->hProf2);
  419. /* allocate new CMS profile handle */
  420. pData->hProf2 = mnglcms_createfileprofile (zFilename);
  421. if (!pData->hProf2) /* handle error ? */
  422. MNG_ERRORL (pData, MNG_LCMS_NOHANDLE);
  423. #endif /* MNG_INCLUDE_LCMS */
  424. #ifdef MNG_SUPPORT_TRACE
  425. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTPROFILE, MNG_LC_END);
  426. #endif
  427. return MNG_NOERROR;
  428. }
  429. #endif
  430. #endif /* MNG_SUPPORT_DISPLAY */
  431. /* ************************************************************************** */
  432. #ifdef MNG_SUPPORT_DISPLAY
  433. #ifndef MNG_SKIPCHUNK_iCCP
  434. mng_retcode MNG_DECL mng_set_outputprofile2 (mng_handle hHandle,
  435. mng_uint32 iProfilesize,
  436. mng_ptr pProfile)
  437. {
  438. #ifdef MNG_INCLUDE_LCMS
  439. mng_datap pData;
  440. #endif
  441. #ifdef MNG_SUPPORT_TRACE
  442. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTPROFILE2, MNG_LC_START);
  443. #endif
  444. #ifdef MNG_INCLUDE_LCMS
  445. MNG_VALIDHANDLE (hHandle)
  446. pData = (mng_datap)hHandle; /* address the structure */
  447. if (pData->hProf2) /* previously defined ? */
  448. mnglcms_freeprofile (pData->hProf2);
  449. /* allocate new CMS profile handle */
  450. pData->hProf2 = mnglcms_creatememprofile (iProfilesize, pProfile);
  451. if (!pData->hProf2) /* handle error ? */
  452. MNG_ERRORL (pData, MNG_LCMS_NOHANDLE);
  453. #endif /* MNG_INCLUDE_LCMS */
  454. #ifdef MNG_SUPPORT_TRACE
  455. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTPROFILE2, MNG_LC_END);
  456. #endif
  457. return MNG_NOERROR;
  458. }
  459. #endif
  460. #endif /* MNG_SUPPORT_DISPLAY */
  461. /* ************************************************************************** */
  462. mng_retcode MNG_DECL mng_set_outputsrgb (mng_handle hHandle)
  463. {
  464. #ifdef MNG_INCLUDE_LCMS
  465. mng_datap pData;
  466. #endif
  467. #ifdef MNG_SUPPORT_TRACE
  468. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTSRGB, MNG_LC_START);
  469. #endif
  470. #ifdef MNG_INCLUDE_LCMS
  471. MNG_VALIDHANDLE (hHandle)
  472. pData = (mng_datap)hHandle; /* address the structure */
  473. if (pData->hProf2) /* previously defined ? */
  474. mnglcms_freeprofile (pData->hProf2);
  475. /* allocate new CMS profile handle */
  476. pData->hProf2 = mnglcms_createsrgbprofile ();
  477. if (!pData->hProf2) /* handle error ? */
  478. MNG_ERRORL (pData, MNG_LCMS_NOHANDLE);
  479. #endif /* MNG_INCLUDE_LCMS */
  480. #ifdef MNG_SUPPORT_TRACE
  481. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_OUTPUTSRGB, MNG_LC_END);
  482. #endif
  483. return MNG_NOERROR;
  484. }
  485. /* ************************************************************************** */
  486. #ifdef MNG_SUPPORT_DISPLAY
  487. mng_retcode MNG_DECL mng_set_srgbprofile (mng_handle hHandle,
  488. mng_pchar zFilename)
  489. {
  490. #ifdef MNG_INCLUDE_LCMS
  491. mng_datap pData;
  492. #endif
  493. #ifdef MNG_SUPPORT_TRACE
  494. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGBPROFILE2, MNG_LC_START);
  495. #endif
  496. #ifdef MNG_INCLUDE_LCMS
  497. MNG_VALIDHANDLE (hHandle)
  498. pData = (mng_datap)hHandle; /* address the structure */
  499. if (pData->hProf3) /* previously defined ? */
  500. mnglcms_freeprofile (pData->hProf3);
  501. /* allocate new CMS profile handle */
  502. pData->hProf3 = mnglcms_createfileprofile (zFilename);
  503. if (!pData->hProf3) /* handle error ? */
  504. MNG_ERRORL (pData, MNG_LCMS_NOHANDLE);
  505. #endif /* MNG_INCLUDE_LCMS */
  506. #ifdef MNG_SUPPORT_TRACE
  507. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGBPROFILE2, MNG_LC_END);
  508. #endif
  509. return MNG_NOERROR;
  510. }
  511. #endif /* MNG_SUPPORT_DISPLAY */
  512. /* ************************************************************************** */
  513. #ifdef MNG_SUPPORT_DISPLAY
  514. mng_retcode MNG_DECL mng_set_srgbprofile2 (mng_handle hHandle,
  515. mng_uint32 iProfilesize,
  516. mng_ptr pProfile)
  517. {
  518. #ifdef MNG_INCLUDE_LCMS
  519. mng_datap pData;
  520. #endif
  521. #ifdef MNG_SUPPORT_TRACE
  522. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGBPROFILE, MNG_LC_START);
  523. #endif
  524. #ifdef MNG_INCLUDE_LCMS
  525. MNG_VALIDHANDLE (hHandle)
  526. pData = (mng_datap)hHandle; /* address the structure */
  527. if (pData->hProf3) /* previously defined ? */
  528. mnglcms_freeprofile (pData->hProf3);
  529. /* allocate new CMS profile handle */
  530. pData->hProf3 = mnglcms_creatememprofile (iProfilesize, pProfile);
  531. if (!pData->hProf3) /* handle error ? */
  532. MNG_ERRORL (pData, MNG_LCMS_NOHANDLE);
  533. #endif /* MNG_INCLUDE_LCMS */
  534. #ifdef MNG_SUPPORT_TRACE
  535. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGBPROFILE, MNG_LC_END);
  536. #endif
  537. return MNG_NOERROR;
  538. }
  539. #endif /* MNG_SUPPORT_DISPLAY */
  540. /* ************************************************************************** */
  541. mng_retcode MNG_DECL mng_set_srgbimplicit (mng_handle hHandle)
  542. {
  543. #ifdef MNG_INCLUDE_LCMS
  544. mng_datap pData;
  545. #endif
  546. #ifdef MNG_SUPPORT_TRACE
  547. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGBIMPLICIT, MNG_LC_START);
  548. #endif
  549. #ifdef MNG_INCLUDE_LCMS
  550. MNG_VALIDHANDLE (hHandle)
  551. pData = (mng_datap)hHandle; /* address the structure */
  552. if (pData->hProf3) /* previously defined ? */
  553. mnglcms_freeprofile (pData->hProf3);
  554. /* allocate new CMS profile handle */
  555. pData->hProf3 = mnglcms_createsrgbprofile ();
  556. if (!pData->hProf3) /* handle error ? */
  557. MNG_ERRORL (pData, MNG_LCMS_NOHANDLE);
  558. #endif /* MNG_INCLUDE_LCMS */
  559. #ifdef MNG_SUPPORT_TRACE
  560. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SRGBIMPLICIT, MNG_LC_END);
  561. #endif
  562. return MNG_NOERROR;
  563. }
  564. /* ************************************************************************** */
  565. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
  566. mng_retcode MNG_DECL mng_set_viewgamma (mng_handle hHandle,
  567. mng_float dGamma)
  568. {
  569. #ifdef MNG_SUPPORT_TRACE
  570. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_VIEWGAMMA, MNG_LC_START);
  571. #endif
  572. MNG_VALIDHANDLE (hHandle)
  573. ((mng_datap)hHandle)->dViewgamma = dGamma;
  574. #ifdef MNG_SUPPORT_TRACE
  575. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_VIEWGAMMA, MNG_LC_END);
  576. #endif
  577. return MNG_NOERROR;
  578. }
  579. #endif
  580. /* ************************************************************************** */
  581. mng_retcode MNG_DECL mng_set_displaygamma (mng_handle hHandle,
  582. mng_float dGamma)
  583. {
  584. #ifdef MNG_SUPPORT_TRACE
  585. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DISPLAYGAMMA, MNG_LC_START);
  586. #endif
  587. MNG_VALIDHANDLE (hHandle)
  588. ((mng_datap)hHandle)->dDisplaygamma = dGamma;
  589. #ifdef MNG_SUPPORT_TRACE
  590. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DISPLAYGAMMA, MNG_LC_END);
  591. #endif
  592. return MNG_NOERROR;
  593. }
  594. /* ************************************************************************** */
  595. mng_retcode MNG_DECL mng_set_dfltimggamma (mng_handle hHandle,
  596. mng_float dGamma)
  597. {
  598. #ifdef MNG_SUPPORT_TRACE
  599. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DFLTIMGGAMMA, MNG_LC_START);
  600. #endif
  601. MNG_VALIDHANDLE (hHandle)
  602. ((mng_datap)hHandle)->dDfltimggamma = dGamma;
  603. #ifdef MNG_SUPPORT_TRACE
  604. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DFLTIMGGAMMA, MNG_LC_END);
  605. #endif
  606. return MNG_NOERROR;
  607. }
  608. /* ************************************************************************** */
  609. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
  610. mng_retcode MNG_DECL mng_set_viewgammaint (mng_handle hHandle,
  611. mng_uint32 iGamma)
  612. {
  613. #ifdef MNG_SUPPORT_TRACE
  614. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_VIEWGAMMA, MNG_LC_START);
  615. #endif
  616. MNG_VALIDHANDLE (hHandle)
  617. ((mng_datap)hHandle)->dViewgamma = (mng_float)iGamma / 100000;
  618. #ifdef MNG_SUPPORT_TRACE
  619. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_VIEWGAMMA, MNG_LC_END);
  620. #endif
  621. return MNG_NOERROR;
  622. }
  623. #endif
  624. /* ************************************************************************** */
  625. mng_retcode MNG_DECL mng_set_displaygammaint (mng_handle hHandle,
  626. mng_uint32 iGamma)
  627. {
  628. #ifdef MNG_SUPPORT_TRACE
  629. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DISPLAYGAMMA, MNG_LC_START);
  630. #endif
  631. MNG_VALIDHANDLE (hHandle)
  632. ((mng_datap)hHandle)->dDisplaygamma = (mng_float)iGamma / 100000;
  633. #ifdef MNG_SUPPORT_TRACE
  634. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DISPLAYGAMMA, MNG_LC_END);
  635. #endif
  636. return MNG_NOERROR;
  637. }
  638. /* ************************************************************************** */
  639. #ifndef MNG_NO_DFLT_INFO
  640. mng_retcode MNG_DECL mng_set_dfltimggammaint (mng_handle hHandle,
  641. mng_uint32 iGamma)
  642. {
  643. #ifdef MNG_SUPPORT_TRACE
  644. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DFLTIMGGAMMA, MNG_LC_START);
  645. #endif
  646. MNG_VALIDHANDLE (hHandle)
  647. ((mng_datap)hHandle)->dDfltimggamma = (mng_float)iGamma / 100000;
  648. #ifdef MNG_SUPPORT_TRACE
  649. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_DFLTIMGGAMMA, MNG_LC_END);
  650. #endif
  651. return MNG_NOERROR;
  652. }
  653. #endif
  654. /* ************************************************************************** */
  655. #ifndef MNG_SKIP_MAXCANVAS
  656. mng_retcode MNG_DECL mng_set_maxcanvaswidth (mng_handle hHandle,
  657. mng_uint32 iMaxwidth)
  658. {
  659. #ifdef MNG_SUPPORT_TRACE
  660. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_MAXCANVASWIDTH, MNG_LC_START);
  661. #endif
  662. MNG_VALIDHANDLE (hHandle)
  663. ((mng_datap)hHandle)->iMaxwidth = iMaxwidth;
  664. #ifdef MNG_SUPPORT_TRACE
  665. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_MAXCANVASWIDTH, MNG_LC_END);
  666. #endif
  667. return MNG_NOERROR;
  668. }
  669. /* ************************************************************************** */
  670. mng_retcode MNG_DECL mng_set_maxcanvasheight (mng_handle hHandle,
  671. mng_uint32 iMaxheight)
  672. {
  673. #ifdef MNG_SUPPORT_TRACE
  674. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_MAXCANVASHEIGHT, MNG_LC_START);
  675. #endif
  676. MNG_VALIDHANDLE (hHandle)
  677. ((mng_datap)hHandle)->iMaxheight = iMaxheight;
  678. #ifdef MNG_SUPPORT_TRACE
  679. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_MAXCANVASHEIGHT, MNG_LC_END);
  680. #endif
  681. return MNG_NOERROR;
  682. }
  683. /* ************************************************************************** */
  684. mng_retcode MNG_DECL mng_set_maxcanvassize (mng_handle hHandle,
  685. mng_uint32 iMaxwidth,
  686. mng_uint32 iMaxheight)
  687. {
  688. #ifdef MNG_SUPPORT_TRACE
  689. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_MAXCANVASSIZE, MNG_LC_START);
  690. #endif
  691. MNG_VALIDHANDLE (hHandle)
  692. ((mng_datap)hHandle)->iMaxwidth = iMaxwidth;
  693. ((mng_datap)hHandle)->iMaxheight = iMaxheight;
  694. #ifdef MNG_SUPPORT_TRACE
  695. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_MAXCANVASSIZE, MNG_LC_END);
  696. #endif
  697. return MNG_NOERROR;
  698. }
  699. #endif
  700. /* ************************************************************************** */
  701. #ifdef MNG_INCLUDE_ZLIB
  702. #ifdef MNG_ACCESS_ZLIB
  703. #ifdef MNG_SUPPORT_WRITE
  704. mng_retcode MNG_DECL mng_set_zlib_level (mng_handle hHandle,
  705. mng_int32 iZlevel)
  706. {
  707. #ifdef MNG_SUPPORT_TRACE
  708. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_LEVEL, MNG_LC_START);
  709. #endif
  710. MNG_VALIDHANDLE (hHandle)
  711. ((mng_datap)hHandle)->iZlevel = iZlevel;
  712. #ifdef MNG_SUPPORT_TRACE
  713. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_LEVEL, MNG_LC_END);
  714. #endif
  715. return MNG_NOERROR;
  716. }
  717. #endif /* MNG_SUPPORT_WRITE */
  718. #endif /* MNG_ACCESS_ZLIB */
  719. #endif /* MNG_INCLUDE_ZLIB */
  720. /* ************************************************************************** */
  721. #ifdef MNG_INCLUDE_ZLIB
  722. #ifdef MNG_ACCESS_ZLIB
  723. #ifdef MNG_SUPPORT_WRITE
  724. mng_retcode MNG_DECL mng_set_zlib_method (mng_handle hHandle,
  725. mng_int32 iZmethod)
  726. {
  727. #ifdef MNG_SUPPORT_TRACE
  728. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_METHOD, MNG_LC_START);
  729. #endif
  730. MNG_VALIDHANDLE (hHandle)
  731. ((mng_datap)hHandle)->iZmethod = iZmethod;
  732. #ifdef MNG_SUPPORT_TRACE
  733. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_METHOD, MNG_LC_END);
  734. #endif
  735. return MNG_NOERROR;
  736. }
  737. #endif /* MNG_SUPPORT_WRITE */
  738. #endif /* MNG_ACCESS_ZLIB */
  739. #endif /* MNG_INCLUDE_ZLIB */
  740. /* ************************************************************************** */
  741. #ifdef MNG_INCLUDE_ZLIB
  742. #ifdef MNG_ACCESS_ZLIB
  743. #ifdef MNG_SUPPORT_WRITE
  744. mng_retcode MNG_DECL mng_set_zlib_windowbits (mng_handle hHandle,
  745. mng_int32 iZwindowbits)
  746. {
  747. #ifdef MNG_SUPPORT_TRACE
  748. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_WINDOWBITS, MNG_LC_START);
  749. #endif
  750. MNG_VALIDHANDLE (hHandle)
  751. ((mng_datap)hHandle)->iZwindowbits = iZwindowbits;
  752. #ifdef MNG_SUPPORT_TRACE
  753. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_WINDOWBITS, MNG_LC_END);
  754. #endif
  755. return MNG_NOERROR;
  756. }
  757. #endif /* MNG_SUPPORT_WRITE */
  758. #endif /* MNG_ACCESS_ZLIB */
  759. #endif /* MNG_INCLUDE_ZLIB */
  760. /* ************************************************************************** */
  761. #ifdef MNG_INCLUDE_ZLIB
  762. #ifdef MNG_ACCESS_ZLIB
  763. #ifdef MNG_SUPPORT_WRITE
  764. mng_retcode MNG_DECL mng_set_zlib_memlevel (mng_handle hHandle,
  765. mng_int32 iZmemlevel)
  766. {
  767. #ifdef MNG_SUPPORT_TRACE
  768. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_MEMLEVEL, MNG_LC_START);
  769. #endif
  770. MNG_VALIDHANDLE (hHandle)
  771. ((mng_datap)hHandle)->iZmemlevel = iZmemlevel;
  772. #ifdef MNG_SUPPORT_TRACE
  773. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_MEMLEVEL, MNG_LC_END);
  774. #endif
  775. return MNG_NOERROR;
  776. }
  777. #endif /* MNG_SUPPORT_WRITE */
  778. #endif /* MNG_ACCESS_ZLIB */
  779. #endif /* MNG_INCLUDE_ZLIB */
  780. /* ************************************************************************** */
  781. #ifdef MNG_INCLUDE_ZLIB
  782. #ifdef MNG_ACCESS_ZLIB
  783. #ifdef MNG_SUPPORT_WRITE
  784. mng_retcode MNG_DECL mng_set_zlib_strategy (mng_handle hHandle,
  785. mng_int32 iZstrategy)
  786. {
  787. #ifdef MNG_SUPPORT_TRACE
  788. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_STRATEGY, MNG_LC_START);
  789. #endif
  790. MNG_VALIDHANDLE (hHandle)
  791. ((mng_datap)hHandle)->iZstrategy = iZstrategy;
  792. #ifdef MNG_SUPPORT_TRACE
  793. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_STRATEGY, MNG_LC_END);
  794. #endif
  795. return MNG_NOERROR;
  796. }
  797. #endif /* MNG_SUPPORT_WRITE */
  798. #endif /* MNG_ACCESS_ZLIB */
  799. #endif /* MNG_INCLUDE_ZLIB */
  800. /* ************************************************************************** */
  801. #ifdef MNG_INCLUDE_ZLIB
  802. #ifdef MNG_ACCESS_ZLIB
  803. #ifdef MNG_SUPPORT_WRITE
  804. mng_retcode MNG_DECL mng_set_zlib_maxidat (mng_handle hHandle,
  805. mng_uint32 iMaxIDAT)
  806. {
  807. #ifdef MNG_SUPPORT_TRACE
  808. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_MAXIDAT, MNG_LC_START);
  809. #endif
  810. MNG_VALIDHANDLE (hHandle)
  811. ((mng_datap)hHandle)->iMaxIDAT = iMaxIDAT;
  812. #ifdef MNG_SUPPORT_TRACE
  813. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_ZLIB_MAXIDAT, MNG_LC_END);
  814. #endif
  815. return MNG_NOERROR;
  816. }
  817. #endif /* MNG_SUPPORT_WRITE */
  818. #endif /* MNG_ACCESS_ZLIB */
  819. #endif /* MNG_INCLUDE_ZLIB */
  820. /* ************************************************************************** */
  821. #ifdef MNG_INCLUDE_JNG
  822. #ifdef MNG_ACCESS_JPEG
  823. #ifdef MNG_SUPPORT_WRITE
  824. mng_retcode MNG_DECL mng_set_jpeg_dctmethod (mng_handle hHandle,
  825. mngjpeg_dctmethod eJPEGdctmethod)
  826. {
  827. #ifdef MNG_SUPPORT_TRACE
  828. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_DCTMETHOD, MNG_LC_START);
  829. #endif
  830. MNG_VALIDHANDLE (hHandle)
  831. ((mng_datap)hHandle)->eJPEGdctmethod = eJPEGdctmethod;
  832. #ifdef MNG_SUPPORT_TRACE
  833. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_DCTMETHOD, MNG_LC_END);
  834. #endif
  835. return MNG_NOERROR;
  836. }
  837. #endif MNG_SUPPORT_WRITE
  838. #endif /* MNG_ACCESS_JPEG */
  839. #endif /* MNG_INCLUDE_JNG */
  840. /* ************************************************************************** */
  841. #ifdef MNG_INCLUDE_JNG
  842. #ifdef MNG_ACCESS_JPEG
  843. #ifdef MNG_SUPPORT_WRITE
  844. mng_retcode MNG_DECL mng_set_jpeg_quality (mng_handle hHandle,
  845. mng_int32 iJPEGquality)
  846. {
  847. #ifdef MNG_SUPPORT_TRACE
  848. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_QUALITY, MNG_LC_START);
  849. #endif
  850. MNG_VALIDHANDLE (hHandle)
  851. ((mng_datap)hHandle)->iJPEGquality = iJPEGquality;
  852. #ifdef MNG_SUPPORT_TRACE
  853. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_QUALITY, MNG_LC_END);
  854. #endif
  855. return MNG_NOERROR;
  856. }
  857. #endif /* MNG_SUPPORT_WRITE */
  858. #endif /* MNG_ACCESS_JPEG */
  859. #endif /* MNG_INCLUDE_JNG */
  860. /* ************************************************************************** */
  861. #ifdef MNG_INCLUDE_JNG
  862. #ifdef MNG_ACCESS_JPEG
  863. #ifdef MNG_SUPPORT_WRITE
  864. mng_retcode MNG_DECL mng_set_jpeg_smoothing (mng_handle hHandle,
  865. mng_int32 iJPEGsmoothing)
  866. {
  867. #ifdef MNG_SUPPORT_TRACE
  868. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_SMOOTHING, MNG_LC_START);
  869. #endif
  870. MNG_VALIDHANDLE (hHandle)
  871. ((mng_datap)hHandle)->iJPEGsmoothing = iJPEGsmoothing;
  872. #ifdef MNG_SUPPORT_TRACE
  873. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_SMOOTHING, MNG_LC_END);
  874. #endif
  875. return MNG_NOERROR;
  876. }
  877. #endif /* MNG_SUPPORT_WRITE */
  878. #endif /* MNG_ACCESS_JPEG */
  879. #endif /* MNG_INCLUDE_JNG */
  880. /* ************************************************************************** */
  881. #ifdef MNG_INCLUDE_JNG
  882. #ifdef MNG_ACCESS_JPEG
  883. #ifdef MNG_SUPPORT_WRITE
  884. mng_retcode MNG_DECL mng_set_jpeg_progressive (mng_handle hHandle,
  885. mng_bool bJPEGprogressive)
  886. {
  887. #ifdef MNG_SUPPORT_TRACE
  888. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_PROGRESSIVE, MNG_LC_START);
  889. #endif
  890. MNG_VALIDHANDLE (hHandle)
  891. ((mng_datap)hHandle)->bJPEGcompressprogr = bJPEGprogressive;
  892. #ifdef MNG_SUPPORT_TRACE
  893. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_PROGRESSIVE, MNG_LC_END);
  894. #endif
  895. return MNG_NOERROR;
  896. }
  897. #endif /* MNG_SUPPORT_WRITE */
  898. #endif /* MNG_ACCESS_JPEG */
  899. #endif /* MNG_INCLUDE_JNG */
  900. /* ************************************************************************** */
  901. #ifdef MNG_INCLUDE_JNG
  902. #ifdef MNG_ACCESS_JPEG
  903. #ifdef MNG_SUPPORT_WRITE
  904. mng_retcode MNG_DECL mng_set_jpeg_optimized (mng_handle hHandle,
  905. mng_bool bJPEGoptimized)
  906. {
  907. #ifdef MNG_SUPPORT_TRACE
  908. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_OPTIMIZED, MNG_LC_START);
  909. #endif
  910. MNG_VALIDHANDLE (hHandle)
  911. ((mng_datap)hHandle)->bJPEGcompressopt = bJPEGoptimized;
  912. #ifdef MNG_SUPPORT_TRACE
  913. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_OPTIMIZED, MNG_LC_END);
  914. #endif
  915. return MNG_NOERROR;
  916. }
  917. #endif /* MNG_SUPPORT_WRITE */
  918. #endif /* MNG_ACCESS_JPEG */
  919. #endif /* MNG_INCLUDE_JNG */
  920. /* ************************************************************************** */
  921. #ifdef MNG_INCLUDE_JNG
  922. #ifdef MNG_ACCESS_JPEG
  923. #ifdef MNG_SUPPORT_WRITE
  924. mng_retcode MNG_DECL mng_set_jpeg_maxjdat (mng_handle hHandle,
  925. mng_uint32 iMaxJDAT)
  926. {
  927. #ifdef MNG_SUPPORT_TRACE
  928. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_MAXJDAT, MNG_LC_START);
  929. #endif
  930. MNG_VALIDHANDLE (hHandle)
  931. ((mng_datap)hHandle)->iMaxJDAT = iMaxJDAT;
  932. #ifdef MNG_SUPPORT_TRACE
  933. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_JPEG_MAXJDAT, MNG_LC_END);
  934. #endif
  935. return MNG_NOERROR;
  936. }
  937. #endif /* MNG_SUPPORT_WRITE */
  938. #endif /* MNG_ACCESS_JPEG */
  939. #endif /* MNG_INCLUDE_JNG */
  940. /* ************************************************************************** */
  941. #ifdef MNG_SUPPORT_READ
  942. mng_retcode MNG_DECL mng_set_suspensionmode (mng_handle hHandle,
  943. mng_bool bSuspensionmode)
  944. {
  945. #ifdef MNG_SUPPORT_TRACE
  946. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SUSPENSIONMODE, MNG_LC_START);
  947. #endif
  948. MNG_VALIDHANDLE (hHandle)
  949. if (((mng_datap)hHandle)->bReading) /* we must NOT be reading !!! */
  950. MNG_ERROR ((mng_datap)hHandle, MNG_FUNCTIONINVALID);
  951. ((mng_datap)hHandle)->bSuspensionmode = bSuspensionmode;
  952. #ifdef MNG_SUPPORT_TRACE
  953. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SUSPENSIONMODE, MNG_LC_END);
  954. #endif
  955. return MNG_NOERROR;
  956. }
  957. #endif /* MNG_SUPPORT_READ */
  958. /* ************************************************************************** */
  959. #ifdef MNG_SUPPORT_DISPLAY
  960. mng_retcode MNG_DECL mng_set_speed (mng_handle hHandle,
  961. mng_speedtype iSpeed)
  962. {
  963. #ifdef MNG_SUPPORT_TRACE
  964. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SPEED, MNG_LC_START);
  965. #endif
  966. MNG_VALIDHANDLE (hHandle)
  967. ((mng_datap)hHandle)->iSpeed = iSpeed;
  968. #ifdef MNG_SUPPORT_TRACE
  969. MNG_TRACE (((mng_datap)hHandle), MNG_FN_SET_SPEED, MNG_LC_END);
  970. #endif
  971. return MNG_NOERROR;
  972. }
  973. #endif /* MNG_SUPPORT_DISPLAY */
  974. /* ************************************************************************** */
  975. /* * * */
  976. /* * Property get functions * */
  977. /* * * */
  978. /* ************************************************************************** */
  979. mng_ptr MNG_DECL mng_get_userdata (mng_handle hHandle)
  980. { /* no tracing in here to prevent recursive calls */
  981. MNG_VALIDHANDLEX (hHandle)
  982. return ((mng_datap)hHandle)->pUserdata;
  983. }
  984. /* ************************************************************************** */
  985. mng_imgtype MNG_DECL mng_get_sigtype (mng_handle hHandle)
  986. {
  987. #ifdef MNG_SUPPORT_TRACE
  988. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_SIGTYPE, MNG_LC_START);
  989. #endif
  990. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  991. return mng_it_unknown;
  992. #ifdef MNG_SUPPORT_TRACE
  993. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_SIGTYPE, MNG_LC_END);
  994. #endif
  995. return ((mng_datap)hHandle)->eSigtype;
  996. }
  997. /* ************************************************************************** */
  998. mng_imgtype MNG_DECL mng_get_imagetype (mng_handle hHandle)
  999. {
  1000. #ifdef MNG_SUPPORT_TRACE
  1001. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_IMAGETYPE, MNG_LC_START);
  1002. #endif
  1003. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1004. return mng_it_unknown;
  1005. #ifdef MNG_SUPPORT_TRACE
  1006. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_IMAGETYPE, MNG_LC_END);
  1007. #endif
  1008. return ((mng_datap)hHandle)->eImagetype;
  1009. }
  1010. /* ************************************************************************** */
  1011. mng_uint32 MNG_DECL mng_get_imagewidth (mng_handle hHandle)
  1012. {
  1013. #ifdef MNG_SUPPORT_TRACE
  1014. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_IMAGEWIDTH, MNG_LC_START);
  1015. #endif
  1016. MNG_VALIDHANDLEX (hHandle)
  1017. #ifdef MNG_SUPPORT_TRACE
  1018. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_IMAGEWIDTH, MNG_LC_END);
  1019. #endif
  1020. return ((mng_datap)hHandle)->iWidth;
  1021. }
  1022. /* ************************************************************************** */
  1023. mng_uint32 MNG_DECL mng_get_imageheight (mng_handle hHandle)
  1024. {
  1025. #ifdef MNG_SUPPORT_TRACE
  1026. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_IMAGEWIDTH, MNG_LC_START);
  1027. #endif
  1028. MNG_VALIDHANDLEX (hHandle)
  1029. #ifdef MNG_SUPPORT_TRACE
  1030. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_IMAGEHEIGHT, MNG_LC_END);
  1031. #endif
  1032. return ((mng_datap)hHandle)->iHeight;
  1033. }
  1034. /* ************************************************************************** */
  1035. mng_uint32 MNG_DECL mng_get_ticks (mng_handle hHandle)
  1036. {
  1037. #ifdef MNG_SUPPORT_TRACE
  1038. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_TICKS, MNG_LC_START);
  1039. #endif
  1040. MNG_VALIDHANDLEX (hHandle)
  1041. #ifdef MNG_SUPPORT_TRACE
  1042. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_TICKS, MNG_LC_END);
  1043. #endif
  1044. return ((mng_datap)hHandle)->iTicks;
  1045. }
  1046. /* ************************************************************************** */
  1047. mng_uint32 MNG_DECL mng_get_framecount (mng_handle hHandle)
  1048. {
  1049. #ifdef MNG_SUPPORT_TRACE
  1050. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_FRAMECOUNT, MNG_LC_START);
  1051. #endif
  1052. MNG_VALIDHANDLEX (hHandle)
  1053. #ifdef MNG_SUPPORT_TRACE
  1054. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_FRAMECOUNT, MNG_LC_END);
  1055. #endif
  1056. return ((mng_datap)hHandle)->iFramecount;
  1057. }
  1058. /* ************************************************************************** */
  1059. mng_uint32 MNG_DECL mng_get_layercount (mng_handle hHandle)
  1060. {
  1061. #ifdef MNG_SUPPORT_TRACE
  1062. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_LAYERCOUNT, MNG_LC_START);
  1063. #endif
  1064. MNG_VALIDHANDLEX (hHandle)
  1065. #ifdef MNG_SUPPORT_TRACE
  1066. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_LAYERCOUNT, MNG_LC_END);
  1067. #endif
  1068. return ((mng_datap)hHandle)->iLayercount;
  1069. }
  1070. /* ************************************************************************** */
  1071. mng_uint32 MNG_DECL mng_get_playtime (mng_handle hHandle)
  1072. {
  1073. #ifdef MNG_SUPPORT_TRACE
  1074. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_PLAYTIME, MNG_LC_START);
  1075. #endif
  1076. MNG_VALIDHANDLEX (hHandle)
  1077. #ifdef MNG_SUPPORT_TRACE
  1078. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_PLAYTIME, MNG_LC_END);
  1079. #endif
  1080. return ((mng_datap)hHandle)->iPlaytime;
  1081. }
  1082. /* ************************************************************************** */
  1083. mng_uint32 MNG_DECL mng_get_simplicity (mng_handle hHandle)
  1084. {
  1085. #ifdef MNG_SUPPORT_TRACE
  1086. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_SIMPLICITY, MNG_LC_START);
  1087. #endif
  1088. MNG_VALIDHANDLEX (hHandle)
  1089. #ifdef MNG_SUPPORT_TRACE
  1090. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_SIMPLICITY, MNG_LC_END);
  1091. #endif
  1092. return ((mng_datap)hHandle)->iSimplicity;
  1093. }
  1094. /* ************************************************************************** */
  1095. mng_uint8 MNG_DECL mng_get_bitdepth (mng_handle hHandle)
  1096. {
  1097. mng_uint8 iRslt;
  1098. #ifdef MNG_SUPPORT_TRACE
  1099. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_BITDEPTH, MNG_LC_START);
  1100. #endif
  1101. MNG_VALIDHANDLEX (hHandle)
  1102. if (((mng_datap)hHandle)->eImagetype == mng_it_png)
  1103. iRslt = ((mng_datap)hHandle)->iBitdepth;
  1104. else
  1105. #ifdef MNG_INCLUDE_JNG
  1106. if (((mng_datap)hHandle)->eImagetype == mng_it_jng)
  1107. iRslt = ((mng_datap)hHandle)->iJHDRimgbitdepth;
  1108. else
  1109. #endif
  1110. iRslt = 0;
  1111. #ifdef MNG_SUPPORT_TRACE
  1112. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_BITDEPTH, MNG_LC_END);
  1113. #endif
  1114. return iRslt;
  1115. }
  1116. /* ************************************************************************** */
  1117. mng_uint8 MNG_DECL mng_get_colortype (mng_handle hHandle)
  1118. {
  1119. mng_uint8 iRslt;
  1120. #ifdef MNG_SUPPORT_TRACE
  1121. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_COLORTYPE, MNG_LC_START);
  1122. #endif
  1123. MNG_VALIDHANDLEX (hHandle)
  1124. if (((mng_datap)hHandle)->eImagetype == mng_it_png)
  1125. iRslt = ((mng_datap)hHandle)->iColortype;
  1126. else
  1127. #ifdef MNG_INCLUDE_JNG
  1128. if (((mng_datap)hHandle)->eImagetype == mng_it_jng)
  1129. iRslt = ((mng_datap)hHandle)->iJHDRcolortype;
  1130. else
  1131. #endif
  1132. iRslt = 0;
  1133. #ifdef MNG_SUPPORT_TRACE
  1134. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_COLORTYPE, MNG_LC_END);
  1135. #endif
  1136. return iRslt;
  1137. }
  1138. /* ************************************************************************** */
  1139. mng_uint8 MNG_DECL mng_get_compression (mng_handle hHandle)
  1140. {
  1141. mng_uint8 iRslt;
  1142. #ifdef MNG_SUPPORT_TRACE
  1143. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_COMPRESSION, MNG_LC_START);
  1144. #endif
  1145. MNG_VALIDHANDLEX (hHandle)
  1146. if (((mng_datap)hHandle)->eImagetype == mng_it_png)
  1147. iRslt = ((mng_datap)hHandle)->iCompression;
  1148. else
  1149. #ifdef MNG_INCLUDE_JNG
  1150. if (((mng_datap)hHandle)->eImagetype == mng_it_jng)
  1151. iRslt = ((mng_datap)hHandle)->iJHDRimgcompression;
  1152. else
  1153. #endif
  1154. iRslt = 0;
  1155. #ifdef MNG_SUPPORT_TRACE
  1156. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_COMPRESSION, MNG_LC_END);
  1157. #endif
  1158. return iRslt;
  1159. }
  1160. /* ************************************************************************** */
  1161. mng_uint8 MNG_DECL mng_get_filter (mng_handle hHandle)
  1162. {
  1163. mng_uint8 iRslt;
  1164. #ifdef MNG_SUPPORT_TRACE
  1165. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_FILTER, MNG_LC_START);
  1166. #endif
  1167. MNG_VALIDHANDLEX (hHandle)
  1168. if (((mng_datap)hHandle)->eImagetype == mng_it_png)
  1169. iRslt = ((mng_datap)hHandle)->iFilter;
  1170. else
  1171. iRslt = 0;
  1172. #ifdef MNG_SUPPORT_TRACE
  1173. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_FILTER, MNG_LC_END);
  1174. #endif
  1175. return iRslt;
  1176. }
  1177. /* ************************************************************************** */
  1178. mng_uint8 MNG_DECL mng_get_interlace (mng_handle hHandle)
  1179. {
  1180. mng_uint8 iRslt;
  1181. #ifdef MNG_SUPPORT_TRACE
  1182. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_INTERLACE, MNG_LC_START);
  1183. #endif
  1184. MNG_VALIDHANDLEX (hHandle)
  1185. if (((mng_datap)hHandle)->eImagetype == mng_it_png)
  1186. iRslt = ((mng_datap)hHandle)->iInterlace;
  1187. else
  1188. #ifdef MNG_INCLUDE_JNG
  1189. if (((mng_datap)hHandle)->eImagetype == mng_it_jng)
  1190. iRslt = ((mng_datap)hHandle)->iJHDRimginterlace;
  1191. else
  1192. #endif
  1193. iRslt = 0;
  1194. #ifdef MNG_SUPPORT_TRACE
  1195. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_INTERLACE, MNG_LC_END);
  1196. #endif
  1197. return iRslt;
  1198. }
  1199. /* ************************************************************************** */
  1200. mng_uint8 MNG_DECL mng_get_alphabitdepth (mng_handle hHandle)
  1201. {
  1202. mng_uint8 iRslt;
  1203. #ifdef MNG_SUPPORT_TRACE
  1204. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHABITDEPTH, MNG_LC_START);
  1205. #endif
  1206. MNG_VALIDHANDLEX (hHandle)
  1207. #ifdef MNG_INCLUDE_JNG
  1208. if (((mng_datap)hHandle)->eImagetype == mng_it_jng)
  1209. iRslt = ((mng_datap)hHandle)->iJHDRalphabitdepth;
  1210. else
  1211. #endif
  1212. iRslt = 0;
  1213. #ifdef MNG_SUPPORT_TRACE
  1214. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHABITDEPTH, MNG_LC_END);
  1215. #endif
  1216. return iRslt;
  1217. }
  1218. /* ************************************************************************** */
  1219. #ifdef MNG_SUPPORT_DISPLAY
  1220. mng_uint8 MNG_DECL mng_get_refreshpass (mng_handle hHandle)
  1221. {
  1222. mng_uint8 iRslt;
  1223. mng_datap pData;
  1224. #ifdef MNG_SUPPORT_TRACE
  1225. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_REFRESHPASS, MNG_LC_START);
  1226. #endif
  1227. MNG_VALIDHANDLEX (hHandle)
  1228. pData = (mng_datap)hHandle;
  1229. /* for PNG we know the exact pass */
  1230. if ((pData->eImagetype == mng_it_png) && (pData->iPass >= 0))
  1231. iRslt = pData->iPass;
  1232. #ifdef MNG_INCLUDE_JNG
  1233. else /* for JNG we'll fake it... */
  1234. if ((pData->eImagetype == mng_it_jng) &&
  1235. (pData->bJPEGhasheader) && (pData->bJPEGdecostarted) &&
  1236. (pData->bJPEGprogressive))
  1237. {
  1238. if (pData->pJPEGdinfo->input_scan_number <= 1)
  1239. iRslt = 0; /* first pass (I think...) */
  1240. else
  1241. if (jpeg_input_complete (pData->pJPEGdinfo))
  1242. iRslt = 7; /* input complete; aka final pass */
  1243. else
  1244. iRslt = 3; /* anything between 0 and 7 will do */
  1245. }
  1246. #endif
  1247. else
  1248. iRslt = 0;
  1249. #ifdef MNG_SUPPORT_TRACE
  1250. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_REFRESHPASS, MNG_LC_END);
  1251. #endif
  1252. return iRslt;
  1253. }
  1254. #endif /* MNG_SUPPORT_DISPLAY */
  1255. /* ************************************************************************** */
  1256. mng_uint8 MNG_DECL mng_get_alphacompression (mng_handle hHandle)
  1257. {
  1258. mng_uint8 iRslt;
  1259. #ifdef MNG_SUPPORT_TRACE
  1260. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHACOMPRESSION, MNG_LC_START);
  1261. #endif
  1262. MNG_VALIDHANDLEX (hHandle)
  1263. #ifdef MNG_INCLUDE_JNG
  1264. if (((mng_datap)hHandle)->eImagetype == mng_it_jng)
  1265. iRslt = ((mng_datap)hHandle)->iJHDRalphacompression;
  1266. else
  1267. #endif
  1268. iRslt = 0;
  1269. #ifdef MNG_SUPPORT_TRACE
  1270. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHACOMPRESSION, MNG_LC_END);
  1271. #endif
  1272. return iRslt;
  1273. }
  1274. /* ************************************************************************** */
  1275. mng_uint8 MNG_DECL mng_get_alphafilter (mng_handle hHandle)
  1276. {
  1277. mng_uint8 iRslt;
  1278. #ifdef MNG_SUPPORT_TRACE
  1279. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHAFILTER, MNG_LC_START);
  1280. #endif
  1281. MNG_VALIDHANDLEX (hHandle)
  1282. #ifdef MNG_INCLUDE_JNG
  1283. if (((mng_datap)hHandle)->eImagetype == mng_it_jng)
  1284. iRslt = ((mng_datap)hHandle)->iJHDRalphafilter;
  1285. else
  1286. #endif
  1287. iRslt = 0;
  1288. #ifdef MNG_SUPPORT_TRACE
  1289. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHAFILTER, MNG_LC_END);
  1290. #endif
  1291. return iRslt;
  1292. }
  1293. /* ************************************************************************** */
  1294. mng_uint8 MNG_DECL mng_get_alphainterlace (mng_handle hHandle)
  1295. {
  1296. mng_uint8 iRslt;
  1297. #ifdef MNG_SUPPORT_TRACE
  1298. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHAINTERLACE, MNG_LC_START);
  1299. #endif
  1300. MNG_VALIDHANDLEX (hHandle)
  1301. #ifdef MNG_INCLUDE_JNG
  1302. if (((mng_datap)hHandle)->eImagetype == mng_it_jng)
  1303. iRslt = ((mng_datap)hHandle)->iJHDRalphainterlace;
  1304. else
  1305. #endif
  1306. iRslt = 0;
  1307. #ifdef MNG_SUPPORT_TRACE
  1308. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHAINTERLACE, MNG_LC_END);
  1309. #endif
  1310. return iRslt;
  1311. }
  1312. /* ************************************************************************** */
  1313. mng_uint8 MNG_DECL mng_get_alphadepth (mng_handle hHandle)
  1314. {
  1315. #ifdef MNG_SUPPORT_TRACE
  1316. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHADEPTH, MNG_LC_START);
  1317. #endif
  1318. MNG_VALIDHANDLEX (hHandle)
  1319. #ifdef MNG_SUPPORT_TRACE
  1320. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ALPHADEPTH, MNG_LC_END);
  1321. #endif
  1322. return ((mng_datap)hHandle)->iAlphadepth;
  1323. }
  1324. /* ************************************************************************** */
  1325. mng_uint32 MNG_DECL mng_get_canvasstyle (mng_handle hHandle)
  1326. {
  1327. #ifdef MNG_SUPPORT_TRACE
  1328. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CANVASSTYLE, MNG_LC_START);
  1329. #endif
  1330. MNG_VALIDHANDLEX (hHandle)
  1331. #ifdef MNG_SUPPORT_TRACE
  1332. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CANVASSTYLE, MNG_LC_END);
  1333. #endif
  1334. return ((mng_datap)hHandle)->iCanvasstyle;
  1335. }
  1336. /* ************************************************************************** */
  1337. mng_uint32 MNG_DECL mng_get_bkgdstyle (mng_handle hHandle)
  1338. {
  1339. #ifdef MNG_SUPPORT_TRACE
  1340. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_BKGDSTYLE, MNG_LC_START);
  1341. #endif
  1342. MNG_VALIDHANDLEX (hHandle)
  1343. #ifdef MNG_SUPPORT_TRACE
  1344. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_BKGDSTYLE, MNG_LC_END);
  1345. #endif
  1346. return ((mng_datap)hHandle)->iBkgdstyle;
  1347. }
  1348. /* ************************************************************************** */
  1349. mng_retcode MNG_DECL mng_get_bgcolor (mng_handle hHandle,
  1350. mng_uint16* iRed,
  1351. mng_uint16* iGreen,
  1352. mng_uint16* iBlue)
  1353. {
  1354. #ifdef MNG_SUPPORT_TRACE
  1355. MNG_TRACE (((mng_datap)hHandle), MNG_FN_GET_BGCOLOR, MNG_LC_START);
  1356. #endif
  1357. MNG_VALIDHANDLE (hHandle)
  1358. *iRed = ((mng_datap)hHandle)->iBGred;
  1359. *iGreen = ((mng_datap)hHandle)->iBGgreen;
  1360. *iBlue = ((mng_datap)hHandle)->iBGblue;
  1361. #ifdef MNG_SUPPORT_TRACE
  1362. MNG_TRACE (((mng_datap)hHandle), MNG_FN_GET_BGCOLOR, MNG_LC_END);
  1363. #endif
  1364. return MNG_NOERROR;
  1365. }
  1366. /* ************************************************************************** */
  1367. mng_bool MNG_DECL mng_get_usebkgd (mng_handle hHandle)
  1368. {
  1369. #ifdef MNG_SUPPORT_TRACE
  1370. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_USEBKGD, MNG_LC_START);
  1371. #endif
  1372. MNG_VALIDHANDLEX (hHandle)
  1373. #ifdef MNG_SUPPORT_TRACE
  1374. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_USEBKGD, MNG_LC_END);
  1375. #endif
  1376. return ((mng_datap)hHandle)->bUseBKGD;
  1377. }
  1378. /* ************************************************************************** */
  1379. mng_bool MNG_DECL mng_get_storechunks (mng_handle hHandle)
  1380. {
  1381. #ifdef MNG_SUPPORT_TRACE
  1382. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_STORECHUNKS, MNG_LC_START);
  1383. #endif
  1384. MNG_VALIDHANDLEX (hHandle)
  1385. #ifdef MNG_SUPPORT_TRACE
  1386. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_STORECHUNKS, MNG_LC_END);
  1387. #endif
  1388. return ((mng_datap)hHandle)->bStorechunks;
  1389. }
  1390. /* ************************************************************************** */
  1391. mng_bool MNG_DECL mng_get_sectionbreaks (mng_handle hHandle)
  1392. {
  1393. #ifdef MNG_SUPPORT_TRACE
  1394. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_SECTIONBREAKS, MNG_LC_START);
  1395. #endif
  1396. MNG_VALIDHANDLEX (hHandle)
  1397. #ifdef MNG_SUPPORT_TRACE
  1398. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_SECTIONBREAKS, MNG_LC_END);
  1399. #endif
  1400. return ((mng_datap)hHandle)->bSectionbreaks;
  1401. }
  1402. /* ************************************************************************** */
  1403. mng_bool MNG_DECL mng_get_cacheplayback (mng_handle hHandle)
  1404. {
  1405. #ifdef MNG_SUPPORT_TRACE
  1406. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_CACHEPLAYBACK, MNG_LC_START);
  1407. #endif
  1408. MNG_VALIDHANDLEX (hHandle)
  1409. #ifdef MNG_SUPPORT_TRACE
  1410. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_CACHEPLAYBACK, MNG_LC_END);
  1411. #endif
  1412. return ((mng_datap)hHandle)->bCacheplayback;
  1413. }
  1414. /* ************************************************************************** */
  1415. mng_bool MNG_DECL mng_get_doprogressive (mng_handle hHandle)
  1416. {
  1417. #ifdef MNG_SUPPORT_TRACE
  1418. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_DOPROGRESSIVE, MNG_LC_START);
  1419. #endif
  1420. MNG_VALIDHANDLEX (hHandle)
  1421. #ifdef MNG_SUPPORT_TRACE
  1422. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_DOPROGRESSIVE, MNG_LC_END);
  1423. #endif
  1424. return ((mng_datap)hHandle)->bDoProgressive;
  1425. }
  1426. /* ************************************************************************** */
  1427. mng_uint32 MNG_DECL mng_get_crcmode (mng_handle hHandle)
  1428. {
  1429. #ifdef MNG_SUPPORT_TRACE
  1430. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_CRCMODE, MNG_LC_START);
  1431. #endif
  1432. MNG_VALIDHANDLEX (hHandle)
  1433. #ifdef MNG_SUPPORT_TRACE
  1434. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_CRCMODE, MNG_LC_END);
  1435. #endif
  1436. return ((mng_datap)hHandle)->iCrcmode;
  1437. }
  1438. /* ************************************************************************** */
  1439. #ifdef MNG_SUPPORT_DISPLAY
  1440. mng_bool MNG_DECL mng_get_srgb (mng_handle hHandle)
  1441. {
  1442. #ifdef MNG_SUPPORT_TRACE
  1443. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_SRGB, MNG_LC_START);
  1444. #endif
  1445. MNG_VALIDHANDLEX (hHandle)
  1446. #ifdef MNG_SUPPORT_TRACE
  1447. MNG_TRACEB (((mng_datap)hHandle), MNG_FN_GET_SRGB, MNG_LC_END);
  1448. #endif
  1449. return ((mng_datap)hHandle)->bIssRGB;
  1450. }
  1451. #endif /* MNG_SUPPORT_DISPLAY */
  1452. /* ************************************************************************** */
  1453. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
  1454. mng_float MNG_DECL mng_get_viewgamma (mng_handle hHandle)
  1455. {
  1456. #ifdef MNG_SUPPORT_TRACE
  1457. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_VIEWGAMMA, MNG_LC_START);
  1458. #endif
  1459. MNG_VALIDHANDLEX (hHandle)
  1460. #ifdef MNG_SUPPORT_TRACE
  1461. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_VIEWGAMMA, MNG_LC_END);
  1462. #endif
  1463. return ((mng_datap)hHandle)->dViewgamma;
  1464. }
  1465. #endif
  1466. /* ************************************************************************** */
  1467. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
  1468. mng_float MNG_DECL mng_get_displaygamma (mng_handle hHandle)
  1469. {
  1470. #ifdef MNG_SUPPORT_TRACE
  1471. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_DISPLAYGAMMA, MNG_LC_START);
  1472. #endif
  1473. MNG_VALIDHANDLEX (hHandle)
  1474. #ifdef MNG_SUPPORT_TRACE
  1475. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_DISPLAYGAMMA, MNG_LC_END);
  1476. #endif
  1477. return ((mng_datap)hHandle)->dDisplaygamma;
  1478. }
  1479. #endif
  1480. /* ************************************************************************** */
  1481. #ifndef MNG_NO_DFLT_INFO
  1482. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
  1483. mng_float MNG_DECL mng_get_dfltimggamma (mng_handle hHandle)
  1484. {
  1485. #ifdef MNG_SUPPORT_TRACE
  1486. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_DFLTIMGGAMMA, MNG_LC_START);
  1487. #endif
  1488. MNG_VALIDHANDLEX (hHandle)
  1489. #ifdef MNG_SUPPORT_TRACE
  1490. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_DFLTIMGGAMMA, MNG_LC_END);
  1491. #endif
  1492. return ((mng_datap)hHandle)->dDfltimggamma;
  1493. }
  1494. #endif
  1495. #endif
  1496. /* ************************************************************************** */
  1497. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
  1498. mng_uint32 MNG_DECL mng_get_viewgammaint (mng_handle hHandle)
  1499. {
  1500. #ifdef MNG_SUPPORT_TRACE
  1501. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_VIEWGAMMA, MNG_LC_START);
  1502. #endif
  1503. MNG_VALIDHANDLEX (hHandle)
  1504. #ifdef MNG_SUPPORT_TRACE
  1505. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_VIEWGAMMA, MNG_LC_END);
  1506. #endif
  1507. return (mng_uint32)(((mng_datap)hHandle)->dViewgamma * 100000);
  1508. }
  1509. #endif
  1510. /* ************************************************************************** */
  1511. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
  1512. mng_uint32 MNG_DECL mng_get_displaygammaint (mng_handle hHandle)
  1513. {
  1514. #ifdef MNG_SUPPORT_TRACE
  1515. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_DISPLAYGAMMA, MNG_LC_START);
  1516. #endif
  1517. MNG_VALIDHANDLEX (hHandle)
  1518. #ifdef MNG_SUPPORT_TRACE
  1519. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_DISPLAYGAMMA, MNG_LC_END);
  1520. #endif
  1521. return (mng_uint32)(((mng_datap)hHandle)->dDisplaygamma * 100000);
  1522. }
  1523. #endif
  1524. /* ************************************************************************** */
  1525. #ifndef MNG_NO_DFLT_INFO
  1526. #if defined(MNG_FULL_CMS) || defined(MNG_GAMMA_ONLY) || defined(MNG_APP_CMS)
  1527. mng_uint32 MNG_DECL mng_get_dfltimggammaint (mng_handle hHandle)
  1528. {
  1529. #ifdef MNG_SUPPORT_TRACE
  1530. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_DFLTIMGGAMMA, MNG_LC_START);
  1531. #endif
  1532. MNG_VALIDHANDLEX (hHandle)
  1533. #ifdef MNG_SUPPORT_TRACE
  1534. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_DFLTIMGGAMMA, MNG_LC_END);
  1535. #endif
  1536. return (mng_uint32)(((mng_datap)hHandle)->dDfltimggamma * 100000);
  1537. }
  1538. #endif
  1539. #endif
  1540. /* ************************************************************************** */
  1541. #ifndef MNG_SKIP_MAXCANVAS
  1542. mng_uint32 MNG_DECL mng_get_maxcanvaswidth (mng_handle hHandle)
  1543. {
  1544. #ifdef MNG_SUPPORT_TRACE
  1545. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_MAXCANVASWIDTH, MNG_LC_START);
  1546. #endif
  1547. MNG_VALIDHANDLEX (hHandle)
  1548. #ifdef MNG_SUPPORT_TRACE
  1549. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_MAXCANVASWIDTH, MNG_LC_END);
  1550. #endif
  1551. return ((mng_datap)hHandle)->iMaxwidth;
  1552. }
  1553. /* ************************************************************************** */
  1554. mng_uint32 MNG_DECL mng_get_maxcanvasheight (mng_handle hHandle)
  1555. {
  1556. #ifdef MNG_SUPPORT_TRACE
  1557. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_MAXCANVASHEIGHT, MNG_LC_START);
  1558. #endif
  1559. MNG_VALIDHANDLEX (hHandle)
  1560. #ifdef MNG_SUPPORT_TRACE
  1561. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_MAXCANVASHEIGHT, MNG_LC_END);
  1562. #endif
  1563. return ((mng_datap)hHandle)->iMaxheight;
  1564. }
  1565. #endif
  1566. /* ************************************************************************** */
  1567. #ifdef MNG_INCLUDE_ZLIB
  1568. #ifdef MNG_ACCESS_ZLIB
  1569. mng_int32 MNG_DECL mng_get_zlib_level (mng_handle hHandle)
  1570. {
  1571. #ifdef MNG_SUPPORT_TRACE
  1572. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_LEVEL, MNG_LC_START);
  1573. #endif
  1574. MNG_VALIDHANDLEX (hHandle)
  1575. #ifdef MNG_SUPPORT_TRACE
  1576. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_LEVEL, MNG_LC_END);
  1577. #endif
  1578. return ((mng_datap)hHandle)->iZlevel;
  1579. }
  1580. #endif /* MNG_ACCESS_ZLIB */
  1581. #endif /* MNG_INCLUDE_ZLIB */
  1582. /* ************************************************************************** */
  1583. #ifdef MNG_INCLUDE_ZLIB
  1584. #ifdef MNG_ACCESS_ZLIB
  1585. mng_int32 MNG_DECL mng_get_zlib_method (mng_handle hHandle)
  1586. {
  1587. #ifdef MNG_SUPPORT_TRACE
  1588. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_METHOD, MNG_LC_START);
  1589. #endif
  1590. MNG_VALIDHANDLEX (hHandle)
  1591. #ifdef MNG_SUPPORT_TRACE
  1592. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_METHOD, MNG_LC_END);
  1593. #endif
  1594. return ((mng_datap)hHandle)->iZmethod;
  1595. }
  1596. #endif /* MNG_ACCESS_ZLIB */
  1597. #endif /* MNG_INCLUDE_ZLIB */
  1598. /* ************************************************************************** */
  1599. #ifdef MNG_INCLUDE_ZLIB
  1600. #ifdef MNG_ACCESS_ZLIB
  1601. mng_int32 MNG_DECL mng_get_zlib_windowbits (mng_handle hHandle)
  1602. {
  1603. #ifdef MNG_SUPPORT_TRACE
  1604. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_WINDOWBITS, MNG_LC_START);
  1605. #endif
  1606. MNG_VALIDHANDLEX (hHandle)
  1607. #ifdef MNG_SUPPORT_TRACE
  1608. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_WINDOWBITS, MNG_LC_END);
  1609. #endif
  1610. return ((mng_datap)hHandle)->iZwindowbits;
  1611. }
  1612. #endif /* MNG_ACCESS_ZLIB */
  1613. #endif /* MNG_INCLUDE_ZLIB */
  1614. /* ************************************************************************** */
  1615. #ifdef MNG_INCLUDE_ZLIB
  1616. #ifdef MNG_ACCESS_ZLIB
  1617. mng_int32 MNG_DECL mng_get_zlib_memlevel (mng_handle hHandle)
  1618. {
  1619. #ifdef MNG_SUPPORT_TRACE
  1620. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_MEMLEVEL, MNG_LC_START);
  1621. #endif
  1622. MNG_VALIDHANDLEX (hHandle)
  1623. #ifdef MNG_SUPPORT_TRACE
  1624. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_MEMLEVEL, MNG_LC_END);
  1625. #endif
  1626. return ((mng_datap)hHandle)->iZmemlevel;
  1627. }
  1628. #endif /* MNG_ACCESS_ZLIB */
  1629. #endif /* MNG_INCLUDE_ZLIB */
  1630. /* ************************************************************************** */
  1631. #ifdef MNG_INCLUDE_ZLIB
  1632. #ifdef MNG_ACCESS_ZLIB
  1633. mng_int32 MNG_DECL mng_get_zlib_strategy (mng_handle hHandle)
  1634. {
  1635. #ifdef MNG_SUPPORT_TRACE
  1636. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_STRATEGY, MNG_LC_START);
  1637. #endif
  1638. MNG_VALIDHANDLEX (hHandle)
  1639. #ifdef MNG_SUPPORT_TRACE
  1640. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_STRATEGY, MNG_LC_END);
  1641. #endif
  1642. return ((mng_datap)hHandle)->iZstrategy;
  1643. }
  1644. #endif /* MNG_ACCESS_ZLIB */
  1645. #endif /* MNG_INCLUDE_ZLIB */
  1646. /* ************************************************************************** */
  1647. #ifdef MNG_INCLUDE_ZLIB
  1648. #ifdef MNG_ACCESS_ZLIB
  1649. mng_uint32 MNG_DECL mng_get_zlib_maxidat (mng_handle hHandle)
  1650. {
  1651. #ifdef MNG_SUPPORT_TRACE
  1652. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_MAXIDAT, MNG_LC_START);
  1653. #endif
  1654. MNG_VALIDHANDLEX (hHandle)
  1655. #ifdef MNG_SUPPORT_TRACE
  1656. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_ZLIB_MAXIDAT, MNG_LC_END);
  1657. #endif
  1658. return ((mng_datap)hHandle)->iMaxIDAT;
  1659. }
  1660. #endif /* MNG_ACCESS_ZLIB */
  1661. #endif /* MNG_INCLUDE_ZLIB */
  1662. /* ************************************************************************** */
  1663. #ifdef MNG_INCLUDE_JNG
  1664. #ifdef MNG_ACCESS_JPEG
  1665. mngjpeg_dctmethod MNG_DECL mng_get_jpeg_dctmethod (mng_handle hHandle)
  1666. {
  1667. #ifdef MNG_SUPPORT_TRACE
  1668. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_DCTMETHOD, MNG_LC_START);
  1669. #endif
  1670. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1671. return JDCT_ISLOW;
  1672. #ifdef MNG_SUPPORT_TRACE
  1673. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_DCTMETHOD, MNG_LC_END);
  1674. #endif
  1675. return ((mng_datap)hHandle)->eJPEGdctmethod;
  1676. }
  1677. #endif /* MNG_ACCESS_JPEG */
  1678. #endif /* MNG_INCLUDE_JNG */
  1679. /* ************************************************************************** */
  1680. #ifdef MNG_INCLUDE_JNG
  1681. #ifdef MNG_ACCESS_JPEG
  1682. mng_int32 MNG_DECL mng_get_jpeg_quality (mng_handle hHandle)
  1683. {
  1684. #ifdef MNG_SUPPORT_TRACE
  1685. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_QUALITY, MNG_LC_START);
  1686. #endif
  1687. MNG_VALIDHANDLEX (hHandle)
  1688. #ifdef MNG_SUPPORT_TRACE
  1689. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_QUALITY, MNG_LC_END);
  1690. #endif
  1691. return ((mng_datap)hHandle)->iJPEGquality;
  1692. }
  1693. #endif /* MNG_ACCESS_JPEG */
  1694. #endif /* MNG_INCLUDE_JNG */
  1695. /* ************************************************************************** */
  1696. #ifdef MNG_INCLUDE_JNG
  1697. #ifdef MNG_ACCESS_JPEG
  1698. mng_int32 MNG_DECL mng_get_jpeg_smoothing (mng_handle hHandle)
  1699. {
  1700. #ifdef MNG_SUPPORT_TRACE
  1701. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_SMOOTHING, MNG_LC_START);
  1702. #endif
  1703. MNG_VALIDHANDLEX (hHandle)
  1704. #ifdef MNG_SUPPORT_TRACE
  1705. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_SMOOTHING, MNG_LC_END);
  1706. #endif
  1707. return ((mng_datap)hHandle)->iJPEGsmoothing;
  1708. }
  1709. #endif /* MNG_ACCESS_JPEG */
  1710. #endif /* MNG_INCLUDE_JNG */
  1711. /* ************************************************************************** */
  1712. #ifdef MNG_INCLUDE_JNG
  1713. #ifdef MNG_ACCESS_JPEG
  1714. mng_bool MNG_DECL mng_get_jpeg_progressive (mng_handle hHandle)
  1715. {
  1716. #ifdef MNG_SUPPORT_TRACE
  1717. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_PROGRESSIVE, MNG_LC_START);
  1718. #endif
  1719. MNG_VALIDHANDLEX (hHandle)
  1720. #ifdef MNG_SUPPORT_TRACE
  1721. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_PROGRESSIVE, MNG_LC_END);
  1722. #endif
  1723. return ((mng_datap)hHandle)->bJPEGcompressprogr;
  1724. }
  1725. #endif /* MNG_ACCESS_JPEG */
  1726. #endif /* MNG_INCLUDE_JNG */
  1727. /* ************************************************************************** */
  1728. #ifdef MNG_INCLUDE_JNG
  1729. #ifdef MNG_ACCESS_JPEG
  1730. mng_bool MNG_DECL mng_get_jpeg_optimized (mng_handle hHandle)
  1731. {
  1732. #ifdef MNG_SUPPORT_TRACE
  1733. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_OPTIMIZED, MNG_LC_START);
  1734. #endif
  1735. MNG_VALIDHANDLEX (hHandle)
  1736. #ifdef MNG_SUPPORT_TRACE
  1737. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_OPTIMIZED, MNG_LC_END);
  1738. #endif
  1739. return ((mng_datap)hHandle)->bJPEGcompressopt;
  1740. }
  1741. #endif /* MNG_ACCESS_JPEG */
  1742. #endif /* MNG_INCLUDE_JNG */
  1743. /* ************************************************************************** */
  1744. #ifdef MNG_INCLUDE_JNG
  1745. #ifdef MNG_ACCESS_JPEG
  1746. mng_uint32 MNG_DECL mng_get_jpeg_maxjdat (mng_handle hHandle)
  1747. {
  1748. #ifdef MNG_SUPPORT_TRACE
  1749. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_MAXJDAT, MNG_LC_START);
  1750. #endif
  1751. MNG_VALIDHANDLEX (hHandle)
  1752. #ifdef MNG_SUPPORT_TRACE
  1753. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_JPEG_MAXJDAT, MNG_LC_END);
  1754. #endif
  1755. return ((mng_datap)hHandle)->iMaxJDAT;
  1756. }
  1757. #endif /* MNG_ACCESS_JPEG */
  1758. #endif /* MNG_INCLUDE_JNG */
  1759. /* ************************************************************************** */
  1760. #ifdef MNG_SUPPORT_READ
  1761. mng_bool MNG_DECL mng_get_suspensionmode (mng_handle hHandle)
  1762. {
  1763. #ifdef MNG_SUPPORT_TRACE
  1764. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_SUSPENSIONMODE, MNG_LC_START);
  1765. #endif
  1766. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1767. return MNG_FALSE;
  1768. #ifdef MNG_SUPPORT_TRACE
  1769. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_SUSPENSIONMODE, MNG_LC_END);
  1770. #endif
  1771. return ((mng_datap)hHandle)->bSuspensionmode;
  1772. }
  1773. #endif /* MNG_SUPPORT_READ */
  1774. /* ************************************************************************** */
  1775. #ifdef MNG_SUPPORT_DISPLAY
  1776. mng_speedtype MNG_DECL mng_get_speed (mng_handle hHandle)
  1777. {
  1778. #ifdef MNG_SUPPORT_TRACE
  1779. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_SPEED, MNG_LC_START);
  1780. #endif
  1781. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1782. return mng_st_normal;
  1783. #ifdef MNG_SUPPORT_TRACE
  1784. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_SPEED, MNG_LC_END);
  1785. #endif
  1786. return ((mng_datap)hHandle)->iSpeed;
  1787. }
  1788. #endif /* MNG_SUPPORT_DISPLAY */
  1789. /* ************************************************************************** */
  1790. mng_uint32 MNG_DECL mng_get_imagelevel (mng_handle hHandle)
  1791. {
  1792. #ifdef MNG_SUPPORT_TRACE
  1793. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_IMAGELEVEL, MNG_LC_START);
  1794. #endif
  1795. MNG_VALIDHANDLEX (hHandle)
  1796. #ifdef MNG_SUPPORT_TRACE
  1797. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_IMAGELEVEL, MNG_LC_END);
  1798. #endif
  1799. return ((mng_datap)hHandle)->iImagelevel;
  1800. }
  1801. /* ************************************************************************** */
  1802. #ifdef MNG_SUPPORT_DISPLAY
  1803. mng_retcode MNG_DECL mng_get_lastbackchunk (mng_handle hHandle,
  1804. mng_uint16* iRed,
  1805. mng_uint16* iGreen,
  1806. mng_uint16* iBlue,
  1807. mng_uint8* iMandatory)
  1808. {
  1809. #ifdef MNG_SUPPORT_TRACE
  1810. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_LASTBACKCHUNK, MNG_LC_START);
  1811. #endif
  1812. MNG_VALIDHANDLE (hHandle)
  1813. if (((mng_datap)hHandle)->eImagetype != mng_it_mng)
  1814. MNG_ERROR (((mng_datap)hHandle), MNG_FUNCTIONINVALID);
  1815. *iRed = ((mng_datap)hHandle)->iBACKred;
  1816. *iGreen = ((mng_datap)hHandle)->iBACKgreen;
  1817. *iBlue = ((mng_datap)hHandle)->iBACKblue;
  1818. *iMandatory = ((mng_datap)hHandle)->iBACKmandatory;
  1819. #ifdef MNG_SUPPORT_TRACE
  1820. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_LASTBACKCHUNK, MNG_LC_END);
  1821. #endif
  1822. return MNG_NOERROR;
  1823. }
  1824. #endif /* MNG_SUPPORT_DISPLAY */
  1825. /* ************************************************************************** */
  1826. #ifdef MNG_SUPPORT_DISPLAY
  1827. mng_retcode MNG_DECL mng_get_lastseekname (mng_handle hHandle,
  1828. mng_pchar zSegmentname)
  1829. {
  1830. mng_datap pData;
  1831. #ifdef MNG_SUPPORT_TRACE
  1832. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_LASTSEEKNAME, MNG_LC_START);
  1833. #endif
  1834. MNG_VALIDHANDLE (hHandle)
  1835. pData = (mng_datap)hHandle;
  1836. /* only allowed for MNG ! */
  1837. if (pData->eImagetype != mng_it_mng)
  1838. MNG_ERROR (pData, MNG_FUNCTIONINVALID);
  1839. if (pData->pLastseek) /* is there a last SEEK ? */
  1840. {
  1841. mng_ani_seekp pSEEK = (mng_ani_seekp)pData->pLastseek;
  1842. if (pSEEK->iSegmentnamesize) /* copy the name if there is one */
  1843. MNG_COPY (zSegmentname, pSEEK->zSegmentname, pSEEK->iSegmentnamesize);
  1844. *(((mng_uint8p)zSegmentname) + pSEEK->iSegmentnamesize) = 0;
  1845. }
  1846. else
  1847. { /* return an empty string */
  1848. *((mng_uint8p)zSegmentname) = 0;
  1849. }
  1850. #ifdef MNG_SUPPORT_TRACE
  1851. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_LASTSEEKNAME, MNG_LC_END);
  1852. #endif
  1853. return MNG_NOERROR;
  1854. }
  1855. #endif /* MNG_SUPPORT_DISPLAY */
  1856. /* ************************************************************************** */
  1857. #ifdef MNG_SUPPORT_DISPLAY
  1858. mng_uint32 MNG_DECL mng_get_currframdelay (mng_handle hHandle)
  1859. {
  1860. mng_datap pData;
  1861. mng_uint32 iRslt;
  1862. #ifdef MNG_SUPPORT_TRACE
  1863. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CURRFRAMDELAY, MNG_LC_START);
  1864. #endif
  1865. MNG_VALIDHANDLE (hHandle)
  1866. pData = (mng_datap)hHandle;
  1867. /* only allowed for MNG ! */
  1868. if (pData->eImagetype != mng_it_mng)
  1869. MNG_ERROR (pData, MNG_FUNCTIONINVALID);
  1870. iRslt = pData->iFramedelay;
  1871. #ifdef MNG_SUPPORT_TRACE
  1872. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CURRFRAMDELAY, MNG_LC_END);
  1873. #endif
  1874. return iRslt;
  1875. }
  1876. #endif /* MNG_SUPPORT_DISPLAY */
  1877. /* ************************************************************************** */
  1878. #ifdef MNG_SUPPORT_DISPLAY
  1879. mng_uint32 MNG_DECL mng_get_starttime (mng_handle hHandle)
  1880. {
  1881. #ifdef MNG_SUPPORT_TRACE
  1882. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_STARTTIME, MNG_LC_START);
  1883. #endif
  1884. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1885. return mng_st_normal;
  1886. #ifdef MNG_SUPPORT_TRACE
  1887. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_STARTTIME, MNG_LC_END);
  1888. #endif
  1889. return ((mng_datap)hHandle)->iStarttime;
  1890. }
  1891. #endif /* MNG_SUPPORT_DISPLAY */
  1892. /* ************************************************************************** */
  1893. #ifdef MNG_SUPPORT_DISPLAY
  1894. mng_uint32 MNG_DECL mng_get_runtime (mng_handle hHandle)
  1895. {
  1896. #ifdef MNG_SUPPORT_TRACE
  1897. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_RUNTIME, MNG_LC_START);
  1898. #endif
  1899. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1900. return mng_st_normal;
  1901. #ifdef MNG_SUPPORT_TRACE
  1902. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_RUNTIME, MNG_LC_END);
  1903. #endif
  1904. return ((mng_datap)hHandle)->iRuntime;
  1905. }
  1906. #endif /* MNG_SUPPORT_DISPLAY */
  1907. /* ************************************************************************** */
  1908. #ifdef MNG_SUPPORT_DISPLAY
  1909. #ifndef MNG_NO_CURRENT_INFO
  1910. mng_uint32 MNG_DECL mng_get_currentframe (mng_handle hHandle)
  1911. {
  1912. #ifdef MNG_SUPPORT_TRACE
  1913. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CURRENTFRAME, MNG_LC_START);
  1914. #endif
  1915. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1916. return mng_st_normal;
  1917. #ifdef MNG_SUPPORT_TRACE
  1918. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CURRENTFRAME, MNG_LC_END);
  1919. #endif
  1920. return ((mng_datap)hHandle)->iFrameseq;
  1921. }
  1922. #endif
  1923. #endif /* MNG_SUPPORT_DISPLAY */
  1924. /* ************************************************************************** */
  1925. #ifdef MNG_SUPPORT_DISPLAY
  1926. #ifndef MNG_NO_CURRENT_INFO
  1927. mng_uint32 MNG_DECL mng_get_currentlayer (mng_handle hHandle)
  1928. {
  1929. #ifdef MNG_SUPPORT_TRACE
  1930. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CURRENTLAYER, MNG_LC_START);
  1931. #endif
  1932. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1933. return mng_st_normal;
  1934. #ifdef MNG_SUPPORT_TRACE
  1935. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CURRENTLAYER, MNG_LC_END);
  1936. #endif
  1937. return ((mng_datap)hHandle)->iLayerseq;
  1938. }
  1939. #endif
  1940. #endif /* MNG_SUPPORT_DISPLAY */
  1941. /* ************************************************************************** */
  1942. #ifdef MNG_SUPPORT_DISPLAY
  1943. #ifndef MNG_NO_CURRENT_INFO
  1944. mng_uint32 MNG_DECL mng_get_currentplaytime (mng_handle hHandle)
  1945. {
  1946. #ifdef MNG_SUPPORT_TRACE
  1947. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CURRENTPLAYTIME, MNG_LC_START);
  1948. #endif
  1949. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1950. return mng_st_normal;
  1951. #ifdef MNG_SUPPORT_TRACE
  1952. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_CURRENTPLAYTIME, MNG_LC_END);
  1953. #endif
  1954. return ((mng_datap)hHandle)->iFrametime;
  1955. }
  1956. #endif
  1957. #endif /* MNG_SUPPORT_DISPLAY */
  1958. /* ************************************************************************** */
  1959. #ifdef MNG_SUPPORT_DISPLAY
  1960. #ifndef MNG_NO_CURRENT_INFO
  1961. mng_uint32 MNG_DECL mng_get_totalframes (mng_handle hHandle)
  1962. {
  1963. #ifdef MNG_SUPPORT_TRACE
  1964. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_TOTALFRAMES, MNG_LC_START);
  1965. #endif
  1966. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1967. return mng_st_normal;
  1968. #ifdef MNG_SUPPORT_TRACE
  1969. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_TOTALFRAMES, MNG_LC_END);
  1970. #endif
  1971. return ((mng_datap)hHandle)->iTotalframes;
  1972. }
  1973. #endif
  1974. #endif /* MNG_SUPPORT_DISPLAY */
  1975. /* ************************************************************************** */
  1976. #ifdef MNG_SUPPORT_DISPLAY
  1977. #ifndef MNG_NO_CURRENT_INFO
  1978. mng_uint32 MNG_DECL mng_get_totallayers (mng_handle hHandle)
  1979. {
  1980. #ifdef MNG_SUPPORT_TRACE
  1981. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_TOTALLAYERS, MNG_LC_START);
  1982. #endif
  1983. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  1984. return mng_st_normal;
  1985. #ifdef MNG_SUPPORT_TRACE
  1986. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_TOTALLAYERS, MNG_LC_END);
  1987. #endif
  1988. return ((mng_datap)hHandle)->iTotallayers;
  1989. }
  1990. #endif
  1991. #endif /* MNG_SUPPORT_DISPLAY */
  1992. /* ************************************************************************** */
  1993. #ifdef MNG_SUPPORT_DISPLAY
  1994. #ifndef MNG_NO_CURRENT_INFO
  1995. mng_uint32 MNG_DECL mng_get_totalplaytime (mng_handle hHandle)
  1996. {
  1997. #ifdef MNG_SUPPORT_TRACE
  1998. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_TOTALPLAYTIME, MNG_LC_START);
  1999. #endif
  2000. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2001. return mng_st_normal;
  2002. #ifdef MNG_SUPPORT_TRACE
  2003. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GET_TOTALPLAYTIME, MNG_LC_END);
  2004. #endif
  2005. return ((mng_datap)hHandle)->iTotalplaytime;
  2006. }
  2007. #endif
  2008. #endif /* MNG_SUPPORT_DISPLAY */
  2009. /* ************************************************************************** */
  2010. mng_bool MNG_DECL mng_status_error (mng_handle hHandle)
  2011. {
  2012. #ifdef MNG_SUPPORT_TRACE
  2013. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_ERROR, MNG_LC_START);
  2014. #endif
  2015. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2016. return MNG_FALSE;
  2017. #ifdef MNG_SUPPORT_TRACE
  2018. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_ERROR, MNG_LC_END);
  2019. #endif
  2020. return (mng_bool)((mng_datap)hHandle)->iErrorcode;
  2021. }
  2022. /* ************************************************************************** */
  2023. #ifdef MNG_SUPPORT_READ
  2024. mng_bool MNG_DECL mng_status_reading (mng_handle hHandle)
  2025. {
  2026. #ifdef MNG_SUPPORT_TRACE
  2027. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_READING, MNG_LC_START);
  2028. #endif
  2029. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2030. return MNG_FALSE;
  2031. #ifdef MNG_SUPPORT_TRACE
  2032. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_READING, MNG_LC_END);
  2033. #endif
  2034. return ((mng_datap)hHandle)->bReading;
  2035. }
  2036. #endif
  2037. /* ************************************************************************** */
  2038. #ifdef MNG_SUPPORT_READ
  2039. mng_bool MNG_DECL mng_status_suspendbreak (mng_handle hHandle)
  2040. {
  2041. #ifdef MNG_SUPPORT_TRACE
  2042. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_SUSPENDBREAK, MNG_LC_START);
  2043. #endif
  2044. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2045. return MNG_FALSE;
  2046. #ifdef MNG_SUPPORT_TRACE
  2047. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_SUSPENDBREAK, MNG_LC_END);
  2048. #endif
  2049. return ((mng_datap)hHandle)->bSuspended;
  2050. }
  2051. #endif
  2052. /* ************************************************************************** */
  2053. #ifdef MNG_SUPPORT_WRITE
  2054. mng_bool MNG_DECL mng_status_creating (mng_handle hHandle)
  2055. {
  2056. #ifdef MNG_SUPPORT_TRACE
  2057. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_CREATING, MNG_LC_START);
  2058. #endif
  2059. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2060. return MNG_FALSE;
  2061. #ifdef MNG_SUPPORT_TRACE
  2062. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_CREATING, MNG_LC_END);
  2063. #endif
  2064. return ((mng_datap)hHandle)->bCreating;
  2065. }
  2066. #endif
  2067. /* ************************************************************************** */
  2068. #ifdef MNG_SUPPORT_WRITE
  2069. mng_bool MNG_DECL mng_status_writing (mng_handle hHandle)
  2070. {
  2071. #ifdef MNG_SUPPORT_TRACE
  2072. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_WRITING, MNG_LC_START);
  2073. #endif
  2074. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2075. return MNG_FALSE;
  2076. #ifdef MNG_SUPPORT_TRACE
  2077. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_WRITING, MNG_LC_END);
  2078. #endif
  2079. return ((mng_datap)hHandle)->bWriting;
  2080. }
  2081. #endif
  2082. /* ************************************************************************** */
  2083. #ifdef MNG_SUPPORT_DISPLAY
  2084. mng_bool MNG_DECL mng_status_displaying (mng_handle hHandle)
  2085. {
  2086. #ifdef MNG_SUPPORT_TRACE
  2087. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_DISPLAYING, MNG_LC_START);
  2088. #endif
  2089. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2090. return MNG_FALSE;
  2091. #ifdef MNG_SUPPORT_TRACE
  2092. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_DISPLAYING, MNG_LC_END);
  2093. #endif
  2094. return ((mng_datap)hHandle)->bDisplaying;
  2095. }
  2096. #endif
  2097. /* ************************************************************************** */
  2098. #ifdef MNG_SUPPORT_DISPLAY
  2099. mng_bool MNG_DECL mng_status_running (mng_handle hHandle)
  2100. {
  2101. #ifdef MNG_SUPPORT_TRACE
  2102. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_RUNNING, MNG_LC_START);
  2103. #endif
  2104. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2105. return MNG_FALSE;
  2106. #ifdef MNG_SUPPORT_TRACE
  2107. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_RUNNING, MNG_LC_END);
  2108. #endif
  2109. return ((mng_datap)hHandle)->bRunning;
  2110. }
  2111. #endif
  2112. /* ************************************************************************** */
  2113. #ifdef MNG_SUPPORT_DISPLAY
  2114. mng_bool MNG_DECL mng_status_timerbreak (mng_handle hHandle)
  2115. {
  2116. #ifdef MNG_SUPPORT_TRACE
  2117. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_TIMERBREAK, MNG_LC_START);
  2118. #endif
  2119. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2120. return MNG_FALSE;
  2121. #ifdef MNG_SUPPORT_TRACE
  2122. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_TIMERBREAK, MNG_LC_END);
  2123. #endif
  2124. return ((mng_datap)hHandle)->bTimerset;
  2125. }
  2126. #endif
  2127. /* ************************************************************************** */
  2128. #ifdef MNG_SUPPORT_DYNAMICMNG
  2129. mng_bool MNG_DECL mng_status_dynamic (mng_handle hHandle)
  2130. {
  2131. #ifdef MNG_SUPPORT_TRACE
  2132. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_DYNAMIC, MNG_LC_START);
  2133. #endif
  2134. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2135. return MNG_FALSE;
  2136. #ifdef MNG_SUPPORT_TRACE
  2137. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_DYNAMIC, MNG_LC_END);
  2138. #endif
  2139. return ((mng_datap)hHandle)->bDynamic;
  2140. }
  2141. #endif
  2142. /* ************************************************************************** */
  2143. #ifdef MNG_SUPPORT_DYNAMICMNG
  2144. mng_bool MNG_DECL mng_status_runningevent (mng_handle hHandle)
  2145. {
  2146. #ifdef MNG_SUPPORT_TRACE
  2147. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_RUNNINGEVENT, MNG_LC_START);
  2148. #endif
  2149. if ((hHandle == 0) || (((mng_datap)hHandle)->iMagic != MNG_MAGIC))
  2150. return MNG_FALSE;
  2151. #ifdef MNG_SUPPORT_TRACE
  2152. MNG_TRACEX (((mng_datap)hHandle), MNG_FN_STATUS_RUNNINGEVENT, MNG_LC_END);
  2153. #endif
  2154. return ((mng_datap)hHandle)->bRunningevent;
  2155. }
  2156. #endif
  2157. /* ************************************************************************** */
  2158. /* * end of file * */
  2159. /* ************************************************************************** */