summaryrefslogtreecommitdiff
path: root/server/streamdev-server.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/streamdev-server.c')
-rw-r--r--server/streamdev-server.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/server/streamdev-server.c b/server/streamdev-server.c
index 65ed23e..e5c6e45 100644
--- a/server/streamdev-server.c
+++ b/server/streamdev-server.c
@@ -12,6 +12,7 @@
#include "server/menu.h"
#include "server/setup.h"
#include "server/server.h"
+#include "server/suspend.h"
#if !defined(APIVERSNUM) || APIVERSNUM < 10725
#error "VDR-1.7.25 or greater required to compile server! Use 'make client' to compile client only."
@@ -21,6 +22,7 @@ const char *cPluginStreamdevServer::DESCRIPTION = trNOOP("VDR Streaming Server")
cPluginStreamdevServer::cPluginStreamdevServer(void)
{
+ m_Suspend = false;
}
cPluginStreamdevServer::~cPluginStreamdevServer()
@@ -98,6 +100,9 @@ bool cPluginStreamdevServer::Start(void)
cStreamdevServer::Initialize();
+ m_Suspend = StreamdevServerSetup.StartSuspended == ssAuto ?
+ !cDevice::PrimaryDevice()->HasDecoder() :
+ StreamdevServerSetup.StartSuspended;
return true;
}
@@ -129,6 +134,11 @@ cOsdObject *cPluginStreamdevServer::MainMenuAction(void)
void cPluginStreamdevServer::MainThreadHook(void)
{
+ if (m_Suspend) {
+ cControl::Launch(new cSuspendCtl);
+ m_Suspend = false;
+ }
+
cThreadLock lock;
const cList<cServerConnection>& clients = cStreamdevServer::Clients(lock);
for (cServerConnection *s = clients.First(); s; s = clients.Next(s))