From f2b2e37c04b2921e29daa3260dc696646ad4f10c Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Fri, 1 Aug 2008 22:47:33 +0200 Subject: [PATCH] input: Expose input_ItemHasErrorWhenReading. --- include/vlc_events.h | 5 +++++ include/vlc_input.h | 8 ++++++++ src/input/input_internal.h | 3 +++ src/input/item.c | 37 ++++++++++++++++++++++++------------- src/libvlc-module.c | 4 ++-- src/misc/events.c | 1 + 6 files changed, 43 insertions(+), 15 deletions(-) diff --git a/include/vlc_events.h b/include/vlc_events.h index 51a3faa706..cba7fb9e2b 100644 --- a/include/vlc_events.h +++ b/include/vlc_events.h @@ -123,6 +123,7 @@ typedef enum vlc_event_type_t { vlc_InputItemPreparsedChanged, vlc_InputItemNameChanged, vlc_InputItemInfoChanged, + vlc_InputItemErrorWhenReadingChanged, /* Service Discovery event */ vlc_ServicesDiscoveryItemAdded, @@ -173,6 +174,10 @@ typedef struct vlc_event_t { void * unused; } input_item_info_changed; + struct input_item_error_when_reading_changed + { + bool new_value; + } input_item_error_when_reading_changed; /* Service discovery events */ struct vlc_services_discovery_item_added diff --git a/include/vlc_input.h b/include/vlc_input.h index be2821265c..9f20ce1544 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -78,6 +78,8 @@ struct input_item_t input_stats_t *p_stats; /**< Statistics */ int i_nb_played; /**< Number of times played */ + bool b_error_when_reading; /**< Error When Reading */ + vlc_meta_t *p_meta; vlc_event_manager_t event_manager; @@ -157,6 +159,12 @@ int input_ItemAddOption (input_item_t *item, const char *str) return input_ItemAddOpt (item, str, VLC_INPUT_OPTION_TRUSTED); } +static inline +int input_ItemHasErrorWhenReading (input_item_t *item) +{ + return item->b_error_when_reading; +} + VLC_EXPORT( void, input_item_SetMeta, ( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz_val )); diff --git a/src/input/input_internal.h b/src/input/input_internal.h index a825e538d4..b0069e7f12 100644 --- a/src/input/input_internal.h +++ b/src/input/input_internal.h @@ -281,6 +281,7 @@ static inline void input_item_SetArtFetched( input_item_t *p_i, bool artfetched p_i->p_meta->i_status &= ~ITEM_ART_FETCHED; } +void input_item_SetHasErrorWhenReading( input_item_t *p_i, bool error ); /********************************************************************** * Item metadata @@ -390,6 +391,8 @@ static inline void input_ChangeStateWithVarCallback( input_thread_t *p_input, in p_input->i_state = state; + input_item_SetHasErrorWhenReading( p_input->p->input.p_item, (state == ERROR_S) ); + if( callback ) { var_SetInteger( p_input, "state", state ); diff --git a/src/input/item.c b/src/input/item.c index 27f7a09db8..1dab190711 100644 --- a/src/input/item.c +++ b/src/input/item.c @@ -53,19 +53,15 @@ static inline void input_ItemInit( vlc_object_t *p_o, input_item_t *p_i ) p_i->p_meta = NULL; vlc_mutex_init( &p_i->lock ); - vlc_event_manager_init( &p_i->event_manager, p_i, p_o ); - vlc_event_manager_register_event_type( &p_i->event_manager, - vlc_InputItemMetaChanged ); - vlc_event_manager_register_event_type( &p_i->event_manager, - vlc_InputItemSubItemAdded ); - vlc_event_manager_register_event_type( &p_i->event_manager, - vlc_InputItemDurationChanged ); - vlc_event_manager_register_event_type( &p_i->event_manager, - vlc_InputItemPreparsedChanged ); - vlc_event_manager_register_event_type( &p_i->event_manager, - vlc_InputItemNameChanged ); - vlc_event_manager_register_event_type( &p_i->event_manager, - vlc_InputItemInfoChanged ); + vlc_event_manager_t * p_em = &p_i->event_manager; + vlc_event_manager_init( p_em, p_i, p_o ); + vlc_event_manager_register_event_type( p_em, vlc_InputItemMetaChanged ); + vlc_event_manager_register_event_type( p_em, vlc_InputItemSubItemAdded ); + vlc_event_manager_register_event_type( p_em, vlc_InputItemDurationChanged ); + vlc_event_manager_register_event_type( p_em, vlc_InputItemPreparsedChanged ); + vlc_event_manager_register_event_type( p_em, vlc_InputItemNameChanged ); + vlc_event_manager_register_event_type( p_em, vlc_InputItemInfoChanged ); + vlc_event_manager_register_event_type( p_em, vlc_InputItemErrorWhenReadingChanged ); } static inline void input_ItemClean( input_item_t *p_i ) @@ -120,6 +116,21 @@ static inline void input_ItemClean( input_item_t *p_i ) vlc_mutex_destroy( &p_i->lock ); } +void input_item_SetHasErrorWhenReading( input_item_t *p_i, bool error ) +{ + vlc_event_t event; + + if( p_i->b_error_when_reading == error ) + return; + + p_i->b_error_when_reading = error; + + /* Notify interested third parties */ + event.type = vlc_InputItemErrorWhenReadingChanged; + event.u.input_item_error_when_reading_changed.new_value = error; + vlc_event_send( &p_i->event_manager, &event ); +} + void input_item_SetMeta( input_item_t *p_i, vlc_meta_type_t meta_type, const char *psz_val ) { vlc_event_t event; diff --git a/src/libvlc-module.c b/src/libvlc-module.c index 04526ddd14..a93822aaef 100644 --- a/src/libvlc-module.c +++ b/src/libvlc-module.c @@ -1513,8 +1513,8 @@ vlc_module_begin(); add_integer( "video-title-position", 8, NULL, VIDEO_TITLE_POSITION_TEXT, VIDEO_TITLE_POSITION_LONGTEXT, false ); change_integer_list( pi_pos_values, ppsz_pos_descriptions, 0 ); - // autohide after 3s - add_integer( "mouse-hide-timeout", 3000, NULL, MOUSE_HIDE_TIMEOUT_TEXT, + // autohide after 1.5s + add_integer( "mouse-hide-timeout", 1500, NULL, MOUSE_HIDE_TIMEOUT_TEXT, MOUSE_HIDE_TIMEOUT_LONGTEXT, false ); set_section( N_("Snapshot") , NULL ); add_directory( "snapshot-path", NULL, NULL, SNAP_PATH_TEXT, diff --git a/src/misc/events.c b/src/misc/events.c index 089b5e85f8..a0a4498025 100644 --- a/src/misc/events.c +++ b/src/misc/events.c @@ -81,6 +81,7 @@ static const char ppsz_event_type_to_name[][33] = [vlc_InputItemPreparsedChanged] = "vlc_InputItemPreparsedChanged", [vlc_InputItemNameChanged] = "vlc_InputItemNameChanged", [vlc_InputItemInfoChanged] = "vlc_InputItemInfoChanged", + [vlc_InputItemErrorWhenReadingChanged] = "vlc_InputItemErrorWhenReadingChanged", [vlc_ServicesDiscoveryItemAdded] = "vlc_ServicesDiscoveryItemAdded", [vlc_ServicesDiscoveryItemRemoved] = "vlc_ServicesDiscoveryItemRemoved" -- 2.39.2