From: Laurent Aimar Date: Sun, 23 Nov 2008 13:29:50 +0000 (+0100) Subject: Added INPUT_EVENT_TELETEXT. X-Git-Tag: 1.0.0-pre1~2054 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=aa31cdc3aba6f1c7c8217c0ef87f52fb5a494ab4;p=vlc Added INPUT_EVENT_TELETEXT. --- diff --git a/include/vlc_input.h b/include/vlc_input.h index 7386d78413..9500b4cba3 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -442,7 +442,7 @@ struct input_thread_t * - "can-rate" * - "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) + * - "teletext-es" to get the index of spu track that is teletext -1 if no teletext) * - "signal-quality" * - "signal-strength" * @@ -541,6 +541,8 @@ typedef enum input_event_type_e INPUT_EVENT_PROGRAM, /* A ES has been added or removed or selected */ INPUT_EVENT_ES, + /* "teletext-es" has changed */ + INPUT_EVENT_TELETEXT, /* "record" has changed */ INPUT_EVENT_RECORD, diff --git a/src/input/es_out.c b/src/input/es_out.c index 37e6035870..8ac7abb734 100644 --- a/src/input/es_out.c +++ b/src/input/es_out.c @@ -800,9 +800,9 @@ static void EsOutESVarUpdateGeneric( es_out_t *out, int i_id, es_format_t *fmt, if( b_delete ) { - /* TODO event */ + /* TODO it should probably be a list */ if( b_teletext ) - var_SetInteger( p_sys->p_input, "teletext-es", -1 ); + input_SendEventTeletext( p_sys->p_input, -1 ); input_SendEventEsDel( p_input, SPU_ES, i_id ); return; @@ -860,9 +860,9 @@ static void EsOutESVarUpdateGeneric( es_out_t *out, int i_id, es_format_t *fmt, if( b_teletext ) { - /* TODO event */ + /* TODO it should probably be a list */ if( var_GetInteger( p_sys->p_input, "teletext-es" ) < 0 ) - var_SetInteger( p_sys->p_input, "teletext-es", i_id ); + input_SendEventTeletext( p_sys->p_input, i_id ); } } diff --git a/src/input/event.c b/src/input/event.c index 4c4e3c913d..8c9613b86a 100644 --- a/src/input/event.c +++ b/src/input/event.c @@ -288,6 +288,16 @@ 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_SendEventTeletext( input_thread_t *p_input, int i_id ) +{ + vlc_value_t val; + + val.i_int = i_id; + var_Change( p_input, "teletext-es", VLC_VAR_SETVALUE, &val, NULL ); + + Trigger( p_input, INPUT_EVENT_TELETEXT ); +} + void input_SendEventVout( input_thread_t *p_input ) { Trigger( p_input, INPUT_EVENT_VOUT ); diff --git a/src/input/event.h b/src/input/event.h index e4ad966c67..541e598a76 100644 --- a/src/input/event.h +++ b/src/input/event.h @@ -63,10 +63,13 @@ void input_SendEventProgramAdd( input_thread_t *p_input, int i_program, const char *psz_text ); void input_SendEventProgramDel( input_thread_t *p_input, int i_program ); void input_SendEventProgramSelect( input_thread_t *p_input, int i_program ); + 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 */ +void input_SendEventTeletext( input_thread_t *p_input, int i_id ); + /***************************************************************************** * Event for decoder.c *****************************************************************************/