#pragma once #include #ifdef ENABLE_DISPMANX #include #else typedef QObject DispmanxWrapper; #endif #ifdef ENABLE_V4L2 #include #else typedef QObject V4L2Wrapper; #endif #ifdef ENABLE_FB #include #else typedef QObject FramebufferWrapper; #endif #ifdef ENABLE_AMLOGIC #include #else typedef QObject AmlogicWrapper; #endif #ifdef ENABLE_OSX #include #else typedef QObject OsxWrapper; #endif #include #include #include #include #include #include class HyperionDaemon : public QObject { public: HyperionDaemon(std::string configFile, QObject *parent=nullptr); ~HyperionDaemon(); void loadConfig(const std::string & configFile); void run(); void startBootsequence(); void createXBMCVideoChecker(); void startNetworkServices(); // grabber creators void createGrabberDispmanx(); void createGrabberV4L2(); void createGrabberAmlogic(); void createGrabberFramebuffer(); void createGrabberOsx(); private: Logger* _log; Json::Value _config; XBMCVideoChecker* _xbmcVideoChecker; JsonServer* _jsonServer; ProtoServer* _protoServer; BoblightServer* _boblightServer; V4L2Wrapper* _v4l2Grabber; DispmanxWrapper* _dispmanx; AmlogicWrapper* _amlGrabber; FramebufferWrapper* _fbGrabber; OsxWrapper* _osxGrabber; WebConfig* _webConfig; };