-
Notifications
You must be signed in to change notification settings - Fork 0
/
RemoteController.cpp
41 lines (35 loc) · 1.02 KB
/
RemoteController.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "RemoteController.h"
#include "WebSocketServer.h"
#include "Logger.h"
#include "Kromophone.h"
#include "Settings.h"
#include <QJsonDocument>
#include <QColor>
RemoteController::RemoteController(QObject *parent)
: MessageProcessor(parent),
socket(nullptr)
{
Kromophone* app = qobject_cast<Kromophone*>(parent);
connect(this, SIGNAL(colorChanged(Color)), app, SLOT(onColorChanged(Color)));
}
void RemoteController::connectTo(const QString &address)
{
if (socket != nullptr)
{
socket->deleteLater();
}
socket = new QWebSocket(QStringLiteral("Kromophone"), QWebSocketProtocol::VersionLatest, this);
connectSignals(socket);
QUrl url;
url.setScheme("ws");
url.setHost(address);
url.setPort(WebSocketServer::Port);
url.setPath("/");
LOG_INFO() << "Connecting to: " << url;
socket->open(url);
}
void RemoteController::sendMessage(const QVariantMap& message)
{
QByteArray json = QJsonDocument::fromVariant(message).toJson();
socket->sendTextMessage(json);
}