hyperion.ng
BoblightServer.h
1 #pragma once
2 
3 // system includes
4 #include <cstdint>
5 
6 // Qt includes
7 #include <QSet>
8 #include <QJsonDocument>
9 
10 // Hyperion includes
11 #include <utils/Logger.h>
12 #include <utils/Components.h>
13 
14 // settings
15 #include <utils/settings.h>
16 
18 class Hyperion;
19 class QTcpServer;
20 
24 class BoblightServer : public QObject
25 {
26  Q_OBJECT
27 
28 public:
34  BoblightServer(Hyperion* hyperion, const QJsonDocument& config);
35  ~BoblightServer();
36 
40  uint16_t getPort() const;
41 
44  bool active();
45 
46 public slots:
50  void start();
51 
55  void stop();
56 
57  void componentStateChanged(const hyperion::Components component, bool enable);
58 
64  void handleSettingsUpdate(const settings::type& type, const QJsonDocument& config);
65 
66 private slots:
70  void newConnection();
71 
76  void closedConnection(BoblightClientConnection * connection);
77 
78 private:
80  Hyperion * _hyperion;
81 
83  QTcpServer * _server;
84 
86  QSet<BoblightClientConnection *> _openConnections;
87 
89  int _priority;
90 
92  Logger * _log;
93 
94  // current port
95  uint16_t _port;
96 };
Definition: Logger.h:32
bool active()
Definition: BoblightServer.cpp:69
BoblightServer(Hyperion *hyperion, const QJsonDocument &config)
BoblightServer constructor.
Definition: BoblightServer.cpp:15
The main class of Hyperion.
Definition: Hyperion.h:57
uint16_t getPort() const
Definition: BoblightServer.cpp:86
Provide utility methods for Hyperion class.
Definition: BlackBorderDetector.h:7
The Connection object created by BoblightServer when a new connection is establshed.
Definition: BoblightClientConnection.h:18
void start()
bind server to network
Definition: BoblightServer.cpp:40
void stop()
close server
Definition: BoblightServer.cpp:55
Components
Enumeration of components in Hyperion.
Definition: Components.h:10
void handleSettingsUpdate(const settings::type &type, const QJsonDocument &config)
Handle settings update from Hyperion Settingsmanager emit or this constructor.
Definition: BoblightServer.cpp:116
This class creates a TCP server which accepts connections from boblight clients.
Definition: BoblightServer.h:24