summaryrefslogtreecommitdiff
path: root/PLUGINS/src/osddemo/osddemo.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2002-12-01 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2002-12-01 18:00:00 +0100
commit96ebdbf4b1e495d44f8f837068af7c2d925bab62 (patch)
tree7d0283b6f2087626108a5b5a8aa9e4a32a5e47e2 /PLUGINS/src/osddemo/osddemo.c
parentfe9499ba901f5c32dd0b3841a2b6e599fefc144f (diff)
downloadvdr-patch-lnbsharing-96ebdbf4b1e495d44f8f837068af7c2d925bab62.tar.gz
vdr-patch-lnbsharing-96ebdbf4b1e495d44f8f837068af7c2d925bab62.tar.bz2
Version 1.1.18vdr-1.1.18
- Fixed missing initialization of 'number' in cChannel (thanks to Martin Hammerschmid for reporting this one). - Fixed a misplaced ')' in the fix about the stale lock files (thanks again to Oliver Endriss for pointing this out - it was my fault). - Group delimiters in the 'channels.conf' file that have no text (like a simple ":" or ":@201") no longer show up in the Channels menu (suggested by Guy Roussin). - Added "Tele 5" to 'channels.conf' (thanks to Georg Hitsch). - Changed the source directory name for plugins from 'SRC' to 'src' (suggested by Clemens Kirchgatterer). - Removed transponders 10788, 11739 and 12266 from 'channels.conf' (apparently they are no longer active). - Deactivated some templates in tools.h in case some plugin needs to use the STL (suggested by Gerald Berwolf). - Timers now accept channel IDs even if the 'source' is 0 (thanks to Stefan Huelswitt for reporting this one). - Now taking an active SVDRP connection into account when doing shutdown or housekeeping (suggested by Emil Naepflein). - Macros in 'keymacros.conf' can now use "@plugin" to directly access the main menu function of a given plugin (see man vdr(5) for details). - The new plugin 'sky' can be used to integrate a Sky Digibox into the VDR system, using a Kfir MPEG2 encoder card (see PLUGINS/src/sky/README for details).
Diffstat (limited to 'PLUGINS/src/osddemo/osddemo.c')
-rw-r--r--PLUGINS/src/osddemo/osddemo.c153
1 files changed, 153 insertions, 0 deletions
diff --git a/PLUGINS/src/osddemo/osddemo.c b/PLUGINS/src/osddemo/osddemo.c
new file mode 100644
index 0000000..f806178
--- /dev/null
+++ b/PLUGINS/src/osddemo/osddemo.c
@@ -0,0 +1,153 @@
+/*
+ * osddemo.c: A plugin for the Video Disk Recorder
+ *
+ * See the README file for copyright information and how to reach the author.
+ *
+ * $Id: osddemo.c 1.1 2002/11/24 10:32:59 kls Exp $
+ */
+
+#include <vdr/plugin.h>
+
+static const char *VERSION = "0.0.1";
+static const char *DESCRIPTION = "Demo of arbitrary OSD setup";
+static const char *MAINMENUENTRY = "Osd Demo";
+
+// --- cLineGame -------------------------------------------------------------
+
+class cLineGame : public cOsdObject {
+private:
+ cOsdBase *osd;
+ int x;
+ int y;
+ eDvbColor color;
+public:
+ cLineGame(void);
+ ~cLineGame();
+ virtual void Show(void);
+ virtual eOSState ProcessKey(eKeys Key);
+ };
+
+cLineGame::cLineGame(void)
+{
+ osd = NULL;
+ x = y = 50;
+ color = clrRed;
+}
+
+cLineGame::~cLineGame()
+{
+ delete osd;
+}
+
+void cLineGame::Show(void)
+{
+ osd = cOsd::OpenRaw(100, 50);
+ if (osd) {
+ osd->Create(0, 0, 100, 200, 4);
+ osd->AddColor(clrBackground);
+ osd->AddColor(clrRed);
+ osd->AddColor(clrGreen);
+ osd->AddColor(clrYellow);
+ osd->AddColor(clrBlue);
+ osd->Clear();
+ osd->Flush();
+ }
+}
+
+eOSState cLineGame::ProcessKey(eKeys Key)
+{
+ eOSState state = cOsdObject::ProcessKey(Key);
+ if (state == osUnknown) {
+ switch (Key & ~k_Repeat) {
+ case kUp: if (y > 0) y--; break;
+ case kDown: if (y < 196) y++; break;
+ case kLeft: if (x > 0) x--; break;
+ case kRight: if (x < 96) x++; break;
+ case kRed: color = clrRed; break;
+ case kGreen: color = clrGreen; break;
+ case kYellow: color = clrYellow; break;
+ case kBlue: color = clrBlue; break;
+ case kOk: return osEnd;
+ default: return state;
+ }
+ osd->Fill(x, y, x + 3, y + 3, color);
+ osd->Flush();
+ state = osContinue;
+ }
+ return state;
+}
+
+// --- cPluginOsddemo --------------------------------------------------------
+
+class cPluginOsddemo : public cPlugin {
+private:
+ // Add any member variables or functions you may need here.
+public:
+ cPluginOsddemo(void);
+ virtual ~cPluginOsddemo();
+ virtual const char *Version(void) { return VERSION; }
+ virtual const char *Description(void) { return DESCRIPTION; }
+ virtual const char *CommandLineHelp(void);
+ virtual bool ProcessArgs(int argc, char *argv[]);
+ virtual bool Start(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);
+ };
+
+cPluginOsddemo::cPluginOsddemo(void)
+{
+ // Initialize any member variables here.
+ // DON'T DO ANYTHING ELSE THAT MAY HAVE SIDE EFFECTS, REQUIRE GLOBAL
+ // VDR OBJECTS TO EXIST OR PRODUCE ANY OUTPUT!
+}
+
+cPluginOsddemo::~cPluginOsddemo()
+{
+ // Clean up after yourself!
+}
+
+const char *cPluginOsddemo::CommandLineHelp(void)
+{
+ // Return a string that describes all known command line options.
+ return NULL;
+}
+
+bool cPluginOsddemo::ProcessArgs(int argc, char *argv[])
+{
+ // Implement command line argument processing here if applicable.
+ return true;
+}
+
+bool cPluginOsddemo::Start(void)
+{
+ // Start any background activities the plugin shall perform.
+ return true;
+}
+
+void cPluginOsddemo::Housekeeping(void)
+{
+ // Perform any cleanup or other regular tasks.
+}
+
+cOsdObject *cPluginOsddemo::MainMenuAction(void)
+{
+ // Perform the action when selected from the main VDR menu.
+ return new cLineGame;
+}
+
+cMenuSetupPage *cPluginOsddemo::SetupMenu(void)
+{
+ // Return a setup menu in case the plugin supports one.
+ return NULL;
+}
+
+bool cPluginOsddemo::SetupParse(const char *Name, const char *Value)
+{
+ // Parse your own setup parameters and store their values.
+ return false;
+}
+
+VDRPLUGINCREATOR(cPluginOsddemo); // Don't touch this!