summaryrefslogtreecommitdiff
path: root/muggle-plugin/vdr_menu.h
blob: 480c6879ad380612575c299527aa1ae0465763b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*******************************************************************/
/*! \file   vdr_menu.h
 *  \brief  Implements menu handling for broswing media libraries within VDR
 ******************************************************************** 
 * \version $Revision: 1.1 $
 * \date    $Date: 2004/02/01 18:22:53 $
 * \author  Ralf Klueber, Lars von Wedel, Andreas Kellner
 * \author  file owner: $Author: LarsAC $
 */
/*******************************************************************/

#ifndef _VDR_MENU_H
#define _VDR_MENU_H

#include <vdr/osd.h>

class mgMedia;
class mgSelectionTreeNode;
class mgPlaylist;
class mgTracklist;

class mgMenuTreeItem : public cOsdItem
{
 public:

  mgMenuTreeItem( mgSelectionTreeNode *node );

  mgSelectionTreeNode *Node();

  void Set();
  
 private: 

  mgSelectionTreeNode *m_node;

};

class mgMainMenu : public cOsdMenu
{
 public:
  
  mgMainMenu();

  mgSelectionTreeNode *CurrentNode();
  
  eOSState ProcessKey(eKeys Key);
  void Move( int from, int to);

 protected:

  enum MuggleStatus
    { 
      TREE, FILTER, TRACKS,
      PLAYLIST, PLAYLIST_TRACKINFO, PLAYLIST_ALBUMINFO, 
    };

  // To be rewritten mode dependent 
  void SetButtons();

  void DisplayTree( mgSelectionTreeNode *node );
  void DisplayTreeViewSelector();

  void DisplayFilter();
  void DisplayFilterSelector();

  void DisplayPlaylist();
  void DisplayTracklist();
  void DisplayTrackInfo();
  void DisplayAlbumInfo();  

 private:

  // content stuff
  mgMedia *m_media;
  mgSelectionTreeNode *m_root;
  mgSelectionTreeNode *m_node;
  mgPlaylist          *m_current_playlist;
  mgTracklist         *m_tracklist;

  // filter items
  char *m_title, *m_interpret, *m_album, *m_playlist, *m_filtername;
  int   m_year_min, m_year_max, m_filter;

  MuggleStatus m_state;
};

#endif