fixed command url
This commit is contained in:
parent
e8be8fc7b9
commit
8c06d6cbb3
@ -297,14 +297,15 @@ void Heos::clearQueue(int playerId)
|
||||
|
||||
void Heos::moveQueue(int playerId, int sourcQueueId, int destinationQueueId)
|
||||
{
|
||||
QUrl url("player");
|
||||
url.setScheme("heos");
|
||||
url.setPath("move_queue_item");
|
||||
url.setQuery(QString("pid=%1").arg(playerId));
|
||||
url.setQuery(QString("sqid=%1").arg(sourcQueueId));
|
||||
url.setQuery(QString("dqid=%1").arg(destinationQueueId));
|
||||
qCDebug(dcDenon) << "moving queue:" << url;
|
||||
m_socket->write(url.toEncoded());
|
||||
QByteArray cmd("heos://player/move_queue_item?");
|
||||
QUrlQuery queryParams;
|
||||
queryParams.addQueryItem("pid", QString::number(playerId));
|
||||
queryParams.addQueryItem("sqid", QString::number(sourcQueueId));
|
||||
queryParams.addQueryItem("dqid", QString::number(destinationQueueId));
|
||||
cmd.append(queryParams.toString());
|
||||
cmd.append("\r\n");
|
||||
qCDebug(dcDenon) << "moving queue:" << cmd;
|
||||
m_socket->write(cmd);
|
||||
}
|
||||
|
||||
void Heos::checkForFirmwareUpdate(int playerId)
|
||||
@ -382,49 +383,53 @@ void Heos::browseSource(SOURCE_ID sourceId)
|
||||
|
||||
void Heos::playStation(int playerId, const QString &sourceId, const QString &containerId, const QString &mediaId, const QString &stationName)
|
||||
{
|
||||
QUrl url("browse");
|
||||
url.setScheme("heos");
|
||||
url.setPath("play_stream");
|
||||
url.setQuery(QString("pid=%1").arg(playerId));
|
||||
url.setQuery(QString("sid=%1").arg(sourceId));
|
||||
url.setQuery(QString("cid=%1").arg(containerId));
|
||||
url.setQuery(QString("mid=%1").arg(mediaId));
|
||||
url.setQuery(QString("name=%1").arg(stationName));
|
||||
qCDebug(dcDenon) << "playing url:" << url;
|
||||
m_socket->write(url.toEncoded());
|
||||
QByteArray cmd("heos://browse/play_stream?");
|
||||
QUrlQuery queryParams;
|
||||
queryParams.addQueryItem("pid", QString::number(playerId));
|
||||
queryParams.addQueryItem("sid", sourceId);
|
||||
queryParams.addQueryItem("cid", containerId);
|
||||
queryParams.addQueryItem("mid", mediaId);
|
||||
queryParams.addQueryItem("name", stationName);
|
||||
cmd.append(queryParams.toString());
|
||||
cmd.append("\r\n");
|
||||
qCDebug(dcDenon) << "playing station:" << cmd;
|
||||
m_socket->write(cmd);
|
||||
}
|
||||
|
||||
void Heos::playPresetStation(int playerId, int presetNumber)
|
||||
{
|
||||
QUrl url("browse");
|
||||
url.setScheme("heos");
|
||||
url.setPath("play_preset");
|
||||
url.setQuery(QString("pid=%1").arg(playerId));
|
||||
url.setQuery(QString("preset=%1").arg(presetNumber));
|
||||
qCDebug(dcDenon) << "playing url:" << url;
|
||||
m_socket->write(url.toEncoded());
|
||||
QByteArray cmd("heos://browse/play_preset?");
|
||||
QUrlQuery queryParams;
|
||||
queryParams.addQueryItem("pid", QString::number(playerId));
|
||||
queryParams.addQueryItem("preset", QString::number(presetNumber));
|
||||
cmd.append(queryParams.toString());
|
||||
cmd.append("\r\n");
|
||||
qCDebug(dcDenon) << "playing preset station:" << cmd;
|
||||
m_socket->write(cmd);
|
||||
}
|
||||
|
||||
void Heos::playInputSource(int playerId, const QString &inputName)
|
||||
{
|
||||
QUrl url("browse");
|
||||
url.setScheme("heos");
|
||||
url.setPath("play_input");
|
||||
url.setQuery(QString("pid=%1").arg(playerId));
|
||||
url.setQuery(QString("input=%1").arg(inputName));
|
||||
qCDebug(dcDenon) << "playing url:" << url;
|
||||
m_socket->write(url.toEncoded());
|
||||
QByteArray cmd("heos://browse/play_input?");
|
||||
QUrlQuery queryParams;
|
||||
queryParams.addQueryItem("pid", QString::number(playerId));
|
||||
queryParams.addQueryItem("input", inputName);
|
||||
cmd.append(queryParams.toString());
|
||||
cmd.append("\r\n");
|
||||
qCDebug(dcDenon) << "playing input source:" << cmd;
|
||||
m_socket->write(cmd);
|
||||
}
|
||||
|
||||
void Heos::playUrl(int playerId, const QUrl &mediaUrl)
|
||||
{
|
||||
QUrl url("browse");
|
||||
url.setScheme("heos");
|
||||
url.setPath("play_stream");
|
||||
url.setQuery(QString("pid=%1").arg(playerId));
|
||||
url.setQuery(QString("url=%1").arg(mediaUrl.toString()));
|
||||
qCDebug(dcDenon) << "playing url:" << url;
|
||||
m_socket->write(url.toEncoded());
|
||||
QByteArray cmd("heos://browse/play_stream?");
|
||||
QUrlQuery queryParams;
|
||||
queryParams.addQueryItem("pid", QString::number(playerId));
|
||||
queryParams.addQueryItem("url", mediaUrl.toString());
|
||||
cmd.append(queryParams.toString());
|
||||
cmd.append("\r\n");
|
||||
qCDebug(dcDenon) << "playing url:" << cmd;
|
||||
m_socket->write(cmd);
|
||||
}
|
||||
|
||||
/* This command is used to perform the following actions:
|
||||
|
||||
@ -67,6 +67,7 @@ IntegrationPluginDenon::IntegrationPluginDenon()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void IntegrationPluginDenon::discoverThings(ThingDiscoveryInfo *info)
|
||||
{
|
||||
if (info->thingClassId() == AVRX1000ThingClassId) {
|
||||
@ -306,7 +307,7 @@ void IntegrationPluginDenon::executeAction(ThingActionInfo *info)
|
||||
int playerId = thing->paramValue(heosPlayerThingPlayerIdParamTypeId).toInt();
|
||||
|
||||
if (action.actionTypeId() == heosPlayerAlertActionTypeId) {
|
||||
heos->playUrl(playerId, QUrl("https://downloads.nymea.io/notification-sounds/definite.mp3"));
|
||||
heos->playUrl(playerId, m_notificationUrl);
|
||||
return Device::DeviceErrorNoError;
|
||||
}
|
||||
|
||||
@ -738,3 +739,14 @@ void IntegrationPluginDenon::onAvahiServiceEntryRemoved(const ZeroConfServiceEnt
|
||||
{
|
||||
qCDebug(dcDenon()) << "Avahi service entry removed:" << serviceEntry;
|
||||
}
|
||||
|
||||
void DevicePluginDenon::onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value)
|
||||
{
|
||||
qCDebug(dcDenon()) << "Plugin configuration changed";
|
||||
|
||||
// Check advanced mode
|
||||
if (paramTypeId == denonPluginNotificationUrlParamTypeId) {
|
||||
qCDebug(dcDenon()) << "Advanced mode" << (value.toBool() ? "enabled." : "disabled.");
|
||||
m_notificationUrl = value.toUrl();
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,6 +56,7 @@ class IntegrationPluginDenon : public IntegrationPlugin
|
||||
public:
|
||||
explicit IntegrationPluginDenon();
|
||||
|
||||
void init() override;
|
||||
void discoverThings(ThingDiscoveryInfo *info) override;
|
||||
void setupThing(ThingSetupInfo *info) override;
|
||||
void postSetupThing(Thing *thing) override;
|
||||
@ -75,6 +76,7 @@ private:
|
||||
QHash<int, Thing *> m_playerIds;
|
||||
QHash<int, Thing *> m_discoveredPlayerIds;
|
||||
QHash<const Action *, int> m_asyncActions;
|
||||
QUrl m_notificationUrl;
|
||||
|
||||
|
||||
private slots:
|
||||
@ -98,6 +100,8 @@ private slots:
|
||||
void onAvrMuteChanged(bool mute);
|
||||
void onAvrPowerChanged(bool power);
|
||||
void onAvrSurroundModeChanged(const QByteArray &surroundMode);
|
||||
|
||||
void onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value);
|
||||
};
|
||||
|
||||
#endif // INTEGRATIONPLUGINDENON_H
|
||||
|
||||
@ -2,6 +2,15 @@
|
||||
"displayName": "Denon",
|
||||
"name": "Denon",
|
||||
"id": "cd758269-dbbb-4ef0-80ab-48bd9a8a2765",
|
||||
"paramTypes": [
|
||||
{
|
||||
"id": "5a3cd3eb-8ff5-4110-aef0-7b0608450e60",
|
||||
"name": "notificationUrl",
|
||||
"displayName": "Notification url",
|
||||
"type" : "QString",
|
||||
"defaultValue": "https://downloads.nymea.io/notification-sounds/doorbell.mp3"
|
||||
}
|
||||
],
|
||||
"vendors": [
|
||||
{
|
||||
"id": "cf0a9644-2c13-4daf-85c1-ad88d6745b42",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user