mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-12 13:44:56 +02:00
Clean up input events.
A new variable intf-event has been added. It supercedes the following variables (they are still present for the time being): - intf-change - intf-change-vout - rate-change - stats-change and allows to have a better knowledge of the change done. It is documented in vlc_input.h (in progress).
This commit is contained in:
parent
d20c8d6613
commit
d6f0bd78c5
@ -382,29 +382,6 @@ static inline void vlc_input_attachment_Delete( input_attachment_t *a )
|
||||
* input defines/constants.
|
||||
*****************************************************************************/
|
||||
|
||||
/* "state" value */
|
||||
/* NOTE: you need to update ppsz_input_state in the RC interface
|
||||
* if you modify this list. */
|
||||
typedef enum input_state_e
|
||||
{
|
||||
INIT_S = 0,
|
||||
OPENING_S,
|
||||
BUFFERING_S,
|
||||
PLAYING_S,
|
||||
PAUSE_S,
|
||||
STOP_S,
|
||||
END_S,
|
||||
ERROR_S,
|
||||
} input_state_e;
|
||||
|
||||
/* "rate" default, min/max
|
||||
* A rate below 1000 plays the movie faster,
|
||||
* A rate above 1000 plays the movie slower.
|
||||
*/
|
||||
#define INPUT_RATE_DEFAULT 1000
|
||||
#define INPUT_RATE_MIN 32 /* Up to 32/1 */
|
||||
#define INPUT_RATE_MAX 32000 /* Up to 1/32 */
|
||||
|
||||
/* i_update field of access_t/demux_t */
|
||||
#define INPUT_UPDATE_NONE 0x0000
|
||||
#define INPUT_UPDATE_SIZE 0x0001
|
||||
@ -446,6 +423,147 @@ struct input_thread_t
|
||||
input_thread_private_t *p;
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
* Input events and variables
|
||||
*****************************************************************************/
|
||||
|
||||
/**
|
||||
* \defgroup inputvariable Input variables
|
||||
*
|
||||
* The input provides multiples variable you can write to and/or read from.
|
||||
*
|
||||
* TODO complete the documentation.
|
||||
* The read only variables are:
|
||||
* - "length"
|
||||
* - "bookmarks"
|
||||
* - "seekable (if you can seek, it doesn't say if 'bar display' has be shown FIXME rename can-seek
|
||||
* or not, for that check position != 0.0)
|
||||
* - "can-pause"
|
||||
* - "can-rewind"
|
||||
* - "can-record" (if a stream can be recorded while playing)
|
||||
* - "teletext-es" to get the index of spu track that is teletext --1 if no teletext)
|
||||
*
|
||||
* The read-write variables are:
|
||||
* - state (\see input_state_e)
|
||||
* - rate, rate-slower, rate-faster
|
||||
* - position, position-offset
|
||||
* - time, time-offset
|
||||
* - title,title-next,title-prev
|
||||
* - chapter,chapter-next, chapter-prev
|
||||
* - program, audio-es, video-es, spu-es
|
||||
* - audio-delay, spu-delay
|
||||
* - bookmark
|
||||
* - TODO add special titles variables
|
||||
*
|
||||
* The variable used for event is
|
||||
* - intf-event (\see input_event_type_e)
|
||||
*
|
||||
* The legacy variable used for event are
|
||||
* - intf-change
|
||||
* - intf-change-vout
|
||||
* - rate-change
|
||||
* - stats-change
|
||||
* You are advised to change to intf-event as soon as possible.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Input state
|
||||
*
|
||||
* This enum is used by the variable "state"
|
||||
*
|
||||
* NOTE: you need to update ppsz_input_state in the RC interface
|
||||
* if you modify this list.
|
||||
*/
|
||||
typedef enum input_state_e
|
||||
{
|
||||
INIT_S = 0,
|
||||
OPENING_S,
|
||||
BUFFERING_S,
|
||||
PLAYING_S,
|
||||
PAUSE_S,
|
||||
STOP_S,
|
||||
END_S,
|
||||
ERROR_S,
|
||||
} input_state_e;
|
||||
|
||||
/**
|
||||
* Input rate.
|
||||
*
|
||||
* It is an integer used by the variable "rate" in the
|
||||
* range [INPUT_RATE_MIN, INPUT_RATE_MAX] the default value
|
||||
* being INPUT_RATE_DEFAULT.
|
||||
*
|
||||
* A value lower than INPUT_RATE_DEFAULT plays faster.
|
||||
* A value higher than INPUT_RATE_DEFAULT plays slower.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Default rate value
|
||||
*/
|
||||
#define INPUT_RATE_DEFAULT 1000
|
||||
/**
|
||||
* Minimal rate value
|
||||
*/
|
||||
#define INPUT_RATE_MIN 32 /* Up to 32/1 */
|
||||
/**
|
||||
* Maximal rate value
|
||||
*/
|
||||
#define INPUT_RATE_MAX 32000 /* Up to 1/32 */
|
||||
|
||||
/**
|
||||
* Input events
|
||||
*
|
||||
* You can catch input event by adding a callback on the variable "intf-event".
|
||||
* This variable is an integer that will hold a input_event_type_e value.
|
||||
*/
|
||||
typedef enum input_event_type_e
|
||||
{
|
||||
/* "state" has changed */
|
||||
INPUT_EVENT_STATE,
|
||||
/* "rate" has changed */
|
||||
INPUT_EVENT_RATE,
|
||||
/* At least one of "position" or "time" or "length" has changed */
|
||||
INPUT_EVENT_TIMES,
|
||||
|
||||
/* A title has been added or removed or selected.
|
||||
* It imply that chapter has changed (not chapter event is sent) */
|
||||
INPUT_EVENT_TITLE,
|
||||
/* A chapter has been added or removed or selected. */
|
||||
INPUT_EVENT_CHAPTER,
|
||||
|
||||
/* A program has been added or removed or selected */
|
||||
INPUT_EVENT_PROGRAM,
|
||||
/* A ES has been added or removed or selected */
|
||||
INPUT_EVENT_ES,
|
||||
|
||||
/* "record" has changed */
|
||||
INPUT_EVENT_RECORD,
|
||||
|
||||
/* A vout has been created/deleted by *the input*
|
||||
* FIXME some event are not detected yet (audio visualisation) */
|
||||
INPUT_EVENT_VOUT,
|
||||
|
||||
/* input_item_t media has changed */
|
||||
INPUT_EVENT_ITEM_META,
|
||||
/* input_item_t info has changed */
|
||||
INPUT_EVENT_ITEM_INFO,
|
||||
/* input_item_t name has changed */
|
||||
INPUT_EVENT_ITEM_NAME,
|
||||
|
||||
/* Input statistics have been updated */
|
||||
INPUT_EVENT_STATISTICS,
|
||||
/* At least one of "signal-quality" or "signal-strength" has changed */
|
||||
INPUT_EVENT_SIGNAL,
|
||||
|
||||
/* "audio-delay" has changed */
|
||||
INPUT_EVENT_AUDIO_DELAY,
|
||||
/* "spu-delay" has changed */
|
||||
INPUT_EVENT_SUBTITLE_DELAY,
|
||||
|
||||
} input_event_type_e;
|
||||
|
||||
/** @}*/
|
||||
|
||||
/*****************************************************************************
|
||||
* Prototypes
|
||||
*****************************************************************************/
|
||||
|
@ -1973,7 +1973,7 @@ static void DeleteDecoder( decoder_t * p_dec )
|
||||
|
||||
/* We are about to die. Reattach video output to p_vlc. */
|
||||
vout_Request( p_dec, p_owner->p_vout, NULL );
|
||||
var_SetBool( p_owner->p_input, "intf-change-vout", true );
|
||||
input_SendEventVout( p_owner->p_input );
|
||||
}
|
||||
|
||||
#ifdef ENABLE_SOUT
|
||||
@ -2188,7 +2188,7 @@ static picture_t *vout_new_buffer( decoder_t *p_dec )
|
||||
p_owner->p_vout = p_vout;
|
||||
vlc_mutex_unlock( &p_owner->lock );
|
||||
|
||||
var_SetBool( p_owner->p_input, "intf-change-vout", true );
|
||||
input_SendEventVout( p_owner->p_input );
|
||||
if( p_vout == NULL )
|
||||
{
|
||||
msg_Err( p_dec, "failed to create video output" );
|
||||
|
@ -33,6 +33,8 @@
|
||||
#include "input_internal.h"
|
||||
#include "event.h"
|
||||
|
||||
static void Trigger( input_thread_t *p_input, int i_type );
|
||||
|
||||
/*****************************************************************************
|
||||
* Event for input.c
|
||||
*****************************************************************************/
|
||||
@ -54,12 +56,11 @@ void input_SendEventTimes( input_thread_t *p_input, const input_event_times_t *p
|
||||
val.i_time = p_times->i_length;
|
||||
var_Change( p_input, "length", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-times", true ); /* TODO */
|
||||
var_TriggerCallback( p_input, "intf-change" );
|
||||
Trigger( p_input, INPUT_EVENT_TIMES );
|
||||
}
|
||||
void input_SendEventStatistics( input_thread_t *p_input )
|
||||
{
|
||||
var_TriggerCallback( p_input, "stats-change" ); /* FIXME rename */
|
||||
Trigger( p_input, INPUT_EVENT_STATISTICS );
|
||||
}
|
||||
void input_SendEventRate( input_thread_t *p_input, int i_rate )
|
||||
{
|
||||
@ -68,7 +69,7 @@ void input_SendEventRate( input_thread_t *p_input, int i_rate )
|
||||
val.i_int = i_rate;
|
||||
var_Change( p_input, "rate", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
var_TriggerCallback( p_input, "rate-change" ); /* TODO rename */
|
||||
Trigger( p_input, INPUT_EVENT_RATE );
|
||||
}
|
||||
void input_SendEventAudioDelay( input_thread_t *p_input, mtime_t i_delay )
|
||||
{
|
||||
@ -77,7 +78,7 @@ void input_SendEventAudioDelay( input_thread_t *p_input, mtime_t i_delay )
|
||||
val.i_time = i_delay;
|
||||
var_Change( p_input, "audio-delay", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-delay" ); /* TODO */
|
||||
Trigger( p_input, INPUT_EVENT_AUDIO_DELAY );
|
||||
}
|
||||
|
||||
void input_SendEventSubtitleDelay( input_thread_t *p_input, mtime_t i_delay )
|
||||
@ -87,7 +88,7 @@ void input_SendEventSubtitleDelay( input_thread_t *p_input, mtime_t i_delay )
|
||||
val.i_time = i_delay;
|
||||
var_Change( p_input, "spu-delay", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-delay" ); /* TODO */
|
||||
Trigger( p_input, INPUT_EVENT_SUBTITLE_DELAY );
|
||||
}
|
||||
|
||||
/* TODO and file name ? */
|
||||
@ -98,7 +99,7 @@ void input_SendEventRecord( input_thread_t *p_input, bool b_recording )
|
||||
val.b_bool = b_recording;
|
||||
var_Change( p_input, "record", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
var_TriggerCallback( p_input, "intf-change" ); /* FIXME */
|
||||
Trigger( p_input, INPUT_EVENT_RECORD );
|
||||
}
|
||||
|
||||
void input_SendEventTitle( input_thread_t *p_input, int i_title )
|
||||
@ -108,9 +109,9 @@ void input_SendEventTitle( input_thread_t *p_input, int i_title )
|
||||
val.i_int = i_title;
|
||||
var_Change( p_input, "title", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
input_ControlVarTitle( p_input, i_title ); /* FIXME ??? */
|
||||
input_ControlVarTitle( p_input, i_title );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-title" ); /* TODO */
|
||||
Trigger( p_input, INPUT_EVENT_TITLE );
|
||||
}
|
||||
|
||||
void input_SendEventSeekpoint( input_thread_t *p_input, int i_title, int i_seekpoint )
|
||||
@ -119,17 +120,22 @@ void input_SendEventSeekpoint( input_thread_t *p_input, int i_title, int i_seekp
|
||||
|
||||
VLC_UNUSED( i_title );
|
||||
val.i_int = i_seekpoint;
|
||||
var_Change( p_input, "chapter", VLC_VAR_SETVALUE, &val, NULL);
|
||||
var_Change( p_input, "chapter", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-seekpoint" ); /* TODO. Merge with intf-change-title ? */
|
||||
Trigger( p_input, INPUT_EVENT_CHAPTER );
|
||||
}
|
||||
|
||||
void input_SendEventSignal( input_thread_t *p_input, double f_quality, double f_strength )
|
||||
{
|
||||
var_SetFloat( p_input, "signal-quality", f_quality );
|
||||
var_SetFloat( p_input, "signal-strength", f_strength );
|
||||
vlc_value_t val;
|
||||
|
||||
/* TODO use Change and then a intf-change-signal instead ? */
|
||||
val.f_float = f_quality;
|
||||
var_Change( p_input, "signal-quality", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
val.f_float = f_strength;
|
||||
var_Change( p_input, "signal-strength", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
Trigger( p_input, INPUT_EVENT_SIGNAL );
|
||||
}
|
||||
|
||||
void input_SendEventState( input_thread_t *p_input, int i_state )
|
||||
@ -139,7 +145,7 @@ void input_SendEventState( input_thread_t *p_input, int i_state )
|
||||
val.i_int = i_state;
|
||||
var_Change( p_input, "state", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
var_TriggerCallback( p_input, "intf-change" );
|
||||
Trigger( p_input, INPUT_EVENT_STATE );
|
||||
|
||||
/* FIXME remove this ugliness */
|
||||
vlc_event_t event;
|
||||
@ -149,13 +155,12 @@ void input_SendEventState( input_thread_t *p_input, int i_state )
|
||||
vlc_event_send( &p_input->p->event_manager, &event );
|
||||
}
|
||||
|
||||
#warning "TODO meta"
|
||||
/* FIXME: review them because vlc_event_send might be
|
||||
* moved inside input_item* functions.
|
||||
*/
|
||||
void input_SendEventMeta( input_thread_t *p_input )
|
||||
{
|
||||
var_TriggerCallback( p_input, "intf-change" ); /* TODO intf-change-item-meta */
|
||||
Trigger( p_input, INPUT_EVENT_ITEM_META );
|
||||
|
||||
/* FIXME remove this ugliness ? */
|
||||
vlc_event_t event;
|
||||
@ -167,7 +172,7 @@ void input_SendEventMeta( input_thread_t *p_input )
|
||||
|
||||
void input_SendEventMetaInfo( input_thread_t *p_input )
|
||||
{
|
||||
var_TriggerCallback( p_input, "intf-change" ); /* TODO intf-change-item-info */
|
||||
Trigger( p_input, INPUT_EVENT_ITEM_INFO );
|
||||
|
||||
/* FIXME remove this ugliness */
|
||||
vlc_event_t event;
|
||||
@ -178,7 +183,7 @@ void input_SendEventMetaInfo( input_thread_t *p_input )
|
||||
|
||||
void input_SendEventMetaName( input_thread_t *p_input, const char *psz_name )
|
||||
{
|
||||
var_TriggerCallback( p_input, "intf-change" ); /* TODO intf-change-item-name */
|
||||
Trigger( p_input, INPUT_EVENT_ITEM_NAME );
|
||||
|
||||
/* FIXME remove this ugliness */
|
||||
vlc_event_t event;
|
||||
@ -203,8 +208,7 @@ void input_SendEventProgramAdd( input_thread_t *p_input,
|
||||
var_Change( p_input, "program", VLC_VAR_ADDCHOICE,
|
||||
&val, psz_text ? &text : NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-program", true ); /* TODO */
|
||||
var_TriggerCallback( p_input, "intf-change" );
|
||||
Trigger( p_input, INPUT_EVENT_PROGRAM );
|
||||
}
|
||||
void input_SendEventProgramDel( input_thread_t *p_input, int i_program )
|
||||
{
|
||||
@ -213,8 +217,7 @@ void input_SendEventProgramDel( input_thread_t *p_input, int i_program )
|
||||
val.i_int = i_program;
|
||||
var_Change( p_input, "program", VLC_VAR_DELCHOICE, &val, NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-program", true ); /* TODO */
|
||||
var_TriggerCallback( p_input, "intf-change" );
|
||||
Trigger( p_input, INPUT_EVENT_PROGRAM );
|
||||
}
|
||||
void input_SendEventProgramSelect( input_thread_t *p_input, int i_program )
|
||||
{
|
||||
@ -223,8 +226,7 @@ void input_SendEventProgramSelect( input_thread_t *p_input, int i_program )
|
||||
val.i_int = i_program;
|
||||
var_Change( p_input, "program", VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-program", true ); /* TODO */
|
||||
var_TriggerCallback( p_input, "intf-change" );
|
||||
Trigger( p_input, INPUT_EVENT_PROGRAM );
|
||||
}
|
||||
|
||||
static const char *GetEsVarName( int i_cat )
|
||||
@ -254,8 +256,7 @@ void input_SendEventEsDel( input_thread_t *p_input, int i_cat, int i_id )
|
||||
var_Change( p_input, GetEsVarName( i_cat ), VLC_VAR_CLEARCHOICES, NULL, NULL );
|
||||
}
|
||||
|
||||
//var_SetBool( p_input, "intf-change-es", true ); /* TODO */
|
||||
var_TriggerCallback( p_input, "intf-change" );
|
||||
Trigger( p_input, INPUT_EVENT_ES );
|
||||
}
|
||||
void input_SendEventEsAdd( input_thread_t *p_input, int i_cat, int i_id, const char *psz_text )
|
||||
{
|
||||
@ -268,8 +269,7 @@ void input_SendEventEsAdd( input_thread_t *p_input, int i_cat, int i_id, const c
|
||||
var_Change( p_input, GetEsVarName( i_cat ), VLC_VAR_ADDCHOICE,
|
||||
&val, psz_text ? &text : NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-es", true ); /* TODO */
|
||||
var_TriggerCallback( p_input, "intf-change" );
|
||||
Trigger( p_input, INPUT_EVENT_ES );
|
||||
}
|
||||
|
||||
/* i_id == -1 will unselect */
|
||||
@ -280,8 +280,7 @@ void input_SendEventEsSelect( input_thread_t *p_input, int i_cat, int i_id )
|
||||
val.i_int = i_id;
|
||||
var_Change( p_input, GetEsVarName( i_cat ), VLC_VAR_SETVALUE, &val, NULL );
|
||||
|
||||
//var_SetBool( p_input, "intf-change-es", true ); /* TODO */
|
||||
var_TriggerCallback( p_input, "intf-change" );
|
||||
Trigger( p_input, INPUT_EVENT_ES );
|
||||
|
||||
/* FIXME to remove this ugliness */
|
||||
vlc_event_t event;
|
||||
@ -289,3 +288,15 @@ void input_SendEventEsSelect( input_thread_t *p_input, int i_cat, int i_id )
|
||||
vlc_event_send( &p_input->p->event_manager, &event );
|
||||
}
|
||||
|
||||
void input_SendEventVout( input_thread_t *p_input )
|
||||
{
|
||||
Trigger( p_input, INPUT_EVENT_VOUT );
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
*****************************************************************************/
|
||||
static void Trigger( input_thread_t *p_input, int i_type )
|
||||
{
|
||||
var_SetInteger( p_input, "intf-event", i_type );
|
||||
}
|
||||
|
@ -67,5 +67,10 @@ void input_SendEventEsDel( input_thread_t *p_input, int i_cat, int i_id );
|
||||
void input_SendEventEsAdd( input_thread_t *p_input, int i_cat, int i_id, const char *psz_text );
|
||||
void input_SendEventEsSelect( input_thread_t *p_input, int i_cat, int i_id ); /* i_id == -1 will unselect */
|
||||
|
||||
/*****************************************************************************
|
||||
* Event for decoder.c
|
||||
*****************************************************************************/
|
||||
void input_SendEventVout( input_thread_t *p_input );
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -106,32 +106,7 @@ static void input_ChangeState( input_thread_t *p_input, int i_state ); /* TODO f
|
||||
* This function creates a new input, and returns a pointer
|
||||
* to its description. On error, it returns NULL.
|
||||
*
|
||||
* Variables for _public_ use:
|
||||
* * Get and Set:
|
||||
* - state
|
||||
* - rate,rate-slower, rate-faster
|
||||
* - position, position-offset
|
||||
* - time, time-offset
|
||||
* - title,title-next,title-prev
|
||||
* - chapter,chapter-next, chapter-prev
|
||||
* - program, audio-es, video-es, spu-es
|
||||
* - audio-delay, spu-delay
|
||||
* - bookmark
|
||||
* * Get only:
|
||||
* - length
|
||||
* - bookmarks
|
||||
* - seekable (if you can seek, it doesn't say if 'bar display' has be shown FIXME rename can-seek
|
||||
* or not, for that check position != 0.0)
|
||||
* - can-pause
|
||||
* - can-record (if a stream can be recorded while playing)
|
||||
* - teletext-es to get the index of spu track that is teletext --1 if no teletext)
|
||||
* * For intf callback upon changes:
|
||||
* - intf-change
|
||||
* - intf-change-vout for when a vout is created or destroyed
|
||||
* - rate-change for when playback rate changes
|
||||
* - stats-change for when statistics are updated
|
||||
* TODO explain when Callback is called
|
||||
* TODO complete this list (?)
|
||||
* XXX Do not forget to update vlc_input.h if you add new variables.
|
||||
*****************************************************************************/
|
||||
static input_thread_t *Create( vlc_object_t *p_parent, input_item_t *p_item,
|
||||
const char *psz_header, bool b_quick,
|
||||
|
@ -68,6 +68,9 @@ static int FrameNextCallback( vlc_object_t *p_this, char const *psz_cmd,
|
||||
vlc_value_t oldval, vlc_value_t newval,
|
||||
void *p_data );
|
||||
|
||||
static int IntfEvent( 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;
|
||||
@ -225,14 +228,14 @@ void input_ControlVarInit ( input_thread_t *p_input )
|
||||
|
||||
if( !p_input->b_preparsing )
|
||||
{
|
||||
/* Special "intf-change" variable, it allows intf to set up a callback
|
||||
* to be notified of some changes.
|
||||
*
|
||||
* Add rate-change to inform about rate changin
|
||||
*
|
||||
* stats-change to inform when statistics are computed
|
||||
*
|
||||
* TODO list all changes warn by these callbacks */
|
||||
/* Special "intf-event" variable. */
|
||||
var_Create( p_input, "intf-event", VLC_VAR_INTEGER );
|
||||
|
||||
/* Callback for legacy variables */
|
||||
var_AddCallback( p_input, "intf-event", IntfEvent, NULL );
|
||||
|
||||
/* Legacy variable
|
||||
* TODO remove them when unused */
|
||||
static const char *ppsz_event[] = {
|
||||
"intf-change",
|
||||
"rate-change",
|
||||
@ -837,3 +840,21 @@ static int FrameNextCallback( vlc_object_t *p_this, char const *psz_cmd,
|
||||
return VLC_SUCCESS;
|
||||
}
|
||||
|
||||
static int IntfEvent( vlc_object_t *p_this, char const *psz_cmd,
|
||||
vlc_value_t oldval, vlc_value_t newval, void *p_data )
|
||||
{
|
||||
VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); VLC_UNUSED(p_data);
|
||||
switch( newval.i_int )
|
||||
{
|
||||
case INPUT_EVENT_RATE:
|
||||
return var_SetBool( p_this, "rate-change", true );
|
||||
case INPUT_EVENT_STATISTICS:
|
||||
return var_SetBool( p_this, "stats-change", true );
|
||||
case INPUT_EVENT_VOUT:
|
||||
return var_SetBool( p_this, "intf-change-vout", true );
|
||||
|
||||
default:
|
||||
return var_SetBool( p_this, "intf-change", true );
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user