]> git.sesse.net Git - vlc/commitdiff
Retain SD name for matching purpose
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 19 May 2009 14:55:47 +0000 (17:55 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 19 May 2009 14:55:47 +0000 (17:55 +0300)
src/playlist/playlist_internal.h
src/playlist/services_discovery.c

index 86279f66ed60b015f620896829ffa696dde72954..cae5b040959b483053dd7d63128fa612209370ac 100644 (file)
 #include "fetcher.h"
 #include "preparser.h"
 
+typedef struct playlist_services_discovery_support_t {
+    /* the playlist items for category and onelevel */
+    playlist_item_t      *p_cat;
+    playlist_item_t      *p_one;
+    services_discovery_t *p_sd; /**< Loaded service discovery modules */
+    char                 *psz_name;
+} vlc_sd_internal_t;
+
+
 typedef struct playlist_private_t
 {
     playlist_t           public_data;
@@ -50,12 +59,7 @@ typedef struct playlist_private_t
     playlist_item_array_t items_to_delete; /**< Array of items and nodes to
             delete... At the very end. This sucks. */
 
-    struct playlist_services_discovery_support_t {
-        /* the playlist items for category and onelevel */
-        playlist_item_t*    p_cat;
-        playlist_item_t*    p_one;
-        services_discovery_t * p_sd; /**< Loaded service discovery modules */
-    } ** pp_sds;
+    vlc_sd_internal_t   **pp_sds;
     int                   i_sds;   /**< Number of service discovery modules */
     input_thread_t *      p_input;  /**< the input thread associated
                                      * with the current item */
index ab69fb54c2cd5e6b182d8381f7d16a27a7977889..5cc6f30fd658152ff1f1f586ec426c163733290f 100644 (file)
@@ -289,6 +289,7 @@ int playlist_ServicesDiscoveryAdd( playlist_t *p_playlist, const char *psz_modul
     p_sds->p_sd = p_sd;
     p_sds->p_one = p_one;
     p_sds->p_cat = p_cat;
+    p_sds->psz_name = strdup( psz_module );
 
     PL_LOCK;
     TAB_APPEND( pl_priv(p_playlist)->i_sds, pl_priv(p_playlist)->pp_sds, p_sds );
@@ -357,6 +358,7 @@ int playlist_ServicesDiscoveryRemove( playlist_t * p_playlist,
     PL_UNLOCK;
 
     vlc_sd_Destroy( p_sd );
+    free( p_sds->psz_name );
     free( p_sds );
 
     return VLC_SUCCESS;