+/*****************************************************************************
+ * config_ResetAll: reset the configuration data for all the modules.
+ *****************************************************************************/
+void __config_ResetAll( vlc_object_t *p_this )
+{
+ int i_index, i;
+ vlc_list_t *p_list;
+ module_t *p_module;
+
+ /* Acquire config file lock */
+ vlc_mutex_lock( &p_this->p_vlc->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++ )
+ {
+ p_module = (module_t *)p_list->p_values[i_index].p_object ;
+ if( p_module->b_submodule ) continue;
+
+ for( i = 0; p_module->p_config[i].i_type != CONFIG_HINT_END; i++ )
+ {
+ p_module->p_config[i].i_value = p_module->p_config[i].i_value_orig;
+ p_module->p_config[i].f_value = p_module->p_config[i].f_value_orig;
+ if( p_module->p_config[i].psz_value )
+ free( p_module->p_config[i].psz_value );
+ p_module->p_config[i].psz_value =
+ p_module->p_config[i].psz_value_orig ?
+ strdup( p_module->p_config[i].psz_value_orig ) : NULL;
+ }
+ }
+
+ vlc_list_release( p_list );
+ vlc_mutex_unlock( &p_this->p_vlc->config_lock );
+}
+