]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/vars/playtree.hpp
skins2: add support for tracking current playing item correctly
[vlc] / modules / gui / skins2 / vars / playtree.hpp
index b7a942deca27ba30e1422e44fccad6d472668cee..0c1a2ad742e0d929875a0203e1c4210974e7e6b6 100644 (file)
@@ -1,10 +1,11 @@
 /*****************************************************************************
  * playtree.hpp
  *****************************************************************************
- * Copyright (C) 2005 VideoLAN
- * $Id: playlist.hpp 8659 2004-09-07 21:16:49Z gbazin $
+ * Copyright (C) 2005 the VideoLAN team
+ * $Id$
  *
  * Authors: Antoine Cellerier <dionoea@videolan.org>
+ *          ClĂ©ment Stenac <zorglub@videolan.org>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -16,9 +17,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 #ifndef PLAYTREE_HPP
 /// Variable for VLC playlist (new tree format)
 class Playtree: public VarTree
 {
-    public:
-        Playtree( intf_thread_t *pIntf );
-        virtual ~Playtree();
+public:
+    Playtree( intf_thread_t *pIntf );
+    virtual ~Playtree();
 
-        /// Remove the selected elements from the list
-        virtual void delSelected();
+    /// Remove the selected elements from the list
+    virtual void delSelected();
 
-        /// Execute the action associated to this item
-        virtual void action( VarTree *pItem );
+    /// Execute the action associated to this item
+    virtual void action( VarTree *pItem );
 
-        /// Function called to notify playlist changes
-        void onChange();
+    /// Function called to notify playlist changes
+    void onChange();
 
-        /// Function called to notify playlist item update
-        void onUpdate( int id );
+    /// Function called to notify playlist item update
+    void onUpdateItem( int id );
 
-    private:
-        /// VLC playlist object
-        playlist_t *m_pPlaylist;
-        /// Iconv handle
-        vlc_iconv_t iconvHandle;
+    /// Function called to notify about current playing item
+    void onUpdateCurrent( );
 
-        /// Build the list from the VLC playlist
-        void buildTree();
+    /// Function called to notify playlist item append
+    void onAppend( playlist_add_t * );
 
-        /// Update Node's children
-        void buildNode( playlist_item_t *p_node, VarTree &m_pNode );
+    /// Function called to notify playlist item delete
+    void onDelete( int );
+
+    /// Items waiting to be appended
+    int i_items_to_append;
+
+private:
+    /// VLC playlist object
+    playlist_t *m_pPlaylist;
+
+    /// Build the list from the VLC playlist
+    void buildTree();
+
+    /// Update Node's children
+    void buildNode( playlist_item_t *p_node, VarTree &m_pNode );
+
+    /// keep track of item being played
+    Iterator m_playingIt;
 };
 
 #endif