mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
210 lines
6.4 KiB
C
210 lines
6.4 KiB
C
/*
|
|
* status.c: A plugin for the Video Disk Recorder
|
|
*
|
|
* See the README file for copyright information and how to reach the author.
|
|
*
|
|
* $Id: status.c 2.3 2013/01/12 14:13:17 kls Exp $
|
|
*/
|
|
|
|
#include <vdr/plugin.h>
|
|
#include <vdr/status.h>
|
|
|
|
static const char *VERSION = "0.3.3";
|
|
static const char *DESCRIPTION = "Status monitor test";
|
|
static const char *MAINMENUENTRY = NULL;
|
|
|
|
// ---
|
|
|
|
class cStatusTest : public cStatus {
|
|
protected:
|
|
virtual void TimerChange(const cTimer *Timer, eTimerChange Change);
|
|
virtual void ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView);
|
|
virtual void Recording(const cDevice *Device, const char *Name, const char *FileName, bool On);
|
|
virtual void Replaying(const cControl *Control, const char *Name, const char *FileName, bool On);
|
|
virtual void SetVolume(int Volume, bool Absolute);
|
|
virtual void SetAudioTrack(int Index, const char * const *Tracks);
|
|
virtual void SetAudioChannel(int AudioChannel);
|
|
virtual void SetSubtitleTrack(int Index, const char * const *Tracks);
|
|
virtual void OsdClear(void);
|
|
virtual void OsdTitle(const char *Title);
|
|
virtual void OsdStatusMessage(const char *Message);
|
|
virtual void OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue);
|
|
virtual void OsdItem(const char *Text, int Index);
|
|
virtual void OsdCurrentItem(const char *Text);
|
|
virtual void OsdTextItem(const char *Text, bool Scroll);
|
|
virtual void OsdChannel(const char *Text);
|
|
virtual void OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle);
|
|
};
|
|
|
|
void cStatusTest::TimerChange(const cTimer *Timer, eTimerChange Change)
|
|
{
|
|
dsyslog("status: cStatusTest::TimerChange %s %d", Timer ? *Timer->ToText(true) : "-", Change);
|
|
}
|
|
|
|
void cStatusTest::ChannelSwitch(const cDevice *Device, int ChannelNumber, bool LiveView)
|
|
{
|
|
dsyslog("status: cStatusTest::ChannelSwitch %d %d %d", Device->CardIndex(), ChannelNumber, LiveView);
|
|
}
|
|
|
|
void cStatusTest::Recording(const cDevice *Device, const char *Name, const char *FileName, bool On)
|
|
{
|
|
dsyslog("status: cStatusTest::Recording %d %s %s %d", Device->CardIndex(), Name, FileName, On);
|
|
}
|
|
|
|
void cStatusTest::Replaying(const cControl *Control, const char *Name, const char *FileName, bool On)
|
|
{
|
|
dsyslog("status: cStatusTest::Replaying %s %s %d", Name, FileName, On);
|
|
}
|
|
|
|
void cStatusTest::SetVolume(int Volume, bool Absolute)
|
|
{
|
|
dsyslog("status: cStatusTest::SetVolume %d %d", Volume, Absolute);
|
|
}
|
|
|
|
void cStatusTest::SetAudioTrack(int Index, const char * const *Tracks)
|
|
{
|
|
dsyslog("status: cStatusTest::SetAudioTrack %d %s", Index, Tracks[Index]);
|
|
}
|
|
|
|
void cStatusTest::SetAudioChannel(int AudioChannel)
|
|
{
|
|
dsyslog("status: cStatusTest::SetAudioChannel %d", AudioChannel);
|
|
}
|
|
|
|
void cStatusTest::SetSubtitleTrack(int Index, const char * const *Tracks)
|
|
{
|
|
dsyslog("status: cStatusTest::SetSubtitleTrack %d %s", Index, Tracks[Index]);
|
|
}
|
|
|
|
void cStatusTest::OsdClear(void)
|
|
{
|
|
dsyslog("status: cStatusTest::OsdClear");
|
|
}
|
|
|
|
void cStatusTest::OsdTitle(const char *Title)
|
|
{
|
|
dsyslog("status: cStatusTest::OsdTitle '%s'", Title);
|
|
}
|
|
|
|
void cStatusTest::OsdStatusMessage(const char *Message)
|
|
{
|
|
dsyslog("status: cStatusTest::OsdStatusMessage '%s'", Message);
|
|
}
|
|
|
|
void cStatusTest::OsdHelpKeys(const char *Red, const char *Green, const char *Yellow, const char *Blue)
|
|
{
|
|
dsyslog("status: cStatusTest::OsdHelpKeys %s - %s - %s - %s", Red, Green, Yellow, Blue);
|
|
}
|
|
|
|
void cStatusTest::OsdItem(const char *Text, int Index)
|
|
{
|
|
//dsyslog("status: cStatusTest::OsdItem %s %d", Text, Index);
|
|
}
|
|
|
|
void cStatusTest::OsdCurrentItem(const char *Text)
|
|
{
|
|
dsyslog("status: cStatusTest::OsdCurrentItem %s", Text);
|
|
}
|
|
|
|
void cStatusTest::OsdTextItem(const char *Text, bool Scroll)
|
|
{
|
|
dsyslog("status: cStatusTest::OsdTextItem %s %d", Text, Scroll);
|
|
}
|
|
|
|
void cStatusTest::OsdChannel(const char *Text)
|
|
{
|
|
dsyslog("status: cStatusTest::OsdChannel %s", Text);
|
|
}
|
|
|
|
void cStatusTest::OsdProgramme(time_t PresentTime, const char *PresentTitle, const char *PresentSubtitle, time_t FollowingTime, const char *FollowingTitle, const char *FollowingSubtitle)
|
|
{
|
|
char buffer[25];
|
|
struct tm tm_r;
|
|
dsyslog("status: cStatusTest::OsdProgramme");
|
|
strftime(buffer, sizeof(buffer), "%R", localtime_r(&PresentTime, &tm_r));
|
|
dsyslog("%5s %s", buffer, PresentTitle);
|
|
dsyslog("%5s %s", "", PresentSubtitle);
|
|
strftime(buffer, sizeof(buffer), "%R", localtime_r(&FollowingTime, &tm_r));
|
|
dsyslog("%5s %s", buffer, FollowingTitle);
|
|
dsyslog("%5s %s", "", FollowingSubtitle);
|
|
}
|
|
|
|
// ---
|
|
|
|
class cPluginStatus : public cPlugin {
|
|
private:
|
|
// Add any member variables or functions you may need here.
|
|
cStatusTest *statusTest;
|
|
public:
|
|
cPluginStatus(void);
|
|
virtual ~cPluginStatus();
|
|
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);
|
|
};
|
|
|
|
cPluginStatus::cPluginStatus(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!
|
|
statusTest = NULL;
|
|
}
|
|
|
|
cPluginStatus::~cPluginStatus()
|
|
{
|
|
// Clean up after yourself!
|
|
delete statusTest;
|
|
}
|
|
|
|
const char *cPluginStatus::CommandLineHelp(void)
|
|
{
|
|
// Return a string that describes all known command line options.
|
|
return NULL;
|
|
}
|
|
|
|
bool cPluginStatus::ProcessArgs(int argc, char *argv[])
|
|
{
|
|
// Implement command line argument processing here if applicable.
|
|
return true;
|
|
}
|
|
|
|
bool cPluginStatus::Start(void)
|
|
{
|
|
// Start any background activities the plugin shall perform.
|
|
statusTest = new cStatusTest;
|
|
return true;
|
|
}
|
|
|
|
void cPluginStatus::Housekeeping(void)
|
|
{
|
|
// Perform any cleanup or other regular tasks.
|
|
}
|
|
|
|
cOsdObject *cPluginStatus::MainMenuAction(void)
|
|
{
|
|
// Perform the action when selected from the main VDR menu.
|
|
return NULL;
|
|
}
|
|
|
|
cMenuSetupPage *cPluginStatus::SetupMenu(void)
|
|
{
|
|
// Return a setup menu in case the plugin supports one.
|
|
return NULL;
|
|
}
|
|
|
|
bool cPluginStatus::SetupParse(const char *Name, const char *Value)
|
|
{
|
|
// Parse your own setup parameters and store their values.
|
|
return false;
|
|
}
|
|
|
|
VDRPLUGINCREATOR(cPluginStatus); // Don't touch this!
|