X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_events.h;h=51a3faa7066ec56b4fe452715462234578cea5c9;hb=23fe953dbb391d1a20a6b75a79d41ff8a2d77f82;hp=92b290566ba9f408135228a5ffd50589b32fa5ab;hpb=1d1c5f07b38cb8a7c41fd30d41eb2147ad8961b0;p=vlc diff --git a/include/vlc_events.h b/include/vlc_events.h index 92b290566b..51a3faa706 100644 --- a/include/vlc_events.h +++ b/include/vlc_events.h @@ -69,7 +69,7 @@ * vlc_my_cool_object_new() * { * ... - * vlc_event_manager_Create( &p_self->p_event_manager, p_this ); + * vlc_event_manager_init( &p_self->p_event_manager, p_self, p_a_libvlc_object ); * vlc_event_manager_register_event_type(p_self->p_event_manager, * vlc_MyCoolObjectDidSomething, p_e) * ... @@ -78,7 +78,7 @@ * vlc_my_cool_object_release() * { * ... - * vlc_event_manager_release( p_self->p_event_manager ); + * vlc_event_manager_fini( &p_self->p_event_manager ); * ... * } * @@ -88,7 +88,7 @@ * vlc_event_t event; * event.type = vlc_MyCoolObjectDidSomething; * event.u.my_cool_object_did_something.what_it_did = kSomething; - * vlc_event_send( p_self->p_event_manager, &event ); + * vlc_event_send( &p_self->p_event_manager, &event ); * } * */ @@ -112,11 +112,17 @@ 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_InputItemDurationChanged, vlc_InputItemPreparsedChanged, + vlc_InputItemNameChanged, + vlc_InputItemInfoChanged, /* Service Discovery event */ vlc_ServicesDiscoveryItemAdded, @@ -132,6 +138,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 { @@ -149,6 +165,14 @@ 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; /* Service discovery events */ struct vlc_services_discovery_item_added @@ -184,7 +208,12 @@ 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 */ -VLC_EXPORT(int, vlc_event_manager_init, ( vlc_event_manager_t * p_em, +#define vlc_event_manager_init_with_vlc_object(a,b) \ + vlc_event_manager_init( a, b, b ) + +#define vlc_event_manager_init(a,b,c) \ + __vlc_event_manager_init(a, b, VLC_OBJECT(c)) +VLC_EXPORT(int, __vlc_event_manager_init, ( vlc_event_manager_t * p_em, void * p_obj, vlc_object_t * )); /*