summaryrefslogtreecommitdiff
path: root/client/menu.h
diff options
context:
space:
mode:
Diffstat (limited to 'client/menu.h')
-rw-r--r--client/menu.h144
1 files changed, 144 insertions, 0 deletions
diff --git a/client/menu.h b/client/menu.h
new file mode 100644
index 0000000..17d91ae
--- /dev/null
+++ b/client/menu.h
@@ -0,0 +1,144 @@
+/*
+ * $Id: menu.h,v 1.1 2004/12/30 22:44:02 lordjaxom Exp $
+ */
+
+#ifndef VDR_STREAMDEV_MENU_H
+#define VDR_STREAMDEV_MENU_H
+
+#include <vdr/osd.h>
+
+#include "client/remote.h"
+
+class cStreamdevMenuRecordingItem;
+
+// --- cStreamdevMenu --------------------------------------------------------
+
+class cStreamdevMenu: public cOsdMenu {
+private:
+ enum eSubmenus {
+ sub_Start = os_User,
+ subSchedule,
+ subTimers,
+ subRecordings,
+ subSuspend,
+ subSyncEPG
+ };
+
+protected:
+ void SuspendServer(void);
+
+public:
+ cStreamdevMenu(void);
+ virtual ~cStreamdevMenu(void);
+
+ virtual eOSState ProcessKey(eKeys Key);
+};
+
+// --- cStreamdevMenuSchedule ------------------------------------------------
+
+class cStreamdevMenuSchedule: public cOsdMenu {
+private:
+ bool m_Now;
+ bool m_Next;
+ int m_OtherChannel;
+ const cSchedules *m_Schedules;
+#if VDRVERSNUM < 10300
+ cMutexLock m_Lock;
+#else
+ cSchedulesLock m_Lock;
+#endif
+
+protected:
+ void PrepareSchedule(cChannel *Channel);
+
+ eOSState Switch(void);
+ eOSState Record(void);
+
+public:
+ cStreamdevMenuSchedule(void);
+ virtual ~cStreamdevMenuSchedule(void);
+
+ virtual eOSState ProcessKey(eKeys Key);
+};
+
+// --- cStreamdevMenuWhatsOn -------------------------------------------------
+
+class cStreamdevMenuWhatsOn: public cOsdMenu {
+private:
+ static int m_CurrentChannel;
+#if VDRVERSNUM < 10300
+ static const cEventInfo *m_ScheduleEventInfo;
+#else
+ static const cEvent *m_ScheduleEventInfo;
+#endif
+
+protected:
+ eOSState Switch(void);
+ eOSState Record(void);
+
+public:
+ cStreamdevMenuWhatsOn(const cSchedules *Schedules, bool Now,
+ int CurrentChannel);
+
+ static int CurrentChannel(void) { return m_CurrentChannel; }
+ static void SetCurrentChannel(int Channel) { m_CurrentChannel = Channel; }
+#if VDRVERSNUM < 10300
+ static const cEventInfo *ScheduleEventInfo(void);
+#else
+ static const cEvent *ScheduleEventInfo(void);
+#endif
+
+ virtual eOSState ProcessKey(eKeys Key);
+};
+
+// --- cStreamdevMenuRecordings ----------------------------------------------
+
+class cStreamdevMenuRecordings: public cOsdMenu {
+private:
+ char *m_Base;
+ int m_Level;
+
+ static int HelpKeys;
+ static cRemoteRecordings Recordings;
+
+protected:
+ bool Open(bool OpenSubMenus = false);
+ void SetHelpKeys();
+ cRemoteRecording *cStreamdevMenuRecordings::GetRecording(
+ cStreamdevMenuRecordingItem *Item);
+
+ eOSState Select(void);
+ eOSState Delete(void);
+ eOSState Summary(void);
+
+public:
+ cStreamdevMenuRecordings(const char *Base = NULL, int Level = 0,
+ bool OpenSubMenus = false);
+ virtual ~cStreamdevMenuRecordings();
+
+ virtual eOSState ProcessKey(eKeys Key);
+};
+
+// --- cStreamdevMenuTimers --------------------------------------------------
+
+class cStreamdevMenuTimers: public cOsdMenu {
+protected:
+ eOSState Edit(void);
+ eOSState New(void);
+ eOSState Delete(void);
+ eOSState OnOff(void);
+ eOSState Summary(void);
+
+ cRemoteTimer *CurrentTimer(void);
+
+ void Refresh(void);
+
+public:
+ cStreamdevMenuTimers(void);
+ virtual ~cStreamdevMenuTimers();
+
+ virtual eOSState ProcessKey(eKeys Key);
+};
+
+#endif // VDR_STREAMDEV_MENU_H
+