|
VLC
2.1.0-git
|
This file is the interface definition for events (implementation in src/misc/events.c) More...

Go to the source code of this file.
Typedefs | |
| typedef struct vlc_event_manager_t | vlc_event_manager_t |
| typedef enum vlc_event_type_t | vlc_event_type_t |
| typedef struct vlc_event_t | vlc_event_t |
| typedef void(* | vlc_event_callback_t )(const vlc_event_t *, void *) |
Functions | |
| int | vlc_event_manager_init (vlc_event_manager_t *p_em, void *p_obj) |
| Initialize event manager object p_obj is the object that contains the event manager. | |
| void | vlc_event_manager_fini (vlc_event_manager_t *p_em) |
| Destroy the event manager. | |
| int | vlc_event_manager_register_event_type (vlc_event_manager_t *p_em, vlc_event_type_t) |
| Register the event manager. | |
| void | vlc_event_send (vlc_event_manager_t *p_em, vlc_event_t *) |
| Send an event to the listener attached to this p_em. | |
| 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) |
| Add a callback for an event. | |
| void | vlc_event_detach (vlc_event_manager_t *p_event_manager, vlc_event_type_t event_type, vlc_event_callback_t pf_callback, void *p_user_data) |
| Remove a callback for an event. | |
This file is the interface definition for events (implementation in src/misc/events.c)
| typedef void( * vlc_event_callback_t)(const vlc_event_t *, void *) |
| typedef struct vlc_event_manager_t vlc_event_manager_t |
| typedef struct vlc_event_t vlc_event_t |
| typedef enum vlc_event_type_t vlc_event_type_t |
| enum vlc_event_type_t |
| 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 | ||
| ) |
Add a callback for an event.
< Not enough memory
< No error
References ARRAY_APPEND, vlc_event_listeners_group_t::event_type, FOREACH_ARRAY, FOREACH_END, vlc_event_listeners_group_t::listeners, vlc_event_manager_t::listeners_groups, vlc_event_manager_t::object_lock, vlc_event_listener_t::p_user_data, vlc_event_listener_t::pf_callback, VLC_ENOMEM, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_SUCCESS.
Referenced by install_input_item_observer(), playlist_MLLoad(), and playlist_ServicesDiscoveryAdd().
| void vlc_event_detach | ( | vlc_event_manager_t * | p_event_manager, |
| vlc_event_type_t | event_type, | ||
| vlc_event_callback_t | pf_callback, | ||
| void * | p_user_data | ||
| ) |
Remove a callback for an event.
References ARRAY_REMOVE, vlc_event_listeners_group_t::b_sublistener_removed, vlc_event_manager_t::event_sending_lock, vlc_event_listeners_group_t::event_type, FOREACH_ARRAY, FOREACH_END, vlc_event_listeners_group_t::listeners, vlc_event_manager_t::listeners_groups, vlc_event_manager_t::object_lock, vlc_event_listener_t::p_user_data, vlc_event_listener_t::pf_callback, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by playlist_MLLoad(), playlist_ServicesDiscoveryRemove(), and uninstall_input_item_observer().
| void vlc_event_manager_fini | ( | vlc_event_manager_t * | p_em | ) |
Destroy the event manager.
References ARRAY_RESET, vlc_event_manager_t::event_sending_lock, FOREACH_ARRAY, FOREACH_END, vlc_event_listeners_group_t::listeners, vlc_event_manager_t::listeners_groups, vlc_event_manager_t::object_lock, and vlc_mutex_destroy().
Referenced by input_item_Release(), and services_discovery_Destructor().
| int vlc_event_manager_init | ( | vlc_event_manager_t * | p_em, |
| void * | p_obj | ||
| ) |
Initialize event manager object p_obj is the object that contains the event manager.
But not necessarily a vlc_object_t (an input_item_t is not a vlc_object_t for instance).
< No error
References ARRAY_INIT, vlc_event_manager_t::event_sending_lock, vlc_event_manager_t::listeners_groups, vlc_event_manager_t::object_lock, vlc_event_manager_t::p_obj, vlc_mutex_init(), vlc_mutex_init_recursive(), and VLC_SUCCESS.
Referenced by input_item_NewWithType(), and vlc_sd_Create().
| int vlc_event_manager_register_event_type | ( | vlc_event_manager_t * | p_em, |
| vlc_event_type_t | |||
| ) |
Register the event manager.
< Not enough memory
< No error
References ARRAY_APPEND, ARRAY_INIT, vlc_event_listeners_group_t::event_type, vlc_event_listeners_group_t::listeners, vlc_event_manager_t::listeners_groups, vlc_event_manager_t::object_lock, VLC_ENOMEM, vlc_mutex_lock(), vlc_mutex_unlock(), and VLC_SUCCESS.
Referenced by input_item_NewWithType(), and vlc_sd_Create().
| void vlc_event_send | ( | vlc_event_manager_t * | p_em, |
| vlc_event_t * | |||
| ) |
Send an event to the listener attached to this p_em.
References vlc_event_listeners_group_t::b_sublistener_removed, vlc_event_manager_t::event_sending_lock, vlc_event_listeners_group_t::event_type, FOREACH_ARRAY, FOREACH_END, group_contains_listener(), vlc_event_listeners_group_t::i_size, vlc_event_listeners_group_t::listeners, vlc_event_manager_t::listeners_groups, vlc_event_manager_t::object_lock, vlc_event_manager_t::p_obj, vlc_event_t::p_obj, vlc_event_listener_t::p_user_data, vlc_event_listener_t::pf_callback, vlc_event_t::type, vlc_mutex_lock(), and vlc_mutex_unlock().
Referenced by input_item_AddInfo(), input_item_DelInfo(), input_item_MergeInfos(), input_item_node_PostAndDelete(), input_item_ReplaceInfos(), input_item_SetDuration(), input_item_SetEpg(), input_item_SetEpgOffline(), input_item_SetErrorWhenReading(), input_item_SetMeta(), input_item_SetPreparsed(), input_SendEventMeta(), input_SendEventMetaInfo(), input_SendEventMetaName(), post_subitems(), services_discovery_AddItem(), services_discovery_RemoveAll(), services_discovery_RemoveItem(), vlc_sd_Start(), and vlc_sd_Stop().
1.8.1.2