added mediaplayer interface

This commit is contained in:
bernhard.trinnes 2020-06-03 19:13:14 +02:00
parent 365f7f477b
commit 0fc335af51
3 changed files with 36 additions and 17 deletions

View File

@ -63,10 +63,9 @@ void BluOS::getStatus()
url.setPort(m_port); url.setPort(m_port);
url.setPath("/Status"); url.setPath("/Status");
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [reply, this] { connect(reply, &QNetworkReply::finished, this, [reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
if (status != 200 || reply->error() != QNetworkReply::NoError) { if (status != 200 || reply->error() != QNetworkReply::NoError) {
if (reply->error() == QNetworkReply::HostNotFoundError) { if (reply->error() == QNetworkReply::HostNotFoundError) {
@ -98,8 +97,9 @@ QUuid BluOS::setVolume(uint volume)
url.setPath("/Volume"); url.setPath("/Volume");
url.setQuery(query); url.setQuery(query);
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -150,8 +150,9 @@ QUuid BluOS::setMute(bool mute)
url.setQuery(query); url.setQuery(query);
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -204,8 +205,9 @@ QUuid BluOS::setShuffle(bool shuffle)
query.addQueryItem("state", QString::number(shuffle)); query.addQueryItem("state", QString::number(shuffle));
url.setQuery(query); url.setQuery(query);
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -250,8 +252,9 @@ QUuid BluOS::setRepeat(RepeatMode repeatMode)
query.addQueryItem("state", QString::number(repeatMode)); query.addQueryItem("state", QString::number(repeatMode));
url.setQuery(query); url.setQuery(query);
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -295,8 +298,9 @@ QUuid BluOS::listPresets()
url.setPort(m_port); url.setPort(m_port);
url.setPath("/Presets"); url.setPath("/Presets");
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -342,7 +346,6 @@ QUuid BluOS::listPresets()
} }
emit presetsReceived(requestId, presetList); emit presetsReceived(requestId, presetList);
}); });
return requestId; return requestId;
} }
@ -360,8 +363,9 @@ QUuid BluOS::loadPreset(int preset)
url.setQuery(query); url.setQuery(query);
qCDebug(dcBluOS()) << "Loading preset" << url.toString(); qCDebug(dcBluOS()) << "Loading preset" << url.toString();
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -389,8 +393,9 @@ QUuid BluOS::getSources()
url.setPort(m_port); url.setPort(m_port);
url.setPath("/Browse"); url.setPath("/Browse");
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -454,8 +459,9 @@ QUuid BluOS::browseSource(const QString &key)
query.addQueryItem("key", key); query.addQueryItem("key", key);
url.setQuery(query); url.setQuery(query);
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -522,8 +528,9 @@ QUuid BluOS::addGroupPlayer(QHostAddress address, int port)
query.addQueryItem("port", QString::number(port)); query.addQueryItem("port", QString::number(port));
url.setQuery(query); url.setQuery(query);
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [reply, this] { connect(reply, &QNetworkReply::finished, this, [reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -556,8 +563,9 @@ QUuid BluOS::removeGroupPlayer(QHostAddress address, int port)
query.addQueryItem("port", QString::number(port)); query.addQueryItem("port", QString::number(port));
url.setQuery(query); url.setQuery(query);
QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url)); QNetworkReply *reply = m_networkManager->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [reply, this] { connect(reply, &QNetworkReply::finished, this, [reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code
@ -607,8 +615,9 @@ QUuid BluOS::playBackControl(BluOS::PlaybackCommand command)
request.setUrl(url); request.setUrl(url);
QNetworkReply *reply = m_networkManager->get(request); QNetworkReply *reply = m_networkManager->get(request);
qCDebug(dcBluOS()) << "Sending request" << request.url(); qCDebug(dcBluOS()) << "Sending request" << request.url();
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] { connect(reply, &QNetworkReply::finished, this, [requestId, reply, this] {
reply->deleteLater();
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
// Check HTTP status code // Check HTTP status code

View File

@ -2,8 +2,6 @@ include(../plugins.pri)
QT += network QT += network
TARGET = $$qtLibraryTarget(nymea_integrationpluginbluos)
SOURCES += \ SOURCES += \
integrationpluginbluos.cpp \ integrationpluginbluos.cpp \
bluos.cpp \ bluos.cpp \

View File

@ -13,7 +13,7 @@
"name": "bluosPlayer", "name": "bluosPlayer",
"displayName": "BluOS player", "displayName": "BluOS player",
"createMethods": ["discovery"], "createMethods": ["discovery"],
"interfaces": ["extendedvolumecontroller", "mediametadataprovider", "shufflerepeat", "connectable"], "interfaces": ["mediaplayer", "extendedvolumecontroller", "mediametadataprovider", "shufflerepeat", "connectable"],
"browsable": true, "browsable": true,
"paramTypes":[ "paramTypes":[
{ {
@ -150,6 +150,18 @@
"displayNameEvent": "Group changed", "displayNameEvent": "Group changed",
"type": "QString", "type": "QString",
"defaultValue": "" "defaultValue": ""
},
{
"id": "e5222e93-fa14-49de-950f-2f605ce8927b",
"name": "playerType",
"displayName": "Player type",
"displayNameEvent": "Player type changed",
"possibleValues": [
"audio",
"video"
],
"type": "QString",
"defaultValue": "audio"
} }
], ],
"actionTypes": [ "actionTypes": [