vdr/menu.h
Klaus Schmidinger efea0f64d0 Version 0.91
- Fixed displaying colored button texts that are too long.
- Suppressing replay progress display when replaying a DVD.
- Updated channels.conf.cable (thanks to Uwe Scheffler).
- Updated French OSD texts (thanks to Jean-Claude Repetto).
- Improved AC3 decoding when replaying DVDs (thanks to Matjaz Thaler).
- Fixed handling DVB card indexes when using only one card in a multi-card
  system.
- Changed the 'Eject DVD' button text to a simple 'Eject' (the German text
  was too long...).
- Made the font file generation more stable (thanks to Artur Skawina).
- Changed the default value for the "DiSEqC" setup parameter to "off".
- The new command line option '-E' can be used to define where the EPG data
  shall be written to. This is especially useful if VDR runs in a system
  that turns off the video disk when it is not used, and therefore needs
  to write the EPG file to a ramdisk (or turn off writing it alltogether).
  See 'vdr --help' for details.
- Making sure the disk is up and running before starting recording (this
  is important for systems that turn off the video disk when it is not used).
- Added the "Jump" function in replay mode (thanks to Stefan Huelswitt).
  See the description of the "Red" key in MANUAL under "Replay Control" for
  details.
- Fixed displaying editing marks when toggling a mark in "pause" mode.
- If there is no free DVB device to record, the log message will now be given
  only once.
- Made I/O more robust by handling EINTR (thanks to Werner Fink).
2001-08-12 18:00:00 +02:00

138 lines
3.3 KiB
C++

/*
* menu.h: The actual menu implementations
*
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.h 1.23 2001/08/11 14:08:50 kls Exp $
*/
#ifndef _MENU_H
#define _MENU_H
#define _GNU_SOURCE
#include "dvbapi.h"
#ifdef DVDSUPPORT
#include "dvd.h"
#endif //DVDSUPPORT
#include "osd.h"
#include "recording.h"
class cMenuMain : public cOsdMenu {
private:
time_t lastActivity;
int digit;
const char *hk(const char *s);
public:
cMenuMain(bool Replaying);
virtual eOSState ProcessKey(eKeys Key);
};
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);
};
#ifdef DVDSUPPORT
class cMenuDVD : public cOsdMenu {
private:
cDVD *dvd;//XXX member really necessary???
eOSState Play(void);
eOSState Eject(void);
public:
cMenuDVD(void);
virtual eOSState ProcessKey(eKeys Key);
};
#endif //DVDSUPPORT
class cMenuRecordings : public cOsdMenu {
private:
cRecordings Recordings;
eOSState Play(void);
eOSState Rewind(void);
eOSState Del(void);
eOSState Summary(void);
public:
cMenuRecordings(void);
virtual eOSState ProcessKey(eKeys Key);
};
class cRecordControl {
private:
cDvbApi *dvbApi;
cTimer *timer;
char *instantId;
public:
cRecordControl(cDvbApi *DvbApi, cTimer *Timer = NULL);
virtual ~cRecordControl();
bool Process(void);
bool Uses(cDvbApi *DvbApi) { return DvbApi == dvbApi; }
void Stop(bool KeepInstant = false);
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);
static const char *GetInstantId(const char *LastInstantId);
static void Process(void);
static bool Active(void);
};
class cReplayControl : public cOsdBase {
private:
cDvbApi *dvbApi;
cMarks marks;
bool visible, shown, displayFrames;
int lastCurrent, lastTotal;
time_t timeoutShow;
bool timeSearchActive, timeSearchHide;
int timeSearchHH, timeSearchMM, timeSearchPos;
void TimeSearchDisplay(void);
void TimeSearchProcess(eKeys Key);
void TimeSearch(void);
void Show(int Seconds = 0);
void Hide(void);
static char *fileName;
#ifdef DVDSUPPORT
static cDVD *dvd;//XXX member really necessary???
static int titleid;//XXX
#endif //DVDSUPPORT
static char *title;
bool ShowProgress(bool Initial);
void MarkToggle(void);
void MarkJump(bool Forward);
void MarkMove(bool Forward);
void EditCut(void);
void EditTest(void);
public:
cReplayControl(void);
virtual ~cReplayControl();
virtual eOSState ProcessKey(eKeys Key);
bool Visible(void) { return visible; }
static void SetRecording(const char *FileName, const char *Title);
#ifdef DVDSUPPORT
static void SetDVD(cDVD *DVD, int Title);//XXX
#endif //DVDSUPPORT
static const char *LastReplayed(void);
static void ClearLastReplayed(const char *FileName);
};
#endif //_MENU_H