]> git.sesse.net Git - vlc/commitdiff
HTTP old: use vlc_sd_GetNames(), fix #3490
authorRémi Denis-Courmont <remi@remlab.net>
Thu, 8 Apr 2010 19:55:06 +0000 (22:55 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Thu, 8 Apr 2010 19:55:06 +0000 (22:55 +0300)
modules/control/http/http.h
modules/control/http/macro.c
modules/control/http/mvar.c
share/http/dialogs/playlist

index 8b24acaf72bdc056cf4ac2371ec8496ef3ca3322..ac32dc9f553da13e8418cb3db7c298e8e394ae7d 100644 (file)
@@ -186,8 +186,8 @@ void     mvar_AppendNewVar( mvar_t *vars, const char *name,
  * The arg parameter must be of the form "start[:stop[:step]]"  */
 mvar_t *mvar_IntegerSetNew( const char *name, const char *arg );
 
-/** This function creates a set variable with a list of VLC objects */
-mvar_t *mvar_ObjectSetNew( intf_thread_t *p_intf, char *name, const char *arg );
+/** This function creates a set variable with a list of SD plugins */
+mvar_t *mvar_ServicesSetNew( intf_thread_t *p_intf, char *name );
 
 /** This function creates a set variable with the contents of the playlist */
 mvar_t *mvar_PlaylistSetNew( intf_thread_t *p_intf, char *name,
index 5217089306ddd915ae37d1becca3de0946e0ad27..b4887762a55ad12620194656a056a0d1ca21079a 100644 (file)
@@ -1019,11 +1019,9 @@ void Execute( httpd_file_sys_t *p_args,
                             index = mvar_FileSetNew( p_intf, m.param1, arg );
                             free( arg );
                         }
-                        else if( !strcmp( m.param2, "object" ) )
+                        else if( !strcmp( m.param2, "services" ) )
                         {
-                            char *arg = SSPop( &p_args->stack );
-                            index = mvar_ObjectSetNew( p_intf, m.param1, arg );
-                            free( arg );
+                            index = mvar_ServicesSetNew( p_intf, m.param1 );
                         }
                         else if( !strcmp( m.param2, "playlist" ) )
                         {
index 113b10bbe432a8372806a82cdbe4f24797d209d2..0e723e018276d0372edaae538d509a71b10f128a 100644 (file)
@@ -35,6 +35,7 @@
 #include <sys/stat.h>
 #endif
 #include <vlc_fs.h>
+#include <vlc_services_discovery.h>
 
 /* Utility function for scandir */
 static int Filter( const char *foo )
@@ -337,29 +338,26 @@ mvar_t *mvar_InfoSetNew( char *name, input_thread_t *p_input )
     return s;
 }
 
-mvar_t *mvar_ObjectSetNew( intf_thread_t *p_intf, char *psz_name,
-                               const char *psz_capability )
+mvar_t *mvar_ServicesSetNew( intf_thread_t *p_intf, char *psz_name )
 {
-    VLC_UNUSED(p_intf);
     mvar_t *s = mvar_New( psz_name, "set" );
-    size_t i;
+    char **longnames;
+    char **names = vlc_sd_GetNames( p_intf, &longnames, NULL );
+    if( names == NULL )
+        goto out;
 
-    module_t **p_list = module_list_get( NULL );
-
-    for( i = 0; p_list[i]; i++ )
+    for( size_t i = 0; names[i]; i++ )
     {
-        module_t *p_parser = p_list[i];
-        if( module_provides( p_parser, psz_capability ) )
-        {
-            mvar_t *sd = mvar_New( "sd", module_get_object( p_parser ) );
-            mvar_AppendNewVar( sd, "name",
-                                   module_get_name( p_parser, true ) );
-            mvar_AppendVar( s, sd );
-        }
+        mvar_t *sd = mvar_New( "sd", names[i] );
+        mvar_AppendNewVar( sd, "name", longnames[i] );
+        mvar_AppendVar( s, sd );
+        free( names[i] );
+        free( longnames[i] );
     }
 
-    module_list_free( p_list );
-
+    free( longnames );
+    free( names );
+out:
     return s;
 }
 
index d714e5f1686f3b810665b834d8da70a829b8afbb..10a6aee3e567543ee8fc2cf45844119cbfa450fa 100644 (file)
@@ -77,9 +77,8 @@ This dialog needs the following dialogs to be fully functional: <none>
             <span class="btn_text">Services Discovery</span>
           </button>
           <div id="menu_sd" class="menu" >
-            <vlc id="rpn" param1="services_discovery" />
-            <vlc id="foreach" param1="sd" param2="object" />
-            <button onclick="pl_sd('<vlc id="value" param1="sd" />');hide_menu('menu_sd');" onmouseover="setclass(this,'menuover');" onmouseout="setclass(this,'menuout');" class="menuout" title="Toggle <vlc id="value" param1="sd.name" />" ><vlc id="value" param1="sd.name" /></button><br/>
+            <vlc id="foreach" param1="sd" param2="services" />
+            <button onclick="pl_sd('<vlc id="value" param1="sd value url_encode" />');hide_menu('menu_sd');" onmouseover="setclass(this,'menuover');" onmouseout="setclass(this,'menuout');" class="menuout" title="Toggle <vlc id="value" param1="sd.name" />" ><vlc id="value" param1="sd.name" /></button><br/>
             <vlc id="end" />
           </div>
         </td>