* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
#include <vlc/vlc.h>
#include "../libvlc.h"
#include "vlc_keys.h"
#include "vlc_charset.h"
+#include "vlc_configuration.h"
#include <errno.h> /* errno */
-
-#ifdef HAVE_LIMITS_H
-# include <limits.h>
-#endif
+#include <assert.h>
+#include <limits.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h> /* getuid() */
#include <tchar.h>
#endif
-#include "config.h"
+#include "configuration.h"
#include "modules/modules.h"
static inline char *strdupnull (const char *src)
* - on windows that's the App Data directory;
* - on other OSes it's the same as the home directory.
*/
-char *config_GetUserDir( void );
char *config_GetUserDir( void )
{
return GetDir( VLC_TRUE );
return psz_dir;
#endif
}
-
-/* Adds an extra interface to the configuration */
-void __config_AddIntf( vlc_object_t *p_this, const char *psz_intf )
-{
- assert( psz_intf );
-
- char *psz_config, *psz_parser;
- size_t i_len = strlen( psz_intf );
-
- psz_config = psz_parser = config_GetPsz( p_this->p_libvlc, "control" );
- while( psz_parser )
- {
- if( !strncmp( psz_intf, psz_parser, i_len ) )
- {
- free( psz_config );
- return;
- }
- psz_parser = strchr( psz_parser, ':' );
- if( psz_parser ) psz_parser++; /* skip the ':' */
- }
- free( psz_config );
-
- psz_config = psz_parser = config_GetPsz( p_this->p_libvlc, "extraintf" );
- while( psz_parser )
- {
- if( !strncmp( psz_intf, psz_parser, i_len ) )
- {
- free( psz_config );
- return;
- }
- psz_parser = strchr( psz_parser, ':' );
- if( psz_parser ) psz_parser++; /* skip the ':' */
- }
-
- /* interface not found in the config, let's add it */
- if( psz_config && strlen( psz_config ) > 0 )
- {
- char *psz_newconfig;
- if( asprintf( &psz_newconfig, "%s:%s", psz_config, psz_intf ) != -1 )
- {
- config_PutPsz( p_this->p_libvlc, "extraintf", psz_newconfig );
- free( psz_newconfig );
- }
- }
- else
- config_PutPsz( p_this->p_libvlc, "extraintf", psz_intf );
-
- free( psz_config );
-}
-
-/* Removes an extra interface from the configuration */
-void __config_RemoveIntf( vlc_object_t *p_this, const char *psz_intf )
-{
- assert( psz_intf );
-
- char *psz_config, *psz_parser;
- size_t i_len = strlen( psz_intf );
-
- psz_config = psz_parser = config_GetPsz( p_this->p_libvlc, "extraintf" );
- while( psz_parser )
- {
- if( !strncmp( psz_intf, psz_parser, i_len ) )
- {
- char *psz_newconfig;
- char *psz_end = psz_parser + i_len;
- if( *psz_end == ':' ) psz_end++;
- *psz_parser = '\0';
- if( asprintf( &psz_newconfig, "%s%s", psz_config, psz_end ) != -1 )
- {
- config_PutPsz( p_this->p_libvlc, "extraintf", psz_newconfig );
- free( psz_newconfig );
- }
- break;
- }
- psz_parser = strchr( psz_parser, ':' );
- if( psz_parser ) psz_parser++; /* skip the ':' */
- }
- free( psz_config );
-
- psz_config = psz_parser = config_GetPsz( p_this->p_libvlc, "control" );
- while( psz_parser )
- {
- if( !strncmp( psz_intf, psz_parser, i_len ) )
- {
- char *psz_newconfig;
- char *psz_end = psz_parser + i_len;
- if( *psz_end == ':' ) psz_end++;
- *psz_parser = '\0';
- if( asprintf( &psz_newconfig, "%s%s", psz_config, psz_end ) != -1 )
- {
- config_PutPsz( p_this->p_libvlc, "control", psz_newconfig );
- free( psz_newconfig );
- }
- break;
- }
- psz_parser = strchr( psz_parser, ':' );
- if( psz_parser ) psz_parser++; /* skip the ':' */
- }
- free( psz_config );
-}
-
-/*
- * Returns VLC_TRUE if the specified extra interface is present in the
- * configuration, VLC_FALSE if not
- */
-vlc_bool_t __config_ExistIntf( vlc_object_t *p_this, const char *psz_intf )
-{
- assert( psz_intf );
-
- char *psz_config, *psz_parser;
- size_t i_len = strlen( psz_intf );
-
- psz_config = psz_parser = config_GetPsz( p_this->p_libvlc, "extraintf" );
- while( psz_parser )
- {
- if( !strncmp( psz_parser, psz_intf, i_len ) )
- {
- free( psz_config );
- return VLC_TRUE;
- }
- psz_parser = strchr( psz_parser, ':' );
- if( psz_parser ) psz_parser++; /* skip the ':' */
- }
- free( psz_config );
-
- psz_config = psz_parser = config_GetPsz( p_this->p_libvlc, "control" );
- while( psz_parser )
- {
- if( !strncmp( psz_parser, psz_intf, i_len ) )
- {
- free( psz_config );
- return VLC_TRUE;
- }
- psz_parser = strchr( psz_parser, ':' );
- if( psz_parser ) psz_parser++; /* skip the ':' */
- }
- free( psz_config );
-
- return VLC_FALSE;
-}
-