Commit bc1fa152 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

libvlc: look the value of intf up only once when used

parent d19530bc
...@@ -102,15 +102,10 @@ int intf_Create( vlc_object_t *p_this, const char *chain ) ...@@ -102,15 +102,10 @@ int intf_Create( vlc_object_t *p_this, const char *chain )
var_AddCallback( p_intf, "intf-add", AddIntfCallback, NULL ); var_AddCallback( p_intf, "intf-add", AddIntfCallback, NULL );
/* Choose the best module */ /* Choose the best module */
p_intf->p_cfg = NULL;
char *psz_parser = *chain == '$'
? var_CreateGetString(p_intf, chain+1)
: strdup( chain );
char *module; char *module;
char *psz_tmp = config_ChainCreate( &module, &p_intf->p_cfg,
psz_parser ); p_intf->p_cfg = NULL;
free( psz_tmp ); free( config_ChainCreate( &module, &p_intf->p_cfg, chain ) );
free( psz_parser );
p_intf->p_module = module_need( p_intf, "interface", module, true ); p_intf->p_module = module_need( p_intf, "interface", module, true );
free(module); free(module);
if( p_intf->p_module == NULL ) if( p_intf->p_module == NULL )
......
...@@ -594,17 +594,19 @@ void libvlc_InternalDestroy( libvlc_int_t *p_libvlc ) ...@@ -594,17 +594,19 @@ void libvlc_InternalDestroy( libvlc_int_t *p_libvlc )
/** /**
* Add an interface plugin and run it * Add an interface plugin and run it
*/ */
int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module ) int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, const char *name )
{ {
int ret;
if( !p_libvlc ) if( !p_libvlc )
return VLC_EGENERIC; return VLC_EGENERIC;
if( psz_module == NULL ) /* requesting the default interface */ if( name != NULL )
{ ret = intf_Create( p_libvlc, name );
else
{ /* Default interface */
char *intf = var_InheritString( p_libvlc, "intf" ); char *intf = var_InheritString( p_libvlc, "intf" );
if( intf != NULL ) /* "intf" has not been set */ if( intf == NULL ) /* "intf" has not been set */
free( intf );
else
{ {
char *pidfile = var_InheritString( p_libvlc, "pidfile" ); char *pidfile = var_InheritString( p_libvlc, "pidfile" );
if( pidfile != NULL ) if( pidfile != NULL )
...@@ -614,13 +616,11 @@ int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module ) ...@@ -614,13 +616,11 @@ int libvlc_InternalAddIntf( libvlc_int_t *p_libvlc, char const *psz_module )
_("Running vlc with the default interface. " _("Running vlc with the default interface. "
"Use 'cvlc' to use vlc without interface.") ); "Use 'cvlc' to use vlc without interface.") );
} }
ret = intf_Create( p_libvlc, intf );
name = "default";
} }
/* Try to create the interface */
int ret = intf_Create( p_libvlc, psz_module ? psz_module : "$intf" );
if( ret ) if( ret )
msg_Err( p_libvlc, "interface \"%s\" initialization failed", msg_Err( p_libvlc, "interface \"%s\" initialization failed", name );
psz_module ? psz_module : "default" );
return ret; return ret;
} }
......
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