1 /* ************************************************************************** */
2 /* *             For conditions of distribution and use,                    * */
3 /* *                see copyright notice in libmng.h                        * */
4 /* ************************************************************************** */
5 /* *                                                                        * */
6 /* * project   : libmng                                                     * */
7 /* * file      : libmng_callback_xs.c      copyright (c) 2000-2004 G.Juyn   * */
8 /* * version   : 1.0.9                                                      * */
9 /* *                                                                        * */
10 /* * purpose   : callback get/set interface (implementation)                * */
11 /* *                                                                        * */
12 /* * author    : G.Juyn                                                     * */
13 /* *                                                                        * */
14 /* * comment   : implementation of the callback 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/12/2000 - G.Juyn                                * */
20 /* *             - changed trace to macro for callback error-reporting      * */
21 /* *                                                                        * */
22 /* *             0.5.2 - 05/31/2000 - G.Juyn                                * */
23 /* *             - fixed up punctuation (contribution by Tim Rowley)        * */
24 /* *             0.5.2 - 06/02/2000 - G.Juyn                                * */
25 /* *             - added getalphaline callback for RGB8_A8 canvasstyle      * */
26 /* *                                                                        * */
27 /* *             0.9.1 - 07/15/2000 - G.Juyn                                * */
28 /* *             - added callbacks for SAVE/SEEK processing                 * */
29 /* *                                                                        * */
30 /* *             0.9.2 - 08/05/2000 - G.Juyn                                * */
31 /* *             - changed file-prefixes                                    * */
32 /* *                                                                        * */
33 /* *             0.9.3 - 10/11/2000 - G.Juyn                                * */
34 /* *             - added support for nEED                                   * */
35 /* *             0.9.3 - 10/17/2000 - G.Juyn                                * */
36 /* *             - added callback to process non-critical unknown chunks    * */
37 /* *                                                                        * */
38 /* *             1.0.1 - 02/08/2001 - G.Juyn                                * */
39 /* *             - added MEND processing callback                           * */
40 /* *                                                                        * */
41 /* *             1.0.2 - 06/23/2001 - G.Juyn                                * */
42 /* *             - added processterm callback                               * */
43 /* *                                                                        * */
44 /* *             1.0.6 - 07/07/2003 - G. R-P                                * */
45 /* *             - added SKIPCHUNK feature                                  * */
46 /* *                                                                        * */
47 /* *             1.0.7 - 03/10/2004 - G.R-P                                 * */
48 /* *             - added conditionals around openstream/closestream         * */
49 /* *             1.0.7 - 03/19/2004 - G.R-P                                 * */
50 /* *             - fixed typo (MNG_SKIPCHUNK_SAVE -> MNG_SKIPCHUNK_nEED     * */
51 /* *                                                                        * */
52 /* *             1.0.8 - 04/10/2004 - G.Juyn                                * */
53 /* *             - added data-push mechanisms for specialized decoders      * */
54 /* *                                                                        * */
55 /* *             1.0.9 - 09/18/2004 - G.R-P.                                * */
56 /* *             - added two SKIPCHUNK_TERM conditionals                    * */
57 /* *             1.0.9 - 12/20/2004 - G.Juyn                                * */
58 /* *             - cleaned up macro-invocations (thanks to D. Airlie)       * */
59 /* *                                                                        * */
60 /* ************************************************************************** */
61 
62 #include "libmng.h"
63 #include "libmng_data.h"
64 #include "libmng_error.h"
65 #include "libmng_trace.h"
66 #ifdef __BORLANDC__
67 #pragma hdrstop
68 #endif
69 
70 #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
71 #pragma option -A                      /* force ANSI-C */
72 #endif
73 
74 /* ************************************************************************** */
75 /* *                                                                        * */
76 /* *  Callback set functions                                                * */
77 /* *                                                                        * */
78 /* ************************************************************************** */
79 
80 #ifndef MNG_INTERNAL_MEMMNGMT
mng_setcb_memalloc(mng_handle hHandle,mng_memalloc fProc)81 mng_retcode MNG_DECL mng_setcb_memalloc (mng_handle   hHandle,
82                                          mng_memalloc fProc)
83 {
84 #ifdef MNG_SUPPORT_TRACE
85   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_MEMALLOC, MNG_LC_START);
86 #endif
87 
88   MNG_VALIDHANDLE (hHandle)
89   ((mng_datap)hHandle)->fMemalloc = fProc;
90 
91 #ifdef MNG_SUPPORT_TRACE
92   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_MEMALLOC, MNG_LC_END);
93 #endif
94 
95   return MNG_NOERROR;
96 }
97 #endif /* MNG_INTERNAL_MEMMNGMT */
98 
99 /* ************************************************************************** */
100 
101 #ifndef MNG_INTERNAL_MEMMNGMT
mng_setcb_memfree(mng_handle hHandle,mng_memfree fProc)102 mng_retcode MNG_DECL mng_setcb_memfree (mng_handle  hHandle,
103                                         mng_memfree fProc)
104 {
105 #ifdef MNG_SUPPORT_TRACE
106   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_MEMFREE, MNG_LC_START);
107 #endif
108 
109   MNG_VALIDHANDLE (hHandle)
110   ((mng_datap)hHandle)->fMemfree = fProc;
111 
112 #ifdef MNG_SUPPORT_TRACE
113   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_MEMFREE, MNG_LC_END);
114 #endif
115 
116   return MNG_NOERROR;
117 }
118 #endif /* MNG_INTERNAL_MEMMNGMT */
119 
120 /* ************************************************************************** */
121 
122 #ifdef MNG_SUPPORT_READ
mng_setcb_releasedata(mng_handle hHandle,mng_releasedata fProc)123 mng_retcode MNG_DECL mng_setcb_releasedata (mng_handle      hHandle,
124                                             mng_releasedata fProc)
125 {
126 #ifdef MNG_SUPPORT_TRACE
127   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_RELEASEDATA, MNG_LC_START);
128 #endif
129 
130   MNG_VALIDHANDLE (hHandle)
131   ((mng_datap)hHandle)->fReleasedata = fProc;
132 
133 #ifdef MNG_SUPPORT_TRACE
134   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_RELEASEDATA, MNG_LC_END);
135 #endif
136 
137   return MNG_NOERROR;
138 }
139 #endif /* MNG_SUPPORT_READ */
140 
141 /* ************************************************************************** */
142 
143 #if defined(MNG_SUPPORT_READ) || defined(MNG_SUPPORT_WRITE)
144 #ifndef MNG_NO_OPEN_CLOSE_STREAM
mng_setcb_openstream(mng_handle hHandle,mng_openstream fProc)145 mng_retcode MNG_DECL mng_setcb_openstream (mng_handle     hHandle,
146                                            mng_openstream fProc)
147 {
148 #ifdef MNG_SUPPORT_TRACE
149   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_OPENSTREAM, MNG_LC_START);
150 #endif
151 
152   MNG_VALIDHANDLE (hHandle)
153   ((mng_datap)hHandle)->fOpenstream = fProc;
154 
155 #ifdef MNG_SUPPORT_TRACE
156   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_OPENSTREAM, MNG_LC_END);
157 #endif
158 
159   return MNG_NOERROR;
160 }
161 #endif
162 #endif /* MNG_SUPPORT_READ || MNG_SUPPORT_WRITE */
163 
164 /* ************************************************************************** */
165 
166 #if defined(MNG_SUPPORT_READ) || defined(MNG_SUPPORT_WRITE)
167 #ifndef MNG_NO_OPEN_CLOSE_STREAM
mng_setcb_closestream(mng_handle hHandle,mng_closestream fProc)168 mng_retcode MNG_DECL mng_setcb_closestream (mng_handle      hHandle,
169                                             mng_closestream fProc)
170 {
171 #ifdef MNG_SUPPORT_TRACE
172   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_CLOSESTREAM, MNG_LC_START);
173 #endif
174 
175   MNG_VALIDHANDLE (hHandle)
176   ((mng_datap)hHandle)->fClosestream = fProc;
177 
178 #ifdef MNG_SUPPORT_TRACE
179   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_CLOSESTREAM, MNG_LC_END);
180 #endif
181 
182   return MNG_NOERROR;
183 }
184 #endif
185 #endif /* MNG_SUPPORT_READ || MNG_SUPPORT_WRITE */
186 
187 /* ************************************************************************** */
188 
189 #ifdef MNG_SUPPORT_READ
mng_setcb_readdata(mng_handle hHandle,mng_readdata fProc)190 mng_retcode MNG_DECL mng_setcb_readdata (mng_handle   hHandle,
191                                          mng_readdata fProc)
192 {
193 #ifdef MNG_SUPPORT_TRACE
194   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_READDATA, MNG_LC_START);
195 #endif
196 
197   MNG_VALIDHANDLE (hHandle)
198   ((mng_datap)hHandle)->fReaddata = fProc;
199 
200 #ifdef MNG_SUPPORT_TRACE
201   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_READDATA, MNG_LC_END);
202 #endif
203 
204   return MNG_NOERROR;
205 }
206 #endif /* MNG_SUPPORT_READ */
207 
208 /* ************************************************************************** */
209 
210 #ifdef MNG_SUPPORT_WRITE
mng_setcb_writedata(mng_handle hHandle,mng_writedata fProc)211 mng_retcode MNG_DECL mng_setcb_writedata (mng_handle    hHandle,
212                                           mng_writedata fProc)
213 {
214 #ifdef MNG_SUPPORT_TRACE
215   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_WRITEDATA, MNG_LC_START);
216 #endif
217 
218   MNG_VALIDHANDLE (hHandle)
219   ((mng_datap)hHandle)->fWritedata = fProc;
220 
221 #ifdef MNG_SUPPORT_TRACE
222   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_WRITEDATA, MNG_LC_END);
223 #endif
224 
225   return MNG_NOERROR;
226 }
227 #endif /* MNG_SUPPORT_WRITE */
228 
229 /* ************************************************************************** */
230 
mng_setcb_errorproc(mng_handle hHandle,mng_errorproc fProc)231 mng_retcode MNG_DECL mng_setcb_errorproc (mng_handle    hHandle,
232                                           mng_errorproc fProc)
233 {
234 #ifdef MNG_SUPPORT_TRACE
235   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_ERRORPROC, MNG_LC_START);
236 #endif
237 
238   MNG_VALIDHANDLE (hHandle)
239   ((mng_datap)hHandle)->fErrorproc = fProc;
240 
241 #ifdef MNG_SUPPORT_TRACE
242   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_ERRORPROC, MNG_LC_END);
243 #endif
244 
245   return MNG_NOERROR;
246 }
247 
248 /* ************************************************************************** */
249 
250 #ifdef MNG_SUPPORT_TRACE
mng_setcb_traceproc(mng_handle hHandle,mng_traceproc fProc)251 mng_retcode MNG_DECL mng_setcb_traceproc (mng_handle    hHandle,
252                                           mng_traceproc fProc)
253 {
254 #ifdef MNG_SUPPORT_TRACE
255   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_TRACEPROC, MNG_LC_START);
256 #endif
257 
258   MNG_VALIDHANDLE (hHandle)
259   ((mng_datap)hHandle)->fTraceproc = fProc;
260 
261 #ifdef MNG_SUPPORT_TRACE
262   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_TRACEPROC, MNG_LC_END);
263 #endif
264 
265   return MNG_NOERROR;
266 }
267 #endif /* MNG_SUPPORT_TRACE */
268 
269 /* ************************************************************************** */
270 
271 #ifdef MNG_SUPPORT_READ
mng_setcb_processheader(mng_handle hHandle,mng_processheader fProc)272 mng_retcode MNG_DECL mng_setcb_processheader (mng_handle        hHandle,
273                                               mng_processheader fProc)
274 {
275 #ifdef MNG_SUPPORT_TRACE
276   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSHEADER, MNG_LC_START);
277 #endif
278 
279   MNG_VALIDHANDLE (hHandle)
280   ((mng_datap)hHandle)->fProcessheader = fProc;
281 
282 #ifdef MNG_SUPPORT_TRACE
283   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSHEADER, MNG_LC_END);
284 #endif
285 
286   return MNG_NOERROR;
287 }
288 #endif /* MNG_SUPPORT_READ */
289 
290 /* ************************************************************************** */
291 
292 #ifdef MNG_SUPPORT_READ
293 #ifndef MNG_SKIPCHUNK_tEXt
mng_setcb_processtext(mng_handle hHandle,mng_processtext fProc)294 mng_retcode MNG_DECL mng_setcb_processtext (mng_handle      hHandle,
295                                             mng_processtext fProc)
296 {
297 #ifdef MNG_SUPPORT_TRACE
298   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSTEXT, MNG_LC_START);
299 #endif
300 
301   MNG_VALIDHANDLE (hHandle)
302   ((mng_datap)hHandle)->fProcesstext = fProc;
303 
304 #ifdef MNG_SUPPORT_TRACE
305   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSTEXT, MNG_LC_END);
306 #endif
307 
308   return MNG_NOERROR;
309 }
310 #endif
311 #endif /* MNG_SUPPORT_READ */
312 
313 /* ************************************************************************** */
314 
315 #ifdef MNG_SUPPORT_READ
316 #ifndef MNG_SKIPCHUNK_SAVE
mng_setcb_processsave(mng_handle hHandle,mng_processsave fProc)317 mng_retcode MNG_DECL mng_setcb_processsave (mng_handle      hHandle,
318                                             mng_processsave fProc)
319 {
320 #ifdef MNG_SUPPORT_TRACE
321   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSSAVE, MNG_LC_START);
322 #endif
323 
324   MNG_VALIDHANDLE (hHandle)
325   ((mng_datap)hHandle)->fProcesssave = fProc;
326 
327 #ifdef MNG_SUPPORT_TRACE
328   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSSAVE, MNG_LC_END);
329 #endif
330 
331   return MNG_NOERROR;
332 }
333 #endif
334 #endif /* MNG_SUPPORT_READ */
335 
336 /* ************************************************************************** */
337 
338 #ifdef MNG_SUPPORT_READ
339 #ifndef MNG_SKIPCHUNK_SEEK
mng_setcb_processseek(mng_handle hHandle,mng_processseek fProc)340 mng_retcode MNG_DECL mng_setcb_processseek (mng_handle      hHandle,
341                                             mng_processseek fProc)
342 {
343 #ifdef MNG_SUPPORT_TRACE
344   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSSEEK, MNG_LC_START);
345 #endif
346 
347   MNG_VALIDHANDLE (hHandle)
348   ((mng_datap)hHandle)->fProcessseek = fProc;
349 
350 #ifdef MNG_SUPPORT_TRACE
351   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSSEEK, MNG_LC_END);
352 #endif
353 
354   return MNG_NOERROR;
355 }
356 #endif
357 #endif /* MNG_SUPPORT_READ */
358 
359 /* ************************************************************************** */
360 
361 #ifdef MNG_SUPPORT_READ
362 #ifndef MNG_SKIPCHUNK_nEED
mng_setcb_processneed(mng_handle hHandle,mng_processneed fProc)363 mng_retcode MNG_DECL mng_setcb_processneed (mng_handle      hHandle,
364                                             mng_processneed fProc)
365 {
366 #ifdef MNG_SUPPORT_TRACE
367   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSNEED, MNG_LC_START);
368 #endif
369 
370   MNG_VALIDHANDLE (hHandle)
371   ((mng_datap)hHandle)->fProcessneed = fProc;
372 
373 #ifdef MNG_SUPPORT_TRACE
374   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSNEED, MNG_LC_END);
375 #endif
376 
377   return MNG_NOERROR;
378 }
379 #endif
380 #endif /* MNG_SUPPORT_READ */
381 
382 /* ************************************************************************** */
383 
384 #ifdef MNG_SUPPORT_READ
mng_setcb_processmend(mng_handle hHandle,mng_processmend fProc)385 mng_retcode MNG_DECL mng_setcb_processmend (mng_handle      hHandle,
386                                             mng_processmend fProc)
387 {
388 #ifdef MNG_SUPPORT_TRACE
389   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSMEND, MNG_LC_START);
390 #endif
391 
392   MNG_VALIDHANDLE (hHandle)
393   ((mng_datap)hHandle)->fProcessmend = fProc;
394 
395 #ifdef MNG_SUPPORT_TRACE
396   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSMEND, MNG_LC_END);
397 #endif
398 
399   return MNG_NOERROR;
400 }
401 #endif /* MNG_SUPPORT_READ */
402 
403 /* ************************************************************************** */
404 
405 #ifdef MNG_SUPPORT_READ
mng_setcb_processunknown(mng_handle hHandle,mng_processunknown fProc)406 mng_retcode MNG_DECL mng_setcb_processunknown (mng_handle         hHandle,
407                                                mng_processunknown fProc)
408 {
409 #ifdef MNG_SUPPORT_TRACE
410   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSUNKNOWN, MNG_LC_START);
411 #endif
412 
413   MNG_VALIDHANDLE (hHandle)
414   ((mng_datap)hHandle)->fProcessunknown = fProc;
415 
416 #ifdef MNG_SUPPORT_TRACE
417   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSUNKNOWN, MNG_LC_END);
418 #endif
419 
420   return MNG_NOERROR;
421 }
422 #endif /* MNG_SUPPORT_READ */
423 
424 /* ************************************************************************** */
425 
426 #ifdef MNG_SUPPORT_READ
427 #ifndef MNG_SKIPCHUNK_TERM
mng_setcb_processterm(mng_handle hHandle,mng_processterm fProc)428 mng_retcode MNG_DECL mng_setcb_processterm (mng_handle      hHandle,
429                                             mng_processterm fProc)
430 {
431 #ifdef MNG_SUPPORT_TRACE
432   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSTERM, MNG_LC_START);
433 #endif
434 
435   MNG_VALIDHANDLE (hHandle)
436   ((mng_datap)hHandle)->fProcessterm = fProc;
437 
438 #ifdef MNG_SUPPORT_TRACE
439   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSTERM, MNG_LC_END);
440 #endif
441 
442   return MNG_NOERROR;
443 }
444 #endif
445 #endif /* MNG_SUPPORT_READ */
446 
447 /* ************************************************************************** */
448 
449 #ifdef MNG_SUPPORT_DISPLAY
mng_setcb_getcanvasline(mng_handle hHandle,mng_getcanvasline fProc)450 mng_retcode MNG_DECL mng_setcb_getcanvasline (mng_handle        hHandle,
451                                               mng_getcanvasline fProc)
452 {
453 #ifdef MNG_SUPPORT_TRACE
454   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_GETCANVASLINE, MNG_LC_START);
455 #endif
456 
457   MNG_VALIDHANDLE (hHandle)
458   ((mng_datap)hHandle)->fGetcanvasline = fProc;
459 
460 #ifdef MNG_SUPPORT_TRACE
461   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_GETCANVASLINE, MNG_LC_END);
462 #endif
463 
464   return MNG_NOERROR;
465 }
466 #endif /* MNG_SUPPORT_DISPLAY */
467 
468 /* ************************************************************************** */
469 
470 #ifdef MNG_SUPPORT_DISPLAY
mng_setcb_getbkgdline(mng_handle hHandle,mng_getbkgdline fProc)471 mng_retcode MNG_DECL mng_setcb_getbkgdline (mng_handle      hHandle,
472                                             mng_getbkgdline fProc)
473 {
474 #ifdef MNG_SUPPORT_TRACE
475   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_GETBKGDLINE, MNG_LC_START);
476 #endif
477 
478   MNG_VALIDHANDLE (hHandle)
479   ((mng_datap)hHandle)->fGetbkgdline = fProc;
480 
481 #ifdef MNG_SUPPORT_TRACE
482   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_GETBKGDLINE, MNG_LC_END);
483 #endif
484 
485   return MNG_NOERROR;
486 }
487 #endif /* MNG_SUPPORT_DISPLAY */
488 
489 /* ************************************************************************** */
490 
491 #ifdef MNG_SUPPORT_DISPLAY
mng_setcb_getalphaline(mng_handle hHandle,mng_getalphaline fProc)492 mng_retcode MNG_DECL mng_setcb_getalphaline (mng_handle       hHandle,
493                                              mng_getalphaline fProc)
494 {
495 #ifdef MNG_SUPPORT_TRACE
496   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_GETALPHALINE, MNG_LC_START);
497 #endif
498 
499   MNG_VALIDHANDLE (hHandle)
500   ((mng_datap)hHandle)->fGetalphaline = fProc;
501 
502 #ifdef MNG_SUPPORT_TRACE
503   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_GETALPHALINE, MNG_LC_END);
504 #endif
505 
506   return MNG_NOERROR;
507 }
508 #endif /* MNG_SUPPORT_DISPLAY */
509 
510 /* ************************************************************************** */
511 
512 #ifdef MNG_SUPPORT_DISPLAY
mng_setcb_refresh(mng_handle hHandle,mng_refresh fProc)513 mng_retcode MNG_DECL mng_setcb_refresh (mng_handle  hHandle,
514                                         mng_refresh fProc)
515 {
516 #ifdef MNG_SUPPORT_TRACE
517   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_REFRESH, MNG_LC_START);
518 #endif
519 
520   MNG_VALIDHANDLE (hHandle)
521   ((mng_datap)hHandle)->fRefresh = fProc;
522 
523 #ifdef MNG_SUPPORT_TRACE
524   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_REFRESH, MNG_LC_END);
525 #endif
526 
527   return MNG_NOERROR;
528 }
529 #endif /* MNG_SUPPORT_DISPLAY */
530 
531 /* ************************************************************************** */
532 
533 #ifdef MNG_SUPPORT_DISPLAY
mng_setcb_gettickcount(mng_handle hHandle,mng_gettickcount fProc)534 mng_retcode MNG_DECL mng_setcb_gettickcount (mng_handle       hHandle,
535                                              mng_gettickcount fProc)
536 {
537 #ifdef MNG_SUPPORT_TRACE
538   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_GETTICKCOUNT, MNG_LC_START);
539 #endif
540 
541   MNG_VALIDHANDLE (hHandle)
542   ((mng_datap)hHandle)->fGettickcount = fProc;
543 
544 #ifdef MNG_SUPPORT_TRACE
545   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_GETTICKCOUNT, MNG_LC_END);
546 #endif
547 
548   return MNG_NOERROR;
549 }
550 #endif /* MNG_SUPPORT_DISPLAY */
551 
552 /* ************************************************************************** */
553 
554 #ifdef MNG_SUPPORT_DISPLAY
mng_setcb_settimer(mng_handle hHandle,mng_settimer fProc)555 mng_retcode MNG_DECL mng_setcb_settimer (mng_handle   hHandle,
556                                          mng_settimer fProc)
557 {
558 #ifdef MNG_SUPPORT_TRACE
559   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_SETTIMER, MNG_LC_START);
560 #endif
561 
562   MNG_VALIDHANDLE (hHandle)
563   ((mng_datap)hHandle)->fSettimer = fProc;
564 
565 #ifdef MNG_SUPPORT_TRACE
566   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_SETTIMER, MNG_LC_END);
567 #endif
568 
569   return MNG_NOERROR;
570 }
571 #endif /* MNG_SUPPORT_DISPLAY */
572 
573 /* ************************************************************************** */
574 
575 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
mng_setcb_processgamma(mng_handle hHandle,mng_processgamma fProc)576 mng_retcode MNG_DECL mng_setcb_processgamma (mng_handle        hHandle,
577                                              mng_processgamma  fProc)
578 {
579 #ifdef MNG_SUPPORT_TRACE
580   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSGAMA, MNG_LC_START);
581 #endif
582 
583   MNG_VALIDHANDLE (hHandle)
584   ((mng_datap)hHandle)->fProcessgamma = fProc;
585 
586 #ifdef MNG_SUPPORT_TRACE
587   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSGAMA, MNG_LC_END);
588 #endif
589 
590   return MNG_NOERROR;
591 }
592 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
593 
594 /* ************************************************************************** */
595 
596 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
597 #ifndef MNG_SKIPCHUNK_cHRM
mng_setcb_processchroma(mng_handle hHandle,mng_processchroma fProc)598 mng_retcode MNG_DECL mng_setcb_processchroma (mng_handle        hHandle,
599                                               mng_processchroma fProc)
600 {
601 #ifdef MNG_SUPPORT_TRACE
602   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSCHROMA, MNG_LC_START);
603 #endif
604 
605   MNG_VALIDHANDLE (hHandle)
606   ((mng_datap)hHandle)->fProcesschroma = fProc;
607 
608 #ifdef MNG_SUPPORT_TRACE
609   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSCHROMA, MNG_LC_END);
610 #endif
611 
612   return MNG_NOERROR;
613 }
614 #endif
615 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
616 
617 /* ************************************************************************** */
618 
619 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
mng_setcb_processsrgb(mng_handle hHandle,mng_processsrgb fProc)620 mng_retcode MNG_DECL mng_setcb_processsrgb (mng_handle      hHandle,
621                                             mng_processsrgb fProc)
622 {
623 #ifdef MNG_SUPPORT_TRACE
624   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSSRGB, MNG_LC_START);
625 #endif
626 
627   MNG_VALIDHANDLE (hHandle)
628   ((mng_datap)hHandle)->fProcesssrgb = fProc;
629 
630 #ifdef MNG_SUPPORT_TRACE
631   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSSRGB, MNG_LC_END);
632 #endif
633 
634   return MNG_NOERROR;
635 }
636 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
637 
638 /* ************************************************************************** */
639 
640 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
641 #ifndef MNG_SKIPCHUNK_iCCP
mng_setcb_processiccp(mng_handle hHandle,mng_processiccp fProc)642 mng_retcode MNG_DECL mng_setcb_processiccp (mng_handle      hHandle,
643                                             mng_processiccp fProc)
644 {
645 #ifdef MNG_SUPPORT_TRACE
646   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSICCP, MNG_LC_START);
647 #endif
648 
649   MNG_VALIDHANDLE (hHandle)
650   ((mng_datap)hHandle)->fProcessiccp = fProc;
651 
652 #ifdef MNG_SUPPORT_TRACE
653   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSICCP, MNG_LC_END);
654 #endif
655 
656   return MNG_NOERROR;
657 }
658 #endif
659 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
660 
661 /* ************************************************************************** */
662 
663 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
mng_setcb_processarow(mng_handle hHandle,mng_processarow fProc)664 mng_retcode MNG_DECL mng_setcb_processarow (mng_handle      hHandle,
665                                             mng_processarow fProc)
666 {
667 #ifdef MNG_SUPPORT_TRACE
668   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSAROW, MNG_LC_START);
669 #endif
670 
671   MNG_VALIDHANDLE (hHandle)
672   ((mng_datap)hHandle)->fProcessarow = fProc;
673 
674 #ifdef MNG_SUPPORT_TRACE
675   MNG_TRACE (((mng_datap)hHandle), MNG_FN_SETCB_PROCESSAROW, MNG_LC_END);
676 #endif
677 
678   return MNG_NOERROR;
679 }
680 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
681 
682 /* ************************************************************************** */
683 /* *                                                                        * */
684 /* *  Callback get functions                                                * */
685 /* *                                                                        * */
686 /* ************************************************************************** */
687 
688 #ifndef MNG_INTERNAL_MEMMNGMT
mng_getcb_memalloc(mng_handle hHandle)689 mng_memalloc MNG_DECL mng_getcb_memalloc (mng_handle hHandle)
690 {
691 #ifdef MNG_SUPPORT_TRACE
692   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_MEMALLOC, MNG_LC_START);
693 #endif
694 
695   MNG_VALIDHANDLEX (hHandle)
696 
697 #ifdef MNG_SUPPORT_TRACE
698   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_MEMALLOC, MNG_LC_END);
699 #endif
700 
701   return ((mng_datap)hHandle)->fMemalloc;
702 }
703 #endif /* MNG_INTERNAL_MEMMNGMT */
704 
705 /* ************************************************************************** */
706 
707 #ifndef MNG_INTERNAL_MEMMNGMT
mng_getcb_memfree(mng_handle hHandle)708 mng_memfree MNG_DECL mng_getcb_memfree (mng_handle hHandle)
709 {
710 #ifdef MNG_SUPPORT_TRACE
711   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_MEMFREE, MNG_LC_START);
712 #endif
713 
714   MNG_VALIDHANDLEX (hHandle)
715 
716 #ifdef MNG_SUPPORT_TRACE
717   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_MEMFREE, MNG_LC_END);
718 #endif
719 
720   return ((mng_datap)hHandle)->fMemfree;
721 }
722 #endif /* MNG_INTERNAL_MEMMNGMT */
723 
724 /* ************************************************************************** */
725 
726 #ifdef MNG_SUPPORT_READ
mng_getcb_releasedata(mng_handle hHandle)727 mng_releasedata MNG_DECL mng_getcb_releasedata (mng_handle hHandle)
728 {
729 #ifdef MNG_SUPPORT_TRACE
730   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_RELEASEDATA, MNG_LC_START);
731 #endif
732 
733   MNG_VALIDHANDLEX (hHandle)
734 
735 #ifdef MNG_SUPPORT_TRACE
736   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_RELEASEDATA, MNG_LC_END);
737 #endif
738 
739   return ((mng_datap)hHandle)->fReleasedata;
740 }
741 #endif /* MNG_SUPPORT_READ */
742 
743 /* ************************************************************************** */
744 
745 #ifdef MNG_SUPPORT_READ
mng_getcb_readdata(mng_handle hHandle)746 mng_readdata MNG_DECL mng_getcb_readdata (mng_handle hHandle)
747 {
748 #ifdef MNG_SUPPORT_TRACE
749   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_READDATA, MNG_LC_START);
750 #endif
751 
752   MNG_VALIDHANDLEX (hHandle)
753 
754 #ifdef MNG_SUPPORT_TRACE
755   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_READDATA, MNG_LC_END);
756 #endif
757 
758   return ((mng_datap)hHandle)->fReaddata;
759 }
760 #endif /* MNG_SUPPORT_READ */
761 
762 /* ************************************************************************** */
763 
764 #if defined(MNG_SUPPORT_READ) || defined(MNG_SUPPORT_WRITE)
765 #ifndef MNG_NO_OPEN_CLOSE_STREAM
mng_getcb_openstream(mng_handle hHandle)766 mng_openstream MNG_DECL mng_getcb_openstream (mng_handle hHandle)
767 {
768 #ifdef MNG_SUPPORT_TRACE
769   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_OPENSTREAM, MNG_LC_START);
770 #endif
771 
772   MNG_VALIDHANDLEX (hHandle)
773 
774 #ifdef MNG_SUPPORT_TRACE
775   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_OPENSTREAM, MNG_LC_END);
776 #endif
777 
778   return ((mng_datap)hHandle)->fOpenstream;
779 }
780 #endif
781 #endif /* MNG_SUPPORT_READ || MNG_SUPPORT_WRITE */
782 
783 /* ************************************************************************** */
784 
785 #if defined(MNG_SUPPORT_READ) || defined(MNG_SUPPORT_WRITE)
786 #ifndef MNG_NO_OPEN_CLOSE_STREAM
mng_getcb_closestream(mng_handle hHandle)787 mng_closestream MNG_DECL mng_getcb_closestream (mng_handle hHandle)
788 {
789 #ifdef MNG_SUPPORT_TRACE
790   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_CLOSESTREAM, MNG_LC_START);
791 #endif
792 
793   MNG_VALIDHANDLEX (hHandle)
794 
795 #ifdef MNG_SUPPORT_TRACE
796   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_CLOSESTREAM, MNG_LC_END);
797 #endif
798 
799   return ((mng_datap)hHandle)->fClosestream;
800 }
801 #endif
802 #endif /* MNG_SUPPORT_READ || MNG_SUPPORT_WRITE */
803 
804 /* ************************************************************************** */
805 
806 #ifdef MNG_SUPPORT_WRITE
mng_getcb_writedata(mng_handle hHandle)807 mng_writedata MNG_DECL mng_getcb_writedata (mng_handle hHandle)
808 {
809 #ifdef MNG_SUPPORT_TRACE
810   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_WRITEDATA, MNG_LC_START);
811 #endif
812 
813   MNG_VALIDHANDLEX (hHandle)
814 
815 #ifdef MNG_SUPPORT_TRACE
816   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_WRITEDATA, MNG_LC_END);
817 #endif
818 
819   return ((mng_datap)hHandle)->fWritedata;
820 }
821 #endif /* MNG_SUPPORT_WRITE */
822 
823 /* ************************************************************************** */
824 
mng_getcb_errorproc(mng_handle hHandle)825 mng_errorproc MNG_DECL mng_getcb_errorproc (mng_handle hHandle)
826 {
827 #ifdef MNG_SUPPORT_TRACE
828   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_ERRORPROC, MNG_LC_START);
829 #endif
830 
831   MNG_VALIDHANDLEX (hHandle)
832 
833 #ifdef MNG_SUPPORT_TRACE
834   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_ERRORPROC, MNG_LC_END);
835 #endif
836 
837   return ((mng_datap)hHandle)->fErrorproc;
838 }
839 
840 /* ************************************************************************** */
841 
842 #ifdef MNG_SUPPORT_TRACE
mng_getcb_traceproc(mng_handle hHandle)843 mng_traceproc MNG_DECL mng_getcb_traceproc (mng_handle hHandle)
844 {
845 #ifdef MNG_SUPPORT_TRACE
846   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_TRACEPROC, MNG_LC_START);
847 #endif
848 
849   MNG_VALIDHANDLEX (hHandle)
850 
851 #ifdef MNG_SUPPORT_TRACE
852   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_TRACEPROC, MNG_LC_END);
853 #endif
854 
855   return ((mng_datap)hHandle)->fTraceproc;
856 }
857 #endif /* MNG_SUPPORT_TRACE */
858 
859 /* ************************************************************************** */
860 
861 #ifdef MNG_SUPPORT_READ
mng_getcb_processheader(mng_handle hHandle)862 mng_processheader MNG_DECL mng_getcb_processheader (mng_handle hHandle)
863 {
864 #ifdef MNG_SUPPORT_TRACE
865   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSHEADER, MNG_LC_START);
866 #endif
867 
868   MNG_VALIDHANDLEX (hHandle)
869 
870 #ifdef MNG_SUPPORT_TRACE
871   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSHEADER, MNG_LC_END);
872 #endif
873 
874   return ((mng_datap)hHandle)->fProcessheader;
875 }
876 #endif /* MNG_SUPPORT_READ */
877 
878 /* ************************************************************************** */
879 
880 #ifdef MNG_SUPPORT_READ
881 #ifndef MNG_SKIPCHUNK_tEXt
mng_getcb_processtext(mng_handle hHandle)882 mng_processtext MNG_DECL mng_getcb_processtext (mng_handle hHandle)
883 {
884 #ifdef MNG_SUPPORT_TRACE
885   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSTEXT, MNG_LC_START);
886 #endif
887 
888   MNG_VALIDHANDLEX (hHandle)
889 
890 #ifdef MNG_SUPPORT_TRACE
891   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSTEXT, MNG_LC_END);
892 #endif
893 
894   return ((mng_datap)hHandle)->fProcesstext;
895 }
896 #endif
897 #endif /* MNG_SUPPORT_READ */
898 
899 /* ************************************************************************** */
900 
901 #ifdef MNG_SUPPORT_READ
902 #ifndef MNG_SKIPCHUNK_SAVE
mng_getcb_processsave(mng_handle hHandle)903 mng_processsave MNG_DECL mng_getcb_processsave (mng_handle hHandle)
904 {
905 #ifdef MNG_SUPPORT_TRACE
906   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSSAVE, MNG_LC_START);
907 #endif
908 
909   MNG_VALIDHANDLEX (hHandle)
910 
911 #ifdef MNG_SUPPORT_TRACE
912   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSSAVE, MNG_LC_END);
913 #endif
914 
915   return ((mng_datap)hHandle)->fProcesssave;
916 }
917 #endif
918 #endif /* MNG_SUPPORT_READ */
919 
920 /* ************************************************************************** */
921 
922 #ifdef MNG_SUPPORT_READ
923 #ifndef MNG_SKIPCHUNK_SEEK
mng_getcb_processseek(mng_handle hHandle)924 mng_processseek MNG_DECL mng_getcb_processseek (mng_handle hHandle)
925 {
926 #ifdef MNG_SUPPORT_TRACE
927   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSSEEK, MNG_LC_START);
928 #endif
929 
930   MNG_VALIDHANDLEX (hHandle)
931 
932 #ifdef MNG_SUPPORT_TRACE
933   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSSEEK, MNG_LC_END);
934 #endif
935 
936   return ((mng_datap)hHandle)->fProcessseek;
937 }
938 #endif
939 #endif /* MNG_SUPPORT_READ */
940 
941 /* ************************************************************************** */
942 
943 #ifdef MNG_SUPPORT_READ
944 #ifndef MNG_SKIPCHUNK_nEED
mng_getcb_processneed(mng_handle hHandle)945 mng_processneed MNG_DECL mng_getcb_processneed (mng_handle hHandle)
946 {
947 #ifdef MNG_SUPPORT_TRACE
948   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSNEED, MNG_LC_START);
949 #endif
950 
951   MNG_VALIDHANDLEX (hHandle)
952 
953 #ifdef MNG_SUPPORT_TRACE
954   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSNEED, MNG_LC_END);
955 #endif
956 
957   return ((mng_datap)hHandle)->fProcessneed;
958 }
959 #endif
960 #endif /* MNG_SUPPORT_READ */
961 
962 /* ************************************************************************** */
963 
964 #ifdef MNG_SUPPORT_READ
mng_getcb_processmend(mng_handle hHandle)965 mng_processmend MNG_DECL mng_getcb_processmend (mng_handle hHandle)
966 {
967 #ifdef MNG_SUPPORT_TRACE
968   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSMEND, MNG_LC_START);
969 #endif
970 
971   MNG_VALIDHANDLEX (hHandle)
972 
973 #ifdef MNG_SUPPORT_TRACE
974   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSMEND, MNG_LC_END);
975 #endif
976 
977   return ((mng_datap)hHandle)->fProcessmend;
978 }
979 #endif /* MNG_SUPPORT_READ */
980 
981 /* ************************************************************************** */
982 
983 #ifdef MNG_SUPPORT_READ
mng_getcb_processunknown(mng_handle hHandle)984 mng_processunknown MNG_DECL mng_getcb_processunknown (mng_handle hHandle)
985 {
986 #ifdef MNG_SUPPORT_TRACE
987   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSUNKNOWN, MNG_LC_START);
988 #endif
989 
990   MNG_VALIDHANDLEX (hHandle)
991 
992 #ifdef MNG_SUPPORT_TRACE
993   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSUNKNOWN, MNG_LC_END);
994 #endif
995 
996   return ((mng_datap)hHandle)->fProcessunknown;
997 }
998 #endif /* MNG_SUPPORT_READ */
999 
1000 /* ************************************************************************** */
1001 
1002 #ifdef MNG_SUPPORT_READ
1003 #ifndef MNG_SKIPCHUNK_TERM
mng_getcb_processterm(mng_handle hHandle)1004 mng_processterm MNG_DECL mng_getcb_processterm (mng_handle hHandle)
1005 {
1006 #ifdef MNG_SUPPORT_TRACE
1007   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSTERM, MNG_LC_START);
1008 #endif
1009 
1010   MNG_VALIDHANDLEX (hHandle)
1011 
1012 #ifdef MNG_SUPPORT_TRACE
1013   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSTERM, MNG_LC_END);
1014 #endif
1015 
1016   return ((mng_datap)hHandle)->fProcessterm;
1017 }
1018 #endif
1019 #endif /* MNG_SUPPORT_READ */
1020 
1021 /* ************************************************************************** */
1022 
1023 #ifdef MNG_SUPPORT_DISPLAY
mng_getcb_getcanvasline(mng_handle hHandle)1024 mng_getcanvasline MNG_DECL mng_getcb_getcanvasline (mng_handle hHandle)
1025 {
1026 #ifdef MNG_SUPPORT_TRACE
1027   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_GETCANVASLINE, MNG_LC_START);
1028 #endif
1029 
1030   MNG_VALIDHANDLEX (hHandle)
1031 
1032 #ifdef MNG_SUPPORT_TRACE
1033   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_GETCANVASLINE, MNG_LC_END);
1034 #endif
1035 
1036   return ((mng_datap)hHandle)->fGetcanvasline;
1037 }
1038 #endif /* MNG_SUPPORT_DISPLAY */
1039 
1040 /* ************************************************************************** */
1041 
1042 #ifdef MNG_SUPPORT_DISPLAY
mng_getcb_getbkgdline(mng_handle hHandle)1043 mng_getbkgdline MNG_DECL mng_getcb_getbkgdline (mng_handle hHandle)
1044 {
1045 #ifdef MNG_SUPPORT_TRACE
1046   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_GETBKGDLINE, MNG_LC_START);
1047 #endif
1048 
1049   MNG_VALIDHANDLEX (hHandle)
1050 
1051 #ifdef MNG_SUPPORT_TRACE
1052   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_GETBKGDLINE, MNG_LC_END);
1053 #endif
1054 
1055   return ((mng_datap)hHandle)->fGetbkgdline;
1056 }
1057 #endif /* MNG_SUPPORT_DISPLAY */
1058 
1059 /* ************************************************************************** */
1060 
1061 #ifdef MNG_SUPPORT_DISPLAY
mng_getcb_getalphaline(mng_handle hHandle)1062 mng_getalphaline MNG_DECL mng_getcb_getalphaline (mng_handle hHandle)
1063 {
1064 #ifdef MNG_SUPPORT_TRACE
1065   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_GETALPHALINE, MNG_LC_START);
1066 #endif
1067 
1068   MNG_VALIDHANDLEX (hHandle)
1069 
1070 #ifdef MNG_SUPPORT_TRACE
1071   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_GETALPHALINE, MNG_LC_END);
1072 #endif
1073 
1074   return ((mng_datap)hHandle)->fGetalphaline;
1075 }
1076 #endif /* MNG_SUPPORT_DISPLAY */
1077 
1078 /* ************************************************************************** */
1079 
1080 #ifdef MNG_SUPPORT_DISPLAY
mng_getcb_refresh(mng_handle hHandle)1081 mng_refresh MNG_DECL mng_getcb_refresh (mng_handle hHandle)
1082 {
1083 #ifdef MNG_SUPPORT_TRACE
1084   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_REFRESH, MNG_LC_START);
1085 #endif
1086 
1087   MNG_VALIDHANDLEX (hHandle)
1088 
1089 #ifdef MNG_SUPPORT_TRACE
1090   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_REFRESH, MNG_LC_END);
1091 #endif
1092 
1093   return ((mng_datap)hHandle)->fRefresh;
1094 }
1095 #endif /* MNG_SUPPORT_DISPLAY */
1096 
1097 /* ************************************************************************** */
1098 
1099 #ifdef MNG_SUPPORT_DISPLAY
mng_getcb_gettickcount(mng_handle hHandle)1100 mng_gettickcount MNG_DECL mng_getcb_gettickcount (mng_handle hHandle)
1101 {
1102 #ifdef MNG_SUPPORT_TRACE
1103   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_GETTICKCOUNT, MNG_LC_START);
1104 #endif
1105 
1106   MNG_VALIDHANDLEX (hHandle)
1107 
1108 #ifdef MNG_SUPPORT_TRACE
1109   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_GETTICKCOUNT, MNG_LC_END);
1110 #endif
1111 
1112   return ((mng_datap)hHandle)->fGettickcount;
1113 }
1114 #endif /* MNG_SUPPORT_DISPLAY */
1115 
1116 /* ************************************************************************** */
1117 
1118 #ifdef MNG_SUPPORT_DISPLAY
mng_getcb_settimer(mng_handle hHandle)1119 mng_settimer MNG_DECL mng_getcb_settimer (mng_handle hHandle)
1120 {
1121 #ifdef MNG_SUPPORT_TRACE
1122   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_SETTIMER, MNG_LC_START);
1123 #endif
1124 
1125   MNG_VALIDHANDLEX (hHandle)
1126 
1127 #ifdef MNG_SUPPORT_TRACE
1128   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_SETTIMER, MNG_LC_END);
1129 #endif
1130 
1131   return ((mng_datap)hHandle)->fSettimer;
1132 }
1133 #endif /* MNG_SUPPORT_DISPLAY */
1134 
1135 /* ************************************************************************** */
1136 
1137 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
mng_getcb_processgamma(mng_handle hHandle)1138 mng_processgamma MNG_DECL mng_getcb_processgamma (mng_handle hHandle)
1139 {
1140 #ifdef MNG_SUPPORT_TRACE
1141   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSGAMMA, MNG_LC_START);
1142 #endif
1143 
1144   MNG_VALIDHANDLEX (hHandle)
1145 
1146 #ifdef MNG_SUPPORT_TRACE
1147   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSGAMMA, MNG_LC_END);
1148 #endif
1149 
1150   return ((mng_datap)hHandle)->fProcessgamma;
1151 }
1152 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
1153 
1154 /* ************************************************************************** */
1155 
1156 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
1157 #ifndef MNG_SKIPCHUNK_cHRM
mng_getcb_processchroma(mng_handle hHandle)1158 mng_processchroma MNG_DECL mng_getcb_processchroma (mng_handle hHandle)
1159 {
1160 #ifdef MNG_SUPPORT_TRACE
1161   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSCHROMA, MNG_LC_START);
1162 #endif
1163 
1164   MNG_VALIDHANDLEX (hHandle)
1165 
1166 #ifdef MNG_SUPPORT_TRACE
1167   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSCHROMA, MNG_LC_END);
1168 #endif
1169 
1170   return ((mng_datap)hHandle)->fProcesschroma;
1171 }
1172 #endif
1173 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
1174 
1175 /* ************************************************************************** */
1176 
1177 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
mng_getcb_processsrgb(mng_handle hHandle)1178 mng_processsrgb MNG_DECL mng_getcb_processsrgb (mng_handle hHandle)
1179 {
1180 #ifdef MNG_SUPPORT_TRACE
1181   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSSRGB, MNG_LC_START);
1182 #endif
1183 
1184   MNG_VALIDHANDLEX (hHandle)
1185 
1186 #ifdef MNG_SUPPORT_TRACE
1187   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSSRGB, MNG_LC_END);
1188 #endif
1189 
1190   return ((mng_datap)hHandle)->fProcesssrgb;
1191 }
1192 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
1193 
1194 /* ************************************************************************** */
1195 
1196 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
1197 #ifndef MNG_SKIPCHUNK_iCCP
mng_getcb_processiccp(mng_handle hHandle)1198 mng_processiccp MNG_DECL mng_getcb_processiccp (mng_handle hHandle)
1199 {
1200 #ifdef MNG_SUPPORT_TRACE
1201   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSICCP, MNG_LC_START);
1202 #endif
1203 
1204   MNG_VALIDHANDLEX (hHandle)
1205 
1206 #ifdef MNG_SUPPORT_TRACE
1207   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSICCP, MNG_LC_END);
1208 #endif
1209 
1210   return ((mng_datap)hHandle)->fProcessiccp;
1211 }
1212 #endif
1213 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
1214 
1215 /* ************************************************************************** */
1216 
1217 #if defined(MNG_SUPPORT_DISPLAY) && defined(MNG_APP_CMS)
mng_getcb_processarow(mng_handle hHandle)1218 mng_processarow MNG_DECL mng_getcb_processarow (mng_handle hHandle)
1219 {
1220 #ifdef MNG_SUPPORT_TRACE
1221   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSAROW, MNG_LC_START);
1222 #endif
1223 
1224   MNG_VALIDHANDLEX (hHandle)
1225 
1226 #ifdef MNG_SUPPORT_TRACE
1227   MNG_TRACEX (((mng_datap)hHandle), MNG_FN_GETCB_PROCESSAROW, MNG_LC_END);
1228 #endif
1229 
1230   return ((mng_datap)hHandle)->fProcessarow;
1231 }
1232 #endif /* MNG_SUPPORT_DISPLAY && MNG_APP_CMS */
1233 
1234 /* ************************************************************************** */
1235 /* * end of file                                                            * */
1236 /* ************************************************************************** */
1237 
1238 
1239 
1240