X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_events.h;h=b4037e7caf5cda2fea15579864bab75e180e2f37;hb=6ee1e193fd896ab9a4729fde14f009d9ce629815;hp=6989fcb71fe9ef8f8d9e223a011a1e4f6174860d;hpb=1479b918045e1763b73f4b462983594bc632957d;p=vlc diff --git a/include/vlc_events.h b/include/vlc_events.h index 6989fcb71f..b4037e7caf 100644 --- a/include/vlc_events.h +++ b/include/vlc_events.h @@ -42,7 +42,7 @@ * * This implements a way to send and receive event for an object (which can be * a simple C struct or less). - * + * * This is in direct concurrency with the Variable based Callback * (see src/misc/variables.c). * @@ -59,7 +59,7 @@ * * (vlc_cool_object_t doesn't need to have the VLC_COMMON_MEMBERS.) * - * struct vlc_cool_object_t + * struct vlc_cool_object_t * { * ... * vlc_event_manager_t p_event_manager; @@ -104,14 +104,20 @@ typedef struct vlc_event_manager_t { void * p_obj; vlc_mutex_t object_lock; + vlc_object_t *p_parent_object; DECL_ARRAY(struct vlc_event_listeners_group_t *) listeners_groups; } 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 item events */ vlc_InputItemMetaChanged, vlc_InputItemSubItemAdded, + + /* Service Discovery event */ + vlc_ServicesDiscoveryItemAdded, + vlc_ServicesDiscoveryItemRemoved } vlc_event_type_t; /* Event definition */ @@ -130,6 +136,18 @@ typedef struct vlc_event_t { input_item_t * p_new_child; } input_item_subitem_added; + + /* Service discovery events */ + struct vlc_services_discovery_item_added + { + input_item_t * p_new_item; + const char * psz_category; + } services_discovery_item_added; + struct vlc_services_discovery_item_removed + { + input_item_t * p_item; + } services_discovery_item_removed; + } u; } vlc_event_t; @@ -168,10 +186,12 @@ VLC_EXPORT(void, vlc_event_send, ( vlc_event_manager_t * p_em, /* * Add a callback for an event. */ -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 )); +#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 )); /* * Remove a callback for an event.