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 = \ ...@@ -71,6 +71,7 @@ HEADERS_include = \
../include/vlc_osd.h \ ../include/vlc_osd.h \
../include/vlc_pgpkey.h \ ../include/vlc_pgpkey.h \
../include/vlc_playlist.h \ ../include/vlc_playlist.h \
../include/vlc_plugin.h \
../include/vlc_rand.h \ ../include/vlc_rand.h \
../include/vlc_services_discovery.h \ ../include/vlc_services_discovery.h \
../include/vlc_sout.h \ ../include/vlc_sout.h \
...@@ -307,6 +308,7 @@ SOURCES_libvlc_common = \ ...@@ -307,6 +308,7 @@ SOURCES_libvlc_common = \
config/core.c \ config/core.c \
config/chain.c \ config/chain.c \
config/file.c \ config/file.c \
config/intf.c \
config/cmdline.c \ config/cmdline.c \
misc/events.c \ misc/events.c \
misc/image.c \ misc/image.c \
......
...@@ -822,144 +822,3 @@ char *config_GetCacheDir( libvlc_int_t *p_libvlc ) ...@@ -822,144 +822,3 @@ char *config_GetCacheDir( libvlc_int_t *p_libvlc )
return psz_dir; return psz_dir;
#endif #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