Commit 751d2f1a authored by Christophe Mutricy's avatar Christophe Mutricy

Distribute include/vlc_plugin.h and src/config/intf.c

Remove code duplication
parent e3421975
......@@ -71,6 +71,7 @@ HEADERS_include = \
../include/vlc_osd.h \
../include/vlc_pgpkey.h \
../include/vlc_playlist.h \
../include/vlc_plugin.h \
../include/vlc_rand.h \
../include/vlc_services_discovery.h \
../include/vlc_sout.h \
......@@ -307,6 +308,7 @@ SOURCES_libvlc_common = \
config/core.c \
config/chain.c \
config/file.c \
config/intf.c \
config/cmdline.c \
misc/events.c \
misc/image.c \
......
......@@ -822,144 +822,3 @@ char *config_GetCacheDir( libvlc_int_t *p_libvlc )
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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment