]> git.sesse.net Git - vlc/blobdiff - modules/control/http/mvar.c
Make vlc_value_t.i_int 64-bits
[vlc] / modules / control / http / mvar.c
index 3ada9dab0e4e4b062daad242e1292f9bdffbf241..946501985f339bcc6f1a85c7d471aabec311cf25 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;
 }
 
@@ -420,7 +418,7 @@ mvar_t *mvar_InputVarSetNew( intf_thread_t *p_intf, char *name,
 
     for( i = 0; i < val_list.p_list->i_count; i++ )
     {
-        char psz_int[16];
+        char psz_int[21];
         mvar_t *itm;
 
         switch( i_type & VLC_VAR_TYPE )
@@ -440,7 +438,7 @@ mvar_t *mvar_InputVarSetNew( intf_thread_t *p_intf, char *name,
         case VLC_VAR_INTEGER:
             itm = mvar_New( name, "set" );
             mvar_AppendNewVar( itm, "name", text_list.p_list->p_values[i].psz_string );
-            snprintf( psz_int, sizeof(psz_int), "%d",
+            snprintf( psz_int, sizeof(psz_int), "%"PRId64,
                       val_list.p_list->p_values[i].i_int );
             mvar_AppendNewVar( itm, "id", psz_int );
             snprintf( psz_int, sizeof(psz_int), "%d",
@@ -511,7 +509,7 @@ mvar_t *mvar_FileSetNew( intf_thread_t *p_intf, char *name,
     psz_dir = RealPath( psz_dir );
 
     /* parse psz_src dir */
-    if( ( i_dir_content = utf8_scandir( psz_dir, &ppsz_dir_content, Filter,
+    if( ( i_dir_content = vlc_scandir( psz_dir, &ppsz_dir_content, Filter,
                                         InsensitiveAlphasort ) ) == -1 )
     {
         if( errno != ENOENT && errno != ENOTDIR )
@@ -540,7 +538,7 @@ mvar_t *mvar_FileSetNew( intf_thread_t *p_intf, char *name,
             sprintf( psz_tmp, "%s"DIR_SEP"%s", psz_dir, psz_name );
 
 #ifdef HAVE_SYS_STAT_H
-            if( utf8_stat( psz_tmp, &stat_info ) == -1 )
+            if( vlc_stat( psz_tmp, &stat_info ) == -1 )
             {
                 free( psz_name );
                 continue;