summaryrefslogtreecommitdiff
path: root/menuplaylist.h
blob: 697c18bbd21878a81bf6b1503943a10ba648cd45 (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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
 * playlist: A plugin for the Video Disk Recorder
 *
 * See the README file for copyright information and how to reach the author.
 *
 * $Id: menuplaylist.h 0.1 2004/09/23 23:42:32 hflor Exp $
 */

#ifndef __MENUPLAYLIST_H
#define __MENUPLAYLIST_H

#include "dataplaylist.h"
#include <vdr/menu.h>
#include <vdr/menuitems.h>

// --- cMenuRecordingSelectItem --------------------------------------------------------

class cMenuRecordingSelectItem : public cOsdItem {
private:
  char *filename;
  char *name;
  time_t start;
  bool isdir;
  bool ismark;
  int totalEntries;
  int newEntries;
public:
  cMenuRecordingSelectItem(cRecording *Recording, int Level);
  ~cMenuRecordingSelectItem();
  virtual bool operator< (const cListObject &ListObject);
  void IncrementCounter(bool New);
  const char *FileName(void) { return filename; }
  const char *Name(void) { return name; }
  bool IsDirectory(void) { return isdir; }
  bool IsMark(void) { return ismark; }
  void SetMark(bool Mark) { ismark = Mark; }
  };

// --- cMenuRecordingSelect --------------------------------------------------------

class cMenuRecordingSelect : public cOsdMenu {
private:
  char *base;
  int level;
  bool singleselect;
  void SetHelpKeys(void);
  cRecording *GetRecording(cMenuRecordingSelectItem *Item);
  eOSState Open(bool OpenSubMenus = false);
  eOSState AddPlaylist(void);
  eOSState MarkSel(void);
  eOSState Delete(void);
  eOSState Summary(void);
public:
  cMenuRecordingSelect(const char *Base = NULL, int Level = 0, bool OpenSubMenus = false, bool SingleSelect = false);
  ~cMenuRecordingSelect();
  virtual eOSState ProcessKey(eKeys Key);
  };

// --- cMenuRecordingEdit --------------------------------------------------------

class cMenuRecordingEdit : public cOsdMenu {
private:
  cPlaylistRecord *playlistrecord;
  cPlaylistRecord data;
  bool confirmoptions;
  eOptions displayoption[MAXOptionLines];
#if VDRVERSNUM >= 10307
  int editwidth;
#else
  int firstline;
#endif
  void SetHelpKeys(void);
  eOSState Summary(void);
public:
  cMenuRecordingEdit(cPlaylistRecord *PlaylistRecord, bool ConfirmOptions = false);
  virtual ~cMenuRecordingEdit();
  virtual void Set(void);
  virtual eOSState ProcessKey(eKeys Key);
  };

// --- cMenuPlaylistItem --------------------------------------------------------

class cMenuPlaylistItem : public cOsdItem {
private:
  cPlaylistRecord *playlistrecord;
public:
  cMenuPlaylistItem(cPlaylistRecord *PlaylistRecord);
  virtual ~cMenuPlaylistItem();
  virtual void Set(void);
  cPlaylistRecord *PlaylistRecord(void) { return playlistrecord; }
  };

// --- cMenuPlaylist -----------------------------------------------------------

class cMenuPlaylist : public cOsdMenu {
private:
  cPlaylist *playlist;
  bool addrecords;
  void SetHelpKeys(void);
  bool AddPlaylistentrys(void);
  eOSState Edit(void);
  eOSState Play(void);
  eOSState New(void);
  eOSState Delete(void);
  cPlaylistRecord *CurrentPlaylistRecord(void);
public:
  cMenuPlaylist(cPlaylist *Playlist);
  virtual ~cMenuPlaylist();
  virtual void Move(int From, int To);
  virtual eOSState ProcessKey(eKeys Key);
  };

#endif //__MENUPLAYLIST_H