* 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)
* ...
* vlc_my_cool_object_release()
* {
* ...
- * vlc_event_manager_release( p_self->p_event_manager );
+ * vlc_event_manager_fini( &p_self->p_event_manager );
* ...
* }
*
* 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 );
* }
* */
-
+
/*****************************************************************************
* Event Type
*****************************************************************************/
/* 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,
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
{
struct vlc_input_item_subitem_added
{
input_item_t * p_new_child;
- vlc_bool_t b_node;
} 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;
{
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
* 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
/*
* 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.