]> git.sesse.net Git - vlc/blobdiff - src/config/core.c
Move core Win32 files to their own directory
[vlc] / src / config / core.c
index 3f6110e2baf1412d7b9eb11a7a0686c5f40c73df..c7351ad77fd5d3d7b910532549d2904048ce51f7 100644 (file)
@@ -26,7 +26,6 @@
 #endif
 
 #include <vlc_common.h>
-#include "../libvlc.h"
 #include "vlc_keys.h"
 #include "vlc_charset.h"
 #include "vlc_configuration.h"
@@ -48,7 +47,7 @@ int IsConfigStringType (int type)
     {
         CONFIG_ITEM_STRING, CONFIG_ITEM_FILE, CONFIG_ITEM_MODULE,
         CONFIG_ITEM_DIRECTORY, CONFIG_ITEM_MODULE_CAT, CONFIG_ITEM_PASSWORD,
-        CONFIG_ITEM_MODULE_LIST, CONFIG_ITEM_MODULE_LIST_CAT
+        CONFIG_ITEM_MODULE_LIST, CONFIG_ITEM_MODULE_LIST_CAT, CONFIG_ITEM_FONT
     };
 
     /* NOTE: this needs to be changed if we ever get more than 255 types */
@@ -406,20 +405,22 @@ void __config_PutFloat( vlc_object_t *p_this,
  *****************************************************************************
  * FIXME: This function really needs to be optimized.
  * FIXME: And now even more.
+ * FIXME: remove p_this pointer parameter (or use it)
  *****************************************************************************/
 module_config_t *config_FindConfig( vlc_object_t *p_this, const char *psz_name )
 {
-    vlc_list_t *p_list;
-    int i_index;
+    VLC_UNUSED(p_this);
+    module_t *p_parser;
 
     if( !psz_name ) return NULL;
 
-    p_list = vlc_list_find( p_this, VLC_OBJECT_MODULE, FIND_ANYWHERE );
+    module_t **list = module_list_get (NULL);
+    if (list == NULL)
+        return NULL;
 
-    for( i_index = 0; i_index < p_list->i_count; i_index++ )
+    for (size_t i = 0; (p_parser = list[i]) != NULL; i++)
     {
         module_config_t *p_item, *p_end;
-        module_t *p_parser = (module_t *)p_list->p_values[i_index].p_object;
 
         if( !p_parser->i_config_items )
             continue;
@@ -435,14 +436,13 @@ module_config_t *config_FindConfig( vlc_object_t *p_this, const char *psz_name )
              || ( p_item->psz_oldname
               && !strcmp( psz_name, p_item->psz_oldname ) ) )
             {
-                vlc_list_release( p_list );
+                module_list_free (list);
                 return p_item;
             }
         }
     }
 
-    vlc_list_release( p_list );
-
+    module_list_free (list);
     return NULL;
 }
 
@@ -534,38 +534,34 @@ void config_UnsetCallbacks( module_config_t *p_new, size_t n )
  *****************************************************************************/
 void __config_ResetAll( vlc_object_t *p_this )
 {
-    libvlc_priv_t *priv = libvlc_priv (p_this->p_libvlc);
-    int i_index;
-    vlc_list_t *p_list;
+    VLC_UNUSED(p_this);
     module_t *p_module;
+    module_t **list = module_list_get (NULL);
 
-    /* Acquire config file lock */
-    vlc_mutex_lock( &priv->config_lock );
-
-    p_list = vlc_list_find( p_this, VLC_OBJECT_MODULE, FIND_ANYWHERE );
-
-    for( i_index = 0; i_index < p_list->i_count; i_index++ )
+    for (size_t j = 0; (p_module = list[j]) != NULL; j++)
     {
-        p_module = (module_t *)p_list->p_values[i_index].p_object ;
         if( p_module->b_submodule ) continue;
 
         for (size_t i = 0; i < p_module->confsize; i++ )
         {
-            if (IsConfigIntegerType (p_module->p_config[i].i_type))
-                p_module->p_config[i].value.i = p_module->p_config[i].orig.i;
+            module_config_t *p_config = p_module->p_config + i;
+
+            vlc_mutex_lock (p_config->p_lock);
+            if (IsConfigIntegerType (p_config->i_type))
+                p_config->value.i = p_config->orig.i;
             else
-            if (IsConfigFloatType (p_module->p_config[i].i_type))
-                p_module->p_config[i].value.f = p_module->p_config[i].orig.f;
+            if (IsConfigFloatType (p_config->i_type))
+                p_config->value.f = p_config->orig.f;
             else
-            if (IsConfigStringType (p_module->p_config[i].i_type))
+            if (IsConfigStringType (p_config->i_type))
             {
-                free ((char *)p_module->p_config[i].value.psz);
-                p_module->p_config[i].value.psz =
-                        strdupnull (p_module->p_config[i].orig.psz);
+                free ((char *)p_config->value.psz);
+                p_config->value.psz =
+                        strdupnull (p_config->orig.psz);
             }
+            vlc_mutex_unlock (p_config->p_lock);
         }
     }
 
-    vlc_list_release( p_list );
-    vlc_mutex_unlock( &priv->config_lock );
+    module_list_free (list);
 }