2016-06-17 01:25:40 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
|
|
|
#ifdef ENABLE_DISPMANX
|
|
|
|
#include <grabber/DispmanxWrapper.h>
|
|
|
|
#else
|
|
|
|
typedef QObject DispmanxWrapper;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ENABLE_V4L2
|
|
|
|
#include <grabber/V4L2Wrapper.h>
|
|
|
|
#else
|
|
|
|
typedef QObject V4L2Wrapper;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ENABLE_FB
|
|
|
|
#include <grabber/FramebufferWrapper.h>
|
|
|
|
#else
|
|
|
|
typedef QObject FramebufferWrapper;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ENABLE_AMLOGIC
|
|
|
|
#include <grabber/AmlogicWrapper.h>
|
|
|
|
#else
|
|
|
|
typedef QObject AmlogicWrapper;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef ENABLE_OSX
|
|
|
|
#include <grabber/OsxWrapper.h>
|
|
|
|
#else
|
|
|
|
typedef QObject OsxWrapper;
|
|
|
|
#endif
|
|
|
|
|
2016-07-24 15:18:34 +02:00
|
|
|
#ifdef ENABLE_X11
|
|
|
|
#include <grabber/X11Wrapper.h>
|
|
|
|
#else
|
|
|
|
typedef QObject X11Wrapper;
|
|
|
|
#endif
|
|
|
|
|
2016-06-19 00:56:47 +02:00
|
|
|
#include <utils/Logger.h>
|
|
|
|
|
2016-07-10 22:04:31 +02:00
|
|
|
#include <kodivideochecker/KODIVideoChecker.h>
|
2016-06-17 01:25:40 +02:00
|
|
|
#include <jsonserver/JsonServer.h>
|
|
|
|
#include <protoserver/ProtoServer.h>
|
|
|
|
#include <boblightserver/BoblightServer.h>
|
2016-06-19 00:56:47 +02:00
|
|
|
#include <webconfig/WebConfig.h>
|
2016-06-20 08:38:12 +02:00
|
|
|
#include <udplistener/UDPListener.h>
|
2016-06-19 00:56:47 +02:00
|
|
|
|
|
|
|
class HyperionDaemon : public QObject
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
HyperionDaemon(std::string configFile, QObject *parent=nullptr);
|
|
|
|
~HyperionDaemon();
|
|
|
|
|
|
|
|
void loadConfig(const std::string & configFile);
|
|
|
|
void run();
|
|
|
|
|
2016-06-20 23:41:07 +02:00
|
|
|
void startInitialEffect();
|
2016-07-10 22:04:31 +02:00
|
|
|
void createKODIVideoChecker();
|
2016-06-19 00:56:47 +02:00
|
|
|
void startNetworkServices();
|
2016-06-17 01:25:40 +02:00
|
|
|
|
2016-06-19 00:56:47 +02:00
|
|
|
// grabber creators
|
|
|
|
void createGrabberV4L2();
|
2016-07-24 15:18:34 +02:00
|
|
|
void createSystemFrameGrabber();
|
2016-06-17 01:25:40 +02:00
|
|
|
|
2016-06-19 00:56:47 +02:00
|
|
|
private:
|
2016-07-24 15:18:34 +02:00
|
|
|
void createGrabberDispmanx(const Json::Value & grabberConfig);
|
|
|
|
void createGrabberAmlogic(const Json::Value & grabberConfig);
|
|
|
|
void createGrabberFramebuffer(const Json::Value & grabberConfig);
|
|
|
|
void createGrabberOsx(const Json::Value & grabberConfig);
|
|
|
|
void createGrabberX11(const Json::Value & grabberConfig);
|
|
|
|
|
2016-06-19 00:56:47 +02:00
|
|
|
Logger* _log;
|
|
|
|
Json::Value _config;
|
2016-07-10 22:04:31 +02:00
|
|
|
KODIVideoChecker* _kodiVideoChecker;
|
2016-06-19 00:56:47 +02:00
|
|
|
JsonServer* _jsonServer;
|
|
|
|
ProtoServer* _protoServer;
|
|
|
|
BoblightServer* _boblightServer;
|
2016-06-20 08:38:12 +02:00
|
|
|
UDPListener* _udpListener;
|
2016-06-19 00:56:47 +02:00
|
|
|
V4L2Wrapper* _v4l2Grabber;
|
|
|
|
DispmanxWrapper* _dispmanx;
|
2016-07-24 15:18:34 +02:00
|
|
|
X11Wrapper* _x11Grabber;
|
2016-06-19 00:56:47 +02:00
|
|
|
AmlogicWrapper* _amlGrabber;
|
|
|
|
FramebufferWrapper* _fbGrabber;
|
|
|
|
OsxWrapper* _osxGrabber;
|
|
|
|
WebConfig* _webConfig;
|
2016-06-27 23:56:21 +02:00
|
|
|
Hyperion* _hyperion;
|
2016-06-19 00:56:47 +02:00
|
|
|
};
|