mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
73 lines
2.0 KiB
C
73 lines
2.0 KiB
C
/*
|
|
* streamdev.c: A plugin for the Video Disk Recorder
|
|
*
|
|
* See the README file for copyright information and how to reach the author.
|
|
*
|
|
* $Id: streamdev-client.c,v 1.3 2010/08/18 10:26:56 schmirl Exp $
|
|
*/
|
|
|
|
#include "streamdev-client.h"
|
|
#include "client/device.h"
|
|
#include "client/setup.h"
|
|
|
|
#if !defined(APIVERSNUM) || APIVERSNUM < 10516
|
|
#error "VDR-1.5.16 API version or greater is required!"
|
|
#endif
|
|
|
|
const char *cPluginStreamdevClient::DESCRIPTION = trNOOP("VTP Streaming Client");
|
|
|
|
cPluginStreamdevClient::cPluginStreamdevClient(void): m_Devices() {
|
|
}
|
|
|
|
cPluginStreamdevClient::~cPluginStreamdevClient() {
|
|
}
|
|
|
|
const char *cPluginStreamdevClient::Description(void) {
|
|
return tr(DESCRIPTION);
|
|
}
|
|
|
|
bool cPluginStreamdevClient::Initialize(void) {
|
|
for (int i = 0; i < STREAMDEV_MAXDEVICES; i++) {
|
|
if (m_Devices[i])
|
|
m_Devices[i]->ReInit(i >= StreamdevClientSetup.StartClient);
|
|
else if (i < StreamdevClientSetup.StartClient)
|
|
m_Devices[i] = new cStreamdevDevice();
|
|
}
|
|
return true;
|
|
}
|
|
|
|
const char *cPluginStreamdevClient::MainMenuEntry(void) {
|
|
return StreamdevClientSetup.StartClient && !StreamdevClientSetup.HideMenuEntry ? tr("Suspend Server") : NULL;
|
|
}
|
|
|
|
cOsdObject *cPluginStreamdevClient::MainMenuAction(void) {
|
|
if (StreamdevClientSetup.StartClient && m_Devices[0]->SuspendServer())
|
|
Skins.Message(mtInfo, tr("Server is suspended"));
|
|
else
|
|
Skins.Message(mtError, tr("Couldn't suspend Server!"));
|
|
return NULL;
|
|
}
|
|
|
|
cMenuSetupPage *cPluginStreamdevClient::SetupMenu(void) {
|
|
return new cStreamdevClientMenuSetupPage(this);
|
|
}
|
|
|
|
bool cPluginStreamdevClient::SetupParse(const char *Name, const char *Value) {
|
|
return StreamdevClientSetup.SetupParse(Name, Value);
|
|
}
|
|
|
|
bool cPluginStreamdevClient::Service(const char *Id, void *Data) {
|
|
if (!strcmp(Id, LOOP_PREVENTION_SERVICE)) {
|
|
cStreamdevDevice::DenyChannel((const cChannel*) Data);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void cPluginStreamdevClient::MainThreadHook(void) {
|
|
for (int i = 0; i < StreamdevClientSetup.StartClient; i++)
|
|
m_Devices[i]->UpdatePriority();
|
|
}
|
|
|
|
VDRPLUGINCREATOR(cPluginStreamdevClient); // Don't touch this!
|