hyperion.ng/include/hyperion/MessageForwarder.h

55 lines
1.2 KiB
C
Raw Normal View History

#pragma once
// STL includes
#include <vector>
#include <map>
#include <cstdint>
#include <limits>
// QT includes
#include <QList>
#include <QStringList>
#include <QHostAddress>
2018-12-27 23:11:32 +01:00
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
// Utils includes
#include <utils/ColorRgb.h>
2018-12-27 23:11:32 +01:00
#include <utils/settings.h>
#include <utils/Logger.h>
class Hyperion;
class MessageForwarder : public QObject
{
2018-12-27 23:11:32 +01:00
Q_OBJECT
public:
2018-12-27 23:11:32 +01:00
MessageForwarder(Hyperion* hyperion, const QJsonDocument & config);
~MessageForwarder();
2018-12-27 23:11:32 +01:00
void addJsonSlave(QString slave);
void addProtoSlave(QString slave);
bool protoForwardingEnabled();
bool jsonForwardingEnabled();
bool forwardingEnabled() { return jsonForwardingEnabled() || protoForwardingEnabled(); };
2018-12-27 23:11:32 +01:00
QStringList getProtoSlaves() const { return _protoSlaves; };
QStringList getJsonSlaves() const { return _jsonSlaves; };
private slots:
///
/// @brief Handle settings update from Hyperion Settingsmanager emit or this constructor
/// @param type settingyType from enum
/// @param config configuration object
///
void handleSettingsUpdate(const settings::type& type, const QJsonDocument& config);
private:
2018-12-27 23:11:32 +01:00
Hyperion* _hyperion;
Logger* _log;
QStringList _protoSlaves;
QStringList _jsonSlaves;
};