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