X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libopenjpeg%2Fevent.c;h=a9ef528482fe66c4596c626c7354116b24d0e3d6;hb=f47fc4f111a80c0af0fb9d37a219c7e1ce44019f;hp=2a7006559c9e5bde82df70715158182f340ef1bc;hpb=67d04dd9ba5fdf9124b34e56cba0ea07a8abe196;p=openjpeg.git diff --git a/libopenjpeg/event.c b/libopenjpeg/event.c index 2a700655..a9ef5284 100644 --- a/libopenjpeg/event.c +++ b/libopenjpeg/event.c @@ -62,16 +62,11 @@ _itoa(int i, char *a, int r) { #endif /* ----------------------------------------------------------------------- */ -opj_event_mgr_t* OPJ_CALLCONV opj_set_event_mgr(opj_common_ptr cinfo, opj_event_mgr_t *event_mgr, void *context) { - if(cinfo) { - opj_event_mgr_t *previous = cinfo->event_mgr; - cinfo->event_mgr = event_mgr; - cinfo->client_data = context; - return previous; - } - - return NULL; -} +/** + * Default callback function. + * Do nothing. + */ +static void opj_default_callback (const char *msg, void *client_data){}; /* ----------------------------------------------------------------------- */ opj_bool opj_event_msg(opj_common_ptr cinfo, int event_type, const char *fmt, ...) { @@ -122,32 +117,36 @@ opj_bool opj_event_msg(opj_common_ptr cinfo, int event_type, const char *fmt, .. } /* ----------------------------------------------------------------------- */ -opj_bool opj_event_msg_v2(opj_event_mgr_t* event_mgr, int event_type, const char *fmt, ...) { +opj_bool opj_event_msg_v2(opj_event_mgr_t* p_event_mgr, int event_type, const char *fmt, ...) { #define MSG_SIZE 512 /* 512 bytes should be more than enough for a short message */ - opj_msg_callback msg_handler = NULL; + opj_msg_callback msg_handler = 00; + void * l_data = 00; - if(event_mgr != NULL) { + if(p_event_mgr != 00) { switch(event_type) { case EVT_ERROR: - msg_handler = event_mgr->error_handler; + msg_handler = p_event_mgr->error_handler; + l_data = p_event_mgr->m_error_data; break; case EVT_WARNING: - msg_handler = event_mgr->warning_handler; + msg_handler = p_event_mgr->warning_handler; + l_data = p_event_mgr->m_warning_data; break; case EVT_INFO: - msg_handler = event_mgr->info_handler; + msg_handler = p_event_mgr->info_handler; + l_data = p_event_mgr->m_info_data; break; default: break; } - if(msg_handler == NULL) { + if(msg_handler == 00) { return OPJ_FALSE; } } else { return OPJ_FALSE; } - if ((fmt != NULL) && (event_mgr != NULL)) { + if ((fmt != 00) && (p_event_mgr != 00)) { va_list arg; int str_length/*, i, j*/; /* UniPG */ char message[MSG_SIZE]; @@ -162,72 +161,19 @@ opj_bool opj_event_msg_v2(opj_event_mgr_t* event_mgr, int event_type, const char va_end(arg); /* output the message to the user program */ - msg_handler(message, event_mgr->client_data); + msg_handler(message, l_data); } return OPJ_TRUE; } -/* ----------------------------------------------------------------------- */ -void OPJ_CALLCONV opj_initialize_default_event_handler(opj_event_mgr_t * p_event, opj_bool verbose) -{ - if (! p_event){ - fprintf(stderr, "[ERROR] Event structure provided to the opj_set_default_event_handler is equal to null pointer.\n"); - return; - } - - p_event->client_data = NULL; - p_event->error_handler = opj_error_default_callback; - - if (verbose) { - p_event->info_handler = opj_info_default_callback; - p_event->warning_handler = opj_warning_default_callback; - } - else { - /* FIXME (MSD) This message should be remove when the documentation will be updated */ - fprintf(stdout, "[INFO] Verbose mode = OFF => no other info/warning output.\n"); - p_event->info_handler = opj_default_callback ; - p_event->warning_handler = opj_default_callback ; - } -} - -/* ---------------------------------------------------------------------- */ -/* Default callback functions */ - -/** - * Default callback function. - * Do nothing. - */ -void opj_default_callback (const char *msg, void *client_data) +void opj_set_default_event_handler(opj_event_mgr_t * p_manager) { + p_manager->m_error_data = 00; + p_manager->m_warning_data = 00; + p_manager->m_info_data = 00; + p_manager->error_handler = opj_default_callback; + p_manager->info_handler = opj_default_callback; + p_manager->warning_handler = opj_default_callback; } -/** - * Default info callback function. - * Output = stdout. - */ -void opj_info_default_callback (const char *msg, void *client_data) -{ - (void)client_data; - fprintf(stdout, "[INFO] %s", msg); -} - -/** - * Default warning callback function. - * Output = stderr. - */ -void opj_warning_default_callback (const char *msg, void *client_data) -{ - (void)client_data; - fprintf(stderr, "[WARNING] %s", msg); -} - -/** - * Default error callback function. - * Output = stderr. - */ -void opj_error_default_callback (const char *msg, void *client_data) -{ - (void)client_data; - fprintf(stderr, "[ERROR] %s", msg); -}