]> git.sesse.net Git - vlc/commitdiff
input: Send vlc_InputItemInfoChanged, and vlc_InputItemNameChanged events.
authorPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 14 Jun 2008 13:45:44 +0000 (15:45 +0200)
committerPierre d'Herbemont <pdherbemont@videolan.org>
Sat, 14 Jun 2008 13:45:44 +0000 (15:45 +0200)
include/vlc_events.h
src/input/control.c
src/input/item.c
src/misc/events.c

index 42329a681cc0b6a915cdd5c8698ddc4485277d22..2bef3ef0198106548dd7e15dd20085803163f2eb 100644 (file)
@@ -120,6 +120,8 @@ typedef enum vlc_event_type_t {
     vlc_InputItemSubItemAdded,
     vlc_InputItemDurationChanged,
     vlc_InputItemPreparsedChanged,
+    vlc_InputItemNameChanged,
+    vlc_InputItemInfoChanged,
 
     /* Service Discovery event */
     vlc_ServicesDiscoveryItemAdded,
@@ -158,6 +160,14 @@ typedef struct vlc_event_t
         {
             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;
 
         /* Service discovery events */
         struct vlc_services_discovery_item_added
index be1785615a0981faefc96fadc1f8a7535d609b9f..78cdbd19670efbf618b5a0b76b0835968a2ad74b 100644 (file)
@@ -200,7 +200,12 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
             vlc_mutex_unlock( &p_input->p->input.p_item->lock );
 
             if( !p_input->b_preparsing )
+            {
                 NotifyPlaylist( p_input );
+                vlc_event_t event;
+                event.type = vlc_InputItemInfoChanged;
+                vlc_event_send( p_input->p->input.p_item, &event );
+            }
         }
         return VLC_SUCCESS;
 
@@ -267,8 +272,12 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
             vlc_mutex_unlock( &p_input->p->input.p_item->lock );
 
             if( !p_input->b_preparsing )
+            {
                 NotifyPlaylist( p_input );
-
+                vlc_event_t event;
+                event.type = vlc_InputItemInfoChanged;
+                vlc_event_send( p_input->p->input.p_item, &event );
+            }
             return VLC_SUCCESS;
         }
 
@@ -299,8 +308,13 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
             vlc_mutex_unlock( &p_input->p->input.p_item->lock );
 
             if( !p_input->b_preparsing )
+            {
                 NotifyPlaylist( p_input );
-
+                vlc_event_t event;
+                event.type = vlc_InputItemNameChanged;
+                event.u.input_item_name_changed.new_name = psz_name;
+                vlc_event_send( p_input->p->input.p_item, &event );
+            }
             return VLC_SUCCESS;
         }
 
index 50455b5c97bd618a92e7afed4ae57a01ea87bdef..579dac4aa18711bfd7351f6ecbb5b598e9760823 100644 (file)
@@ -62,6 +62,10 @@ static inline void input_ItemInit( vlc_object_t *p_o, input_item_t *p_i )
         vlc_InputItemDurationChanged );
     vlc_event_manager_register_event_type( &p_i->event_manager,
         vlc_InputItemPreparsedChanged );
+    vlc_event_manager_register_event_type( &p_i->event_manager,
+        vlc_InputItemNameChanged );
+    vlc_event_manager_register_event_type( &p_i->event_manager,
+        vlc_InputItemInfoChanged );
 }
 
 static inline void input_ItemClean( input_item_t *p_i )
index a558fd7f7d1fa71269b8eacaf056163d72c4d1ee..cd883c78085ab4c75112860a559c6c05180d5814 100644 (file)
@@ -78,6 +78,8 @@ static const char ppsz_event_type_to_name[][33] =
     [vlc_InputItemSubItemAdded]         = "vlc_InputItemSubItemAdded",
     [vlc_InputItemDurationChanged]      = "vlc_InputItemDurationChanged",
     [vlc_InputItemPreparsedChanged]     = "vlc_InputItemPreparsedChanged",
+    [vlc_InputItemNameChanged]          = "vlc_InputItemNameChanged",
+    [vlc_InputItemInfoChanged]          = "vlc_InputItemInfoChanged",
 
     [vlc_ServicesDiscoveryItemAdded]    = "vlc_ServicesDiscoveryItemAdded",
     [vlc_ServicesDiscoveryItemRemoved]  = "vlc_ServicesDiscoveryItemRemoved"