VLC  2.1.0-git
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Typedefs | Enumerations | Functions
vlc_events.h File Reference

This file is the interface definition for events (implementation in src/misc/events.c) More...

Include dependency graph for vlc_events.h:

Go to the source code of this file.

Data Structures

struct  vlc_event_manager_t
struct  vlc_event_t
union  vlc_event_t::vlc_event_type_specific
struct  vlc_event_t::vlc_event_type_specific::vlc_input_state_changed
struct  vlc_event_t::vlc_event_type_specific::vlc_input_selected_stream_changed
struct  vlc_event_t::vlc_event_type_specific::vlc_input_item_meta_changed
struct  vlc_event_t::vlc_event_type_specific::vlc_input_item_subitem_added
struct  vlc_event_t::vlc_event_type_specific::vlc_input_item_subitem_tree_added
struct  vlc_event_t::vlc_event_type_specific::vlc_input_item_duration_changed
struct  vlc_event_t::vlc_event_type_specific::vlc_input_item_preparsed_changed
struct  vlc_event_t::vlc_event_type_specific::vlc_input_item_name_changed
struct  vlc_event_t::vlc_event_type_specific::vlc_input_item_info_changed
struct  vlc_event_t::vlc_event_type_specific::input_item_error_when_reading_changed
struct  vlc_event_t::vlc_event_type_specific::vlc_services_discovery_item_added
struct  vlc_event_t::vlc_event_type_specific::vlc_services_discovery_item_removed
struct  vlc_event_t::vlc_event_type_specific::vlc_services_discovery_started
struct  vlc_event_t::vlc_event_type_specific::vlc_services_discovery_ended

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 *)

Enumerations

enum  vlc_event_type_t {
  vlc_InputStateChanged, vlc_InputSelectedStreamChanged, vlc_InputItemMetaChanged, vlc_InputItemSubItemAdded,
  vlc_InputItemSubItemTreeAdded, vlc_InputItemDurationChanged, vlc_InputItemPreparsedChanged, vlc_InputItemNameChanged,
  vlc_InputItemInfoChanged, vlc_InputItemErrorWhenReadingChanged, vlc_ServicesDiscoveryItemAdded, vlc_ServicesDiscoveryItemRemoved,
  vlc_ServicesDiscoveryItemRemoveAll, vlc_ServicesDiscoveryStarted, vlc_ServicesDiscoveryEnded
}

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.

Detailed Description

This file is the interface definition for events (implementation in src/misc/events.c)

Typedef Documentation

typedef void( * vlc_event_callback_t)(const vlc_event_t *, void *)
typedef struct vlc_event_t vlc_event_t

Enumeration Type Documentation

Enumerator:
vlc_InputStateChanged 
vlc_InputSelectedStreamChanged 
vlc_InputItemMetaChanged 
vlc_InputItemSubItemAdded 
vlc_InputItemSubItemTreeAdded 
vlc_InputItemDurationChanged 
vlc_InputItemPreparsedChanged 
vlc_InputItemNameChanged 
vlc_InputItemInfoChanged 
vlc_InputItemErrorWhenReadingChanged 
vlc_ServicesDiscoveryItemAdded 
vlc_ServicesDiscoveryItemRemoved 
vlc_ServicesDiscoveryItemRemoveAll 
vlc_ServicesDiscoveryStarted 
vlc_ServicesDiscoveryEnded 

Function Documentation

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 
)
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 
)
void vlc_event_manager_fini ( vlc_event_manager_t p_em)
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   
)
void vlc_event_send ( vlc_event_manager_t p_em,
vlc_event_t  
)