xref: /aosp_15_r20/external/pdfium/third_party/libopenjpeg/event.h (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Worker /*
2*3ac0a46fSAndroid Build Coastguard Worker  * The copyright in this software is being made available under the 2-clauses
3*3ac0a46fSAndroid Build Coastguard Worker  * BSD License, included below. This software may be subject to other third
4*3ac0a46fSAndroid Build Coastguard Worker  * party and contributor rights, including patent rights, and no such rights
5*3ac0a46fSAndroid Build Coastguard Worker  * are granted under this license.
6*3ac0a46fSAndroid Build Coastguard Worker  *
7*3ac0a46fSAndroid Build Coastguard Worker  * Copyright (c) 2005, Herve Drolon, FreeImage Team
8*3ac0a46fSAndroid Build Coastguard Worker  * Copyright (c) 2008, 2011-2012, Centre National d'Etudes Spatiales (CNES), FR
9*3ac0a46fSAndroid Build Coastguard Worker  * Copyright (c) 2012, CS Systemes d'Information, France
10*3ac0a46fSAndroid Build Coastguard Worker  * All rights reserved.
11*3ac0a46fSAndroid Build Coastguard Worker  *
12*3ac0a46fSAndroid Build Coastguard Worker  * Redistribution and use in source and binary forms, with or without
13*3ac0a46fSAndroid Build Coastguard Worker  * modification, are permitted provided that the following conditions
14*3ac0a46fSAndroid Build Coastguard Worker  * are met:
15*3ac0a46fSAndroid Build Coastguard Worker  * 1. Redistributions of source code must retain the above copyright
16*3ac0a46fSAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer.
17*3ac0a46fSAndroid Build Coastguard Worker  * 2. Redistributions in binary form must reproduce the above copyright
18*3ac0a46fSAndroid Build Coastguard Worker  *    notice, this list of conditions and the following disclaimer in the
19*3ac0a46fSAndroid Build Coastguard Worker  *    documentation and/or other materials provided with the distribution.
20*3ac0a46fSAndroid Build Coastguard Worker  *
21*3ac0a46fSAndroid Build Coastguard Worker  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
22*3ac0a46fSAndroid Build Coastguard Worker  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23*3ac0a46fSAndroid Build Coastguard Worker  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24*3ac0a46fSAndroid Build Coastguard Worker  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25*3ac0a46fSAndroid Build Coastguard Worker  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26*3ac0a46fSAndroid Build Coastguard Worker  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27*3ac0a46fSAndroid Build Coastguard Worker  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28*3ac0a46fSAndroid Build Coastguard Worker  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29*3ac0a46fSAndroid Build Coastguard Worker  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30*3ac0a46fSAndroid Build Coastguard Worker  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31*3ac0a46fSAndroid Build Coastguard Worker  * POSSIBILITY OF SUCH DAMAGE.
32*3ac0a46fSAndroid Build Coastguard Worker  */
33*3ac0a46fSAndroid Build Coastguard Worker #ifndef OPJ_EVENT_H
34*3ac0a46fSAndroid Build Coastguard Worker #define OPJ_EVENT_H
35*3ac0a46fSAndroid Build Coastguard Worker /**
36*3ac0a46fSAndroid Build Coastguard Worker @file event.h
37*3ac0a46fSAndroid Build Coastguard Worker @brief Implementation of a event callback system
38*3ac0a46fSAndroid Build Coastguard Worker 
39*3ac0a46fSAndroid Build Coastguard Worker The functions in EVENT.C have for goal to send output messages (errors, warnings, debug) to the user.
40*3ac0a46fSAndroid Build Coastguard Worker */
41*3ac0a46fSAndroid Build Coastguard Worker /**
42*3ac0a46fSAndroid Build Coastguard Worker Message handler object
43*3ac0a46fSAndroid Build Coastguard Worker used for
44*3ac0a46fSAndroid Build Coastguard Worker <ul>
45*3ac0a46fSAndroid Build Coastguard Worker <li>Error messages
46*3ac0a46fSAndroid Build Coastguard Worker <li>Warning messages
47*3ac0a46fSAndroid Build Coastguard Worker <li>Debugging messages
48*3ac0a46fSAndroid Build Coastguard Worker </ul>
49*3ac0a46fSAndroid Build Coastguard Worker */
50*3ac0a46fSAndroid Build Coastguard Worker typedef struct opj_event_mgr {
51*3ac0a46fSAndroid Build Coastguard Worker     /** Data to call the event manager upon */
52*3ac0a46fSAndroid Build Coastguard Worker     void *          m_error_data;
53*3ac0a46fSAndroid Build Coastguard Worker     /** Data to call the event manager upon */
54*3ac0a46fSAndroid Build Coastguard Worker     void *          m_warning_data;
55*3ac0a46fSAndroid Build Coastguard Worker     /** Data to call the event manager upon */
56*3ac0a46fSAndroid Build Coastguard Worker     void *          m_info_data;
57*3ac0a46fSAndroid Build Coastguard Worker     /** Error message callback if available, NULL otherwise */
58*3ac0a46fSAndroid Build Coastguard Worker     opj_msg_callback error_handler;
59*3ac0a46fSAndroid Build Coastguard Worker     /** Warning message callback if available, NULL otherwise */
60*3ac0a46fSAndroid Build Coastguard Worker     opj_msg_callback warning_handler;
61*3ac0a46fSAndroid Build Coastguard Worker     /** Debug message callback if available, NULL otherwise */
62*3ac0a46fSAndroid Build Coastguard Worker     opj_msg_callback info_handler;
63*3ac0a46fSAndroid Build Coastguard Worker } opj_event_mgr_t;
64*3ac0a46fSAndroid Build Coastguard Worker 
65*3ac0a46fSAndroid Build Coastguard Worker 
66*3ac0a46fSAndroid Build Coastguard Worker #define EVT_ERROR   1   /**< Error event type */
67*3ac0a46fSAndroid Build Coastguard Worker #define EVT_WARNING 2   /**< Warning event type */
68*3ac0a46fSAndroid Build Coastguard Worker #define EVT_INFO    4   /**< Debug event type */
69*3ac0a46fSAndroid Build Coastguard Worker 
70*3ac0a46fSAndroid Build Coastguard Worker /** @defgroup EVENT EVENT - Implementation of a event callback system */
71*3ac0a46fSAndroid Build Coastguard Worker /*@{*/
72*3ac0a46fSAndroid Build Coastguard Worker 
73*3ac0a46fSAndroid Build Coastguard Worker /** @name Exported functions (see also openjpeg.h) */
74*3ac0a46fSAndroid Build Coastguard Worker /*@{*/
75*3ac0a46fSAndroid Build Coastguard Worker /* ----------------------------------------------------------------------- */
76*3ac0a46fSAndroid Build Coastguard Worker 
77*3ac0a46fSAndroid Build Coastguard Worker 
78*3ac0a46fSAndroid Build Coastguard Worker /* ----------------------------------------------------------------------- */
79*3ac0a46fSAndroid Build Coastguard Worker 
80*3ac0a46fSAndroid Build Coastguard Worker /**
81*3ac0a46fSAndroid Build Coastguard Worker  * Write formatted data to a string and send the string to a user callback.
82*3ac0a46fSAndroid Build Coastguard Worker  *
83*3ac0a46fSAndroid Build Coastguard Worker  * @param event_mgr         Event handler
84*3ac0a46fSAndroid Build Coastguard Worker  * @param event_type        Event type or callback to use to send the message
85*3ac0a46fSAndroid Build Coastguard Worker  * @param fmt               Format-control string (plus optional arguments)
86*3ac0a46fSAndroid Build Coastguard Worker  *
87*3ac0a46fSAndroid Build Coastguard Worker  * @return Returns true if successful, returns false otherwise
88*3ac0a46fSAndroid Build Coastguard Worker  */
89*3ac0a46fSAndroid Build Coastguard Worker OPJ_BOOL opj_event_msg(opj_event_mgr_t* event_mgr, OPJ_INT32 event_type,
90*3ac0a46fSAndroid Build Coastguard Worker                        const char *fmt, ...);
91*3ac0a46fSAndroid Build Coastguard Worker /* ----------------------------------------------------------------------- */
92*3ac0a46fSAndroid Build Coastguard Worker 
93*3ac0a46fSAndroid Build Coastguard Worker /**
94*3ac0a46fSAndroid Build Coastguard Worker  * Set the event manager with the default callback function for the 3 levels.
95*3ac0a46fSAndroid Build Coastguard Worker  */
96*3ac0a46fSAndroid Build Coastguard Worker void opj_set_default_event_handler(opj_event_mgr_t * p_manager);
97*3ac0a46fSAndroid Build Coastguard Worker 
98*3ac0a46fSAndroid Build Coastguard Worker /*
99*3ac0a46fSAndroid Build Coastguard Worker #ifdef __GNUC__
100*3ac0a46fSAndroid Build Coastguard Worker #pragma GCC poison printf fprintf
101*3ac0a46fSAndroid Build Coastguard Worker #endif
102*3ac0a46fSAndroid Build Coastguard Worker */
103*3ac0a46fSAndroid Build Coastguard Worker 
104*3ac0a46fSAndroid Build Coastguard Worker /*@}*/
105*3ac0a46fSAndroid Build Coastguard Worker 
106*3ac0a46fSAndroid Build Coastguard Worker /*@}*/
107*3ac0a46fSAndroid Build Coastguard Worker 
108*3ac0a46fSAndroid Build Coastguard Worker #endif /* OPJ_EVENT_H */
109