summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xine_frontend.c13
-rw-r--r--xine_input_vdr.c8
-rw-r--r--xine_input_vdr.h4
3 files changed, 17 insertions, 8 deletions
diff --git a/xine_frontend.c b/xine_frontend.c
index 942d3c90..44d4fcdb 100644
--- a/xine_frontend.c
+++ b/xine_frontend.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_frontend.c,v 1.123 2012-03-07 08:27:40 phintuka Exp $
+ * $Id: xine_frontend.c,v 1.124 2012-03-10 23:51:10 phintuka Exp $
*
*/
@@ -1153,6 +1153,15 @@ static void fe_post_open(const fe_t *this, const char *name, const char *args)
LOGDBG("Post plugin %s loaded and wired", name);
}
+static void input_event_cb(frontend_t *this_gen, const char *keymap, const char *key)
+{
+ fe_t *this = (fe_t*)this_gen;
+
+ if (this->keypress) {
+ this->keypress(keymap, key);
+ }
+}
+
static int fe_xine_play(frontend_t *this_gen)
{
fe_t *this = (fe_t*)this_gen;
@@ -1168,7 +1177,7 @@ static int fe_xine_play(frontend_t *this_gen)
if(!find_input_plugin(this))
return -1;
- this->input_plugin->f.xine_input_event = this->keypress;
+ this->input_plugin->f.xine_input_event = this->keypress ? input_event_cb : NULL;
this->input_plugin->f.fe_control = fe_control;
this->input_plugin->f.fe_handle = this_gen;
diff --git a/xine_input_vdr.c b/xine_input_vdr.c
index 4fdfa4c8..27ba5aee 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.355 2012-03-07 08:51:34 phintuka Exp $
+ * $Id: xine_input_vdr.c,v 1.356 2012-03-10 23:51:10 phintuka Exp $
*
*/
@@ -136,7 +136,7 @@ typedef struct {
# include <linux/unistd.h> /* syscall(__NR_gettid) */
#endif
-static const char module_revision[] = "$Id: xine_input_vdr.c,v 1.355 2012-03-07 08:51:34 phintuka Exp $";
+static const char module_revision[] = "$Id: xine_input_vdr.c,v 1.356 2012-03-10 23:51:10 phintuka Exp $";
static const char log_module_input_vdr[] = "[input_vdr] ";
#define LOG_MODULENAME log_module_input_vdr
#define SysLogLevel iSysLogLevel
@@ -1168,7 +1168,7 @@ static void puts_vdr(vdr_input_plugin_t *this, const char *s)
{
if (this->fd_control < 0) {
if (this->funcs.xine_input_event) {
- this->funcs.xine_input_event(s, NULL);
+ this->funcs.xine_input_event(this->funcs.fe_handle, s, NULL);
}
} else {
write_control(this, s);
@@ -3835,7 +3835,7 @@ static void vdr_event_cb (void *user_data, const xine_event_t *event)
}
if (this->funcs.xine_input_event) {
/* local mode: -> VDR */
- this->funcs.xine_input_event(NULL, vdr_keymap[i].name);
+ this->funcs.xine_input_event(this->funcs.fe_handle, NULL, vdr_keymap[i].name);
}
return;
}
diff --git a/xine_input_vdr.h b/xine_input_vdr.h
index 2d0cedf9..c954903d 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.11 2010-02-14 12:53:06 phintuka Exp $
+ * $Id: xine_input_vdr.h,v 1.12 2012-03-10 23:51:10 phintuka Exp $
*
*/
@@ -31,7 +31,7 @@ typedef struct vdr_input_plugin_funcs_s {
int (*push_input_osd) (struct vdr_input_plugin_if_s *, struct osd_command_s *);
/* input plugin --> frontend (only local mode) */
- void (*xine_input_event) (const char *, const char *);
+ void (*xine_input_event) (struct frontend_s *, const char *, const char *);
/* input plugin --> frontend (remote mode) */
int (*intercept_osd) (struct frontend_s *, struct osd_command_s *);