* The arg parameter must be of the form "start[:stop[:step]]" */
mvar_t *E_(mvar_IntegerSetNew)( const char *name, const char *arg );
+/** This function creates a set variable with a list of VLC objects */
+mvar_t *E_(mvar_ObjectSetNew)( intf_thread_t *p_intf, char *name, char *arg );
+
/** This function creates a set variable with the contents of the playlist */
mvar_t *E_(mvar_PlaylistSetNew)( intf_thread_t *p_intf, char *name,
playlist_t *p_pl );
index = E_(mvar_FileSetNew)( p_intf, m.param1, arg );
free( arg );
}
+ else if( !strcmp( m.param2, "object" ) )
+ {
+ char *arg = E_(SSPop)( &p_args->stack );
+ index = E_(mvar_ObjectSetNew)( p_intf, m.param1, arg );
+ free( arg );
+ }
else if( !strcmp( m.param2, "playlist" ) )
{
index = E_(mvar_PlaylistSetNew)( p_intf, m.param1,
return s;
}
+mvar_t *E_(mvar_ObjectSetNew)( intf_thread_t *p_intf, char *psz_name,
+ char *psz_capability )
+{
+ mvar_t *s = E_(mvar_New)( psz_name, "set" );
+ int i;
+
+ vlc_list_t *p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE,
+ FIND_ANYWHERE );
+
+ for( i = 0; i < p_list->i_count; i++ )
+ {
+ module_t *p_parser = (module_t *)p_list->p_values[i].p_object;
+ if( !strcmp( p_parser->psz_capability, psz_capability ) )
+ {
+ mvar_t *sd = E_(mvar_New)( "sd", p_parser->psz_object_name );
+ E_(mvar_AppendNewVar)( sd, "name",
+ p_parser->psz_longname ? p_parser->psz_longname
+ : ( p_parser->psz_shortname ? p_parser->psz_shortname
+ : p_parser->psz_object_name ) );
+ E_(mvar_AppendVar)( s, sd );
+ }
+ }
+
+ vlc_list_release( p_list );
+
+ return s;
+}
+
mvar_t *E_(mvar_InputVarSetNew)( intf_thread_t *p_intf, char *name,
input_thread_t *p_input,
const char *psz_variable )
msg_Dbg( p_intf, "requested to move playlist item %d to %d",
i_pos, i_newpos);
}
- else if( !strcmp( s, "playlist_sort" ) )
- {
- int i_order = E_(SSPopN)( st, vars );
- int i_sort = E_(SSPopN)( st, vars );
- i_order = i_order % 2;
- i_sort = i_sort % 9;
- playlist_RecursiveNodeSort ( p_sys->p_playlist,
- p_sys->p_playlist->p_general,
- i_sort, i_order );
- msg_Dbg( p_intf, "requested sort playlist by : %d in order : %d", i_sort, i_order );
- }
+ else if( !strcmp( s, "playlist_sort" ) )
+ {
+ int i_order = E_(SSPopN)( st, vars );
+ int i_sort = E_(SSPopN)( st, vars );
+ i_order = i_order % 2;
+ i_sort = i_sort % 9;
+ playlist_RecursiveNodeSort( p_sys->p_playlist,
+ p_sys->p_playlist->p_general,
+ i_sort, i_order );
+ msg_Dbg( p_intf, "requested sort playlist by : %d in order : %d",
+ i_sort, i_order );
+ }
+ else if( !strcmp( s, "services_discovery_add" ) )
+ {
+ char *psz_sd = E_(SSPop)( st );
+ playlist_ServicesDiscoveryAdd( p_sys->p_playlist, psz_sd );
+ free( psz_sd );
+ }
+ else if( !strcmp( s, "services_discovery_remove" ) )
+ {
+ char *psz_sd = E_(SSPop)( st );
+ playlist_ServicesDiscoveryRemove( p_sys->p_playlist, psz_sd );
+ free( psz_sd );
+ }
+ else if( !strcmp( s, "services_discovery_is_loaded" ) )
+ {
+ char *psz_sd = E_(SSPop)( st );
+ E_(SSPushN)( st,
+ playlist_IsServicesDiscoveryLoaded( p_sys->p_playlist, psz_sd ) );
+ free( psz_sd );
+ }
else if( !strcmp( s, "vlc_volume_set" ) )
{
char *psz_vol = E_(SSPop)( st );
aout_VolumeSet( p_intf, i_value );
}
aout_VolumeGet( p_intf, &i_volume );
+ free( psz_vol );
}
else if( !strcmp( s, "vlm_command" ) || !strcmp( s, "vlm_cmd" ) )
{