X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcontrol%2Frc.c;h=2caddd2ecdebb90439fef5c9e03ac8961afb9ccc;hb=688f0a8d8913f20ac5d3e27bf4f2bbe35c9f5de7;hp=44cdc7132a2742c36919a9c3153c9b701a01f984;hpb=e5007130ba708144e0913e79d1478f20c1dd73a5;p=vlc diff --git a/modules/control/rc.c b/modules/control/rc.c index 44cdc7132a..2caddd2ecd 100644 --- a/modules/control/rc.c +++ b/modules/control/rc.c @@ -29,7 +29,8 @@ # include "config.h" #endif -#include +#include +#include #include /* ENOMEM */ #include @@ -40,7 +41,6 @@ #include #include #include -#include #ifdef HAVE_UNISTD_H # include @@ -67,6 +67,20 @@ #define MAX_LINE_LENGTH 256 #define STATUS_CHANGE "status change: " +/* input_state_e from */ +static const char *ppsz_input_state[] = { + N_("Initializing"), + N_("Opening"), + N_("Buffer"), + N_("Play"), + N_("Pause"), + N_("Stop"), + N_("Forward"), + N_("Backward"), + N_("End"), + N_("Error"), +}; + /***************************************************************************** * Local prototypes *****************************************************************************/ @@ -74,10 +88,10 @@ static int Activate ( vlc_object_t * ); static void Deactivate ( vlc_object_t * ); static void Run ( intf_thread_t * ); -static void Help ( intf_thread_t *, vlc_bool_t ); +static void Help ( intf_thread_t *, bool ); static void RegisterCallbacks( intf_thread_t * ); -static vlc_bool_t ReadCommand( intf_thread_t *, char *, int * ); +static bool ReadCommand( intf_thread_t *, char *, int * ); static input_item_t *parse_MRL( intf_thread_t *, char * ); @@ -103,9 +117,6 @@ static int Statistics ( vlc_object_t *, char const *, vlc_value_t, vlc_value_t, void * ); static int updateStatistics( intf_thread_t *, input_item_t *); -#if 0 && defined( UPDATE_CHECK ) -static void checkUpdates( intf_thread_t *p_intf ); -#endif /* Status Callbacks */ static int TimeOffsetChanged( vlc_object_t *, char const *, @@ -129,7 +140,7 @@ struct intf_sys_t #ifdef WIN32 HANDLE hConsoleIn; - vlc_bool_t b_quiet; + bool b_quiet; #endif }; @@ -181,21 +192,21 @@ static void __msg_rc( intf_thread_t *p_intf, const char *psz_fmt, ... ) #endif vlc_module_begin(); - set_shortname( _("RC")); + set_shortname( N_("RC")); set_category( CAT_INTERFACE ); set_subcategory( SUBCAT_INTERFACE_MAIN ); - set_description( _("Remote control interface") ); - add_bool( "rc-show-pos", 0, NULL, POS_TEXT, POS_LONGTEXT, VLC_TRUE ); + set_description( N_("Remote control interface") ); + add_bool( "rc-show-pos", 0, NULL, POS_TEXT, POS_LONGTEXT, true ); #ifdef WIN32 - add_bool( "rc-quiet", 0, NULL, QUIET_TEXT, QUIET_LONGTEXT, VLC_FALSE ); + add_bool( "rc-quiet", 0, NULL, QUIET_TEXT, QUIET_LONGTEXT, false ); #else #if defined (HAVE_ISATTY) - add_bool( "rc-fake-tty", 0, NULL, TTY_TEXT, TTY_LONGTEXT, VLC_TRUE ); + add_bool( "rc-fake-tty", 0, NULL, TTY_TEXT, TTY_LONGTEXT, true ); #endif - add_string( "rc-unix", 0, NULL, UNIX_TEXT, UNIX_LONGTEXT, VLC_TRUE ); + add_string( "rc-unix", 0, NULL, UNIX_TEXT, UNIX_LONGTEXT, true ); #endif - add_string( "rc-host", 0, NULL, HOST_TEXT, HOST_LONGTEXT, VLC_TRUE ); + add_string( "rc-host", 0, NULL, HOST_TEXT, HOST_LONGTEXT, true ); set_capability( "interface", 20 ); @@ -313,15 +324,12 @@ static int Activate( vlc_object_t *p_this ) p_intf->p_sys = malloc( sizeof( intf_sys_t ) ); if( !p_intf->p_sys ) - { - msg_Err( p_intf, "no memory" ); return VLC_ENOMEM; - } p_intf->p_sys->pi_socket_listen = pi_socket; p_intf->p_sys->i_socket = -1; p_intf->p_sys->psz_unix_path = psz_unix_path; - vlc_mutex_init( p_intf, &p_intf->p_sys->status_lock ); + vlc_mutex_init( &p_intf->p_sys->status_lock ); p_intf->p_sys->i_last_state = PLAYLIST_STOPPED; /* Non-buffered stdout */ @@ -442,8 +450,8 @@ static void Run( intf_thread_t *p_intf ) playlist_t * p_playlist; char p_buffer[ MAX_LINE_LENGTH + 1 ]; - vlc_bool_t b_showpos = config_GetInt( p_intf, "rc-show-pos" ); - vlc_bool_t b_longhelp = VLC_FALSE; + bool b_showpos = config_GetInt( p_intf, "rc-show-pos" ); + bool b_longhelp = false; int i_size = 0; int i_oldpos = 0; @@ -473,7 +481,7 @@ static void Run( intf_thread_t *p_intf ) while( !intf_ShouldDie( p_intf ) ) { char *psz_cmd, *psz_arg; - vlc_bool_t b_complete; + bool b_complete; if( p_intf->p_sys->pi_socket_listen != NULL && p_intf->p_sys->i_socket == -1 ) @@ -500,14 +508,13 @@ static void Run( intf_thread_t *p_intf ) FIND_ANYWHERE ); if( p_input ) { - p_playlist = vlc_object_find( p_input, VLC_OBJECT_PLAYLIST, - FIND_PARENT ); + p_playlist = pl_Yield( p_input ); } } /* New input has been registered */ if( p_input ) { - if( !p_input->b_dead || !p_input->b_die ) + if( !p_input->b_dead || vlc_object_alive (p_input) ) { char *psz_uri = input_item_GetURI( input_GetItem( p_input ) ); @@ -537,38 +544,38 @@ static void Run( intf_thread_t *p_intf ) if( p_playlist ) { - vlc_mutex_lock( &p_playlist->object_lock ); + vlc_object_lock( p_playlist ); p_intf->p_sys->i_last_state = (int) PLAYLIST_STOPPED; msg_rc( STATUS_CHANGE "( stop state: 0 )" ); - vlc_mutex_unlock( &p_playlist->object_lock ); + vlc_object_unlock( p_playlist ); } } - if( (p_input != NULL) && !p_input->b_dead && !p_input->b_die && + if( (p_input != NULL) && !p_input->b_dead && vlc_object_alive (p_input) && (p_playlist != NULL) ) { - vlc_mutex_lock( &p_playlist->object_lock ); + vlc_object_lock( p_playlist ); if( (p_intf->p_sys->i_last_state != p_playlist->status.i_status) && (p_playlist->status.i_status == PLAYLIST_STOPPED) ) { p_intf->p_sys->i_last_state = PLAYLIST_STOPPED; - msg_rc( STATUS_CHANGE "( stop state: 0 )" ); + msg_rc( STATUS_CHANGE "( stop state: 5 )" ); } else if( (p_intf->p_sys->i_last_state != p_playlist->status.i_status) && (p_playlist->status.i_status == PLAYLIST_RUNNING) ) { p_intf->p_sys->i_last_state = p_playlist->status.i_status; - msg_rc( STATUS_CHANGE "( play state: 1 )" ); + msg_rc( STATUS_CHANGE "( play state: 3 )" ); } else if( (p_intf->p_sys->i_last_state != p_playlist->status.i_status) && (p_playlist->status.i_status == PLAYLIST_PAUSED) ) { p_intf->p_sys->i_last_state = p_playlist->status.i_status; - msg_rc( STATUS_CHANGE "( pause state: 2 )" ); + msg_rc( STATUS_CHANGE "( pause state: 4 )" ); } - vlc_mutex_unlock( &p_playlist->object_lock ); + vlc_object_unlock( p_playlist ); } if( p_input && b_showpos ) @@ -753,17 +760,11 @@ static void Run( intf_thread_t *p_intf ) || !strncmp( psz_cmd, "H", 1 ) || !strncmp( psz_cmd, "?", 1 ) ) { if( !strcmp( psz_cmd, "longhelp" ) || !strncmp( psz_cmd, "H", 1 ) ) - b_longhelp = VLC_TRUE; - else b_longhelp = VLC_FALSE; + b_longhelp = true; + else b_longhelp = false; Help( p_intf, b_longhelp ); } -#if 0 && defined( UPDATE_CHECK ) - else if( !strcmp( psz_cmd, "check-updates" ) ) - { - checkUpdates( p_intf ); - } -#endif else if( !strcmp( psz_cmd, "key" ) || !strcmp( psz_cmd, "hotkey" ) ) { var_SetInteger( p_intf->p_libvlc, "key-pressed", @@ -782,24 +783,24 @@ static void Run( intf_thread_t *p_intf ) if( p_vout ) { vlc_value_t val; - vlc_bool_t b_update = VLC_FALSE; + bool b_update = false; var_Get( p_vout, "fullscreen", &val ); val.b_bool = !val.b_bool; if( !strncmp( psz_arg, "on", 2 ) - && ( val.b_bool == VLC_TRUE ) ) + && ( val.b_bool == true ) ) { - b_update = VLC_TRUE; - val.b_bool = VLC_TRUE; + b_update = true; + val.b_bool = true; } else if( !strncmp( psz_arg, "off", 3 ) - && ( val.b_bool == VLC_FALSE ) ) + && ( val.b_bool == false ) ) { - b_update = VLC_TRUE; - val.b_bool = VLC_FALSE; + b_update = true; + val.b_bool = false; } else if( strncmp( psz_arg, "off", 3 ) && strncmp( psz_arg, "on", 2 ) ) - b_update = VLC_TRUE; + b_update = true; if( b_update ) var_Set( p_vout, "fullscreen", val ); vlc_object_release( p_vout ); } @@ -847,7 +848,7 @@ static void Run( intf_thread_t *p_intf ) var_DelCallback( p_intf->p_libvlc, "volume-change", VolumeChanged, p_intf ); } -static void Help( intf_thread_t *p_intf, vlc_bool_t b_longhelp) +static void Help( intf_thread_t *p_intf, bool b_longhelp) { msg_rc(_("+----[ Remote control commands ]")); msg_rc( "| "); @@ -933,11 +934,6 @@ static void Help( intf_thread_t *p_intf, vlc_bool_t b_longhelp) msg_rc(_("| @name mosaic-cols #. . . . . . . . . . .number of cols")); msg_rc(_("| @name mosaic-order id(,id)* . . . . order of pictures ")); msg_rc(_("| @name mosaic-keep-aspect-ratio {0,1} . . .aspect ratio")); -#if 0 && defined( UPDATE_CHECK ) - msg_rc( "| "); - msg_rc(_("| check-updates [newer] [equal] [older]\n" - "| [undef] [info] [source] [binary] [plugin]")); -#endif msg_rc( "| "); } msg_rc(_("| help . . . . . . . . . . . . . . . this help message")); @@ -996,27 +992,26 @@ static int StateChanged( vlc_object_t *p_this, char const *psz_cmd, p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE ); if( p_input ) { - p_playlist = vlc_object_find( p_input, VLC_OBJECT_PLAYLIST, FIND_PARENT ); - if( p_playlist ) + p_playlist = pl_Yield( p_input ); + char cmd[6]; + switch( p_playlist->status.i_status ) { - char cmd[6]; - switch( p_playlist->status.i_status ) - { - case PLAYLIST_STOPPED: - strcpy( cmd, "stop" ); - break; - case PLAYLIST_RUNNING: - strcpy( cmd, "play" ); - break; - case PLAYLIST_PAUSED: - strcpy( cmd, "pause" ); - break; - default: - cmd[0] = '\0'; - } /* var_GetInteger( p_input, "state" ) */ - msg_rc( STATUS_CHANGE "( %s state: %d )", &cmd[0], newval.i_int ); - vlc_object_release( p_playlist ); - } + case PLAYLIST_STOPPED: + strcpy( cmd, "stop" ); + break; + case PLAYLIST_RUNNING: + strcpy( cmd, "play" ); + break; + case PLAYLIST_PAUSED: + strcpy( cmd, "pause" ); + break; + default: + cmd[0] = '\0'; + } /* var_GetInteger( p_input, "state" ) */ + msg_rc( STATUS_CHANGE "( %s state: %d ): %s", + cmd, newval.i_int, + ppsz_input_state[ newval.i_int ] ); + vlc_object_release( p_playlist ); vlc_object_release( p_input ); } vlc_mutex_unlock( &p_intf->p_sys->status_lock ); @@ -1151,12 +1146,12 @@ static int Input( vlc_object_t *p_this, char const *psz_cmd, } else if( !strcmp( psz_cmd, "chapter_n" ) ) { - val.b_bool = VLC_TRUE; + val.b_bool = true; var_Set( p_input, "next-chapter", val ); } else if( !strcmp( psz_cmd, "chapter_p" ) ) { - val.b_bool = VLC_TRUE; + val.b_bool = true; var_Set( p_input, "prev-chapter", val ); } vlc_object_release( p_input ); @@ -1190,12 +1185,12 @@ static int Input( vlc_object_t *p_this, char const *psz_cmd, } else if( !strcmp( psz_cmd, "title_n" ) ) { - val.b_bool = VLC_TRUE; + val.b_bool = true; var_Set( p_input, "next-title", val ); } else if( !strcmp( psz_cmd, "title_p" ) ) { - val.b_bool = VLC_TRUE; + val.b_bool = true; var_Set( p_input, "prev-title", val ); } @@ -1283,6 +1278,25 @@ static int Input( vlc_object_t *p_this, char const *psz_cmd, return VLC_EGENERIC; } +static void print_playlist( intf_thread_t *p_intf, playlist_item_t *p_item, int i_level ) +{ + int i; + char psz_buffer[MSTRTIME_MAX_SIZE]; + for( i = 0; i< p_item->i_children; i++ ) + { + if( p_item->pp_children[i]->p_input->i_duration != -1 ) + { + secstotimestr( psz_buffer, p_item->pp_children[i]->p_input->i_duration / 1000000 ); + msg_rc( "|%*s- %s (%s)", 2 * i_level, "", p_item->pp_children[i]->p_input->psz_name, psz_buffer ); + } + else + msg_rc( "|%*s- %s", 2 * i_level, "", p_item->pp_children[i]->p_input->psz_name ); + + if( p_item->pp_children[i]->i_children >= 0 ) + print_playlist( p_intf, p_item->pp_children[i], i_level + 1 ); + } +} + static int Playlist( vlc_object_t *p_this, char const *psz_cmd, vlc_value_t oldval, vlc_value_t newval, void *p_data ) { @@ -1322,16 +1336,16 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, } else if( !strcmp( psz_cmd, "repeat" ) ) { - vlc_bool_t b_update = VLC_TRUE; + bool b_update = true; var_Get( p_playlist, "repeat", &val ); if( strlen( newval.psz_string ) > 0 ) { - if ( ( !strncmp( newval.psz_string, "on", 2 ) && ( val.b_bool == VLC_TRUE ) ) || - ( !strncmp( newval.psz_string, "off", 3 ) && ( val.b_bool == VLC_FALSE ) ) ) + if ( ( !strncmp( newval.psz_string, "on", 2 ) && ( val.b_bool == true ) ) || + ( !strncmp( newval.psz_string, "off", 3 ) && ( val.b_bool == false ) ) ) { - b_update = VLC_FALSE; + b_update = false; } } @@ -1344,16 +1358,16 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, } else if( !strcmp( psz_cmd, "loop" ) ) { - vlc_bool_t b_update = VLC_TRUE; + bool b_update = true; var_Get( p_playlist, "loop", &val ); if( strlen( newval.psz_string ) > 0 ) { - if ( ( !strncmp( newval.psz_string, "on", 2 ) && ( val.b_bool == VLC_TRUE ) ) || - ( !strncmp( newval.psz_string, "off", 3 ) && ( val.b_bool == VLC_FALSE ) ) ) + if ( ( !strncmp( newval.psz_string, "on", 2 ) && ( val.b_bool == true ) ) || + ( !strncmp( newval.psz_string, "off", 3 ) && ( val.b_bool == false ) ) ) { - b_update = VLC_FALSE; + b_update = false; } } @@ -1366,16 +1380,16 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, } else if( !strcmp( psz_cmd, "random" ) ) { - vlc_bool_t b_update = VLC_TRUE; + bool b_update = true; var_Get( p_playlist, "random", &val ); if( strlen( newval.psz_string ) > 0 ) { - if ( ( !strncmp( newval.psz_string, "on", 2 ) && ( val.b_bool == VLC_TRUE ) ) || - ( !strncmp( newval.psz_string, "off", 3 ) && ( val.b_bool == VLC_FALSE ) ) ) + if ( ( !strncmp( newval.psz_string, "on", 2 ) && ( val.b_bool == true ) ) || + ( !strncmp( newval.psz_string, "off", 3 ) && ( val.b_bool == false ) ) ) { - b_update = VLC_FALSE; + b_update = false; } } @@ -1400,7 +1414,7 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, p_item = p_parent = p_playlist->items.p_elems[i_pos*2-1]; while( p_parent->p_parent ) p_parent = p_parent->p_parent; - playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, VLC_TRUE, + playlist_Control( p_playlist, PLAYLIST_VIEWPLAY, pl_Unlocked, p_parent, p_item ); } else @@ -1413,7 +1427,7 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, else if( !strcmp( psz_cmd, "clear" ) ) { playlist_Stop( p_playlist ); - playlist_Clear( p_playlist, VLC_FALSE ); + playlist_Clear( p_playlist, pl_Unlocked ); } else if( !strcmp( psz_cmd, "add" ) && newval.psz_string && *newval.psz_string ) @@ -1423,9 +1437,11 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, if( p_item ) { msg_rc( "Trying to add %s to playlist.", newval.psz_string ); - if( playlist_AddInput( p_playlist, p_item, - PLAYLIST_GO|PLAYLIST_APPEND, PLAYLIST_END, VLC_TRUE, - VLC_FALSE ) != VLC_SUCCESS ) + int i_ret =playlist_AddInput( p_playlist, p_item, + PLAYLIST_GO|PLAYLIST_APPEND, PLAYLIST_END, true, + pl_Unlocked ); + vlc_gc_decref( p_item ); + if( i_ret != VLC_SUCCESS ) { return VLC_EGENERIC; } @@ -1440,8 +1456,8 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, { msg_rc( "trying to enqueue %s to playlist", newval.psz_string ); if( playlist_AddInput( p_playlist, p_item, - PLAYLIST_APPEND, PLAYLIST_END, VLC_TRUE, - VLC_FALSE ) != VLC_SUCCESS ) + PLAYLIST_APPEND, PLAYLIST_END, true, + pl_Unlocked ) != VLC_SUCCESS ) { return VLC_EGENERIC; } @@ -1449,11 +1465,11 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, } else if( !strcmp( psz_cmd, "playlist" ) ) { - msg_Dbg( p_playlist, "Dumping category" ); - playlist_NodeDump( p_playlist, p_playlist->p_root_category, 0 ); - msg_Dbg( p_playlist, "Dumping Onelevel" ); - playlist_NodeDump( p_playlist, p_playlist->p_root_onelevel, 0 ); + msg_rc( "+----[ Playlist ]" ); + print_playlist( p_intf, p_playlist->p_root_category, 0 ); + msg_rc( "+----[ End of playlist ]" ); } + else if( !strcmp( psz_cmd, "sort" )) { playlist_RecursiveNodeSort( p_playlist, p_playlist->p_root_onelevel, @@ -1475,16 +1491,16 @@ static int Playlist( vlc_object_t *p_this, char const *psz_cmd, switch( p_playlist->status.i_status ) { case PLAYLIST_STOPPED: - msg_rc( STATUS_CHANGE "( stop state: 0 )" ); + msg_rc( STATUS_CHANGE "( stop state: 5 )" ); break; case PLAYLIST_RUNNING: - msg_rc( STATUS_CHANGE "( play state: 1 )" ); + msg_rc( STATUS_CHANGE "( play state: 3 )" ); break; case PLAYLIST_PAUSED: - msg_rc( STATUS_CHANGE "( pause state: 2 )" ); + msg_rc( STATUS_CHANGE "( pause state: 4 )" ); break; default: - msg_rc( STATUS_CHANGE "( state unknown )" ); + msg_rc( STATUS_CHANGE "( unknown state: -1 )" ); break; } PL_UNLOCK; @@ -1510,12 +1526,10 @@ static int Quit( vlc_object_t *p_this, char const *psz_cmd, VLC_UNUSED(oldval); VLC_UNUSED(newval); playlist_t *p_playlist; - p_playlist = vlc_object_find( p_this, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist ) - { - playlist_Stop( p_playlist ); - vlc_object_release( p_playlist ); - } + p_playlist = pl_Yield( p_this ); + playlist_Stop( p_playlist ); + vlc_object_release( p_playlist ); + vlc_object_kill( p_this->p_libvlc ); return VLC_SUCCESS; } @@ -1526,13 +1540,13 @@ static int Intf( vlc_object_t *p_this, char const *psz_cmd, VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); VLC_UNUSED(p_data); intf_thread_t *p_newintf = NULL; - p_newintf = intf_Create( p_this->p_libvlc, newval.psz_string, 0, NULL ); + p_newintf = intf_Create( p_this->p_libvlc, newval.psz_string ); if( p_newintf ) { if( intf_RunThread( p_newintf ) ) { vlc_object_detach( p_newintf ); - intf_Destroy( p_newintf ); + vlc_object_release( p_newintf ); } } @@ -1711,7 +1725,9 @@ static int VideoConfig( vlc_object_t *p_this, char const *psz_cmd, } else if( !strcmp( psz_cmd, "snapshot" ) ) { - i_error = var_Set( p_vout, psz_variable, newval ); + vlc_value_t val; + val.b_bool = true; + i_error = var_Set( p_vout, psz_variable, val ); } else { @@ -1887,19 +1903,17 @@ static int Menu( vlc_object_t *p_this, char const *psz_cmd, VLC_UNUSED(psz_cmd); VLC_UNUSED(oldval); VLC_UNUSED(p_data); intf_thread_t *p_intf = (intf_thread_t*)p_this; playlist_t *p_playlist = NULL; + int i_error = VLC_SUCCESS; vlc_value_t val; - int i_error = VLC_EGENERIC; if ( !*newval.psz_string ) { msg_rc( _("Please provide one of the following parameters:") ); msg_rc( "[on|off|up|down|left|right|select]" ); - return i_error; + return VLC_EGENERIC; } - p_playlist = vlc_object_find( p_this, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( !p_playlist ) - return VLC_ENOOBJ; + p_playlist = pl_Yield( p_this ); if( p_playlist->p_input ) { @@ -1915,9 +1929,12 @@ static int Menu( vlc_object_t *p_this, char const *psz_cmd, vlc_object_release( p_playlist ); val.psz_string = strdup( newval.psz_string ); + if( !val.psz_string ) + return VLC_ENOMEM; if( !strcmp( val.psz_string, "on" ) || !strcmp( val.psz_string, "show" )) osd_MenuShow( p_this ); - else if( !strcmp( val.psz_string, "off" ) || !strcmp( val.psz_string, "hide" ) ) + else if( !strcmp( val.psz_string, "off" ) + || !strcmp( val.psz_string, "hide" ) ) osd_MenuHide( p_this ); else if( !strcmp( val.psz_string, "up" ) ) osd_MenuUp( p_this ); @@ -1933,11 +1950,9 @@ static int Menu( vlc_object_t *p_this, char const *psz_cmd, { msg_rc( _("Please provide one of the following parameters:") ); msg_rc( "[on|off|up|down|left|right|select]" ); - free( val.psz_string ); - return i_error; + i_error = VLC_EGENERIC; } - i_error = VLC_SUCCESS; free( val.psz_string ); return i_error; } @@ -2024,7 +2039,7 @@ static int updateStatistics( intf_thread_t *p_intf, input_item_t *p_item ) } #ifdef WIN32 -vlc_bool_t ReadWin32( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) +bool ReadWin32( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) { INPUT_RECORD input_record; DWORD i_dw; @@ -2081,15 +2096,15 @@ vlc_bool_t ReadWin32( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) p_buffer[ *pi_size ] == '\r' || p_buffer[ *pi_size ] == '\n' ) { p_buffer[ *pi_size ] = 0; - return VLC_TRUE; + return true; } } - return VLC_FALSE; + return false; } #endif -vlc_bool_t ReadCommand( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) +bool ReadCommand( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) { int i_read = 0; @@ -2099,14 +2114,14 @@ vlc_bool_t ReadCommand( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) else if( p_intf->p_sys->i_socket == -1 ) { msleep( INTF_IDLE_SLEEP ); - return VLC_FALSE; + return false; } #endif while( !intf_ShouldDie( p_intf ) && *pi_size < MAX_LINE_LENGTH && (i_read = net_Read( p_intf, p_intf->p_sys->i_socket == -1 ? 0 /*STDIN_FILENO*/ : p_intf->p_sys->i_socket, NULL, - (uint8_t *)p_buffer + *pi_size, 1, VLC_FALSE ) ) > 0 ) + (uint8_t *)p_buffer + *pi_size, 1, false ) ) > 0 ) { if( p_buffer[ *pi_size ] == '\r' || p_buffer[ *pi_size ] == '\n' ) break; @@ -2123,21 +2138,24 @@ vlc_bool_t ReadCommand( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) p_intf->p_sys->i_socket = -1; } else + { /* Standard input closed: exit */ - vlc_object_kill( p_intf ); + vlc_value_t empty; + Quit( VLC_OBJECT(p_intf), NULL, empty, empty, NULL ); + } p_buffer[ *pi_size ] = 0; - return VLC_TRUE; + return true; } if( *pi_size == MAX_LINE_LENGTH || p_buffer[ *pi_size ] == '\r' || p_buffer[ *pi_size ] == '\n' ) { p_buffer[ *pi_size ] = 0; - return VLC_TRUE; + return true; } - return VLC_FALSE; + return false; } /***************************************************************************** @@ -2149,7 +2167,7 @@ vlc_bool_t ReadCommand( intf_thread_t *p_intf, char *p_buffer, int *pi_size ) *****************************************************************************/ static input_item_t *parse_MRL( intf_thread_t *p_intf, char *psz_mrl ) { -#define SKIPSPACE( p ) { while( *p && ( *p == ' ' || *p == '\t' ) ) p++; } +#define SKIPSPACE( p ) { while( *p == ' ' || *p == '\t' ) p++; } #define SKIPTRAILINGSPACE( p, d ) \ { char *e=d; while( e > p && (*(e-1)==' ' || *(e-1)=='\t') ){e--;*e=0;} } @@ -2216,19 +2234,3 @@ static input_item_t *parse_MRL( intf_thread_t *p_intf, char *psz_mrl ) return p_item; } - -/***************************************************************************** - * checkUpdates : check for updates - ****************************************************************************/ -#if 0 && defined( UPDATE_CHECK ) -static void checkUpdates( intf_thread_t *p_intf ) -{ - /*TODO: - modify this to delete p_update to avoid a memory leak ! - - complete the function wich is not working obiously ! - update_t *p_u = update_New( p_intf ); - var_AddCallback( p_intf->p_libvlc, "update-notify", updatesCallback, p_intf ); - - msg_rc( "\nChecking for updates" ); - update_Check( p_u );*/ -} -#endif