X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_events.h;h=50cbc61912b8d051eaf79e3914d5bc417937fcb9;hb=12ade3e3bc975d5426ba4af155b7372c31093b31;hp=50c4105c32484c53ce84385d6df334edfbc71dc5;hpb=04f19d0ca3b49c830789f10381e8e5b30dd8eb7b;p=vlc diff --git a/include/vlc_events.h b/include/vlc_events.h index 50c4105c32..50cbc61912 100644 --- a/include/vlc_events.h +++ b/include/vlc_events.h @@ -112,11 +112,19 @@ typedef struct vlc_event_manager_t /* List of event */ /* Be sure to keep sync-ed with misc/events.c debug name table */ typedef enum vlc_event_type_t { + /* Input (thread) events */ + vlc_InputStateChanged, + vlc_InputSelectedStreamChanged, + /* Input item events */ vlc_InputItemMetaChanged, vlc_InputItemSubItemAdded, + vlc_InputItemSubItemTreeAdded, vlc_InputItemDurationChanged, vlc_InputItemPreparsedChanged, + vlc_InputItemNameChanged, + vlc_InputItemInfoChanged, + vlc_InputItemErrorWhenReadingChanged, /* Service Discovery event */ vlc_ServicesDiscoveryItemAdded, @@ -132,6 +140,16 @@ typedef struct vlc_event_t void * p_obj; /* Sender object, automatically filled by vlc_event_send() */ union vlc_event_type_specific { + /* Input (thread) events */ + struct vlc_input_state_changed + { + int new_state; + } input_state_changed; + struct vlc_input_selected_stream_changed + { + void * unused; + } input_selected_stream_changed; + /* Input item events */ struct vlc_input_item_meta_changed { @@ -141,6 +159,10 @@ typedef struct vlc_event_t { input_item_t * p_new_child; } input_item_subitem_added; + struct vlc_input_item_subitem_tree_added + { + input_item_node_t * p_root; + } input_item_subitem_tree_added; struct vlc_input_item_duration_changed { mtime_t new_duration; @@ -149,6 +171,18 @@ typedef struct vlc_event_t { int new_status; } input_item_preparsed_changed; + struct vlc_input_item_name_changed + { + const char * new_name; + } input_item_name_changed; + struct vlc_input_item_info_changed + { + 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 @@ -184,8 +218,13 @@ typedef void ( *vlc_event_callback_t )( const vlc_event_t *, void * ); * which events are sent * p_obj is here to give us a libvlc instance */ +#define vlc_event_manager_init_with_vlc_object(a,b) \ + vlc_event_manager_init( a, b, b ) + VLC_EXPORT(int, vlc_event_manager_init, ( vlc_event_manager_t * p_em, void * p_obj, vlc_object_t * )); +#define vlc_event_manager_init(a,b,c) \ + vlc_event_manager_init(a, b, VLC_OBJECT(c)) /* * Destroy @@ -207,12 +246,12 @@ VLC_EXPORT(void, vlc_event_send, ( vlc_event_manager_t * p_em, /* * Add a callback for an event. */ -#define vlc_event_attach(a, b, c, d) __vlc_event_attach(a, b, c, d, #c) -VLC_EXPORT(int, __vlc_event_attach, ( vlc_event_manager_t * p_event_manager, - vlc_event_type_t event_type, - vlc_event_callback_t pf_callback, - void *p_user_data, - const char * psz_debug_name )); +VLC_EXPORT(int, vlc_event_attach, ( vlc_event_manager_t * p_event_manager, + vlc_event_type_t event_type, + vlc_event_callback_t pf_callback, + void *p_user_data, + const char * psz_debug_name )); +#define vlc_event_attach(a, b, c, d) vlc_event_attach(a, b, c, d, #c) /* * Remove a callback for an event.