Commit d01611b8 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Make the playlist a generic object

parent 378b00a0
...@@ -110,7 +110,6 @@ static int vlc_object_type_from_string( const char *psz_name ) ...@@ -110,7 +110,6 @@ static int vlc_object_type_from_string( const char *psz_name )
{ { VLC_OBJECT_LIBVLC, "libvlc" }, { { VLC_OBJECT_LIBVLC, "libvlc" },
{ VLC_OBJECT_MODULE, "module" }, { VLC_OBJECT_MODULE, "module" },
{ VLC_OBJECT_INTF, "intf" }, { VLC_OBJECT_INTF, "intf" },
{ VLC_OBJECT_PLAYLIST, "playlist" },
{ VLC_OBJECT_INPUT, "input" }, { VLC_OBJECT_INPUT, "input" },
{ VLC_OBJECT_DECODER, "decoder" }, { VLC_OBJECT_DECODER, "decoder" },
{ VLC_OBJECT_VOUT, "vout" }, { VLC_OBJECT_VOUT, "vout" },
......
...@@ -615,13 +615,11 @@ static void NotifyPlaylist( input_thread_t *p_input ) ...@@ -615,13 +615,11 @@ static void NotifyPlaylist( input_thread_t *p_input )
/* FIXME: We need to avoid that dependency on the playlist /* FIXME: We need to avoid that dependency on the playlist
* because it is a circular dependency: * because it is a circular dependency:
* ( playlist -> input -> playlist ) */ * ( playlist -> input -> playlist ) */
playlist_t *p_playlist = vlc_object_find( p_input, playlist_t *p_playlist = pl_Yield( p_input );
VLC_OBJECT_PLAYLIST, FIND_PARENT ); if( VLC_OBJECT(p_playlist) == p_input->p_parent )
if( !p_playlist ) var_SetInteger( p_playlist, "item-change",
return; p_input->p->input.p_item->i_id );
var_SetInteger( p_playlist, "item-change", pl_Release( p_input );
p_input->p->input.p_item->i_id );
vlc_object_release( p_playlist );
} }
static void UpdateBookmarksOption( input_thread_t *p_input ) static void UpdateBookmarksOption( input_thread_t *p_input )
......
...@@ -1690,16 +1690,15 @@ static int EsOutControl( es_out_t *out, int i_query, va_list args ) ...@@ -1690,16 +1690,15 @@ static int EsOutControl( es_out_t *out, int i_query, va_list args )
} }
{ {
/* FIXME: we don't want to depend on the playlist */ /* FIXME: we don't want to depend on the playlist */
playlist_t * p_playlist = vlc_object_find( p_sys->p_input, playlist_t * p_playlist = pl_Yield( p_sys->p_input );
VLC_OBJECT_PLAYLIST, FIND_PARENT ); if( VLC_OBJECT(p_playlist) == p_sys->p_input )
if( p_playlist )
{ {
PL_LOCK; PL_LOCK;
p_playlist->gc_date = mdate(); p_playlist->gc_date = mdate();
vlc_object_signal_unlocked( p_playlist ); vlc_object_signal_unlocked( p_playlist );
PL_UNLOCK; PL_UNLOCK;
vlc_object_release( p_playlist );
} }
pl_Release( p_sys->p_input );
} }
return VLC_SUCCESS; return VLC_SUCCESS;
......
...@@ -66,7 +66,7 @@ playlist_t * playlist_Create( vlc_object_t *p_parent ) ...@@ -66,7 +66,7 @@ playlist_t * playlist_Create( vlc_object_t *p_parent )
/* Allocate structure */ /* Allocate structure */
p_playlist = vlc_custom_create( p_parent, sizeof( *p_playlist ), p_playlist = vlc_custom_create( p_parent, sizeof( *p_playlist ),
VLC_OBJECT_PLAYLIST, playlist_name ); VLC_OBJECT_GENERIC, playlist_name );
if( !p_playlist ) if( !p_playlist )
{ {
msg_Err( p_parent, "out of memory" ); msg_Err( p_parent, "out of memory" );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment