- if( !vlc_internals( p_object )->i_vars )
- printf( " `-o No variables\n" );
- for( i = 0; i < vlc_internals( p_object )->i_vars; i++ )
- {
- variable_t *p_var = vlc_internals( p_object )->p_vars + i;
-
- const char *psz_type = "unknown";
- switch( p_var->i_type & VLC_VAR_TYPE )
- {
-#define MYCASE( type, nice ) \
- case VLC_VAR_ ## type: \
- psz_type = nice; \
- break;
- MYCASE( VOID, "void" );
- MYCASE( BOOL, "bool" );
- MYCASE( INTEGER, "integer" );
- MYCASE( HOTKEY, "hotkey" );
- MYCASE( STRING, "string" );
- MYCASE( MODULE, "module" );
- MYCASE( FILE, "file" );
- MYCASE( DIRECTORY, "directory" );
- MYCASE( VARIABLE, "variable" );
- MYCASE( FLOAT, "float" );
- MYCASE( TIME, "time" );
- MYCASE( ADDRESS, "address" );
- MYCASE( MUTEX, "mutex" );
- MYCASE( LIST, "list" );
-#undef MYCASE
- }
- printf( " %c-o \"%s\" (%s",
- i + 1 == vlc_internals( p_object )->i_vars ? '`' : '|',
- p_var->psz_name, psz_type );
- if( p_var->psz_text )
- printf( ", %s", p_var->psz_text );
- printf( ")" );
- if( p_var->i_type & VLC_VAR_HASCHOICE )
- printf( ", has choices" );
- if( p_var->i_type & VLC_VAR_ISCOMMAND )
- printf( ", command" );
- if( p_var->i_entries )
- printf( ", %d callbacks", p_var->i_entries );
- switch( p_var->i_type & VLC_VAR_CLASS )
- {
- case VLC_VAR_VOID:
- case VLC_VAR_MUTEX:
- break;
- case VLC_VAR_BOOL:
- printf( ": %s", p_var->val.b_bool ? "true" : "false" );
- break;
- case VLC_VAR_INTEGER:
- printf( ": %d", p_var->val.i_int );
- break;
- case VLC_VAR_STRING:
- printf( ": \"%s\"", p_var->val.psz_string );
- break;
- case VLC_VAR_FLOAT:
- printf( ": %f", p_var->val.f_float );
- break;
- case VLC_VAR_TIME:
- printf( ": %"PRIi64, (int64_t)p_var->val.i_time );
- break;
- case VLC_VAR_ADDRESS:
- printf( ": %p", p_var->val.p_address );
- break;
- case VLC_VAR_LIST:
- printf( ": TODO" );
- break;
- }
- printf( "\n" );
- }
- }
- libvlc_unlock (p_this->p_libvlc);