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
|
#include <vdr/plugin.h>
#include <vdr/menu.h>
#include <vdr/skins.h>
#include <vdr/videodir.h>
#include "i18n.h"
static const char *VERSION = "0.3";
static const char *DESCRIPTION = "Extended recordings menu";
static const char *MAINMENUENTRY = "ExtRecMenu";
extern bool clearall; // needed for myMenuMoveRecording
// --- cPluginExtrecmenu ------------------------------------------------------
class cPluginExtrecmenu:public cPlugin
{
private:
public:
cPluginExtrecmenu(void);
virtual ~cPluginExtrecmenu();
virtual const char *Version(void){return VERSION;}
virtual const char *Description(void){return tr(DESCRIPTION);}
virtual const char *CommandLineHelp(void);
virtual bool ProcessArgs(int argc,char *argv[]);
virtual bool Initialize(void);
virtual bool Start(void);
virtual void Stop(void);
virtual void Housekeeping(void);
virtual const char *MainMenuEntry(void){return MAINMENUENTRY;}
virtual cOsdObject *MainMenuAction(void);
virtual cMenuSetupPage *SetupMenu(void);
virtual bool SetupParse(const char *Name,const char *Value);
virtual bool Service(const char *Id,void *Data = NULL);
virtual const char **SVDRPHelpPages(void);
virtual cString SVDRPCommand(const char *Command,const char *Option,int &ReplyCode);
};
// --- myMenuRecordingsItem ---------------------------------------------------
class myMenuRecordingsItem:public cOsdItem
{
private:
int level,isdirectory;
int totalentries,newentries;
char *title;
char *name;
const char *filename;
public:
myMenuRecordingsItem(cRecording *Recording,int Level);
~myMenuRecordingsItem();
const char *FileName(){return filename;}
const char *Name(){return name;}
bool IsDirectory(){return name!=NULL;}
void IncrementCounter(bool IsNew);
};
// --- myMenuRecordings -------------------------------------------------------
class myMenuRecordings:public cOsdMenu
{
private:
bool edit;
int level,helpkeys;
int recordingsstate;
char *base;
bool Open();
void SetHelpKeys();
cRecording *GetRecording(myMenuRecordingsItem *Item);
eOSState Play();
eOSState Rewind();
eOSState Delete();
eOSState Rename();
eOSState MoveRec();
eOSState Info();
public:
myMenuRecordings(const char *Base=NULL,int Level=0);
~myMenuRecordings();
void Set(bool Refresh=false);
virtual eOSState ProcessKey(eKeys Key);
};
// --- myMenuRenameRecording --------------------------------------------------
class myMenuRenameRecording:public cOsdMenu
{
private:
char name[MaxFileName];
char path[MaxFileName];
cRecording *recording;
myMenuRecordings *menurecordings;
public:
myMenuRenameRecording(cRecording *Recording,myMenuRecordings *MenuRecordings);
virtual eOSState ProcessKey(eKeys Key);
};
// --- myMenuMoveRecording ----------------------------------------------------
class myMenuMoveRecording:public cOsdMenu
{
private:
int level;
char *base;
cRecording *recording;
myMenuRecordings *menurecordings;
void Set();
eOSState Open();
eOSState MoveRec();
eOSState Create();
public:
myMenuMoveRecording(cRecording *Recording,myMenuRecordings *MenuRecordings,const char *Base=NULL,int Level=0);
myMenuMoveRecording::~myMenuMoveRecording();
virtual eOSState ProcessKey(eKeys Key);
};
|