ProtoBuffer, UDPListener ...

Protocol Buffer reimplemented to receive image data from third-party apps
The status of the component "UDPListener" is now displayed correctly in WebUI
Global signal names for WebUI added
This commit is contained in:
Paulchen-Panther
2019-02-17 15:26:11 +01:00
parent 777caafb24
commit 7ff9d7037b
38 changed files with 990 additions and 64 deletions

View File

@@ -26,9 +26,12 @@
#include <HyperionConfig.h> // Required to determine the cmake options
#include "hyperiond.h"
// FlatBufferServer
// Flatbuffer Server
#include <flatbufserver/FlatBufferServer.h>
// Protobuffer Server
#include <protoserver/ProtoServer.h>
// bonjour browser
#include <bonjour/bonjourbrowserwrapper.h>
@@ -145,6 +148,8 @@ void HyperionDaemon::freeObjects()
delete _jsonServer;
_flatBufferServer->thread()->quit();
_flatBufferServer->thread()->wait(1000);
_protoServer->thread()->quit();
_protoServer->thread()->wait(1000);
//ssdp before webserver
_ssdp->thread()->quit();
_ssdp->thread()->wait(1000);
@@ -166,17 +171,18 @@ void HyperionDaemon::freeObjects()
_v4l2Grabbers.clear();
_bonjourBrowserWrapper = nullptr;
_amlGrabber = nullptr;
_dispmanx = nullptr;
_fbGrabber = nullptr;
_osxGrabber = nullptr;
_qtGrabber = nullptr;
_flatBufferServer = nullptr;
_ssdp = nullptr;
_webserver = nullptr;
_jsonServer = nullptr;
_udpListener = nullptr;
_stats = nullptr;
_amlGrabber = nullptr;
_dispmanx = nullptr;
_fbGrabber = nullptr;
_osxGrabber = nullptr;
_qtGrabber = nullptr;
_flatBufferServer = nullptr;
_protoServer = nullptr;
_ssdp = nullptr;
_webserver = nullptr;
_jsonServer = nullptr;
_udpListener = nullptr;
_stats = nullptr;
}
void HyperionDaemon::startNetworkServices()
@@ -198,6 +204,16 @@ void HyperionDaemon::startNetworkServices()
connect(this, &HyperionDaemon::settingsChanged, _flatBufferServer, &FlatBufferServer::handleSettingsUpdate);
fbThread->start();
// Create Proto server in thread
_protoServer = new ProtoServer(getSetting(settings::PROTOSERVER));
QThread* pThread = new QThread(this);
_protoServer->moveToThread(pThread);
connect( pThread, &QThread::started, _protoServer, &ProtoServer::initServer );
connect( pThread, &QThread::finished, _protoServer, &QObject::deleteLater );
connect( pThread, &QThread::finished, pThread, &QObject::deleteLater );
connect(this, &HyperionDaemon::settingsChanged, _protoServer, &ProtoServer::handleSettingsUpdate);
pThread->start();
// Create UDP listener
_udpListener = new UDPListener(getSetting(settings::UDPLISTENER));
connect(this, &HyperionDaemon::settingsChanged, _udpListener, &UDPListener::handleSettingsUpdate);