static int RecordCallback( vlc_object_t *p_this, char const *psz_cmd,
vlc_value_t oldval, vlc_value_t newval,
void *p_data );
+static int FrameNextCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval,
+ void *p_data );
typedef struct
{
const char *psz_name;
vlc_callback_t callback;
} vlc_input_callback_t;
+
static void InputAddCallbacks( input_thread_t *, const vlc_input_callback_t * );
static void InputDelCallbacks( input_thread_t *, const vlc_input_callback_t * );
CALLBACK( "audio-es", ESCallback ),
CALLBACK( "spu-es", ESCallback ),
CALLBACK( "record", RecordCallback ),
+ CALLBACK( "frame-next", FrameNextCallback ),
CALLBACK( NULL, NULL )
};
var_Create( p_input, "rate-faster", VLC_VAR_VOID );
+ var_Create( p_input, "frame-next", VLC_VAR_VOID );
+
/* Position */
var_Create( p_input, "position", VLC_VAR_FLOAT );
var_Create( p_input, "position-offset", VLC_VAR_FLOAT );
*
* stats-change to inform when statistics are computed
*
- * TODO list all changes warn by this callbacks */
- var_Create( p_input, "intf-change", VLC_VAR_BOOL );
- var_SetBool( p_input, "intf-change", true );
- var_Create( p_input, "rate-change", VLC_VAR_BOOL );
- var_SetBool( p_input, "rate-change", true );
- var_Create( p_input, "stats-change", VLC_VAR_BOOL );
- var_SetBool( p_input, "stats-change", true );
-
- var_Create( p_input, "intf-change-vout", VLC_VAR_BOOL );
- var_SetBool( p_input, "intf-change-vout", true );
+ * TODO list all changes warn by these callbacks */
+ static const char *ppsz_event[] = {
+ "intf-change",
+ "rate-change",
+ "stats-change",
+ "intf-change-vout",
+ NULL
+ };
+ for( int i = 0; ppsz_event[i] != NULL; i++ )
+ {
+ var_Create( p_input, ppsz_event[i], VLC_VAR_BOOL );
+ var_SetBool( p_input, ppsz_event[i], true );
+ }
}
/* Add all callbacks
var_Create( p_input, "can-pause", VLC_VAR_BOOL );
var_SetBool( p_input, "can-pause", true ); /* Fixed later*/
+ var_Create( p_input, "can-rate", VLC_VAR_BOOL );
+ var_SetBool( p_input, "can-rate", false );
+
+ var_Create( p_input, "can-rewind", VLC_VAR_BOOL );
+ var_SetBool( p_input, "can-rewind", false );
+
var_Create( p_input, "can-record", VLC_VAR_BOOL );
var_SetBool( p_input, "can-record", false ); /* Fixed later*/
p_callbacks[i].psz_name,
p_callbacks[i].callback, NULL );
}
+
static void InputDelCallbacks( input_thread_t *p_input,
const vlc_input_callback_t *p_callbacks )
{
p_callbacks[i].psz_name,
p_callbacks[i].callback, NULL );
}
+
/*****************************************************************************
* All Callbacks:
*****************************************************************************/
{
input_ControlPush( p_input, INPUT_CONTROL_SET_RATE, &newval );
}
-
return VLC_SUCCESS;
}
return VLC_SUCCESS;
}
+
+static int FrameNextCallback( vlc_object_t *p_this, char const *psz_cmd,
+ vlc_value_t oldval, vlc_value_t newval,
+ void *p_data )
+{
+ input_thread_t *p_input = (input_thread_t*)p_this;
+ VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); VLC_UNUSED(p_data);
+ VLC_UNUSED(newval);
+
+ input_ControlPush( p_input, INPUT_CONTROL_SET_FRAME_NEXT, NULL );
+
+ return VLC_SUCCESS;
+}
+