diff options
author | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2008-06-11 19:11:04 +0100 |
---|---|---|
committer | Darren Salt <linux@youmustbejoking.demon.co.uk> | 2008-06-11 19:11:04 +0100 |
commit | acc0fe7a56ffdfa0ca359ba4a18fe7381933dbc5 (patch) | |
tree | fdbc0bd63e09253ce503e50ce8cc194d812632ba | |
parent | abf81e0f348655b62a3e784572c269aab5c8e352 (diff) | |
download | xine-lib-acc0fe7a56ffdfa0ca359ba4a18fe7381933dbc5.tar.gz xine-lib-acc0fe7a56ffdfa0ca359ba4a18fe7381933dbc5.tar.bz2 |
Provide a useful implementation of xine_register_log_cb().
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/xine-engine/xine.c | 14 | ||||
-rw-r--r-- | src/xine-engine/xine_internal.h | 3 |
3 files changed, 13 insertions, 5 deletions
@@ -9,6 +9,7 @@ xine-lib (1.1.12.1) 2008-??-?? * Fixed display of some MJPEG streams (YUVJ420P). * Deprecate xine_xmalloc() function, see src/xine-utils/utils.c for more information about the reason. + * Provide a useful implementation of xine_register_log_cb(). xine-lib (1.1.12) 2008-04-14 * Security fixes: diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c index 46d3b424f..984b6ade9 100644 --- a/src/xine-engine/xine.c +++ b/src/xine-engine/xine.c @@ -2229,7 +2229,10 @@ void xine_log (xine_t *this, int buf, const char *format, ...) { vsnprintf(buffer, SCRATCH_LINE_LEN_MAX, format, argp); printf("%s", buffer); va_end (argp); - } + } + + if (this->log_cb) + this->log_cb (this->log_cb_user_data, buf); } void xine_vlog(xine_t *this, int buf, const char *format, @@ -2238,6 +2241,9 @@ void xine_vlog(xine_t *this, int buf, const char *format, check_log_alloc (this, buf); this->log_buffers[buf]->scratch_printf(this->log_buffers[buf], format, args); + + if (this->log_cb) + this->log_cb (this->log_cb_user_data, buf); } char *const *xine_get_log (xine_t *this, int buf) { @@ -2252,12 +2258,10 @@ char *const *xine_get_log (xine_t *this, int buf) { } void xine_register_log_cb (xine_t *this, xine_log_cb_t cb, void *user_data) { - - printf ("xine: xine_register_log_cb: not implemented yet.\n"); - _x_abort(); + this->log_cb = cb; + this->log_cb_user_data = user_data; } - int xine_get_error (xine_stream_t *stream) { return stream->err; } diff --git a/src/xine-engine/xine_internal.h b/src/xine-engine/xine_internal.h index 85f3d6489..f97ca0b24 100644 --- a/src/xine-engine/xine_internal.h +++ b/src/xine-engine/xine_internal.h @@ -117,6 +117,9 @@ struct xine_s { #ifdef XINE_ENGINE_INTERNAL xine_ticket_t *port_ticket; pthread_mutex_t log_lock; + + xine_log_cb_t log_cb; + void *log_cb_user_data; #endif }; |