diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-12-01 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-12-01 18:00:00 +0100 |
commit | 96ebdbf4b1e495d44f8f837068af7c2d925bab62 (patch) | |
tree | 7d0283b6f2087626108a5b5a8aa9e4a32a5e47e2 /PLUGINS/src/osddemo/osddemo.c | |
parent | fe9499ba901f5c32dd0b3841a2b6e599fefc144f (diff) | |
download | vdr-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.c | 153 |
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! |