From 0fc335af515e0f544f5d66ec39514ebae2ec36df Mon Sep 17 00:00:00 2001 From: "bernhard.trinnes" Date: Wed, 3 Jun 2020 19:13:14 +0200 Subject: [PATCH] added mediaplayer interface --- bluos/bluos.cpp | 37 +++++++++++++++++++------------ bluos/bluos.pro | 2 -- bluos/integrationpluginbluos.json | 14 +++++++++++- 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/bluos/bluos.cpp b/bluos/bluos.cpp index 33838bbc..eea5df2d 100644 --- a/bluos/bluos.cpp +++ b/bluos/bluos.cpp @@ -63,10 +63,9 @@ void BluOS::getStatus() url.setPort(m_port); url.setPath("/Status"); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [reply, this] { - reply->deleteLater(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); - // Check HTTP status code if (status != 200 || reply->error() != QNetworkReply::NoError) { if (reply->error() == QNetworkReply::HostNotFoundError) { @@ -98,8 +97,9 @@ QUuid BluOS::setVolume(uint volume) url.setPath("/Volume"); url.setQuery(query); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -150,8 +150,9 @@ QUuid BluOS::setMute(bool mute) url.setQuery(query); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -204,8 +205,9 @@ QUuid BluOS::setShuffle(bool shuffle) query.addQueryItem("state", QString::number(shuffle)); url.setQuery(query); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -250,8 +252,9 @@ QUuid BluOS::setRepeat(RepeatMode repeatMode) query.addQueryItem("state", QString::number(repeatMode)); url.setQuery(query); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -295,8 +298,9 @@ QUuid BluOS::listPresets() url.setPort(m_port); url.setPath("/Presets"); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -342,7 +346,6 @@ QUuid BluOS::listPresets() } emit presetsReceived(requestId, presetList); }); - return requestId; } @@ -360,8 +363,9 @@ QUuid BluOS::loadPreset(int preset) url.setQuery(query); qCDebug(dcBluOS()) << "Loading preset" << url.toString(); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -389,8 +393,9 @@ QUuid BluOS::getSources() url.setPort(m_port); url.setPath("/Browse"); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -454,8 +459,9 @@ QUuid BluOS::browseSource(const QString &key) query.addQueryItem("key", key); url.setQuery(query); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -522,8 +528,9 @@ QUuid BluOS::addGroupPlayer(QHostAddress address, int port) query.addQueryItem("port", QString::number(port)); url.setQuery(query); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -556,8 +563,9 @@ QUuid BluOS::removeGroupPlayer(QHostAddress address, int port) query.addQueryItem("port", QString::number(port)); url.setQuery(query); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code @@ -607,8 +615,9 @@ QUuid BluOS::playBackControl(BluOS::PlaybackCommand command) request.setUrl(url); QNetworkReply *reply = m_networkManager->get(request); qCDebug(dcBluOS()) << "Sending request" << request.url(); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { - reply->deleteLater(); + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); // Check HTTP status code diff --git a/bluos/bluos.pro b/bluos/bluos.pro index a878a4c7..4297114e 100644 --- a/bluos/bluos.pro +++ b/bluos/bluos.pro @@ -2,8 +2,6 @@ include(../plugins.pri) QT += network -TARGET = $$qtLibraryTarget(nymea_integrationpluginbluos) - SOURCES += \ integrationpluginbluos.cpp \ bluos.cpp \ diff --git a/bluos/integrationpluginbluos.json b/bluos/integrationpluginbluos.json index 3d946475..f9debc8f 100644 --- a/bluos/integrationpluginbluos.json +++ b/bluos/integrationpluginbluos.json @@ -13,7 +13,7 @@ "name": "bluosPlayer", "displayName": "BluOS player", "createMethods": ["discovery"], - "interfaces": ["extendedvolumecontroller", "mediametadataprovider", "shufflerepeat", "connectable"], + "interfaces": ["mediaplayer", "extendedvolumecontroller", "mediametadataprovider", "shufflerepeat", "connectable"], "browsable": true, "paramTypes":[ { @@ -150,6 +150,18 @@ "displayNameEvent": "Group changed", "type": "QString", "defaultValue": "" + }, + { + "id": "e5222e93-fa14-49de-950f-2f605ce8927b", + "name": "playerType", + "displayName": "Player type", + "displayNameEvent": "Player type changed", + "possibleValues": [ + "audio", + "video" + ], + "type": "QString", + "defaultValue": "audio" } ], "actionTypes": [