dbus_int32_t i_pos;
playlist_t *p_playlist = pl_Hold( ((vlc_object_t*) p_this) );
- PL_LOCK;
input_thread_t *p_input = playlist_CurrentInput( p_playlist );
if( !p_input )
{
var_Get( p_input, "time", &position );
i_pos = position.i_time / 1000;
+ vlc_object_release( p_input );
}
- PL_UNLOCK;
pl_Release( ((vlc_object_t*) p_this) );
ADD_INT32( &i_pos );
REPLY_SEND;
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
p_playlist = pl_Hold( ((vlc_object_t*) p_this) );
- PL_LOCK;
input_thread_t *p_input = playlist_CurrentInput( p_playlist );
if( p_input )
{
position.i_time = i_pos * 1000;
var_Set( p_input, "time", position );
+ vlc_object_release( p_input );
}
- PL_UNLOCK;
pl_Release( ((vlc_object_t*) p_this) );
REPLY_SEND;
}
REPLY_INIT;
playlist_t *p_playlist = pl_Hold( (vlc_object_t*) p_this );
- PL_LOCK;
input_thread_t *p_input = playlist_CurrentInput( p_playlist );
- if( p_input )
- vlc_object_hold( p_input );
- PL_UNLOCK;
if( p_input )
{
playlist_t *p_playlist = pl_Hold( p_intf );;
input_thread_t *p_input;
- PL_LOCK;
var_DelCallback( p_playlist, "playlist-current", TrackChange, p_intf );
var_DelCallback( p_playlist, "intf-change", TrackListChangeEmit, p_intf );
var_DelCallback( p_playlist, "item-append", TrackListChangeEmit, p_intf );
p_input = playlist_CurrentInput( p_playlist );
if ( p_input )
{
- vlc_object_hold( p_input );
var_DelCallback( p_input, "state", StateChange, p_intf );
vlc_object_release( p_input );
}
- PL_UNLOCK;
pl_Release( p_intf );
dbus_connection_unref( p_intf->p_sys->p_conn );
p_playlist = pl_Hold( p_intf );
p_input = playlist_CurrentInput( p_playlist );
-
if( !p_input )
{
- PL_UNLOCK;
pl_Release( p_intf );
return VLC_SUCCESS;
}
- vlc_object_hold( p_input );
pl_Release( p_intf );
p_item = input_GetItem( p_input );
if( p_playlist->current.i_size > 0 )
i_caps |= CAPS_CAN_PLAY | CAPS_CAN_GO_PREV | CAPS_CAN_GO_NEXT;
-
+ if( !b_playlist_locked ) PL_UNLOCK;
+
input_thread_t* p_input = playlist_CurrentInput( p_playlist );
if( p_input )
{
i_caps |= CAPS_CAN_PAUSE;
if( var_GetBool( p_input, "seekable" ) )
i_caps |= CAPS_CAN_SEEK;
+ vlc_object_release( p_input );
}
- if( !b_playlist_locked ) PL_UNLOCK;
pl_Release( p_intf );
if( p_sys->b_meta_read )
input_thread_t* p_input = NULL;
p_playlist = pl_Hold( p_intf );
- if( lock )
- PL_LOCK;
i_state = 2;
i_state = 1;
else if( val.i_int <= PLAYING_S )
i_state = 0;
+ vlc_object_release( p_input );
}
i_random = var_CreateGetBool( p_playlist, "random" );
i_loop = var_CreateGetBool( p_playlist, "loop" );
- if( lock )
- PL_UNLOCK;
pl_Release( p_intf );
dbus_message_iter_open_container( args, DBUS_TYPE_STRUCT, NULL, &status );
{
getIntf()->p_sys->p_input =
playlist_CurrentInput( getIntf()->p_sys->p_playlist );
- if( getIntf()->p_sys->p_input )
- vlc_object_hold( getIntf()->p_sys->p_input );
}
else if( getIntf()->p_sys->p_input->b_dead )
{
void VlcProc::updateStreamName( playlist_t *p_playlist )
{
- if( p_playlist && playlist_CurrentInput( p_playlist ))
+ if( p_playlist )
{
+ input_thread_t * p_input = playlist_CurrentInput( p_playlist )
// Get playlist item information
- input_item_t *pItem = input_GetItem(playlist_CurrentInput( p_playlist));
+ input_item_t *pItem = input_GetItem( p_input );
VarText &rStreamName = getStreamNameVar();
VarText &rStreamURI = getStreamURIVar();
AsyncQueue *pQueue = AsyncQueue::instance( getIntf() );
pQueue->push( CmdGenericPtr( pCmd1 ), false );
pQueue->push( CmdGenericPtr( pCmd2 ), false );
+ vlc_object_release( p_input );
}
}
playlist_t *p_playlist = pl_Hold( p_this );
input_thread_t *p_input = NULL;
- PL_LOCK;
var_DelCallback( p_playlist, "item-change", ItemChange, p_intf );
var_DelCallback( p_playlist, "playlist-current", ItemChange, p_intf );
if( (p_input = playlist_CurrentInput( p_playlist )) )
+ {
var_DelCallback( p_input, "state", StateChange, p_intf );
- PL_UNLOCK;
+ vlc_object_release( p_input );
+ }
pl_Release( p_this );
/* Clears the Presence message ... else it looks like we're still playing
p_input = playlist_CurrentInput( p_playlist );
if( !p_input ) return VLC_SUCCESS;
- vlc_object_hold( p_input );
if( p_input->b_dead || !input_GetItem(p_input)->psz_name )
{
if(p_input)
{
var_AddCallback( p_input, "state", StateCallback, p_filter );
+ vlc_object_release( p_input );
}
- vlc_object_release( p_playlist );
+ pl_Release( p_filter );
}
/*****************************************************************************
if(p_input)
{
var_DelCallback( p_input, "state", StateCallback, p_filter );
+ vlc_object_release( p_input );
}
- vlc_object_release( p_playlist );
+ pl_Release( p_filter );
}