]> git.sesse.net Git - vlc/blobdiff - modules/gui/ncurses.c
playlist: Move more members as private.
[vlc] / modules / gui / ncurses.c
index d93d0a7deefd672fa244674277b3f6b5129f4517..e5415a4a77c80c1981a26ec31a75c87da75a9d6d 100644 (file)
@@ -385,11 +385,12 @@ static void Close( vlc_object_t *p_this )
 static void Run( intf_thread_t *p_intf )
 {
     intf_sys_t    *p_sys = p_intf->p_sys;
-    playlist_t    *p_playlist = pl_Yield( p_intf );
+    playlist_t    *p_playlist = pl_Hold( p_intf );
     p_sys->p_playlist = p_playlist;
 
     int i_key;
     time_t t_last_refresh;
+    int canc = vlc_savecancel();
 
     /*
      * force drawing the interface for the first time
@@ -403,7 +404,7 @@ static void Run( intf_thread_t *p_intf )
     var_AddCallback( p_playlist, "item-append", PlaylistChanged, p_intf );
     var_AddCallback( p_playlist, "item-change", PlaylistChanged, p_intf );
 
-    while( !intf_ShouldDie( p_intf ) )
+    while( vlc_object_alive( p_intf ) )
     {
         msleep( INTF_IDLE_SLEEP );
 
@@ -411,14 +412,7 @@ static void Run( intf_thread_t *p_intf )
         PL_LOCK;
         if( p_sys->p_input == NULL )
         {
-            p_sys->p_input = p_playlist->p_input;
-            if( p_sys->p_input )
-            {
-                if( !p_sys->p_input->b_dead )
-                {
-                    vlc_object_yield( p_sys->p_input );
-                }
-            }
+            p_sys->p_input = playlist_CurrentInput( p_playlist );
         }
         else if( p_sys->p_input->b_dead )
         {
@@ -429,7 +423,7 @@ static void Run( intf_thread_t *p_intf )
         }
         PL_UNLOCK;
 
-        if( p_sys->b_box_plidx_follow && p_playlist->status.p_item )
+        if( p_sys->b_box_plidx_follow && playlist_CurrentPlayingItem(p_playlist) )
         {
             FindIndex( p_intf );
         }
@@ -464,6 +458,7 @@ static void Run( intf_thread_t *p_intf )
     var_DelCallback( p_playlist, "intf-change", PlaylistChanged, p_intf );
     var_DelCallback( p_playlist, "item-append", PlaylistChanged, p_intf );
     var_DelCallback( p_playlist, "item-change", PlaylistChanged, p_intf );
+    vlc_restorecancel( canc );
 }
 
 /* following functions are local */
@@ -585,7 +580,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
     return 0; \
     } while(0)
 
-    playlist_t *p_playlist = pl_Yield( p_intf );
+    playlist_t *p_playlist = pl_Hold( p_intf );
 
     if( p_sys->i_box_type == BOX_PLAYLIST )
     {
@@ -792,7 +787,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
 
                     playlist_item_t *p_parent = p_sys->p_node;
                     if( !p_parent )
-                    p_parent = p_playlist->status.p_node;
+                    p_parent = playlist_CurrentPlayingItem(p_playlist) ? playlist_CurrentPlayingItem(p_playlist)->p_parent : NULL;
                     if( !p_parent )
                         p_parent = p_playlist->p_local_onelevel;
 
@@ -994,7 +989,7 @@ static int HandleKey( intf_thread_t *p_intf, int i_key )
                     playlist_item_t *p_parent = p_sys->p_node;
 
                     if( !p_parent )
-                    p_parent = p_playlist->status.p_node;
+                    p_parent = playlist_CurrentPlayingItem(p_playlist) ? playlist_CurrentPlayingItem(p_playlist)->p_parent : NULL;
                     if( !p_parent )
                         p_parent = p_playlist->p_local_onelevel;
 
@@ -1491,12 +1486,12 @@ static void MainBoxWrite( intf_thread_t *p_intf, int l, int x, const char *p_fmt
 static void DumpObject( intf_thread_t *p_intf, int *l, vlc_object_t *p_obj, int i_level )
 {
     if( p_obj->psz_object_name )
-        MainBoxWrite( p_intf, (*l)++, 1 + 2 * i_level, "%s \"%s\" (%d)",
+        MainBoxWrite( p_intf, (*l)++, 1 + 2 * i_level, "%s \"%s\" (%p)",
                 p_obj->psz_object_type, p_obj->psz_object_name,
-                p_obj->i_object_id );
+                p_obj );
     else
-        MainBoxWrite( p_intf, (*l)++, 1 + 2 * i_level, "%s (%d)",
-                p_obj->psz_object_type, p_obj->i_object_id );
+        MainBoxWrite( p_intf, (*l)++, 1 + 2 * i_level, "%s (%o)",
+                p_obj->psz_object_type, p_obj );
 
     vlc_list_t *list = vlc_list_children( p_obj );
     for( int i = 0; i < list->i_count ; i++ )
@@ -1512,7 +1507,7 @@ static void Redraw( intf_thread_t *p_intf, time_t *t_last_refresh )
 {
     intf_sys_t     *p_sys = p_intf->p_sys;
     input_thread_t *p_input = p_sys->p_input;
-    playlist_t     *p_playlist = pl_Yield( p_intf );
+    playlist_t     *p_playlist = pl_Hold( p_intf );
     int y = 0;
     int h;
     int y_end;
@@ -2185,7 +2180,7 @@ static void Redraw( intf_thread_t *p_intf, time_t *t_last_refresh )
             int c = ' ';
             if( ( p_node && p_item->p_input == p_node->p_input ) ||
                         ( !p_node && p_item->p_input ==
-                        p_playlist->status.p_node->p_input ) )
+                        playlist_CurrentPlayingItem(p_playlist)->p_input ) )
                 c = '*';
             else if( p_item == p_node || ( p_item != p_node &&
                         PlaylistIsPlaying( p_intf, p_item ) ) )
@@ -2253,7 +2248,7 @@ static void Redraw( intf_thread_t *p_intf, time_t *t_last_refresh )
 static playlist_item_t *PlaylistGetRoot( intf_thread_t *p_intf )
 {
     intf_sys_t *p_sys = p_intf->p_sys;
-    playlist_t *p_playlist = pl_Yield( p_intf );
+    playlist_t *p_playlist = pl_Hold( p_intf );
     playlist_item_t *p_item;
 
     switch( p_sys->i_current_view )
@@ -2271,7 +2266,7 @@ static playlist_item_t *PlaylistGetRoot( intf_thread_t *p_intf )
 static void PlaylistRebuild( intf_thread_t *p_intf )
 {
     intf_sys_t *p_sys = p_intf->p_sys;
-    playlist_t *p_playlist = pl_Yield( p_intf );
+    playlist_t *p_playlist = pl_Hold( p_intf );
 
     PL_LOCK;
 
@@ -2346,9 +2341,9 @@ static int PlaylistChanged( vlc_object_t *p_this, const char *psz_variable,
     VLC_UNUSED(p_this); VLC_UNUSED(psz_variable);
     VLC_UNUSED(oval); VLC_UNUSED(nval);
     intf_thread_t *p_intf = (intf_thread_t *)param;
-    playlist_t *p_playlist = pl_Yield( p_intf );
+    playlist_t *p_playlist = pl_Hold( p_intf );
     p_intf->p_sys->b_need_update = true;
-    p_intf->p_sys->p_node = p_playlist->status.p_node;
+    p_intf->p_sys->p_node = playlist_CurrentPlayingItem(p_playlist) ? playlist_CurrentPlayingItem(p_playlist)->p_parent : NULL;
     vlc_object_release( p_playlist );
     return VLC_SUCCESS;
 }
@@ -2357,8 +2352,8 @@ static int PlaylistChanged( vlc_object_t *p_this, const char *psz_variable,
 static inline bool PlaylistIsPlaying( intf_thread_t *p_intf,
                                             playlist_item_t *p_item )
 {
-    playlist_t *p_playlist = pl_Yield( p_intf );
-    playlist_item_t *p_played_item = p_playlist->status.p_item;
+    playlist_t *p_playlist = pl_Hold( p_intf );
+    playlist_item_t *p_played_item = playlist_CurrentPlayingItem(p_playlist);
     vlc_object_release( p_playlist );
     return( p_item != NULL && p_played_item != NULL &&
             p_item->p_input != NULL && p_played_item->p_input != NULL &&
@@ -2414,17 +2409,17 @@ static void Eject( intf_thread_t *p_intf )
      * If it's neither of these, then return
      */
 
-    playlist_t * p_playlist = pl_Yield( p_intf );
+    playlist_t * p_playlist = pl_Hold( p_intf );
     PL_LOCK;
 
-    if( p_playlist->status.p_item == NULL )
+    if( playlist_CurrentPlayingItem(p_playlist) == NULL )
     {
         PL_UNLOCK;
         vlc_object_release( p_playlist );
         return;
     }
 
-    psz_name = p_playlist->status.p_item->p_input->psz_name;
+    psz_name = playlist_CurrentPlayingItem(p_playlist)->p_input->psz_name;
 
     if( psz_name )
     {
@@ -2625,7 +2620,7 @@ static void ReadDir( intf_thread_t *p_intf )
 static void PlayPause( intf_thread_t *p_intf )
 {
     input_thread_t *p_input = p_intf->p_sys->p_input;
-    playlist_t *p_playlist = pl_Yield( p_intf );
+    playlist_t *p_playlist = pl_Hold( p_intf );
     vlc_value_t val;
 
     if( p_input )