mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-09-18 08:22:33 +02:00
Add json message parser
This commit is contained in:
parent
cd2df404e3
commit
6302f3d1e5
@ -43,13 +43,18 @@ void ScreenPlaySDK::readyRead()
|
||||
{
|
||||
QString tmp = m_socket.data()->readAll();
|
||||
QJsonParseError err;
|
||||
QJsonDocument jdoc = QJsonDocument::fromJson(QByteArray::fromStdString(tmp.toStdString()),&err);
|
||||
auto doc = QJsonDocument::fromJson(QByteArray::fromStdString(tmp.toStdString()),&err);
|
||||
|
||||
if (!(err.error == QJsonParseError::NoError)) {
|
||||
emit incommingMessageError(tmp);
|
||||
emit incommingMessageError(err.errorString());
|
||||
return;
|
||||
}
|
||||
emit incommingMessage(tmp);
|
||||
QJsonObject ob = doc.object();
|
||||
QJsonObject::iterator iterator;
|
||||
for (iterator = ob.begin(); iterator != ob.end(); iterator++) {
|
||||
qDebug() << iterator.key() << ob.value(iterator.key()).toString();
|
||||
emit incommingMessage(iterator.key(), ob.value(iterator.key()).toString());
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenPlaySDK::error(QLocalSocket::LocalSocketError socketError)
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include <QJsonParseError>
|
||||
#include <QByteArray>
|
||||
#include <QTimer>
|
||||
#include <QJsonObject>
|
||||
|
||||
class ScreenPlaySDK : public QQuickItem
|
||||
{
|
||||
@ -22,6 +23,8 @@ public:
|
||||
|
||||
Q_PROPERTY(QString contentType READ contentType WRITE setContentType NOTIFY contentTypeChanged)
|
||||
Q_PROPERTY(bool isConnected READ isConnected WRITE setIsConnected NOTIFY isConnectedChanged)
|
||||
Q_PROPERTY(QString appID READ appID WRITE setAppID NOTIFY appIDChanged)
|
||||
|
||||
QString contentType() const
|
||||
{
|
||||
return m_contentType;
|
||||
@ -32,6 +35,12 @@ public:
|
||||
return m_isConnected;
|
||||
}
|
||||
|
||||
|
||||
QString appID() const
|
||||
{
|
||||
return m_appID;
|
||||
}
|
||||
|
||||
public slots:
|
||||
void connected();
|
||||
void disconnected();
|
||||
@ -63,8 +72,19 @@ public slots:
|
||||
emit isConnectedChanged(m_isConnected);
|
||||
}
|
||||
|
||||
void setAppID(QString appID)
|
||||
{
|
||||
if (m_appID == appID)
|
||||
return;
|
||||
|
||||
m_appID = appID;
|
||||
emit appIDChanged(m_appID);
|
||||
m_socket.data()->write(QByteArray(appID.toUtf8()));
|
||||
m_socket.data()->waitForBytesWritten();
|
||||
}
|
||||
|
||||
signals:
|
||||
void incommingMessage(QString msg);
|
||||
void incommingMessage(QString key, QString value);
|
||||
void incommingMessageError(QString msg);
|
||||
|
||||
|
||||
@ -73,13 +93,16 @@ signals:
|
||||
void sdkSocketError(QString type);
|
||||
|
||||
void contentTypeChanged(QString contentType);
|
||||
|
||||
void isConnectedChanged(bool isConnected);
|
||||
|
||||
void appIDChanged(QString appID);
|
||||
|
||||
private:
|
||||
QSharedPointer<QLocalSocket> m_socket;
|
||||
|
||||
QString m_contentType = "undefined";
|
||||
bool m_isConnected = false;
|
||||
|
||||
QString m_appID;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user