mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
update
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
#include <QResource>
|
||||
#include <QLocale>
|
||||
#include <QFile>
|
||||
#include <QHostAddress>
|
||||
#include <QString>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
@@ -42,6 +41,9 @@
|
||||
// Init Python
|
||||
#include <python/PythonInit.h>
|
||||
|
||||
// EffectFileHandler
|
||||
#include <effectengine/EffectFileHandler.h>
|
||||
|
||||
HyperionDaemon* HyperionDaemon::daemon = nullptr;
|
||||
|
||||
HyperionDaemon::HyperionDaemon(QString configFile, const QString rootPath, QObject *parent, const bool& logLvlOverwrite)
|
||||
@@ -79,6 +81,10 @@ HyperionDaemon::HyperionDaemon(QString configFile, const QString rootPath, QObje
|
||||
if(!logLvlOverwrite)
|
||||
handleSettingsUpdate(settings::LOGGER, _settingsManager->getSetting(settings::LOGGER));
|
||||
|
||||
// init EffectFileHandler
|
||||
EffectFileHandler* efh = new EffectFileHandler(rootPath, _settingsManager->getSetting(settings::EFFECTS), this);
|
||||
connect(this, &HyperionDaemon::settingsChanged, efh, &EffectFileHandler::handleSettingsUpdate);
|
||||
|
||||
// spawn all Hyperion instances before network services
|
||||
_hyperion = Hyperion::initInstance(this, 0, configFile, rootPath);
|
||||
|
||||
@@ -201,7 +207,7 @@ void HyperionDaemon::startNetworkServices()
|
||||
connect(this, &HyperionDaemon::settingsChanged, _webserver, &WebServer::handleSettingsUpdate);
|
||||
wsThread->start();
|
||||
|
||||
// create SSDPHandler in thread
|
||||
// create ssdp server in thread
|
||||
_ssdp = new SSDPHandler(_webserver, getSetting(settings::FLATBUFSERVER).object()["port"].toInt());
|
||||
QThread* ssdpThread = new QThread(this);
|
||||
_ssdp->moveToThread(ssdpThread);
|
||||
@@ -268,15 +274,72 @@ void HyperionDaemon::handleSettingsUpdate(const settings::type& type, const QJso
|
||||
{
|
||||
type = "framebuffer";
|
||||
}
|
||||
Info( _log, "set screen capture device to '%s'", QSTRING_CSTR(type));
|
||||
}
|
||||
|
||||
if (type == "") { Info( _log, "screen capture device disabled"); }
|
||||
else if (type == "framebuffer" && _fbGrabber == nullptr) createGrabberFramebuffer(grabberConfig);
|
||||
else if (type == "dispmanx" && _dispmanx == nullptr) createGrabberDispmanx();
|
||||
else if (type == "amlogic" && _amlGrabber == nullptr) createGrabberAmlogic();
|
||||
else if (type == "osx" && _osxGrabber == nullptr) createGrabberOsx(grabberConfig);
|
||||
else if (type == "x11" && _x11Grabber == nullptr) createGrabberX11(grabberConfig);
|
||||
if(_prevType != type)
|
||||
{
|
||||
Info( _log, "set screen capture device to '%s'", QSTRING_CSTR(type));
|
||||
|
||||
// stop all capture interfaces
|
||||
#ifdef ENABLE_FB
|
||||
if(_fbGrabber != nullptr) _fbGrabber->stop();
|
||||
#endif
|
||||
#ifdef ENABLE_DISPMANX
|
||||
if(_dispmanx != nullptr) _dispmanx->stop();
|
||||
#endif
|
||||
#ifdef ENABLE_AMLOGIC
|
||||
if(_amlGrabber != nullptr) _amlGrabber->stop();
|
||||
#endif
|
||||
#ifdef ENABLE_OSX
|
||||
if(_osxGrabber != nullptr) _osxGrabber->stop();
|
||||
#endif
|
||||
#ifdef ENABLE_X11
|
||||
if(_x11Grabber != nullptr) _x11Grabber->stop();
|
||||
#endif
|
||||
|
||||
// create/start capture interface
|
||||
if(type == "framebuffer")
|
||||
{
|
||||
if(_fbGrabber == nullptr)
|
||||
createGrabberFramebuffer(grabberConfig);
|
||||
#ifdef ENABLE_FB
|
||||
_fbGrabber->start();
|
||||
#endif
|
||||
}
|
||||
else if(type == "dispmanx")
|
||||
{
|
||||
if(_dispmanx == nullptr)
|
||||
createGrabberDispmanx();
|
||||
#ifdef ENABLE_DISPMANX
|
||||
_dispmanx->start();
|
||||
#endif
|
||||
}
|
||||
else if(type == "amlogic")
|
||||
{
|
||||
if(_amlGrabber == nullptr)
|
||||
createGrabberAmlogic();
|
||||
#ifdef ENABLE_AMLOGIC
|
||||
_amlGrabber->start();
|
||||
#endif
|
||||
}
|
||||
else if(type == "osx")
|
||||
{
|
||||
if(_osxGrabber == nullptr)
|
||||
createGrabberOsx(grabberConfig);
|
||||
#ifdef ENABLE_OSX
|
||||
_osxGrabber->start();
|
||||
#endif
|
||||
}
|
||||
else if(type == "x11")
|
||||
{
|
||||
if(_x11Grabber == nullptr)
|
||||
createGrabberX11(grabberConfig);
|
||||
#ifdef ENABLE_X11
|
||||
_x11Grabber->start();
|
||||
#endif
|
||||
}
|
||||
_prevType = type;
|
||||
}
|
||||
}
|
||||
else if(type == settings::V4L2)
|
||||
{
|
||||
@@ -341,7 +404,7 @@ void HyperionDaemon::createGrabberDispmanx()
|
||||
|
||||
_dispmanx->start();
|
||||
|
||||
Info(_log, "DISPMANX frame grabber created and started");
|
||||
Info(_log, "DISPMANX frame grabber created");
|
||||
#else
|
||||
Error( _log, "The dispmanx framegrabber can not be instantiated, because it has been left out from the build");
|
||||
#endif
|
||||
@@ -360,7 +423,7 @@ void HyperionDaemon::createGrabberAmlogic()
|
||||
connect(this, &HyperionDaemon::settingsChanged, _amlGrabber, &AmlogicWrapper::handleSettingsUpdate);
|
||||
|
||||
_amlGrabber->start();
|
||||
Info(_log, "AMLOGIC grabber created and started");
|
||||
Info(_log, "AMLOGIC grabber created");
|
||||
#else
|
||||
Error( _log, "The AMLOGIC grabber can not be instantiated, because it has been left out from the build");
|
||||
#endif
|
||||
@@ -381,7 +444,7 @@ void HyperionDaemon::createGrabberX11(const QJsonObject & grabberConfig)
|
||||
connect(this, &HyperionDaemon::settingsChanged, _x11Grabber, &X11Wrapper::handleSettingsUpdate);
|
||||
|
||||
_x11Grabber->start();
|
||||
Info(_log, "X11 grabber created and started");
|
||||
Info(_log, "X11 grabber created");
|
||||
#else
|
||||
Error(_log, "The X11 grabber can not be instantiated, because it has been left out from the build");
|
||||
#endif
|
||||
@@ -402,7 +465,7 @@ void HyperionDaemon::createGrabberFramebuffer(const QJsonObject & grabberConfig)
|
||||
connect(this, &HyperionDaemon::settingsChanged, _fbGrabber, &FramebufferWrapper::handleSettingsUpdate);
|
||||
|
||||
_fbGrabber->start();
|
||||
Info(_log, "Framebuffer grabber created and started");
|
||||
Info(_log, "Framebuffer grabber created");
|
||||
#else
|
||||
Error(_log, "The framebuffer grabber can not be instantiated, because it has been left out from the build");
|
||||
#endif
|
||||
@@ -423,7 +486,7 @@ void HyperionDaemon::createGrabberOsx(const QJsonObject & grabberConfig)
|
||||
connect(this, &HyperionDaemon::settingsChanged, _osxGrabber, &OsxWrapper::handleSettingsUpdate);
|
||||
|
||||
_osxGrabber->start();
|
||||
Info(_log, "OSX grabber created and started");
|
||||
Info(_log, "OSX grabber created");
|
||||
#else
|
||||
Error(_log, "The osx grabber can not be instantiated, because it has been left out from the build");
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user