]> git.sesse.net Git - vlc/blobdiff - include/vlc_events.h
Redesign the Capture Device panel
[vlc] / include / vlc_events.h
index d3903ff8409bf469cc5ec1a22f8e3ff4220b7778..92b290566ba9f408135228a5ffd50589b32fa5ab 100644 (file)
@@ -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;
@@ -91,7 +91,7 @@
  *        vlc_event_send( p_self->p_event_manager, &event );
  * }
  * */
+
   /*****************************************************************************
  * Event Type
  *****************************************************************************/
@@ -104,6 +104,7 @@ typedef struct vlc_event_manager_t
 {
     void * p_obj;
     vlc_mutex_t object_lock;
+    vlc_mutex_t event_sending_lock;
     vlc_object_t *p_parent_object;
     DECL_ARRAY(struct vlc_event_listeners_group_t *) listeners_groups;
 } vlc_event_manager_t;
@@ -114,10 +115,14 @@ typedef enum vlc_event_type_t {
     /* Input item events */
     vlc_InputItemMetaChanged,
     vlc_InputItemSubItemAdded,
+    vlc_InputItemDurationChanged,
+    vlc_InputItemPreparsedChanged,
 
     /* Service Discovery event */
     vlc_ServicesDiscoveryItemAdded,
-    vlc_ServicesDiscoveryItemRemoved
+    vlc_ServicesDiscoveryItemRemoved,
+    vlc_ServicesDiscoveryStarted,
+    vlc_ServicesDiscoveryEnded
 } vlc_event_type_t;
 
 /* Event definition */
@@ -136,7 +141,15 @@ typedef struct vlc_event_t
         {
             input_item_t * p_new_child;
         } input_item_subitem_added;
-        
+        struct vlc_input_item_duration_changed
+        {
+            mtime_t new_duration;
+        } input_item_duration_changed;
+        struct vlc_input_item_preparsed_changed
+        {
+            int new_status;
+        } input_item_preparsed_changed;
+
         /* Service discovery events */
         struct vlc_services_discovery_item_added
         {
@@ -147,6 +160,14 @@ typedef struct vlc_event_t
         {
             input_item_t * p_item;
         } services_discovery_item_removed;
+        struct vlc_services_discovery_started
+        {
+            void * unused;
+        } services_discovery_started;
+        struct vlc_services_discovery_ended
+        {
+            void * unused;
+        } services_discovery_ended;
 
     } u;
 } vlc_event_t;