{ { VLC_OBJECT_LIBVLC, "libvlc" },
{ VLC_OBJECT_MODULE, "module" },
{ VLC_OBJECT_INTF, "intf" },
- { VLC_OBJECT_PLAYLIST, "playlist" },
{ VLC_OBJECT_INPUT, "input" },
{ VLC_OBJECT_DECODER, "decoder" },
{ VLC_OBJECT_VOUT, "vout" },
/* FIXME: We need to avoid that dependency on the playlist
* because it is a circular dependency:
* ( playlist -> input -> playlist ) */
- playlist_t *p_playlist = vlc_object_find( p_input,
- VLC_OBJECT_PLAYLIST, FIND_PARENT );
- if( !p_playlist )
- return;
- var_SetInteger( p_playlist, "item-change",
- p_input->p->input.p_item->i_id );
- vlc_object_release( p_playlist );
+ playlist_t *p_playlist = pl_Yield( p_input );
+ if( VLC_OBJECT(p_playlist) == p_input->p_parent )
+ var_SetInteger( p_playlist, "item-change",
+ p_input->p->input.p_item->i_id );
+ pl_Release( p_input );
}
static void UpdateBookmarksOption( input_thread_t *p_input )
}
{
/* FIXME: we don't want to depend on the playlist */
- playlist_t * p_playlist = vlc_object_find( p_sys->p_input,
- VLC_OBJECT_PLAYLIST, FIND_PARENT );
- if( p_playlist )
+ playlist_t * p_playlist = pl_Yield( p_sys->p_input );
+ if( VLC_OBJECT(p_playlist) == p_sys->p_input )
{
PL_LOCK;
p_playlist->gc_date = mdate();
vlc_object_signal_unlocked( p_playlist );
PL_UNLOCK;
- vlc_object_release( p_playlist );
}
+ pl_Release( p_sys->p_input );
}
return VLC_SUCCESS;
/* Allocate structure */
p_playlist = vlc_custom_create( p_parent, sizeof( *p_playlist ),
- VLC_OBJECT_PLAYLIST, playlist_name );
+ VLC_OBJECT_GENERIC, playlist_name );
if( !p_playlist )
{
msg_Err( p_parent, "out of memory" );