From f8763a6ca1881728dbc5025acfe3103536036ab7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Fri, 20 Jun 2008 22:21:24 +0300 Subject: [PATCH] RC: fix segmentation fault due to input state changes - fixes #1620 --- include/vlc_input.h | 4 +++- modules/control/rc.c | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/include/vlc_input.h b/include/vlc_input.h index 7e155f7724..13f19d656d 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -525,6 +525,8 @@ static inline void vlc_input_attachment_Delete( input_attachment_t *a ) *****************************************************************************/ /* "state" value */ +/* NOTE: you need to update ppsz_input_state in the RC interface + * if you modify this list. */ enum input_state_e { INIT_S = 0, @@ -536,7 +538,7 @@ enum input_state_e FORWARD_S, BACKWARD_S, END_S, - ERROR_S + ERROR_S, }; /* "rate" default, min/max diff --git a/modules/control/rc.c b/modules/control/rc.c index 25a3d71fa7..5de88df583 100644 --- a/modules/control/rc.c +++ b/modules/control/rc.c @@ -67,7 +67,19 @@ #define MAX_LINE_LENGTH 256 #define STATUS_CHANGE "status change: " -static const char *ppsz_input_state[] = { N_("Initializing"), N_("Opening"), N_("Buffer"), N_("Play"), N_("Pause"), N_("Stop"), N_("Error") }; +/* input_state_e from */ +static const char *ppsz_input_state[] = { + N_("Initializing"), + N_("Opening"), + N_("Buffer"), + N_("Play"), + N_("Pause"), + N_("Stop"), + N_("Forward"), + N_("Backward"), + N_("End"), + N_("Error"), +}; /***************************************************************************** * Local prototypes @@ -1000,7 +1012,7 @@ static int StateChanged( vlc_object_t *p_this, char const *psz_cmd, cmd[0] = '\0'; } /* var_GetInteger( p_input, "state" ) */ msg_rc( STATUS_CHANGE "( %s state: %d ): %s", - &cmd[0], newval.i_int, + cmd, newval.i_int, ppsz_input_state[ newval.i_int ] ); vlc_object_release( p_playlist ); vlc_object_release( p_input ); -- 2.39.2