]> git.sesse.net Git - vlc/blobdiff - modules/misc/sap.c
Options as infos were bad in several ways: it broke PLAYLIST_GO, used
[vlc] / modules / misc / sap.c
index 06489527cfa26092925345f72f0b091f67e55f42..f51503417d83572f3dd918e9bc3f3a9fa6751b50 100644 (file)
@@ -2,7 +2,7 @@
  * sap.c :  SAP interface module
  *****************************************************************************
  * Copyright (C) 2001 VideoLAN
- * $Id: sap.c,v 1.50 2004/01/22 01:14:50 sigmunau Exp $
+ * $Id: sap.c,v 1.52 2004/01/29 17:51:08 zorglub Exp $
  *
  * Authors: Arnaud Schauly <gitan@via.ecp.fr>
  *          ClĂ©ment Stenac <zorglub@via.ecp.fr>
@@ -104,23 +104,19 @@ static int  Open ( vlc_object_t * );
 static void Close( vlc_object_t * );
 
 vlc_module_begin();
-    add_category_hint( N_("SAP"), NULL, VLC_TRUE );
-        add_string( "sap-addr", NULL, NULL,
-                     SAP_ADDR_TEXT, SAP_ADDR_LONGTEXT, VLC_TRUE );
-
-        add_bool( "sap-ipv4", 1 , NULL,
-                     SAP_IPV4_TEXT,SAP_IPV4_LONGTEXT, VLC_TRUE);
-
-        add_bool( "sap-ipv6", 0 , NULL,
-                   SAP_IPV6_TEXT, SAP_IPV6_LONGTEXT, VLC_TRUE);
-
-        add_string( "sap-ipv6-scope", "8" , NULL,
-                    SAP_SCOPE_TEXT, SAP_SCOPE_LONGTEXT, VLC_TRUE);
+    set_description( _("SAP interface") );
 
-        add_integer( "sap-timeout", 1800, NULL,
-                     SAP_TIMEOUT_TEXT, SAP_TIMEOUT_LONGTEXT, VLC_TRUE);
+    add_string( "sap-addr", NULL, NULL,
+                SAP_ADDR_TEXT, SAP_ADDR_LONGTEXT, VLC_TRUE );
+    add_bool( "sap-ipv4", 1 , NULL,
+               SAP_IPV4_TEXT,SAP_IPV4_LONGTEXT, VLC_TRUE);
+    add_bool( "sap-ipv6", 0 , NULL,
+              SAP_IPV6_TEXT, SAP_IPV6_LONGTEXT, VLC_TRUE);
+    add_string( "sap-ipv6-scope", "8" , NULL,
+                SAP_SCOPE_TEXT, SAP_SCOPE_LONGTEXT, VLC_TRUE);
+    add_integer( "sap-timeout", 1800, NULL,
+                 SAP_TIMEOUT_TEXT, SAP_TIMEOUT_LONGTEXT, VLC_TRUE);
 
-    set_description( _("SAP interface") );
     set_capability( "interface", 0 );
     set_callbacks( Open, Close );
 vlc_module_end();
@@ -651,6 +647,7 @@ static void sess_toitem( intf_thread_t * p_intf, sess_descr_t * p_sd )
     vlc_bool_t b_http = VLC_FALSE;
     char *psz_http_path = NULL;
     playlist_t *p_playlist = NULL;
+    playlist_item_t *p_item;
 
     psz_uri_default = NULL;
     if( p_sd->i_media > 1 )
@@ -674,8 +671,8 @@ static void sess_toitem( intf_thread_t * p_intf, sess_descr_t * p_sd )
                       PLAYLIST_CHECK_INSERT, PLAYLIST_END );
         if( i_id != -1 )
         {
-            i_pos = playlist_GetPositionById( p_playlist, i_id );
-            playlist_SetGroup( p_playlist, i_pos, p_intf->p_sys->i_group );
+            playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id );
+            playlist_ItemSetGroup( p_item, p_intf->p_sys->i_group );
         }
 
         /* Remember it */
@@ -842,7 +839,7 @@ static void sess_toitem( intf_thread_t * p_intf, sess_descr_t * p_sd )
                             p_sd->psz_sessionname,
                             psz_item_uri );
 
-                    p_item = playlist_GetItemById( p_playlist,
+                    p_item = playlist_ItemGetById( p_playlist,
                                     p_intf->p_sys->pp_announces[i]->i_id );
 
                     /* Change the name in the item */
@@ -868,8 +865,13 @@ static void sess_toitem( intf_thread_t * p_intf, sess_descr_t * p_sd )
         i_id = playlist_Add ( p_playlist, psz_item_uri ,
                                p_sd->psz_sessionname,
                                PLAYLIST_CHECK_INSERT, PLAYLIST_END );
-        i_pos = playlist_GetPositionById( p_playlist, i_id );
-        playlist_SetGroup( p_playlist, i_pos, i_group );
+        p_item = playlist_ItemGetById( p_playlist, i_id );
+        if( p_item )
+        {
+            vlc_mutex_lock( &p_item->lock );
+            playlist_ItemSetGroup( p_item, i_group );
+            vlc_mutex_unlock( &p_item->lock );
+        }
 
         /* Then remember it */
         p_announce = (struct sap_announce_t *)malloc(