68 lines
2.1 KiB
C++
68 lines
2.1 KiB
C++
#ifndef CONNECTIONMANAGER_H
|
|
#define CONNECTIONMANAGER_H
|
|
|
|
#include <QJsonObject>
|
|
#include <QObject>
|
|
#include <QString>
|
|
#include <QWebSocket>
|
|
#include "BasePlugin.h"
|
|
#include "SDKDefines.h"
|
|
|
|
class ConnectionManager : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
ConnectionManager(int inPort,
|
|
const QString &inPluginUUID,
|
|
const QString &inRegisterEvent,
|
|
const QString &inInfo,
|
|
BasePlugin *inPlugin,
|
|
QObject *parent = nullptr);
|
|
~ConnectionManager();
|
|
|
|
// API to communicate with the Stream Dock application
|
|
void SetTitle(const QString &inTitle,
|
|
const QString &inContext,
|
|
mSDKTarget inTarget,
|
|
int state = -1);
|
|
void SetImage(const QString &inBase64ImageString,
|
|
const QString &inContext,
|
|
mSDKTarget inTarget,
|
|
int state = -1);
|
|
void ShowAlertForContext(const QString &inContext);
|
|
void ShowOKForContext(const QString &inContext);
|
|
void SetSettings(const QJsonObject &inPayload,
|
|
const QString &inContext);
|
|
void GetGlobalSettings();
|
|
void SetGlobalSettings(const QJsonObject &inPayload);
|
|
void SetState(int inState, const QString &inContext);
|
|
void SendToPropertyInspector(const QString &inAction,
|
|
const QString &inContext,
|
|
const QJsonObject &inPayload);
|
|
void SwitchToProfile(const QString &inDeviceID,
|
|
const QString &inProfileName);
|
|
void LogMessage(const QString &inMessage);
|
|
|
|
// Run
|
|
void Run();
|
|
|
|
private:
|
|
// Websocket callbacks
|
|
void OnConnected();
|
|
void OnDisonnected();
|
|
void OnError(QAbstractSocket::SocketError error);
|
|
void OnMessage(const QString &message);
|
|
// Send websocket message
|
|
void SendMessage(const QString &message);
|
|
|
|
// Member variables
|
|
int mPort = 0;
|
|
QString mPluginUUID;
|
|
QString mRegisterEvent;
|
|
BasePlugin *mPlugin = nullptr;
|
|
QWebSocket *mWebsocketClient = nullptr;
|
|
};
|
|
|
|
#endif // CONNECTIONMANAGER_H
|