]> git.sesse.net Git - vlc/commitdiff
Make the playlist a generic object
authorRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 14 Jun 2008 14:08:58 +0000 (17:08 +0300)
committerRémi Denis-Courmont <rdenis@simphalempin.com>
Sat, 14 Jun 2008 14:10:43 +0000 (17:10 +0300)
modules/misc/lua/objects.c
src/input/control.c
src/input/es_out.c
src/playlist/engine.c

index 98cc772951d9b5c94f50870584c4ebb1884d23c4..c492d5a8f30538c1b847b3ee788c3393d4058230 100644 (file)
@@ -110,7 +110,6 @@ static int vlc_object_type_from_string( const char *psz_name )
         { { 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" },
index 1cc08d5e228174d681321b83b50f59d730d6e68a..50e196fb53e89ba4df5bda3b5414c994ba32ef84 100644 (file)
@@ -615,13 +615,11 @@ static void NotifyPlaylist( input_thread_t *p_input )
     /* 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 )
index ef96547af308e051e58794cdbcfb656be7a1dfea..3afcc2da6c392bb4dae4177a89a2b42e5bd9912d 100644 (file)
@@ -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 */
-                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;
  
index 681448044ff78080c3850fdc7f86fa06b81af4fe..00df03d5c82a749b45fdc36acdab7bbdd129be76 100644 (file)
@@ -66,7 +66,7 @@ playlist_t * playlist_Create( vlc_object_t *p_parent )
 
     /* 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" );