#define MAX_LINE_LENGTH 256
#define STATUS_CHANGE "status change: "
-static const char *ppsz_input_state[] = { N_("Initializing"), N_("Opening"), N_("Buffer"), N_("Play"), N_("Pause"), N_("Stop"), N_("Error") };
+/* input_state_e from <vlc_input.h> */
+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
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 ) );
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 = p_playlist->status.i_status;
msg_rc( STATUS_CHANGE "( pause state: 4 )" );
}
- vlc_mutex_unlock( &p_playlist->object_lock );
+ vlc_object_unlock( p_playlist );
}
if( p_input && b_showpos )
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 ): %s",
- &cmd[0], newval.i_int,
- ppsz_input_state[ 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 );
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;
}
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 )
{
{
/* Standard input closed: exit */
vlc_value_t empty;
- Quit( p_intf, NULL, empty, empty, NULL );
+ Quit( VLC_OBJECT(p_intf), NULL, empty, empty, NULL );
}
p_buffer[ *pi_size ] = 0;