vdr/menu.h

98 lines
2.3 KiB
C
Raw Normal View History

2000-02-19 13:36:48 +01:00
/*
* menu.h: The actual menu implementations
*
2000-04-24 09:46:05 +02:00
* See the main source file 'vdr.c' for copyright information and
2000-02-19 13:36:48 +01:00
* how to reach the author.
*
* $Id: menu.h 1.14 2000/11/12 12:33:00 kls Exp $
2000-02-19 13:36:48 +01:00
*/
#ifndef _MENU_H
#define _MENU_H
2000-05-01 16:29:46 +02:00
#define _GNU_SOURCE
#include "dvbapi.h"
2000-02-19 13:36:48 +01:00
#include "osd.h"
#include "recording.h"
2000-02-19 13:36:48 +01:00
class cMenuMain : public cOsdMenu {
2000-05-01 16:29:46 +02:00
private:
time_t lastActivity;
2000-02-19 13:36:48 +01:00
public:
2000-05-01 16:29:46 +02:00
cMenuMain(bool Replaying);
virtual eOSState ProcessKey(eKeys Key);
2000-02-19 13:36:48 +01:00
};
class cDisplayChannel : public cOsdBase {
private:
bool withInfo, group;
int lines;
int lastTime;
int oldNumber, number;
void DisplayChannel(const cChannel *Channel);
void DisplayInfo(void);
public:
cDisplayChannel(int Number, bool Switched, bool Group = false);
cDisplayChannel(eKeys FirstKey);
virtual ~cDisplayChannel();
virtual eOSState ProcessKey(eKeys Key);
};
class cMenuRecordings : public cOsdMenu {
private:
cRecordings Recordings;
eOSState Play(void);
eOSState Del(void);
eOSState Summary(void);
public:
cMenuRecordings(void);
virtual eOSState ProcessKey(eKeys Key);
};
2000-05-01 16:29:46 +02:00
class cRecordControl {
2000-04-30 10:22:13 +02:00
private:
2000-05-01 16:29:46 +02:00
cDvbApi *dvbApi;
2000-04-30 10:22:13 +02:00
cTimer *timer;
2000-05-01 16:29:46 +02:00
char *instantId;
2000-04-30 10:22:13 +02:00
public:
2000-05-01 16:29:46 +02:00
cRecordControl(cDvbApi *DvbApi, cTimer *Timer = NULL);
2000-04-30 10:22:13 +02:00
virtual ~cRecordControl();
2000-05-01 16:29:46 +02:00
bool Process(void);
bool Uses(cDvbApi *DvbApi) { return DvbApi == dvbApi; }
void Stop(bool KeepInstant = false);
2000-05-01 16:29:46 +02:00
bool IsInstant(void) { return instantId; }
const char *InstantId(void) { return instantId; }
};
class cRecordControls {
private:
static cRecordControl *RecordControls[MAXDVBAPI];
public:
static bool Start(cTimer *Timer = NULL);
static void Stop(const char *InstantId);
static void Stop(cDvbApi *DvbApi);
2000-05-01 16:29:46 +02:00
static const char *GetInstantId(const char *LastInstantId);
static void Process(void);
2000-04-30 10:22:13 +02:00
};
class cReplayControl : public cOsdBase {
2000-04-24 15:32:11 +02:00
private:
2000-05-01 16:29:46 +02:00
cDvbApi *dvbApi;
bool visible, shown;
void Show(void);
void Hide(void);
static char *fileName;
static char *title;
2000-04-23 15:38:16 +02:00
public:
cReplayControl(void);
virtual ~cReplayControl();
virtual eOSState ProcessKey(eKeys Key);
bool Visible(void) { return visible; }
static void SetRecording(const char *FileName, const char *Title);
static const char *LastReplayed(void);
static void ClearLastReplayed(const char *FileName);
2000-04-23 15:38:16 +02:00
};
2000-02-19 13:36:48 +01:00
#endif //_MENU_H