diff options
author | phintuka <phintuka> | 2008-02-27 00:30:43 +0000 |
---|---|---|
committer | phintuka <phintuka> | 2008-02-27 00:30:43 +0000 |
commit | 76ec289bf346ad74c06bbbbaf96715305d25353b (patch) | |
tree | 627fc24df99afaf6e49e18ec0b0312a99d60efd6 | |
parent | 82a7d2990093118f23032f576cd6e9cdc5bee7e7 (diff) | |
download | xineliboutput-76ec289bf346ad74c06bbbbaf96715305d25353b.tar.gz xineliboutput-76ec289bf346ad74c06bbbbaf96715305d25353b.tar.bz2 |
Preparation for HUD OSD: allow frontend to intercept OSD messages.
-rw-r--r-- | xine_input_vdr.c | 7 | ||||
-rw-r--r-- | xine_input_vdr.h | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/xine_input_vdr.c b/xine_input_vdr.c index cb64a3d6..4f09204c 100644 --- a/xine_input_vdr.c +++ b/xine_input_vdr.c @@ -4,7 +4,7 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: xine_input_vdr.c,v 1.119 2008-02-27 00:27:48 phintuka Exp $ + * $Id: xine_input_vdr.c,v 1.120 2008-02-27 00:30:43 phintuka Exp $ * */ @@ -2312,6 +2312,11 @@ static int vdr_plugin_exec_osd_command(input_plugin_t *this_gen, int result = CONTROL_DISCONNECTED; int video_changed = 0; + if (this->fd_control >= 0 && /* remote mode */ + this->funcs.intercept_osd /* frontend handles OSD */ ) { + return this->funcs.intercept_osd(this->funcs.fe_handle, cmd) ? CONTROL_OK : CONTROL_DISCONNECTED; + } + if(!pthread_mutex_lock (&this->osd_lock)) { palette_rgb_to_yuy(cmd->palette, cmd->colors); video_changed = update_video_size(this); diff --git a/xine_input_vdr.h b/xine_input_vdr.h index 2f9a33f3..e1ec89de 100644 --- a/xine_input_vdr.h +++ b/xine_input_vdr.h @@ -4,7 +4,7 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: xine_input_vdr.h,v 1.3 2006-08-23 06:50:20 phintuka Exp $ + * $Id: xine_input_vdr.h,v 1.4 2008-02-27 00:30:43 phintuka Exp $ * */ @@ -25,6 +25,8 @@ typedef struct vdr_input_plugin_funcs_s { int (*push_input_osd)(struct input_plugin_s *, struct osd_command_s *); /* input plugin --> frontend (only local mode) */ void (*xine_input_event)(const char *, const char *); + /* input plugin --> frontend (remote mode) */ + int (*intercept_osd)(void *fe_handle, struct osd_command_s *); /* input plugin --> frontend */ void *(*fe_control)(void *fe_handle, const char *); void *fe_handle; |