]> git.sesse.net Git - vlc/blobdiff - src/control/media_discoverer.c
Add playlist_CurrentId() to get the playlist item id from the currently playing item.
[vlc] / src / control / media_discoverer.c
index 0a1d1a28c02642b4e37e6f5bb4dbed198c3830b9..5f33b145f9d4c147dbd54a3e002a449d95a7f35b 100644 (file)
@@ -39,11 +39,11 @@ static void services_discovery_item_added( const vlc_event_t * p_event,
 {
     input_item_t * p_item = p_event->u.services_discovery_item_added.p_new_item;
     const char * psz_cat = p_event->u.services_discovery_item_added.psz_category;
-    libvlc_media_descriptor_t * p_md;
+    libvlc_media_t * p_md;
     libvlc_media_discoverer_t * p_mdis = user_data;
     libvlc_media_list_t * p_mlist = p_mdis->p_mlist;
 
-    p_md = libvlc_media_descriptor_new_from_input_item(
+    p_md = libvlc_media_new_from_input_item(
             p_mdis->p_libvlc_instance,
             p_item, NULL );
 
@@ -51,33 +51,34 @@ static void services_discovery_item_added( const vlc_event_t * p_event,
      * that category in a media_list. */
     if( psz_cat )
     {
-        p_mlist = kVLCDictionaryNotFound;
         p_mlist = vlc_dictionary_value_for_key( &p_mdis->catname_to_submedialist, psz_cat );
 
         if( p_mlist == kVLCDictionaryNotFound )
         {
-            libvlc_media_descriptor_t * p_catmd;
-            p_catmd = libvlc_media_descriptor_new_as_node( p_mdis->p_libvlc_instance, psz_cat, NULL );
-            p_mlist = libvlc_media_descriptor_subitems( p_catmd, NULL );
-            p_mlist->b_read_only = VLC_TRUE;
+            libvlc_media_t * p_catmd;
+            p_catmd = libvlc_media_new_as_node( p_mdis->p_libvlc_instance, psz_cat, NULL );
+            p_mlist = libvlc_media_subitems( p_catmd, NULL );
+            p_mlist->b_read_only = true;
 
             /* Insert the newly created mlist in our dictionary */
-            __vlc_dictionary_insert( &p_mdis->catname_to_submedialist, psz_cat, p_mlist, 0 );
-            
+            vlc_dictionary_insert( &p_mdis->catname_to_submedialist, psz_cat, p_mlist );
+
             /* Insert the md into the root list */
             libvlc_media_list_lock( p_mdis->p_mlist );
-            _libvlc_media_list_add_media_descriptor( p_mdis->p_mlist, p_catmd, NULL );
+            _libvlc_media_list_add_media( p_mdis->p_mlist, p_catmd, NULL );
             libvlc_media_list_unlock( p_mdis->p_mlist );
 
             /* We don't release the mlist cause the dictionary
              * doesn't retain the object. But we release the md. */
-            libvlc_media_descriptor_release( p_catmd );
+            libvlc_media_release( p_catmd );
         }
     }
-
-    libvlc_media_list_lock( p_mlist );
-    _libvlc_media_list_add_media_descriptor( p_mlist, p_md, NULL );
-    libvlc_media_list_unlock( p_mlist );
+    else
+    {
+        libvlc_media_list_lock( p_mlist );
+        _libvlc_media_list_add_media( p_mlist, p_md, NULL );
+        libvlc_media_list_unlock( p_mlist );
+    }
 }
 
 /**************************************************************************
@@ -88,7 +89,7 @@ static void services_discovery_item_removed( const vlc_event_t * p_event,
                                              void * user_data )
 {
     input_item_t * p_item = p_event->u.services_discovery_item_added.p_new_item;
-    libvlc_media_descriptor_t * p_md;
+    libvlc_media_t * p_md;
     libvlc_media_discoverer_t * p_mdis = user_data;
 
     int i, count = libvlc_media_list_count( p_mdis->p_mlist, NULL );
@@ -112,10 +113,10 @@ static void services_discovery_item_removed( const vlc_event_t * p_event,
 static void services_discovery_started( const vlc_event_t * p_event,
                                         void * user_data )
 {
-    (void)p_event;
+    VLC_UNUSED(p_event);
     libvlc_media_discoverer_t * p_mdis = user_data;
     libvlc_event_t event;
-    p_mdis->running = VLC_TRUE;
+    p_mdis->running = true;
     event.type = libvlc_MediaDiscovererStarted;
     libvlc_event_send( p_mdis->p_event_manager, &event );
 }
@@ -127,10 +128,10 @@ static void services_discovery_started( const vlc_event_t * p_event,
 static void services_discovery_ended( const vlc_event_t * p_event,
                                       void * user_data )
 {
-    (void)p_event;
+    VLC_UNUSED(p_event);
     libvlc_media_discoverer_t * p_mdis = user_data;
     libvlc_event_t event;
-    p_mdis->running = VLC_FALSE;
+    p_mdis->running = false;
     event.type = libvlc_MediaDiscovererEnded;
     libvlc_event_send( p_mdis->p_event_manager, &event );
 }
@@ -150,7 +151,7 @@ libvlc_media_discoverer_new_from_name( libvlc_instance_t * p_inst,
                                        libvlc_exception_t * p_e )
 {
     libvlc_media_discoverer_t * p_mdis;
+
     p_mdis = malloc(sizeof(libvlc_media_discoverer_t));
     if( !p_mdis )
     {
@@ -160,8 +161,8 @@ libvlc_media_discoverer_new_from_name( libvlc_instance_t * p_inst,
 
     p_mdis->p_libvlc_instance = p_inst;
     p_mdis->p_mlist = libvlc_media_list_new( p_inst, NULL );
-    p_mdis->p_mlist->b_read_only = VLC_TRUE;
-    p_mdis->running = VLC_FALSE;
+    p_mdis->p_mlist->b_read_only = true;
+    p_mdis->running = false;
 
     vlc_dictionary_init( &p_mdis->catname_to_submedialist, 0 );
 
@@ -269,4 +270,3 @@ libvlc_media_discoverer_is_running( libvlc_media_discoverer_t * p_mdis )
 {
     return p_mdis->running;
 }
-