From 96ebdbf4b1e495d44f8f837068af7c2d925bab62 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 1 Dec 2002 18:00:00 +0100 Subject: Version 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). --- PLUGINS/src/osddemo/osddemo.c | 153 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 PLUGINS/src/osddemo/osddemo.c (limited to 'PLUGINS/src/osddemo/osddemo.c') 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 + +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! -- cgit v1.2.3