vlc_object_release( pl );
}
+void playlist_Lock( playlist_t *pl )
+{
+ vlc_object_lock( pl );
+}
+
+void playlist_Unlock( playlist_t *pl )
+{
+ vlc_object_unlock( pl );
+}
+
+void playlist_AssertLocked( playlist_t *pl )
+{
+ vlc_object_assert_locked( pl );
+}
+
int playlist_Control( playlist_t * p_playlist, int i_query,
bool b_locked, ... )
{
msg_Err( p_playlist, "unknown playlist query" );
return VLC_EBADVAR;
}
- vlc_object_signal_unlocked( p_playlist );
+ vlc_cond_signal( &pl_priv(p_playlist)->signal );
return VLC_SUCCESS;
}
*****************************************************************************/
/** Enqueue an item for preparsing */
int playlist_PreparseEnqueue( playlist_t *p_playlist,
- input_item_t *p_item )
+ input_item_t *p_item, bool b_locked )
{
playlist_private_t *p_sys = pl_priv(p_playlist);
- playlist_preparser_Push( p_sys->p_preparser, p_item );
+ PL_LOCK_IF( !b_locked );
+ if( p_sys->p_preparser )
+ playlist_preparser_Push( p_sys->p_preparser, p_item );
+ PL_UNLOCK_IF( !b_locked );
return VLC_SUCCESS;
}
int playlist_AskForArtEnqueue( playlist_t *p_playlist,
- input_item_t *p_item )
+ input_item_t *p_item, bool b_locked )
{
playlist_private_t *p_sys = pl_priv(p_playlist);
- playlist_fetcher_Push( p_sys->p_fetcher, p_item );
+ PL_LOCK_IF( !b_locked );
+ if( p_sys->p_fetcher )
+ playlist_fetcher_Push( p_sys->p_fetcher, p_item );
+ PL_UNLOCK_IF( !b_locked );
return VLC_SUCCESS;
}