Merge PR #271: Denon Plug-in: Fixed discovery and added async actions

This commit is contained in:
Jenkins nymea 2020-06-09 18:19:23 +02:00
commit 68ad86244d
7 changed files with 1550 additions and 594 deletions

View File

@ -1,4 +1,4 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* Copyright 2013 - 2020, nymea GmbH
* Contact: contact@nymea.io
@ -43,6 +43,23 @@ AvrConnection::AvrConnection(const QHostAddress &hostAddress, const int &port, Q
connect(m_socket, &QTcpSocket::readyRead, this, &AvrConnection::readData);
// Note: error signal will be interpreted as function, not as signal in C++11
connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError)));
m_commandTimer = new QTimer(this);
m_commandTimer->start(50); // 50ms is the minimum request interval specified
connect(m_commandTimer, &QTimer::timeout, this, [this] {
if (!m_commandBuffer.isEmpty()) {
QPair<QUuid, QByteArray> command = m_commandBuffer.takeFirst();
if (m_socket->write(command.second) == -1) {
emit commandExecuted(command.first, false);
qCWarning(dcDenon()) << "Could not execute command" << command.second;
} else {
emit commandExecuted(command.first, true);
}
} else {
m_commandTimer->stop();
}
});
}
AvrConnection::~AvrConnection()
@ -68,66 +85,90 @@ QHostAddress AvrConnection::hostAddress() const
return m_hostAddress;
}
void AvrConnection::setHostAddress(const QHostAddress &hostAddress)
{
if (m_hostAddress != hostAddress) {
disconnectDevice();
m_hostAddress = hostAddress;
connectDevice();
}
}
int AvrConnection::port() const
{
return m_port;
}
void AvrConnection::setPort(int port)
{
if (m_port != port) {
disconnectDevice();
m_port = port;
connectDevice();
}
}
bool AvrConnection::connected()
{
return m_socket->isOpen();
}
void AvrConnection::getAllStatus()
QUuid AvrConnection::getChannel()
{
sendCommand("PW?\rSI?\rMV?\rMS?\rMU?\r");
return sendCommand("SI?\r");
}
void AvrConnection::getChannel()
QUuid AvrConnection::getVolume()
{
sendCommand("SI?\r");
return sendCommand("MV?\r");
}
void AvrConnection::getVolume()
QUuid AvrConnection::getMute()
{
sendCommand("MV?\r");
return sendCommand("MU?\r");
}
void AvrConnection::getMute()
QUuid AvrConnection::getPower()
{
sendCommand("MU?\r");
return sendCommand("PW?\r");
}
void AvrConnection::getPower()
QUuid AvrConnection::getSurroundMode()
{
sendCommand("PW?\r");
return sendCommand("MS?\r");
}
void AvrConnection::getSurroundMode()
QUuid AvrConnection::getPlayBackInfo()
{
sendCommand("MS?\r");
return sendCommand("NSE\r");
}
void AvrConnection::sendCommand(const QByteArray &message)
QUuid AvrConnection::sendCommand(const QByteArray &message)
{
m_socket->write(message);
QUuid commandId = QUuid::createUuid();
if (!m_commandTimer->isActive())
m_commandTimer->start(50);
m_commandBuffer.append(QPair<QUuid, QByteArray>(commandId, message));
return commandId;
}
void AvrConnection::setChannel(const QByteArray &channel)
QUuid AvrConnection::setChannel(const QByteArray &channel)
{
QByteArray cmd = "SI" + channel + "\r";
qCDebug(dcDenon) << "Change to channel:" << cmd;
sendCommand(cmd);
qCDebug(dcDenon) << "Change to channel:" << channel;
return sendCommand(cmd);
}
void AvrConnection::setVolume(int volume)
QUuid AvrConnection::setVolume(int volume)
{
qCDebug(dcDenon) << "Set volume" << volume;
QByteArray cmd = "MV" + QByteArray::number(volume) + "\r";
sendCommand(cmd);
return sendCommand(cmd);
}
void AvrConnection::setMute(bool mute)
QUuid AvrConnection::setMute(bool mute)
{
qCDebug(dcDenon) << "Set mute" << mute;
QByteArray cmd;
@ -136,10 +177,10 @@ void AvrConnection::setMute(bool mute)
} else {
cmd = "MUOFF\r";
}
sendCommand(cmd);
return sendCommand(cmd);
}
void AvrConnection::setPower(bool power)
QUuid AvrConnection::setPower(bool power)
{
qCDebug(dcDenon) << "Set power" << power;
QByteArray cmd;
@ -148,28 +189,125 @@ void AvrConnection::setPower(bool power)
} else {
cmd = "PWSTANDBY\r";
}
sendCommand(cmd);
return sendCommand(cmd);
}
void AvrConnection::setSurroundMode(const QByteArray &surroundMode)
QUuid AvrConnection::setSurroundMode(const QByteArray &surroundMode)
{
qCDebug(dcDenon) << "Set surround mode" << surroundMode;
QByteArray cmd = "MS" + surroundMode + "\r";
sendCommand(cmd);
return sendCommand(cmd);
}
void AvrConnection::increaseVolume()
QUuid AvrConnection::enableToneControl(bool enabled)
{
QByteArray cmd;
if (enabled) {
cmd = "PSTONE CTRL ON\r";
} else {
cmd = "PSTONE CTRL OFF\r";
}
return sendCommand(cmd);
}
QUuid AvrConnection::setBassLevel(int level)
{
QByteArray cmd;
cmd = "PSBAS ";
cmd.append(50 + level);
cmd.append("\r");
return sendCommand(cmd);
}
QUuid AvrConnection::setTrebleLevel(int level)
{
QByteArray cmd;
cmd = "PSTRE ";
cmd.append(50 + level);
cmd.append("\r");
return sendCommand(cmd);
}
QUuid AvrConnection::getBassLevel()
{
return sendCommand("PSBAS ?\r");
}
QUuid AvrConnection::getTrebleLevel()
{
return sendCommand("PSTRE ?\r");
}
QUuid AvrConnection::getToneControl()
{
return sendCommand("PSTONE CTRL ?\r");
}
QUuid AvrConnection::play()
{
return sendCommand("NS9A\r");
}
QUuid AvrConnection::pause()
{
return sendCommand("NS9B\r");
}
QUuid AvrConnection::stop()
{
return sendCommand("NS9C\r");
}
QUuid AvrConnection::skipNext()
{
return sendCommand("NS9D\r");
}
QUuid AvrConnection::skipBack()
{
return sendCommand("NS9E\r");
}
QUuid AvrConnection::setRandom(bool on)
{
QByteArray cmd;
if (on) {
cmd = "NS9K\r";
} else {
cmd = "NS9M\r";
}
return sendCommand(cmd);
}
QUuid AvrConnection::setRepeat(AvrConnection::RepeatMode mode)
{
QByteArray cmd;
switch (mode) {
case RepeatModeRepeatAll:
cmd = "NS9I\r";
break;
case RepeatModeRepeatOne:
cmd = "NS9H\r";
break;
case RepeatModeRepeatNone:
cmd = "NS9J\r";
break;
}
return sendCommand(cmd);
}
QUuid AvrConnection::increaseVolume()
{
qCDebug(dcDenon) << "Execute volume increase";
QByteArray cmd = "MVUP\r";
sendCommand(cmd);
return sendCommand(cmd);
}
void AvrConnection::decreaseVolume()
QUuid AvrConnection::decreaseVolume()
{
qCDebug(dcDenon) << "Execute volume decrease";
QByteArray cmd = "MVDOWN\r";
sendCommand(cmd);
return sendCommand(cmd);
}
void AvrConnection::onConnected()
@ -192,77 +330,112 @@ void AvrConnection::onError(QAbstractSocket::SocketError socketError)
void AvrConnection::readData()
{
QByteArray data = m_socket->readAll();
qCDebug(dcDenon) << "Data received" << data;
QString data = QString(m_socket->readAll());
if (data.contains("MV") && !data.contains("MAX")){
int index = data.indexOf("MV");
int volume = data.mid(index+2, 2).toInt();
emit volumeChanged(volume);
}
QStringList lines = data.split('\r');
foreach (QString line, lines) {
if(line.isEmpty())
continue;
if (data.left(2).contains("SI")) {
QByteArray cmd;
if (data.contains("TUNER")) {
cmd = "TUNER";
} else if (data.contains("DVD")) {
cmd = "DVD";
} else if (data.contains("BD")) {
cmd = "BD";
} else if (data.contains("TV")) {
cmd = "TV";
} else if (data.contains("SAT/CBL")) {
cmd = "SAT/CBL";
} else if (data.contains("MPLAY")) {
cmd = "MPLAY";
} else if (data.contains("GAME")) {
cmd = "GAME";
} else if (data.contains("AUX1")) {
cmd = "AUX1";
} else if (data.contains("NET")) {
cmd = "NET";
} else if (data.contains("PANDORA")) {
cmd = "PANDORA";
} else if (data.contains("SIRIUSXM")) {
cmd = "SIRIUSXM";
} else if (data.contains("SPOTIFY")) {
cmd = "SPOTIFY";
} else if (data.contains("FLICKR")) {
cmd = "FLICKR";
} else if (data.contains("FAVORITES")) {
cmd = "FAVORITES";
} else if (data.contains("IRADIO")) {
cmd = "IRADIO";
} else if (data.contains("SERVER")) {
cmd = "SERVER";
} else if (data.contains("USB/IPOD")) {
cmd = "USB/IPOD";
} else if (data.contains("IPD")) {
cmd = "IPD";
} else if (data.contains("IRP")) {
cmd = "IRP";
} else if (data.contains("FVP")) {
cmd = "FVP";
qCDebug(dcDenon) << "Data received" << line;
if (line.contains("MV") && !data.contains("MAX")){
int index = data.indexOf("MV");
int volume = data.mid(index+2, 2).toInt();
emit volumeChanged(volume);
} else if (line.left(2).contains("SI")) {
QByteArray cmd;
if (data.contains("TUNER")) {
cmd = "TUNER";
} else if (data.contains("DVD")) {
cmd = "DVD";
} else if (data.contains("BD")) {
cmd = "BD";
} else if (data.contains("TV")) {
cmd = "TV";
} else if (data.contains("SAT/CBL")) {
cmd = "SAT/CBL";
} else if (data.contains("MPLAY")) {
cmd = "MPLAY";
} else if (data.contains("GAME")) {
cmd = "GAME";
} else if (data.contains("AUX1")) {
cmd = "AUX1";
} else if (data.contains("NET")) {
cmd = "NET";
} else if (data.contains("PANDORA")) {
cmd = "PANDORA";
} else if (data.contains("SIRIUSXM")) {
cmd = "SIRIUSXM";
} else if (data.contains("SPOTIFY")) {
cmd = "SPOTIFY";
} else if (data.contains("FLICKR")) {
cmd = "FLICKR";
} else if (data.contains("FAVORITES")) {
cmd = "FAVORITES";
} else if (data.contains("IRADIO")) {
cmd = "IRADIO";
} else if (data.contains("SERVER")) {
cmd = "SERVER";
} else if (data.contains("USB/IPOD")) {
cmd = "USB/IPOD";
} else if (data.contains("IPD")) {
cmd = "IPD";
} else if (data.contains("IRP")) {
cmd = "IRP";
} else if (data.contains("FVP")) {
cmd = "FVP";
}
emit channelChanged(cmd);
} else if (data.contains("PWON")) {
emit powerChanged(true);
} else if (data.contains("PWSTANDBY")) {
emit powerChanged(false);
} else if (data.contains("MUON")) {
emit muteChanged(true);
} else if (data.contains("MUOFF")) {
emit muteChanged(false);
} else if (data.left(2).contains("MS")) {
QString surroundMode = data.remove(0, 2).trimmed();
qCDebug(dcDenon()) << "Surround mode changed" << surroundMode;
emit surroundModeChanged(surroundMode);
} else if (data.left(4).contains("NSE0")) {
QString nowPlaying = QString(data).remove(0, 4).trimmed();
qCDebug(dcDenon()) << "Playbackstatus" << nowPlaying;
if (nowPlaying.contains("Now Playing")) {
emit playBackModeChanged(PlayBackMode::PlayBackModePlaying);
} else {
emit playBackModeChanged(PlayBackMode::PlayBackModeStopped);
}
} else if (data.left(4).contains("NSE1")) {
QString song = QString(data).remove(0, 5).trimmed();
qCDebug(dcDenon()) << "Song" << song;
emit songChanged(song);
} else if (data.left(4).contains("NSE2")) {
QString artist = QString(data).remove(0, 5).trimmed();
qCDebug(dcDenon()) << "Artist" << artist;
emit artistChanged(artist);
} else if (data.left(4).contains("NSE4")) {
QString album = QString(data).remove(0, 5).trimmed();
qCDebug(dcDenon()) << "Album" << album;
emit albumChanged(album);
} else if (data.contains("PSTONE CTRL ON")) {
qCDebug(dcDenon()) << "Tone control is on";
emit toneControlEnabledChanged(true);
} else if (data.contains("PSTONE CTRL OFF")) {
qCDebug(dcDenon()) << "Tone control is off";
emit toneControlEnabledChanged(false);
} else if (data.contains("PSBAS")) {
int index = data.indexOf("PSBAS");
int bass = data.mid(index+6, 2).toInt() - 50;
qCDebug(dcDenon()) << "Bass level" << bass;
emit bassLevelChanged(bass);
} else if (data.contains("PSTRE")) {
int index = data.indexOf("PSTRE");
int treble = data.mid(index+6, 2).toInt() - 50;
qCDebug(dcDenon()) << "Treble level" << treble;
emit trebleLevelChanged(treble);
}
emit channelChanged(cmd);
}
if (data.contains("PWON")) {
emit powerChanged(true);
}
if (data.contains("PWSTANDBY")) {
emit powerChanged(false);
}
if (data.contains("MUON")) {
emit muteChanged(false);
}
if (data.contains("MUOFF")) {
emit muteChanged(false);
}
if (data.left(2).contains("MS")) {
data.remove(0, 2);
QByteArray cmd = data;
emit surroundModeChanged(cmd);
}
}

View File

@ -34,11 +34,25 @@
#include <QObject>
#include <QTcpSocket>
#include <QHostAddress>
#include <QTimer>
#include <QUuid>
class AvrConnection : public QObject
{
Q_OBJECT
public:
enum RepeatMode {
RepeatModeRepeatAll,
RepeatModeRepeatOne,
RepeatModeRepeatNone
};
enum PlayBackMode {
PlayBackModePlaying,
PlayBackModeStopped,
PlayBackModePaused
};
explicit AvrConnection(const QHostAddress &hostAddress, const int &port = 23, QObject *parent = nullptr);
~AvrConnection();
@ -46,30 +60,49 @@ public:
void disconnectDevice();
QHostAddress hostAddress() const;
void setHostAddress(const QHostAddress &hostAddress);
int port() const;
void setPort(int port);
bool connected();
void getAllStatus();
void getChannel();
void getVolume();
void getMute();
void getPower();
void getSurroundMode();
QUuid getChannel();
QUuid getVolume();
QUuid getMute();
QUuid getPower();
QUuid getSurroundMode();
QUuid getPlayBackInfo();
void setChannel(const QByteArray &channel);
void setVolume(int volume);
void setMute(bool mute);
void setPower(bool power);
void setSurroundMode(const QByteArray &surroundMode);
QUuid setChannel(const QByteArray &channel);
QUuid setVolume(int volume);
QUuid setMute(bool mute);
QUuid setPower(bool power);
QUuid setSurroundMode(const QByteArray &surroundMode);
QUuid enableToneControl(bool enabled);
QUuid setBassLevel(int level); //-6 to +6
QUuid setTrebleLevel(int level); //-6 to +6
void increaseVolume();
void decreaseVolume();
QUuid getBassLevel();
QUuid getTrebleLevel();
QUuid getToneControl();
QUuid play();
QUuid pause();
QUuid stop();
QUuid skipNext();
QUuid skipBack();
QUuid setRandom(bool on);
QUuid setRepeat(RepeatMode mode);
QUuid increaseVolume();
QUuid decreaseVolume();
private:
QTimer *m_commandTimer = nullptr;
QTcpSocket *m_socket = nullptr;
QHostAddress m_hostAddress;
int m_port;
QList<QPair<QUuid, QByteArray>> m_commandBuffer;
void sendCommand(const QByteArray &message);
QUuid sendCommand(const QByteArray &message);
private slots:
void onConnected();
@ -80,11 +113,19 @@ private slots:
signals:
void socketErrorOccured(QAbstractSocket::SocketError socketError);
void connectionStatusChanged(bool status);
void commandExecuted(const QUuid &commandId, bool success);
void volumeChanged(int volume);
void muteChanged(bool mute);
void channelChanged(const QByteArray &channel);
void channelChanged(const QString &channel);
void powerChanged(bool power);
void surroundModeChanged(const QByteArray &surroundMode);
void surroundModeChanged(const QString &surroundMode);
void songChanged(const QString &song);
void artistChanged(const QString &artist);
void albumChanged(const QString &album);
void playBackModeChanged(AvrConnection::PlayBackMode);
void bassLevelChanged(int level);
void trebleLevelChanged(int level);
void toneControlEnabledChanged(bool enabled);
};
#endif // AVRCONNECTION_H

View File

@ -53,51 +53,63 @@ void IntegrationPluginDenon::init()
{
m_notificationUrl = QUrl(configValue(denonPluginNotificationUrlParamTypeId).toString());
connect(this, &IntegrationPluginDenon::configValueChanged, this, &IntegrationPluginDenon::onPluginConfigurationChanged);
m_serviceBrowser = hardwareManager()->zeroConfController()->createServiceBrowser();
connect(m_serviceBrowser, &ZeroConfServiceBrowser::serviceEntryAdded, this, [=](const ZeroConfServiceEntry &entry){
foreach (Thing *thing, myThings().filterByThingClassId(AVRX1000ThingClassId)) {
if (entry.txt().contains("am=AVRX1000")) {
QString existingId = thing->paramValue(AVRX1000ThingIdParamTypeId).toString();
QString discoveredId = entry.name().split("@").first();
QHostAddress address = entry.hostAddress();
if (existingId == discoveredId && m_avrConnections.contains(thing->id())) {
AvrConnection *avrConnection = m_avrConnections.value(thing->id());
avrConnection->setHostAddress(address);
}
}
}
});
}
void IntegrationPluginDenon::discoverThings(ThingDiscoveryInfo *info)
{
if (info->thingClassId() == AVRX1000ThingClassId) {
if (!hardwareManager()->zeroConfController()->available() || !hardwareManager()->zeroConfController()->enabled()) {
//: Error discovering Denon things
info->finish(Thing::ThingErrorHardwareNotAvailable, QT_TR_NOOP("Thing discovery is not available."));
if (!hardwareManager()->zeroConfController()->available()) {
qCDebug(dcDenon()) << "Error discovering Denon things. Available:" << hardwareManager()->zeroConfController()->available();
info->finish(Thing::ThingErrorHardwareNotAvailable, "Thing discovery not possible");
return;
}
if (!m_serviceBrowser) {
m_serviceBrowser = hardwareManager()->zeroConfController()->createServiceBrowser();;
}
QStringList discoveredIds;
QTimer::singleShot(2000, info, [this, info](){
QStringList discoveredIds;
foreach (const ZeroConfServiceEntry &service, m_serviceBrowser->serviceEntries()) {
qCDebug(dcDenon()) << "mDNS service entry:" << service;
if (service.txt().contains("am=AVRX1000")) {
foreach (const ZeroConfServiceEntry &service, m_serviceBrowser->serviceEntries()) {
if (service.txt().contains("am=AVRX1000")) {
QString id = service.name().split("@").first();
QString name = service.name().split("@").last();
QString address = service.hostAddress().toString();
qCDebug(dcDenon) << "service discovered" << name << "ID:" << id;
if (discoveredIds.contains(id))
QString id = service.name().split("@").first();
QString name = service.name().split("@").last();
QString address = service.hostAddress().toString();
qCDebug(dcDenon) << "service discovered" << name << "ID:" << id;
if (discoveredIds.contains(id))
break;
discoveredIds.append(id);
ThingDescriptor thingDescriptor(AVRX1000ThingClassId, name, address);
ParamList params;
params.append(Param(AVRX1000ThingIpParamTypeId, address));
params.append(Param(AVRX1000ThingIdParamTypeId, id));
thingDescriptor.setParams(params);
foreach (Thing *existingThing, myThings().filterByThingClassId(AVRX1000ThingClassId)) {
if (existingThing->paramValue(AVRX1000ThingIdParamTypeId).toString() == id) {
thingDescriptor.setThingId(existingThing->id());
break;
discoveredIds.append(id);
ThingDescriptor thingDescriptor(AVRX1000ThingClassId, name, address);
ParamList params;
params.append(Param(AVRX1000ThingIpParamTypeId, address));
params.append(Param(AVRX1000ThingIdParamTypeId, id));
thingDescriptor.setParams(params);
foreach (Thing *existingThing, myThings()) {
if (existingThing->paramValue(AVRX1000ThingIdParamTypeId).toString() == id) {
thingDescriptor.setThingId(existingThing->id());
break;
}
}
info->addThingDescriptor(thingDescriptor);
}
info->addThingDescriptor(thingDescriptor);
}
info->finish(Thing::ThingErrorNoError);
});
return;
}
info->finish(Thing::ThingErrorNoError);
} else if (info->thingClassId() == heosThingClassId) {
/*
* The HEOS products can be discovered using the UPnP SSDP protocol. Through discovery,
@ -196,16 +208,30 @@ void IntegrationPluginDenon::setupThing(ThingSetupInfo *info)
AvrConnection *denonConnection = new AvrConnection(address, 23, this);
connect(denonConnection, &AvrConnection::connectionStatusChanged, this, &IntegrationPluginDenon::onAvrConnectionChanged);
connect(denonConnection, &AvrConnection::socketErrorOccured, this, &IntegrationPluginDenon::onAvrSocketError);
connect(denonConnection, &AvrConnection::commandExecuted, this, &IntegrationPluginDenon::onAvrCommandExecuted);
connect(denonConnection, &AvrConnection::channelChanged, this, &IntegrationPluginDenon::onAvrChannelChanged);
connect(denonConnection, &AvrConnection::powerChanged, this, &IntegrationPluginDenon::onAvrPowerChanged);
connect(denonConnection, &AvrConnection::volumeChanged, this, &IntegrationPluginDenon::onAvrVolumeChanged);
connect(denonConnection, &AvrConnection::surroundModeChanged, this, &IntegrationPluginDenon::onAvrSurroundModeChanged);
connect(denonConnection, &AvrConnection::muteChanged, this, &IntegrationPluginDenon::onAvrMuteChanged);
connect(denonConnection, &AvrConnection::artistChanged, this, &IntegrationPluginDenon::onAvrArtistChanged);
connect(denonConnection, &AvrConnection::albumChanged, this, &IntegrationPluginDenon::onAvrAlbumChanged);
connect(denonConnection, &AvrConnection::songChanged, this, &IntegrationPluginDenon::onAvrSongChanged);
connect(denonConnection, &AvrConnection::playBackModeChanged, this, &IntegrationPluginDenon::onAvrPlayBackModeChanged);
connect(denonConnection, &AvrConnection::bassLevelChanged, this, &IntegrationPluginDenon::onAvrBassLevelChanged);
connect(denonConnection, &AvrConnection::trebleLevelChanged, this, &IntegrationPluginDenon::onAvrTrebleLevelChanged);
connect(denonConnection, &AvrConnection::toneControlEnabledChanged, this, &IntegrationPluginDenon::onAvrToneControlEnabledChanged);
m_avrConnections.insert(thing->id(), denonConnection);
m_asyncAvrSetups.insert(denonConnection, info);
// In case the setup is cancelled before we finish it...
connect(info, &QObject::destroyed, this, [this, denonConnection]() { m_asyncAvrSetups.remove(denonConnection); });
connect(info, &ThingSetupInfo::aborted, this, [this, thing] () {
if (m_avrConnections.contains(thing->id())) {
AvrConnection *connection = m_avrConnections.take(thing->id());
connection->deleteLater();
}
});
denonConnection->connectDevice();
return;
} else if (thing->thingClassId() == heosThingClassId) {
@ -246,9 +272,9 @@ void IntegrationPluginDenon::thingRemoved(Thing *thing)
if (thing->thingClassId() == AVRX1000ThingClassId) {
if (m_avrConnections.contains(thing->id())) {
AvrConnection *denonConnection = m_avrConnections.take(thing->id());
denonConnection->disconnectDevice();
denonConnection->deleteLater();
AvrConnection *avrConnection = m_avrConnections.take(thing->id());
avrConnection->disconnectDevice();
avrConnection->deleteLater();
}
} else if (thing->thingClassId() == heosThingClassId) {
if (m_heosConnections.contains(thing->id())) {
@ -273,48 +299,120 @@ void IntegrationPluginDenon::executeAction(ThingActionInfo *info)
if (thing->thingClassId() == AVRX1000ThingClassId) {
AvrConnection *avrConnection = m_avrConnections.value(thing->id());
if (action.actionTypeId() == AVRX1000PowerActionTypeId) {
if (action.actionTypeId() == AVRX1000PlayActionTypeId) {
QUuid commandId = avrConnection->play();
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000PauseActionTypeId) {
QUuid commandId = avrConnection->pause();
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000StopActionTypeId) {
QUuid commandId = avrConnection->stop();
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000SkipNextActionTypeId) {
QUuid commandId = avrConnection->skipNext();
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000SkipBackActionTypeId) {
QUuid commandId = avrConnection->skipBack();
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000PowerActionTypeId) {
bool power = action.param(AVRX1000PowerActionPowerParamTypeId).value().toBool();
avrConnection->setPower(power);
return info->finish(Thing::ThingErrorNoError);
QUuid commandId = avrConnection->setPower(power);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000VolumeActionTypeId) {
int vol = action.param(AVRX1000VolumeActionVolumeParamTypeId).value().toInt();
avrConnection->setVolume(vol);
return info->finish(Thing::ThingErrorNoError);
QUuid commandId = avrConnection->setVolume(vol);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000ChannelActionTypeId) {
qCDebug(dcDenon) << "Execute update action";
QByteArray channel = action.param(AVRX1000ChannelActionChannelParamTypeId).value().toByteArray();
avrConnection->setChannel(channel);
return info->finish(Thing::ThingErrorNoError);
QUuid commandId = avrConnection->setChannel(channel);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000IncreaseVolumeActionTypeId) {
avrConnection->increaseVolume();
return info->finish(Thing::ThingErrorNoError);
QUuid commandId = avrConnection->increaseVolume();
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000DecreaseVolumeActionTypeId) {
avrConnection->decreaseVolume();
return info->finish(Thing::ThingErrorNoError);
QUuid commandId = avrConnection->decreaseVolume();
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000SurroundModeActionTypeId) {
QByteArray surroundMode = action.param(AVRX1000SurroundModeActionSurroundModeParamTypeId).value().toByteArray();
avrConnection->setSurroundMode(surroundMode);
return info->finish(Thing::ThingErrorNoError);
QUuid commandId = avrConnection->setSurroundMode(surroundMode);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000MuteActionTypeId) {
bool mute = action.param(AVRX1000MuteActionMuteParamTypeId).value().toBool();
QUuid commandId = avrConnection->setMute(mute);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000RepeatActionTypeId) {
QString repeatMode = action.param(AVRX1000RepeatActionRepeatParamTypeId).value().toString();
QUuid commandId;
if (repeatMode == "One") {
commandId = avrConnection->setRepeat(AvrConnection::RepeatModeRepeatOne);
} else if (repeatMode == "All") {
commandId = avrConnection->setRepeat(AvrConnection::RepeatModeRepeatAll);
} else {
commandId = avrConnection->setRepeat(AvrConnection::RepeatModeRepeatNone);
}
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000ShuffleActionTypeId) {
bool shuffle = action.param(AVRX1000ShuffleActionShuffleParamTypeId).value().toBool();
QUuid commandId = avrConnection->setRandom(shuffle);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000PlaybackStatusActionTypeId) {
QString playbackStatus = action.param(AVRX1000PlaybackStatusActionPlaybackStatusParamTypeId).value().toString();
QUuid commandId;
if (playbackStatus == "Playing") {
commandId = avrConnection->play();
} else if (playbackStatus == "Stopped") {
commandId = avrConnection->stop();
} else if (playbackStatus == "Paused") {
commandId = avrConnection->pause();
} else {
qCWarning(dcDenon()) << "Unrecognized playback status" << playbackStatus;
return info->finish(Thing::ThingErrorHardwareFailure, "Unrecognized command");
}
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000ToneControlActionTypeId) {
bool enable = action.param(AVRX1000ToneControlActionToneControlParamTypeId).value().toBool();
QUuid commandId = avrConnection->enableToneControl(enable);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000BassActionTypeId) {
int bass = action.param(AVRX1000BassActionBassParamTypeId).value().toInt();
QUuid commandId = avrConnection->setBassLevel(bass);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else if (action.actionTypeId() == AVRX1000TrebleActionTypeId) {
int treble = action.param(AVRX1000TrebleActionTrebleParamTypeId).value().toInt();
QUuid commandId = avrConnection->setTrebleLevel(treble);
connect(info, &ThingActionInfo::aborted, [this, commandId] {m_avrPendingActions.remove(commandId);});
m_avrPendingActions.insert(commandId, info);
} else {
qCWarning(dcDenon()) << "ActionType not found" << thing->thingClass().name() << action.actionTypeId() ;
return info->finish(Thing::ThingErrorActionTypeNotFound);
}
return info->finish(Thing::ThingErrorActionTypeNotFound);
} else if (thing->thingClassId() == heosThingClassId) {
Heos *heos = m_heosConnections.value(thing->id());
if (action.actionTypeId() == heosRebootActionTypeId) {
heos->rebootSpeaker();
return info->finish(Thing::ThingErrorNoError);
} else {
qCWarning(dcDenon()) << "ActionType not found" << thing->thingClass().name() << action.actionTypeId() ;
return info->finish(Thing::ThingErrorActionTypeNotFound);
}
} else if (thing->thingClassId() == heosPlayerThingClassId) {
@ -369,16 +467,31 @@ void IntegrationPluginDenon::executeAction(ThingActionInfo *info)
heos->playNext(playerId);
return info->finish(Thing::ThingErrorNoError);
} else {
qCWarning(dcDenon()) << "ActionType not found" << thing->thingClass().name() << action.actionTypeId() ;
return info->finish(Thing::ThingErrorActionTypeNotFound);
}
} else {
qCWarning(dcDenon()) << "ThingClass not found" << thing->thingClass().name() << thing->thingClassId() ;
return info->finish(Thing::ThingErrorThingClassNotFound);
}
}
void IntegrationPluginDenon::postSetupThing(Thing *thing)
{
if (thing->thingClassId() == heosThingClassId) {
if (thing->thingClassId() == AVRX1000ThingClassId) {
AvrConnection *avrConnection = m_avrConnections.value(thing->id());
thing->setStateValue(AVRX1000ConnectedStateTypeId, avrConnection->connected());
avrConnection->getPower();
avrConnection->getMute();
avrConnection->getVolume();
avrConnection->getChannel();
avrConnection->getSurroundMode();
avrConnection->getPlayBackInfo();
avrConnection->getBassLevel();
avrConnection->getTrebleLevel();
avrConnection->getToneControl();
} else if (thing->thingClassId() == heosThingClassId) {
Heos *heos = m_heosConnections.value(thing->id());
thing->setStateValue(heosConnectedStateTypeId, heos->connected());
if (pluginStorage()->childGroups().contains(thing->id().toString())) {
@ -414,13 +527,21 @@ void IntegrationPluginDenon::postSetupThing(Thing *thing)
void IntegrationPluginDenon::onPluginTimer()
{
foreach(AvrConnection *denonConnection, m_avrConnections.values()) {
if (!denonConnection->connected()) {
denonConnection->connectDevice();
foreach(AvrConnection *avrConnection, m_avrConnections.values()) {
if (!avrConnection->connected()) {
avrConnection->connectDevice();
}
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
Thing *thing = myThings().findById(m_avrConnections.key(avrConnection));
if (thing->thingClassId() == AVRX1000ThingClassId) {
denonConnection->getAllStatus();
avrConnection->getPower();
avrConnection->getMute();
avrConnection->getVolume();
avrConnection->getChannel();
avrConnection->getSurroundMode();
avrConnection->getPlayBackInfo();
avrConnection->getBassLevel();
avrConnection->getTrebleLevel();
avrConnection->getToneControl();
}
}
@ -437,19 +558,25 @@ void IntegrationPluginDenon::onPluginTimer()
void IntegrationPluginDenon::onAvrConnectionChanged(bool status)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing)
// if the thing and from the first setup
if (m_asyncAvrSetups.contains(denonConnection)) {
// and ist connected
if (status) {
ThingSetupInfo *info = m_asyncAvrSetups.take(denonConnection);
info->thing()->setStateValue(AVRX1000ConnectedStateTypeId, true);
info->finish(Thing::ThingErrorNoError);
}
return;
}
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing) {
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
// if the thing is connected
if (status) {
// and from the first setup
if (m_asyncAvrSetups.contains(denonConnection)) {
ThingSetupInfo *info = m_asyncAvrSetups.take(denonConnection);
info->finish(Thing::ThingErrorNoError);
}
}
thing->setStateValue(AVRX1000ConnectedStateTypeId, denonConnection->connected());
}
}
@ -458,15 +585,17 @@ void IntegrationPluginDenon::onAvrVolumeChanged(int volume)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing)
if (!thing) {
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000VolumeStateTypeId, volume);
}
}
void IntegrationPluginDenon::onAvrChannelChanged(const QByteArray &channel)
void IntegrationPluginDenon::onAvrChannelChanged(const QString &channel)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
@ -482,8 +611,10 @@ void IntegrationPluginDenon::onAvrMuteChanged(bool mute)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing)
if (!thing) {
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000MuteStateTypeId, mute);
@ -502,37 +633,158 @@ void IntegrationPluginDenon::onAvrPowerChanged(bool power)
}
}
void IntegrationPluginDenon::onAvrSurroundModeChanged(const QByteArray &surroundMode)
void IntegrationPluginDenon::onAvrSurroundModeChanged(const QString &surroundMode)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing)
if (!thing){
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000SurroundModeStateTypeId, surroundMode);
}
}
void IntegrationPluginDenon::onAvrSongChanged(const QString &song)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing){
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000TitleStateTypeId, song);
}
}
void IntegrationPluginDenon::onAvrArtistChanged(const QString &artist)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing){
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000ArtistStateTypeId, artist);
}
}
void IntegrationPluginDenon::onAvrAlbumChanged(const QString &album)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing){
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000CollectionStateTypeId, album);
}
}
void IntegrationPluginDenon::onAvrBassLevelChanged(int level)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing){
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000BassStateTypeId, level);
}
}
void IntegrationPluginDenon::onAvrTrebleLevelChanged(int level)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing){
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000TrebleStateTypeId, level);
}
}
void IntegrationPluginDenon::onAvrToneControlEnabledChanged(bool enabled)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing){
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
thing->setStateValue(AVRX1000ToneControlStateTypeId, enabled);
}
}
void IntegrationPluginDenon::onAvrPlayBackModeChanged(AvrConnection::PlayBackMode mode)
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing){
qCWarning(dcDenon()) << "Could not find a thing associated to this AVR connection";
return;
}
if (thing->thingClassId() == AVRX1000ThingClassId) {
switch (mode) {
case AvrConnection::PlayBackModePlaying:
thing->setStateValue(AVRX1000PlaybackStatusStateTypeId, "Playing");
break;
case AvrConnection::PlayBackModePaused:
thing->setStateValue(AVRX1000PlaybackStatusStateTypeId, "Paused");
break;
case AvrConnection::PlayBackModeStopped:
thing->setStateValue(AVRX1000PlaybackStatusStateTypeId, "Stopped");
break;
}
}
}
void IntegrationPluginDenon::onAvrSocketError()
{
AvrConnection *denonConnection = static_cast<AvrConnection *>(sender());
Thing *thing = myThings().findById(m_avrConnections.key(denonConnection));
if (!thing)
return;
AvrConnection *avrConnection = static_cast<AvrConnection *>(sender());
if (thing->thingClassId() == AVRX1000ThingClassId) {
// Check if setup running for this thing
if (m_asyncAvrSetups.contains(avrConnection)) {
ThingSetupInfo *info = m_asyncAvrSetups.take(avrConnection);
m_avrConnections.remove(info->thing()->id());
qCWarning(dcDenon()) << "Could not add thing. The setup failed.";
info->finish(Thing::ThingErrorHardwareFailure);
// Delete the connection, the thing will not be added and
// the connection will be created in the next setup
avrConnection->deleteLater();
}
}
// Check if setup running for this thing
if (m_asyncAvrSetups.contains(denonConnection)) {
ThingSetupInfo *info = m_asyncAvrSetups.take(denonConnection);
qCWarning(dcDenon()) << "Could not add thing. The setup failed.";
info->finish(Thing::ThingErrorHardwareFailure);
// Delete the connection, the thing will not be added and
// the connection will be created in the next setup
denonConnection->deleteLater();
m_avrConnections.remove(thing->id());
void IntegrationPluginDenon::onAvrCommandExecuted(const QUuid &commandId, bool success)
{
if (m_avrPendingActions.contains(commandId)) {
ThingActionInfo *info = m_avrPendingActions.take(commandId);
if (success){
if(info->action().actionTypeId() == AVRX1000PlayActionTypeId) {
info->thing()->setStateValue(AVRX1000PlaybackStatusStateTypeId, "Playing");
} else if(info->action().actionTypeId() == AVRX1000PauseActionTypeId) {
info->thing()->setStateValue(AVRX1000PlaybackStatusStateTypeId, "Paused");
} else if(info->action().actionTypeId() == AVRX1000StopActionTypeId) {
info->thing()->setStateValue(AVRX1000PlaybackStatusStateTypeId, "Stopped");
} else if(info->action().actionTypeId() == AVRX1000PlaybackStatusActionTypeId) {
info->thing()->setStateValue(AVRX1000PlaybackStatusStateTypeId, info->action().param(AVRX1000PlaybackStatusActionPlaybackStatusParamTypeId).value());
}
info->finish(Thing::ThingErrorNoError);
} else {
info->finish(Thing::ThingErrorHardwareNotAvailable);
}
}
}
@ -663,7 +915,7 @@ void IntegrationPluginDenon::onHeosRepeatModeReceived(int playerId, REPEAT_MODE
void IntegrationPluginDenon::onHeosShuffleModeReceived(int playerId, bool shuffle)
{
foreach(Thing *thing, myThings().filterByParam(heosPlayerThingPlayerIdParamTypeId, playerId)) {
thing->setStateValue(heosPlayerMuteStateTypeId, shuffle);
thing->setStateValue(heosPlayerShuffleStateTypeId, shuffle);
break;
}
}

View File

@ -90,7 +90,8 @@ private:
QHash<const Action *, int> m_asyncActions;
QUrl m_notificationUrl;
QHash<int, ThingActionInfo*> m_pendingActions;
QHash<int, ThingActionInfo*> m_heosPendingActions;
QHash<QUuid, ThingActionInfo*> m_avrPendingActions;
QHash<Heos*, BrowseResult*> m_pendingGetSourcesRequest;
QHash<QString, BrowseResult*> m_pendingBrowseResult; // QString = containerId or sourceId
@ -128,11 +129,20 @@ private slots:
void onAvrConnectionChanged(bool status);
void onAvrSocketError();
void onAvrCommandExecuted(const QUuid &commandId, bool success);
void onAvrVolumeChanged(int volume);
void onAvrChannelChanged(const QByteArray &channel);
void onAvrChannelChanged(const QString &channel);
void onAvrMuteChanged(bool mute);
void onAvrPowerChanged(bool power);
void onAvrSurroundModeChanged(const QByteArray &surroundMode);
void onAvrSurroundModeChanged(const QString &surroundMode);
void onAvrSongChanged(const QString &song);
void onAvrArtistChanged(const QString &artist);
void onAvrAlbumChanged(const QString &album);
void onAvrPlayBackModeChanged(AvrConnection::PlayBackMode mode);
void onAvrBassLevelChanged(int level);
void onAvrTrebleLevelChanged(int level);
void onAvrToneControlEnabledChanged(bool enabled);
void onPluginConfigurationChanged(const ParamTypeId &paramTypeId, const QVariant &value);
};

View File

@ -22,7 +22,7 @@
"name": "AVRX1000",
"displayName": "AVR X1000",
"createMethods": ["discovery"],
"interfaces": ["extendedvolumecontroller", "connectable", "power"],
"interfaces": ["mediaplayer", "mediacontroller", "extendedvolumecontroller", "mediametadataprovider", "shufflerepeat", "connectable", "power"],
"paramTypes": [
{
"id": "cb6eeeb0-3d75-43b6-8177-b5ac19648557",
@ -49,7 +49,7 @@
"cached": false
},
{
"displayName": "power",
"displayName": "Power",
"id": "1cdb6b54-6831-4900-95b2-c78f64497701",
"name": "power",
"displayNameEvent": "Power changed",
@ -80,6 +80,40 @@
"maxValue": 100,
"writable": true
},
{
"displayName": "Tone control",
"id": "d57c1e5e-2cc9-4638-999c-1523f16dbb83",
"name": "toneControl",
"displayNameEvent": "Tone control changed",
"displayNameAction": "Set tone control",
"type": "bool",
"defaultValue": false,
"writable": true
},
{
"displayName": "Bass",
"id": "2c92b22e-d5b2-4991-a523-64222bffc9e7",
"name": "bass",
"displayNameEvent": "Bass changed",
"displayNameAction": "Set bass",
"type": "int",
"defaultValue": 0,
"minValue": -50,
"maxValue": 49,
"writable": true
},
{
"displayName": "Treble",
"id": "38a3be02-6ed4-4a84-903e-eb923b933989",
"name": "treble",
"displayNameEvent": "Treble changed",
"displayNameAction": "Set treble",
"type": "int",
"defaultValue": 0,
"minValue": -50,
"maxValue": 49,
"writable": true
},
{
"displayName": "Channel",
"id": "f29ffa2c-31d6-4d88-b160-a38288c82ce1",
@ -136,6 +170,85 @@
"MATRIX"
],
"defaultValue": "MOVIE"
},
{
"id": "50b34df4-90f7-41aa-9a57-6f2d31a18430",
"name": "artist",
"displayName": "Artist",
"displayNameEvent": "Artist changed",
"type": "QString",
"defaultValue": ""
},
{
"id": "d4f14d93-8cae-4e1b-9ee7-a5c21c0211df",
"name": "collection",
"displayName": "Album",
"displayNameEvent": "Album changed",
"type": "QString",
"defaultValue": ""
},
{
"id": "d32493d8-5faf-4c7a-ba94-847dc9b81615",
"name": "title",
"displayName": "Title",
"displayNameEvent": "Title changed",
"type": "QString",
"defaultValue": ""
},
{
"id": "6c4a208b-5b04-40cc-b14b-8f79aff30307",
"name": "artwork",
"displayName": "Artwork",
"displayNameEvent": "Artwork changed",
"type": "QString",
"defaultValue": ""
},
{
"id": "2f372374-16f3-4900-afdc-834f51075d07",
"name": "playerType",
"displayName": "Player type",
"displayNameEvent": "Player type changed",
"possibleValues": [
"audio",
"video"
],
"type": "QString",
"defaultValue": "audio"
},
{
"id": "8ef6708c-812a-4e6a-a608-9e480aa3b7bf",
"name": "playbackStatus",
"displayName": "Playback status",
"displayNameEvent": "Playback status changed",
"displayNameAction": "Set playback status",
"type": "QString",
"defaultValue": "Stopped",
"possibleValues": ["Playing", "Paused", "Stopped"],
"cached": false,
"writable": true
},
{
"id": "8ad33cb9-e758-433d-a013-2e4d43157c92",
"name": "shuffle",
"displayName": "Shuffle",
"displayNameEvent": "Shuffle changed",
"displayNameAction": "Set shuffle",
"type": "bool",
"defaultValue": false,
"cached": false,
"writable": true
},
{
"id": "9478987b-14e4-4572-a059-a18a5a9db229",
"name": "repeat",
"displayName": "Repeat mode",
"displayNameEvent": "Repeat mode changed",
"displayNameAction": "Set repeat mode",
"type": "QString",
"defaultValue": "None",
"possibleValues": ["None", "One", "All"],
"cached": false,
"writable": true
}
],
"actionTypes": [
@ -164,6 +277,31 @@
"type": "int"
}
]
},
{
"id": "3f2eb789-918c-475a-a295-14c0c24338b8",
"name": "skipBack",
"displayName": "Skip back"
},
{
"id": "ddab0869-5b90-4fd4-9c40-9ad57101b87c",
"name": "stop",
"displayName": "Stop"
},
{
"id": "d04eb30b-838d-4fbd-b781-c01005b59756",
"name": "play",
"displayName": "Play"
},
{
"id": "3de38047-006f-4d97-9326-08bb5ad79b05",
"name": "pause",
"displayName": "Pause"
},
{
"id": "bf9664e4-a53e-474c-afcc-88f25e6fe365",
"name": "skipNext",
"displayName": "Skip next"
}
]
},

View File

@ -4,8 +4,8 @@
<context>
<name>Denon</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="206"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="209"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="295"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="298"/>
<source>Denon</source>
<extracomment>The name of the vendor ({cf0a9644-2c13-4daf-85c1-ad88d6745b42})
----------
@ -13,87 +13,132 @@ The name of the plugin Denon ({cd758269-dbbb-4ef0-80ab-48bd9a8a2765})</extracomm
<translation>Denon</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="131"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="181"/>
<source>AVR X1000</source>
<extracomment>The name of the ThingClass ({1cd3d67e-aba0-450e-9e2a-483a1527aba6})</extracomment>
<translation>AVR X1000</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="134"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="137"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="184"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="187"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="190"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="193"/>
<source>Album</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: collection, ID: {9cd60864-f141-4e03-a85b-357690cad1b8})
----------
The name of the StateType ({9cd60864-f141-4e03-a85b-357690cad1b8}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({9cd60864-f141-4e03-a85b-357690cad1b8}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: collection, ID: {d4f14d93-8cae-4e1b-9ee7-a5c21c0211df})
----------
The name of the StateType ({d4f14d93-8cae-4e1b-9ee7-a5c21c0211df}) of ThingClass AVRX1000</extracomment>
<translation>Album</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="140"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="196"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="199"/>
<source>Album changed</source>
<extracomment>The name of the EventType ({9cd60864-f141-4e03-a85b-357690cad1b8}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the EventType ({9cd60864-f141-4e03-a85b-357690cad1b8}) of ThingClass heosPlayer
----------
The name of the EventType ({d4f14d93-8cae-4e1b-9ee7-a5c21c0211df}) of ThingClass AVRX1000</extracomment>
<translation>Album geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="143"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="202"/>
<source>Alert</source>
<extracomment>The name of the ActionType ({db8e001a-fcae-4c41-9811-325e14c06109}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<translation>Alarm</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="146"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="149"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="205"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="208"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="211"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="214"/>
<source>Artist</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: artist, ID: {0a9183a4-b633-4773-ba7a-f4266895157e})
----------
The name of the StateType ({0a9183a4-b633-4773-ba7a-f4266895157e}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({0a9183a4-b633-4773-ba7a-f4266895157e}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: artist, ID: {50b34df4-90f7-41aa-9a57-6f2d31a18430})
----------
The name of the StateType ({50b34df4-90f7-41aa-9a57-6f2d31a18430}) of ThingClass AVRX1000</extracomment>
<translation>Künstler</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="152"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="217"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="220"/>
<source>Artist changed</source>
<extracomment>The name of the EventType ({0a9183a4-b633-4773-ba7a-f4266895157e}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the EventType ({0a9183a4-b633-4773-ba7a-f4266895157e}) of ThingClass heosPlayer
----------
The name of the EventType ({50b34df4-90f7-41aa-9a57-6f2d31a18430}) of ThingClass AVRX1000</extracomment>
<translation>Künstler geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="155"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="158"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="223"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="226"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="229"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="232"/>
<source>Artwork</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: artwork, ID: {a7f0ba95-383a-4efd-adc5-a36e50a04018})
----------
The name of the StateType ({a7f0ba95-383a-4efd-adc5-a36e50a04018}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({a7f0ba95-383a-4efd-adc5-a36e50a04018}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: artwork, ID: {6c4a208b-5b04-40cc-b14b-8f79aff30307})
----------
The name of the StateType ({6c4a208b-5b04-40cc-b14b-8f79aff30307}) of ThingClass AVRX1000</extracomment>
<translation>Artwork</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="161"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="235"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="238"/>
<source>Artwork changed</source>
<extracomment>The name of the EventType ({a7f0ba95-383a-4efd-adc5-a36e50a04018}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the EventType ({a7f0ba95-383a-4efd-adc5-a36e50a04018}) of ThingClass heosPlayer
----------
The name of the EventType ({6c4a208b-5b04-40cc-b14b-8f79aff30307}) of ThingClass AVRX1000</extracomment>
<translation>Artwork geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="164"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="167"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="170"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="241"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="244"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="247"/>
<source>Bass</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: bass, ID: {2c92b22e-d5b2-4991-a523-64222bffc9e7})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: bass, ID: {2c92b22e-d5b2-4991-a523-64222bffc9e7})
----------
The name of the StateType ({2c92b22e-d5b2-4991-a523-64222bffc9e7}) of ThingClass AVRX1000</extracomment>
<translation>Bass</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="250"/>
<source>Bass changed</source>
<extracomment>The name of the EventType ({2c92b22e-d5b2-4991-a523-64222bffc9e7}) of ThingClass AVRX1000</extracomment>
<translation>Bass geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="253"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="256"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="259"/>
<source>Channel</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: channel, ID: {f29ffa2c-31d6-4d88-b160-a38288c82ce1})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: channel, ID: {f29ffa2c-31d6-4d88-b160-a38288c82ce1})
----------
The name of the StateType ({f29ffa2c-31d6-4d88-b160-a38288c82ce1}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Kanal</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="173"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="262"/>
<source>Channel changed</source>
<extracomment>The name of the EventType ({f29ffa2c-31d6-4d88-b160-a38288c82ce1}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Kanal geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="176"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="179"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="182"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="185"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="188"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="191"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="265"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="268"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="271"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="274"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="277"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="280"/>
<source>Connected</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: connected, ID: {9a4e527e-057c-4b19-8a02-605cc8349f5e})
----------
@ -106,99 +151,99 @@ The name of the StateType ({4d1790bf-28c6-4c1f-8892-ba1a0ef140f5}) of ThingClass
The name of the ParamType (ThingClass: AVRX1000, EventType: connected, ID: {fc1dee8b-8fcc-4ec2-8fe6-6be4f5f47a5c})
----------
The name of the StateType ({fc1dee8b-8fcc-4ec2-8fe6-6be4f5f47a5c}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Verbunden</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="194"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="197"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="200"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="283"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="286"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="289"/>
<source>Connected changed</source>
<extracomment>The name of the EventType ({9a4e527e-057c-4b19-8a02-605cc8349f5e}) of ThingClass heosPlayer
----------
The name of the EventType ({4d1790bf-28c6-4c1f-8892-ba1a0ef140f5}) of ThingClass heos
----------
The name of the EventType ({fc1dee8b-8fcc-4ec2-8fe6-6be4f5f47a5c}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Verbunden geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="203"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="292"/>
<source>Decrease volume</source>
<extracomment>The name of the ActionType ({d3752c32-92e3-4396-8e2f-ab5e57c6cfb1}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Lautstärke verringern</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="212"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="301"/>
<source>Heos</source>
<extracomment>The name of the ThingClass ({28bbf4c6-dfd8-4d9d-aa27-5daf2c25d63c})</extracomment>
<translation type="unfinished"></translation>
<translation>Heos</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="215"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="304"/>
<source>Heos player</source>
<extracomment>The name of the ThingClass ({fce5247f-4c6d-408f-ac62-e5973dc6adfa})</extracomment>
<translation type="unfinished"></translation>
<translation>Heos Player</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="218"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="307"/>
<source>ID</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, Type: thing, ID: {2e8806cb-f6f3-4e9a-b6ea-0b35f75e61c5})</extracomment>
<translation type="unfinished"></translation>
<translation>ID</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="221"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="224"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="310"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="313"/>
<source>IPv4 address</source>
<extracomment>The name of the ParamType (ThingClass: heos, Type: thing, ID: {a54b98b4-b78f-41dd-a257-14425c6cf9ab})
----------
The name of the ParamType (ThingClass: AVRX1000, Type: thing, ID: {cb6eeeb0-3d75-43b6-8177-b5ac19648557})</extracomment>
<translation type="unfinished"></translation>
<translation>IPv4 Adresse</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="227"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="316"/>
<source>Increase volume</source>
<extracomment>The name of the ActionType ({4ae686d6-2307-40a0-bd38-2cd3a92342cc}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Lautstärke verringern</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="230"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="319"/>
<source>Join group</source>
<extracomment>The name of the Browser Item ActionType ({73112a01-84c7-4b1d-8b86-71672c110d06}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<translation>Gruppe beitreten</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="233"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="236"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="322"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="325"/>
<source>Logged in</source>
<extracomment>The name of the ParamType (ThingClass: heos, EventType: loggedIn, ID: {ab689a6e-eb71-4a41-a267-ba1afe7e2f56})
----------
The name of the StateType ({ab689a6e-eb71-4a41-a267-ba1afe7e2f56}) of ThingClass heos</extracomment>
<translation type="unfinished"></translation>
<translation>Eingelogged</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="239"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="328"/>
<source>Logged in changed</source>
<extracomment>The name of the EventType ({ab689a6e-eb71-4a41-a267-ba1afe7e2f56}) of ThingClass heos</extracomment>
<translation type="unfinished"></translation>
<translation>Eingelogged geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="242"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="331"/>
<source>Model</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {e760f92b-8fca-4f20-aead-a52045505b81})</extracomment>
<translation type="unfinished"></translation>
<translation>Modell</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="245"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="334"/>
<source>Model name</source>
<extracomment>The name of the ParamType (ThingClass: heos, Type: thing, ID: {ab1a0be8-e3a5-4f95-b9b7-893de1ca4cf7})</extracomment>
<translation type="unfinished"></translation>
<translation>Modellname</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="248"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="251"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="254"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="257"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="260"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="263"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="337"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="340"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="343"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="346"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="349"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="352"/>
<source>Mute</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: mute, ID: {fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f})
----------
@ -211,273 +256,417 @@ The name of the ParamType (ThingClass: AVRX1000, ActionType: mute, ID: {3e11470d
The name of the ParamType (ThingClass: AVRX1000, EventType: mute, ID: {3e11470d-a5b7-499c-be55-9b1b4fe5eedf})
----------
The name of the StateType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Stumm</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="266"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="269"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="355"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="358"/>
<source>Mute changed</source>
<extracomment>The name of the EventType ({fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f}) of ThingClass heosPlayer
----------
The name of the EventType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Stumm geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="272"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="361"/>
<source>Notification url</source>
<extracomment>The name of the ParamType (ThingClass: denon, Type: plugin, ID: {5a3cd3eb-8ff5-4110-aef0-7b0608450e60})</extracomment>
<translation type="unfinished"></translation>
<translation>Benachrichtigungs-Url</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="275"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="364"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="367"/>
<source>Pause</source>
<extracomment>The name of the ActionType ({21c1cbe6-278f-4688-a65f-6620be1ee5ea}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the ActionType ({21c1cbe6-278f-4688-a65f-6620be1ee5ea}) of ThingClass heosPlayer
----------
The name of the ActionType ({3de38047-006f-4d97-9326-08bb5ad79b05}) of ThingClass AVRX1000</extracomment>
<translation>Pause</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="278"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="370"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="373"/>
<source>Play</source>
<extracomment>The name of the ActionType ({c64964e4-cea0-468a-a9bf-8f69657b74e9}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the ActionType ({c64964e4-cea0-468a-a9bf-8f69657b74e9}) of ThingClass heosPlayer
----------
The name of the ActionType ({d04eb30b-838d-4fbd-b781-c01005b59756}) of ThingClass AVRX1000</extracomment>
<translation>Play</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="281"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="284"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="287"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="376"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="379"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="382"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="385"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="388"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="391"/>
<source>Playback status</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: playbackStatus, ID: {6db3b484-4cd4-477b-b822-275865d308db})
----------
The name of the ParamType (ThingClass: heosPlayer, EventType: playbackStatus, ID: {6db3b484-4cd4-477b-b822-275865d308db})
----------
The name of the StateType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, ActionType: playbackStatus, ID: {8ef6708c-812a-4e6a-a608-9e480aa3b7bf})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: playbackStatus, ID: {8ef6708c-812a-4e6a-a608-9e480aa3b7bf})
----------
The name of the StateType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass AVRX1000</extracomment>
<translation>Wiedergabestatus</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="290"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="394"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="397"/>
<source>Playback status changed</source>
<extracomment>The name of the EventType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the EventType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
----------
The name of the EventType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass AVRX1000</extracomment>
<translation>Wiedergabestatus geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="293"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="400"/>
<source>Player ID</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {89629008-6ad8-4e92-863d-b86e0e012d0b})</extracomment>
<translation type="unfinished"></translation>
<translation>Player ID</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="296"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="299"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="403"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="406"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="409"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="412"/>
<source>Player type</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: playerType, ID: {c59835ac-ee6e-4e6c-aa20-aeb3501937c5})
----------
The name of the StateType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: playerType, ID: {2f372374-16f3-4900-afdc-834f51075d07})
----------
The name of the StateType ({2f372374-16f3-4900-afdc-834f51075d07}) of ThingClass AVRX1000</extracomment>
<translation>Playertyp</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="302"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="415"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="418"/>
<source>Player type changed</source>
<extracomment>The name of the EventType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the EventType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer
----------
The name of the EventType ({2f372374-16f3-4900-afdc-834f51075d07}) of ThingClass AVRX1000</extracomment>
<translation>Playertyp geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="305"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="421"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="424"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="427"/>
<source>Power</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
----------
The name of the StateType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
<translation>Eingeschalten</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="430"/>
<source>Power changed</source>
<extracomment>The name of the EventType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Eingeschalten geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="308"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="433"/>
<source>Reboot</source>
<extracomment>The name of the ActionType ({4f8b7fe8-7a18-483a-859d-ed5acb0b9a20}) of ThingClass heos</extracomment>
<translation type="unfinished"></translation>
<translation>Neustarten</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="311"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="314"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="317"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="436"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="439"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="442"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="445"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="448"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="451"/>
<source>Repeat mode</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: repeat, ID: {4e60cd17-5845-4351-aa2c-2504610e1532})
----------
The name of the ParamType (ThingClass: heosPlayer, EventType: repeat, ID: {4e60cd17-5845-4351-aa2c-2504610e1532})
----------
The name of the StateType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, ActionType: repeat, ID: {9478987b-14e4-4572-a059-a18a5a9db229})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: repeat, ID: {9478987b-14e4-4572-a059-a18a5a9db229})
----------
The name of the StateType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass AVRX1000</extracomment>
<translation>Wiederholungsmodus</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="320"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="454"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="457"/>
<source>Repeat mode changed</source>
<extracomment>The name of the EventType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the EventType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
----------
The name of the EventType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass AVRX1000</extracomment>
<translation>Wiederholungsmodus geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="323"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="326"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="460"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="463"/>
<source>Serial number</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {866e8d6a-953f-4bdc-8d85-8d92e51e8592})
----------
The name of the ParamType (ThingClass: heos, Type: thing, ID: {f796664d-6cb7-4f29-9d05-771968d82a32})</extracomment>
<translation type="unfinished"></translation>
<translation>Seriennummer</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="332"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="335"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="466"/>
<source>Set bass</source>
<extracomment>The name of the ActionType ({2c92b22e-d5b2-4991-a523-64222bffc9e7}) of ThingClass AVRX1000</extracomment>
<translation>Setze Bass</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="472"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="475"/>
<source>Set mute</source>
<extracomment>The name of the ActionType ({fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f}) of ThingClass heosPlayer
----------
The name of the ActionType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Setze Stumm</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="338"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="478"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="481"/>
<source>Set playback status</source>
<extracomment>The name of the ActionType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the ActionType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
----------
The name of the ActionType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass AVRX1000</extracomment>
<translation>Setze Wiedergabemodus</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="344"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="487"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="490"/>
<source>Set repeat mode</source>
<extracomment>The name of the ActionType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the ActionType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
----------
The name of the ActionType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass AVRX1000</extracomment>
<translation>Setze Wiederholungsmodus</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="347"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="493"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="496"/>
<source>Set shuffle</source>
<extracomment>The name of the ActionType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the ActionType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
----------
The name of the ActionType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass AVRX1000</extracomment>
<translation>Setze Zufallswiedergabe</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="350"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="499"/>
<source>Set surround mode</source>
<extracomment>The name of the ActionType ({4f203bdd-691c-4384-a934-2d49a5448f0a}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Setze Surroundmodus</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="359"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="362"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="365"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="502"/>
<source>Set tone control</source>
<extracomment>The name of the ActionType ({d57c1e5e-2cc9-4638-999c-1523f16dbb83}) of ThingClass AVRX1000</extracomment>
<translation>Setze Tonkontrolle</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="505"/>
<source>Set treble</source>
<extracomment>The name of the ActionType ({38a3be02-6ed4-4a84-903e-eb923b933989}) of ThingClass AVRX1000</extracomment>
<translation>Setze Höhen</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="514"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="517"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="520"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="523"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="526"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="529"/>
<source>Shuffle</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: shuffle, ID: {4b581237-acf5-4d8f-9e83-9b24e9ac900a})
----------
The name of the ParamType (ThingClass: heosPlayer, EventType: shuffle, ID: {4b581237-acf5-4d8f-9e83-9b24e9ac900a})
----------
The name of the StateType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, ActionType: shuffle, ID: {8ad33cb9-e758-433d-a013-2e4d43157c92})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: shuffle, ID: {8ad33cb9-e758-433d-a013-2e4d43157c92})
----------
The name of the StateType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass AVRX1000</extracomment>
<translation>Zufallswiedergabe</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="368"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="532"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="535"/>
<source>Shuffle changed</source>
<extracomment>The name of the EventType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the EventType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
----------
The name of the EventType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass AVRX1000</extracomment>
<translation>Zufallswiedergabe geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="371"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="538"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="541"/>
<source>Skip back</source>
<extracomment>The name of the ActionType ({a718f7e9-0b54-4403-b661-49f7b0d13085}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the ActionType ({a718f7e9-0b54-4403-b661-49f7b0d13085}) of ThingClass heosPlayer
----------
The name of the ActionType ({3f2eb789-918c-475a-a295-14c0c24338b8}) of ThingClass AVRX1000</extracomment>
<translation>Zurück</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="374"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="544"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="547"/>
<source>Skip next</source>
<extracomment>The name of the ActionType ({57697e9c-ce5e-4b8f-b42e-16662829ceb2}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the ActionType ({57697e9c-ce5e-4b8f-b42e-16662829ceb2}) of ThingClass heosPlayer
----------
The name of the ActionType ({bf9664e4-a53e-474c-afcc-88f25e6fe365}) of ThingClass AVRX1000</extracomment>
<translation>Nächstes</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="377"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="380"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="550"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="553"/>
<source>Source</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: source, ID: {eee22722-3ee5-48f7-8af8-275dc04b21eb})
----------
The name of the StateType ({eee22722-3ee5-48f7-8af8-275dc04b21eb}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<translation>Quelle</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="383"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="556"/>
<source>Source changed</source>
<extracomment>The name of the EventType ({eee22722-3ee5-48f7-8af8-275dc04b21eb}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<translation>Quelle geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="386"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="389"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="559"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="562"/>
<source>Step</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: decreaseVolume, ID: {1d54fda8-336c-436f-ab2b-e8bd549f830c})
----------
The name of the ParamType (ThingClass: AVRX1000, ActionType: increaseVolume, ID: {765c7e2a-9eb6-46fc-a880-4e96c81f8d1e})</extracomment>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="392"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="565"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="568"/>
<source>Stop</source>
<extracomment>The name of the ActionType ({c4b29c09-e3b3-4843-b6d9-e032f3fc1d78}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the ActionType ({c4b29c09-e3b3-4843-b6d9-e032f3fc1d78}) of ThingClass heosPlayer
----------
The name of the ActionType ({ddab0869-5b90-4fd4-9c40-9ad57101b87c}) of ThingClass AVRX1000</extracomment>
<translation>Stop</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="395"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="398"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="401"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="571"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="574"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="577"/>
<source>Surround mode</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: surroundMode, ID: {4f203bdd-691c-4384-a934-2d49a5448f0a})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: surroundMode, ID: {4f203bdd-691c-4384-a934-2d49a5448f0a})
----------
The name of the StateType ({4f203bdd-691c-4384-a934-2d49a5448f0a}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Surroundmodus</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="404"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="580"/>
<source>Surround mode changed</source>
<extracomment>The name of the EventType ({4f203bdd-691c-4384-a934-2d49a5448f0a}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Surroundmodus geädert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="407"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="410"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="583"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="586"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="589"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="592"/>
<source>Title</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: title, ID: {bbeecf30-6feb-48d5-ade3-57b2a4eea05f})
----------
The name of the StateType ({bbeecf30-6feb-48d5-ade3-57b2a4eea05f}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({bbeecf30-6feb-48d5-ade3-57b2a4eea05f}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: title, ID: {d32493d8-5faf-4c7a-ba94-847dc9b81615})
----------
The name of the StateType ({d32493d8-5faf-4c7a-ba94-847dc9b81615}) of ThingClass AVRX1000</extracomment>
<translation>Title</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="413"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="595"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="598"/>
<source>Title changed</source>
<extracomment>The name of the EventType ({bbeecf30-6feb-48d5-ade3-57b2a4eea05f}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<extracomment>The name of the EventType ({bbeecf30-6feb-48d5-ade3-57b2a4eea05f}) of ThingClass heosPlayer
----------
The name of the EventType ({d32493d8-5faf-4c7a-ba94-847dc9b81615}) of ThingClass AVRX1000</extracomment>
<translation>Title geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="416"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="601"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="604"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="607"/>
<source>Tone control</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: toneControl, ID: {d57c1e5e-2cc9-4638-999c-1523f16dbb83})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: toneControl, ID: {d57c1e5e-2cc9-4638-999c-1523f16dbb83})
----------
The name of the StateType ({d57c1e5e-2cc9-4638-999c-1523f16dbb83}) of ThingClass AVRX1000</extracomment>
<translation>Tonkontrolle</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="610"/>
<source>Tone control changed</source>
<extracomment>The name of the EventType ({d57c1e5e-2cc9-4638-999c-1523f16dbb83}) of ThingClass AVRX1000</extracomment>
<translation>Tonkontroller geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="613"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="616"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="619"/>
<source>Treble</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: treble, ID: {38a3be02-6ed4-4a84-903e-eb923b933989})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: treble, ID: {38a3be02-6ed4-4a84-903e-eb923b933989})
----------
The name of the StateType ({38a3be02-6ed4-4a84-903e-eb923b933989}) of ThingClass AVRX1000</extracomment>
<translation>Höhen</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="622"/>
<source>Treble changed</source>
<extracomment>The name of the EventType ({38a3be02-6ed4-4a84-903e-eb923b933989}) of ThingClass AVRX1000</extracomment>
<translation>Höhen geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="625"/>
<source>Unjoin group</source>
<extracomment>The name of the Browser Item ActionType ({1b866b95-1fc7-4b45-ad71-c85e43fcc367}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
<translation>Gruppe verlassen</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="419"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="422"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="628"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="631"/>
<source>User name</source>
<extracomment>The name of the ParamType (ThingClass: heos, EventType: userDisplayName, ID: {77756132-5fa4-409e-969e-d23bcee72356})
----------
The name of the StateType ({77756132-5fa4-409e-969e-d23bcee72356}) of ThingClass heos</extracomment>
<translation type="unfinished"></translation>
<translation>Benutzername</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="425"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="634"/>
<source>User name changed</source>
<extracomment>The name of the EventType ({77756132-5fa4-409e-969e-d23bcee72356}) of ThingClass heos</extracomment>
<translation type="unfinished"></translation>
<translation>Benutzername geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="428"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="637"/>
<source>Version</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {aa1158f7-b451-456a-840f-4f0c63b2b7f0})</extracomment>
<translation type="unfinished"></translation>
<translation>Version</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="431"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="434"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="437"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="440"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="443"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="446"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="640"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="643"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="646"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="649"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="652"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="655"/>
<source>Volume</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: volume, ID: {6d4886a1-fa5d-4889-96c5-7a1c206f59be})
----------
@ -490,38 +679,26 @@ The name of the ParamType (ThingClass: AVRX1000, ActionType: volume, ID: {773636
The name of the ParamType (ThingClass: AVRX1000, EventType: volume, ID: {773636b9-304d-463a-8755-fc7488dc0ff3})
----------
The name of the StateType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Lautstärke</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="449"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="452"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="658"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="661"/>
<source>Volume changed</source>
<extracomment>The name of the EventType ({6d4886a1-fa5d-4889-96c5-7a1c206f59be}) of ThingClass heosPlayer
----------
The name of the EventType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
<translation>Lautstärke geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="455"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="458"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="461"/>
<source>power</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
----------
The name of the StateType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
<translation>Eingeschalten</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="341"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="484"/>
<source>Set power</source>
<extracomment>The name of the ActionType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
<translation>Schalte ein</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="353"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="356"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="508"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="511"/>
<source>Set volume</source>
<extracomment>The name of the ActionType ({6d4886a1-fa5d-4889-96c5-7a1c206f59be}) of ThingClass heosPlayer
----------
@ -529,7 +706,7 @@ The name of the ActionType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClas
<translation>Setze Lautstärke</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="329"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="469"/>
<source>Set channel</source>
<extracomment>The name of the ActionType ({f29ffa2c-31d6-4d88-b160-a38288c82ce1}) of ThingClass AVRX1000</extracomment>
<translation>Wähle Kanal</translation>
@ -538,36 +715,30 @@ The name of the ActionType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClas
<context>
<name>IntegrationPluginDenon</name>
<message>
<location filename="../integrationplugindenon.cpp" line="63"/>
<source>Thing discovery is not available.</source>
<extracomment>Error discovering Denon things</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="115"/>
<location filename="../integrationplugindenon.cpp" line="116"/>
<source>UPnP discovery failed.</source>
<translation type="unfinished"></translation>
<translation>UPnP Gerätesuche fehlgeschlagen.</translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="152"/>
<location filename="../integrationplugindenon.cpp" line="153"/>
<source>Please enter your HEOS account credentials. Leave empty if you doesn&apos;t have any. Some features like music browsing won&apos;t be available.</source>
<translation type="unfinished"></translation>
<translation>Bitte geben Sie Ihre HEOS-Kontoanmeldeinformationen ein. Lassen Sie sie leer wenn Sie keine haben, einige Funktionen wie das Durchsuchen von Musik sind dann nicht verfügbar.</translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="192"/>
<location filename="../integrationplugindenon.cpp" line="217"/>
<location filename="../integrationplugindenon.cpp" line="193"/>
<location filename="../integrationplugindenon.cpp" line="232"/>
<source>The given IP address is not valid.</source>
<translation type="unfinished"></translation>
<translation>Die eingegebene IP-Adresse ist nicht gültig.</translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="718"/>
<location filename="../integrationplugindenon.cpp" line="958"/>
<source>Service is not available</source>
<translation type="unfinished"></translation>
<translation>Service ist nicht verfügbar</translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="929"/>
<location filename="../integrationplugindenon.cpp" line="1169"/>
<source>Wrong username or password</source>
<translation type="unfinished"></translation>
<translation>Falscher Benutzername oder Passwort</translation>
</message>
</context>
</TS>

View File

@ -4,8 +4,8 @@
<context>
<name>Denon</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="206"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="209"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="295"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="298"/>
<source>Denon</source>
<extracomment>The name of the vendor ({cf0a9644-2c13-4daf-85c1-ad88d6745b42})
----------
@ -13,66 +13,111 @@ The name of the plugin Denon ({cd758269-dbbb-4ef0-80ab-48bd9a8a2765})</extracomm
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="131"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="181"/>
<source>AVR X1000</source>
<extracomment>The name of the ThingClass ({1cd3d67e-aba0-450e-9e2a-483a1527aba6})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="134"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="137"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="184"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="187"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="190"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="193"/>
<source>Album</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: collection, ID: {9cd60864-f141-4e03-a85b-357690cad1b8})
----------
The name of the StateType ({9cd60864-f141-4e03-a85b-357690cad1b8}) of ThingClass heosPlayer</extracomment>
The name of the StateType ({9cd60864-f141-4e03-a85b-357690cad1b8}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: collection, ID: {d4f14d93-8cae-4e1b-9ee7-a5c21c0211df})
----------
The name of the StateType ({d4f14d93-8cae-4e1b-9ee7-a5c21c0211df}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="140"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="196"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="199"/>
<source>Album changed</source>
<extracomment>The name of the EventType ({9cd60864-f141-4e03-a85b-357690cad1b8}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the EventType ({9cd60864-f141-4e03-a85b-357690cad1b8}) of ThingClass heosPlayer
----------
The name of the EventType ({d4f14d93-8cae-4e1b-9ee7-a5c21c0211df}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="143"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="202"/>
<source>Alert</source>
<extracomment>The name of the ActionType ({db8e001a-fcae-4c41-9811-325e14c06109}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="146"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="149"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="205"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="208"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="211"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="214"/>
<source>Artist</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: artist, ID: {0a9183a4-b633-4773-ba7a-f4266895157e})
----------
The name of the StateType ({0a9183a4-b633-4773-ba7a-f4266895157e}) of ThingClass heosPlayer</extracomment>
The name of the StateType ({0a9183a4-b633-4773-ba7a-f4266895157e}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: artist, ID: {50b34df4-90f7-41aa-9a57-6f2d31a18430})
----------
The name of the StateType ({50b34df4-90f7-41aa-9a57-6f2d31a18430}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="152"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="217"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="220"/>
<source>Artist changed</source>
<extracomment>The name of the EventType ({0a9183a4-b633-4773-ba7a-f4266895157e}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the EventType ({0a9183a4-b633-4773-ba7a-f4266895157e}) of ThingClass heosPlayer
----------
The name of the EventType ({50b34df4-90f7-41aa-9a57-6f2d31a18430}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="155"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="158"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="223"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="226"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="229"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="232"/>
<source>Artwork</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: artwork, ID: {a7f0ba95-383a-4efd-adc5-a36e50a04018})
----------
The name of the StateType ({a7f0ba95-383a-4efd-adc5-a36e50a04018}) of ThingClass heosPlayer</extracomment>
The name of the StateType ({a7f0ba95-383a-4efd-adc5-a36e50a04018}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: artwork, ID: {6c4a208b-5b04-40cc-b14b-8f79aff30307})
----------
The name of the StateType ({6c4a208b-5b04-40cc-b14b-8f79aff30307}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="161"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="235"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="238"/>
<source>Artwork changed</source>
<extracomment>The name of the EventType ({a7f0ba95-383a-4efd-adc5-a36e50a04018}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the EventType ({a7f0ba95-383a-4efd-adc5-a36e50a04018}) of ThingClass heosPlayer
----------
The name of the EventType ({6c4a208b-5b04-40cc-b14b-8f79aff30307}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="164"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="167"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="170"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="241"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="244"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="247"/>
<source>Bass</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: bass, ID: {2c92b22e-d5b2-4991-a523-64222bffc9e7})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: bass, ID: {2c92b22e-d5b2-4991-a523-64222bffc9e7})
----------
The name of the StateType ({2c92b22e-d5b2-4991-a523-64222bffc9e7}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="250"/>
<source>Bass changed</source>
<extracomment>The name of the EventType ({2c92b22e-d5b2-4991-a523-64222bffc9e7}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="253"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="256"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="259"/>
<source>Channel</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: channel, ID: {f29ffa2c-31d6-4d88-b160-a38288c82ce1})
----------
@ -82,18 +127,18 @@ The name of the StateType ({f29ffa2c-31d6-4d88-b160-a38288c82ce1}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="173"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="262"/>
<source>Channel changed</source>
<extracomment>The name of the EventType ({f29ffa2c-31d6-4d88-b160-a38288c82ce1}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="176"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="179"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="182"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="185"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="188"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="191"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="265"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="268"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="271"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="274"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="277"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="280"/>
<source>Connected</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: connected, ID: {9a4e527e-057c-4b19-8a02-605cc8349f5e})
----------
@ -109,9 +154,9 @@ The name of the StateType ({fc1dee8b-8fcc-4ec2-8fe6-6be4f5f47a5c}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="194"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="197"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="200"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="283"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="286"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="289"/>
<source>Connected changed</source>
<extracomment>The name of the EventType ({9a4e527e-057c-4b19-8a02-605cc8349f5e}) of ThingClass heosPlayer
----------
@ -121,32 +166,32 @@ The name of the EventType ({fc1dee8b-8fcc-4ec2-8fe6-6be4f5f47a5c}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="203"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="292"/>
<source>Decrease volume</source>
<extracomment>The name of the ActionType ({d3752c32-92e3-4396-8e2f-ab5e57c6cfb1}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="212"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="301"/>
<source>Heos</source>
<extracomment>The name of the ThingClass ({28bbf4c6-dfd8-4d9d-aa27-5daf2c25d63c})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="215"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="304"/>
<source>Heos player</source>
<extracomment>The name of the ThingClass ({fce5247f-4c6d-408f-ac62-e5973dc6adfa})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="218"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="307"/>
<source>ID</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, Type: thing, ID: {2e8806cb-f6f3-4e9a-b6ea-0b35f75e61c5})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="221"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="224"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="310"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="313"/>
<source>IPv4 address</source>
<extracomment>The name of the ParamType (ThingClass: heos, Type: thing, ID: {a54b98b4-b78f-41dd-a257-14425c6cf9ab})
----------
@ -154,20 +199,20 @@ The name of the ParamType (ThingClass: AVRX1000, Type: thing, ID: {cb6eeeb0-3d75
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="227"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="316"/>
<source>Increase volume</source>
<extracomment>The name of the ActionType ({4ae686d6-2307-40a0-bd38-2cd3a92342cc}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="230"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="319"/>
<source>Join group</source>
<extracomment>The name of the Browser Item ActionType ({73112a01-84c7-4b1d-8b86-71672c110d06}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="233"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="236"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="322"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="325"/>
<source>Logged in</source>
<extracomment>The name of the ParamType (ThingClass: heos, EventType: loggedIn, ID: {ab689a6e-eb71-4a41-a267-ba1afe7e2f56})
----------
@ -175,30 +220,30 @@ The name of the StateType ({ab689a6e-eb71-4a41-a267-ba1afe7e2f56}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="239"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="328"/>
<source>Logged in changed</source>
<extracomment>The name of the EventType ({ab689a6e-eb71-4a41-a267-ba1afe7e2f56}) of ThingClass heos</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="242"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="331"/>
<source>Model</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {e760f92b-8fca-4f20-aead-a52045505b81})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="245"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="334"/>
<source>Model name</source>
<extracomment>The name of the ParamType (ThingClass: heos, Type: thing, ID: {ab1a0be8-e3a5-4f95-b9b7-893de1ca4cf7})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="248"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="251"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="254"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="257"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="260"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="263"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="337"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="340"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="343"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="346"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="349"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="352"/>
<source>Mute</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: mute, ID: {fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f})
----------
@ -214,8 +259,8 @@ The name of the StateType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="266"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="269"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="355"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="358"/>
<source>Mute changed</source>
<extracomment>The name of the EventType ({fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f}) of ThingClass heosPlayer
----------
@ -223,95 +268,146 @@ The name of the EventType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="272"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="361"/>
<source>Notification url</source>
<extracomment>The name of the ParamType (ThingClass: denon, Type: plugin, ID: {5a3cd3eb-8ff5-4110-aef0-7b0608450e60})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="275"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="364"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="367"/>
<source>Pause</source>
<extracomment>The name of the ActionType ({21c1cbe6-278f-4688-a65f-6620be1ee5ea}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the ActionType ({21c1cbe6-278f-4688-a65f-6620be1ee5ea}) of ThingClass heosPlayer
----------
The name of the ActionType ({3de38047-006f-4d97-9326-08bb5ad79b05}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="278"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="370"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="373"/>
<source>Play</source>
<extracomment>The name of the ActionType ({c64964e4-cea0-468a-a9bf-8f69657b74e9}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the ActionType ({c64964e4-cea0-468a-a9bf-8f69657b74e9}) of ThingClass heosPlayer
----------
The name of the ActionType ({d04eb30b-838d-4fbd-b781-c01005b59756}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="281"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="284"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="287"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="376"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="379"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="382"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="385"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="388"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="391"/>
<source>Playback status</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: playbackStatus, ID: {6db3b484-4cd4-477b-b822-275865d308db})
----------
The name of the ParamType (ThingClass: heosPlayer, EventType: playbackStatus, ID: {6db3b484-4cd4-477b-b822-275865d308db})
----------
The name of the StateType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer</extracomment>
The name of the StateType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, ActionType: playbackStatus, ID: {8ef6708c-812a-4e6a-a608-9e480aa3b7bf})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: playbackStatus, ID: {8ef6708c-812a-4e6a-a608-9e480aa3b7bf})
----------
The name of the StateType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="290"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="394"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="397"/>
<source>Playback status changed</source>
<extracomment>The name of the EventType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the EventType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
----------
The name of the EventType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="293"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="400"/>
<source>Player ID</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {89629008-6ad8-4e92-863d-b86e0e012d0b})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="296"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="299"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="403"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="406"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="409"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="412"/>
<source>Player type</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: playerType, ID: {c59835ac-ee6e-4e6c-aa20-aeb3501937c5})
----------
The name of the StateType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer</extracomment>
The name of the StateType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: playerType, ID: {2f372374-16f3-4900-afdc-834f51075d07})
----------
The name of the StateType ({2f372374-16f3-4900-afdc-834f51075d07}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="302"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="415"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="418"/>
<source>Player type changed</source>
<extracomment>The name of the EventType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the EventType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer
----------
The name of the EventType ({2f372374-16f3-4900-afdc-834f51075d07}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="305"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="421"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="424"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="427"/>
<source>Power</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
----------
The name of the StateType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="430"/>
<source>Power changed</source>
<extracomment>The name of the EventType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="308"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="433"/>
<source>Reboot</source>
<extracomment>The name of the ActionType ({4f8b7fe8-7a18-483a-859d-ed5acb0b9a20}) of ThingClass heos</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="311"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="314"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="317"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="436"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="439"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="442"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="445"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="448"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="451"/>
<source>Repeat mode</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: repeat, ID: {4e60cd17-5845-4351-aa2c-2504610e1532})
----------
The name of the ParamType (ThingClass: heosPlayer, EventType: repeat, ID: {4e60cd17-5845-4351-aa2c-2504610e1532})
----------
The name of the StateType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer</extracomment>
The name of the StateType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, ActionType: repeat, ID: {9478987b-14e4-4572-a059-a18a5a9db229})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: repeat, ID: {9478987b-14e4-4572-a059-a18a5a9db229})
----------
The name of the StateType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="320"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="454"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="457"/>
<source>Repeat mode changed</source>
<extracomment>The name of the EventType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the EventType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
----------
The name of the EventType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="323"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="326"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="460"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="463"/>
<source>Serial number</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {866e8d6a-953f-4bdc-8d85-8d92e51e8592})
----------
@ -319,8 +415,14 @@ The name of the ParamType (ThingClass: heos, Type: thing, ID: {f796664d-6cb7-4f2
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="332"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="335"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="466"/>
<source>Set bass</source>
<extracomment>The name of the ActionType ({2c92b22e-d5b2-4991-a523-64222bffc9e7}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="472"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="475"/>
<source>Set mute</source>
<extracomment>The name of the ActionType ({fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f}) of ThingClass heosPlayer
----------
@ -328,62 +430,101 @@ The name of the ActionType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClas
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="338"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="478"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="481"/>
<source>Set playback status</source>
<extracomment>The name of the ActionType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the ActionType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
----------
The name of the ActionType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="344"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="487"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="490"/>
<source>Set repeat mode</source>
<extracomment>The name of the ActionType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the ActionType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
----------
The name of the ActionType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="347"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="493"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="496"/>
<source>Set shuffle</source>
<extracomment>The name of the ActionType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the ActionType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
----------
The name of the ActionType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="350"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="499"/>
<source>Set surround mode</source>
<extracomment>The name of the ActionType ({4f203bdd-691c-4384-a934-2d49a5448f0a}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="359"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="362"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="365"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="502"/>
<source>Set tone control</source>
<extracomment>The name of the ActionType ({d57c1e5e-2cc9-4638-999c-1523f16dbb83}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="505"/>
<source>Set treble</source>
<extracomment>The name of the ActionType ({38a3be02-6ed4-4a84-903e-eb923b933989}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="514"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="517"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="520"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="523"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="526"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="529"/>
<source>Shuffle</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: shuffle, ID: {4b581237-acf5-4d8f-9e83-9b24e9ac900a})
----------
The name of the ParamType (ThingClass: heosPlayer, EventType: shuffle, ID: {4b581237-acf5-4d8f-9e83-9b24e9ac900a})
----------
The name of the StateType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer</extracomment>
The name of the StateType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, ActionType: shuffle, ID: {8ad33cb9-e758-433d-a013-2e4d43157c92})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: shuffle, ID: {8ad33cb9-e758-433d-a013-2e4d43157c92})
----------
The name of the StateType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="368"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="532"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="535"/>
<source>Shuffle changed</source>
<extracomment>The name of the EventType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the EventType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
----------
The name of the EventType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="371"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="538"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="541"/>
<source>Skip back</source>
<extracomment>The name of the ActionType ({a718f7e9-0b54-4403-b661-49f7b0d13085}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the ActionType ({a718f7e9-0b54-4403-b661-49f7b0d13085}) of ThingClass heosPlayer
----------
The name of the ActionType ({3f2eb789-918c-475a-a295-14c0c24338b8}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="374"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="544"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="547"/>
<source>Skip next</source>
<extracomment>The name of the ActionType ({57697e9c-ce5e-4b8f-b42e-16662829ceb2}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the ActionType ({57697e9c-ce5e-4b8f-b42e-16662829ceb2}) of ThingClass heosPlayer
----------
The name of the ActionType ({bf9664e4-a53e-474c-afcc-88f25e6fe365}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="377"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="380"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="550"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="553"/>
<source>Source</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: source, ID: {eee22722-3ee5-48f7-8af8-275dc04b21eb})
----------
@ -391,14 +532,14 @@ The name of the StateType ({eee22722-3ee5-48f7-8af8-275dc04b21eb}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="383"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="556"/>
<source>Source changed</source>
<extracomment>The name of the EventType ({eee22722-3ee5-48f7-8af8-275dc04b21eb}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="386"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="389"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="559"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="562"/>
<source>Step</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: decreaseVolume, ID: {1d54fda8-336c-436f-ab2b-e8bd549f830c})
----------
@ -406,15 +547,18 @@ The name of the ParamType (ThingClass: AVRX1000, ActionType: increaseVolume, ID:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="392"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="565"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="568"/>
<source>Stop</source>
<extracomment>The name of the ActionType ({c4b29c09-e3b3-4843-b6d9-e032f3fc1d78}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the ActionType ({c4b29c09-e3b3-4843-b6d9-e032f3fc1d78}) of ThingClass heosPlayer
----------
The name of the ActionType ({ddab0869-5b90-4fd4-9c40-9ad57101b87c}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="395"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="398"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="401"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="571"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="574"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="577"/>
<source>Surround mode</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: surroundMode, ID: {4f203bdd-691c-4384-a934-2d49a5448f0a})
----------
@ -424,35 +568,80 @@ The name of the StateType ({4f203bdd-691c-4384-a934-2d49a5448f0a}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="404"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="580"/>
<source>Surround mode changed</source>
<extracomment>The name of the EventType ({4f203bdd-691c-4384-a934-2d49a5448f0a}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="407"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="410"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="583"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="586"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="589"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="592"/>
<source>Title</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: title, ID: {bbeecf30-6feb-48d5-ade3-57b2a4eea05f})
----------
The name of the StateType ({bbeecf30-6feb-48d5-ade3-57b2a4eea05f}) of ThingClass heosPlayer</extracomment>
The name of the StateType ({bbeecf30-6feb-48d5-ade3-57b2a4eea05f}) of ThingClass heosPlayer
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: title, ID: {d32493d8-5faf-4c7a-ba94-847dc9b81615})
----------
The name of the StateType ({d32493d8-5faf-4c7a-ba94-847dc9b81615}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="413"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="595"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="598"/>
<source>Title changed</source>
<extracomment>The name of the EventType ({bbeecf30-6feb-48d5-ade3-57b2a4eea05f}) of ThingClass heosPlayer</extracomment>
<extracomment>The name of the EventType ({bbeecf30-6feb-48d5-ade3-57b2a4eea05f}) of ThingClass heosPlayer
----------
The name of the EventType ({d32493d8-5faf-4c7a-ba94-847dc9b81615}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="416"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="601"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="604"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="607"/>
<source>Tone control</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: toneControl, ID: {d57c1e5e-2cc9-4638-999c-1523f16dbb83})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: toneControl, ID: {d57c1e5e-2cc9-4638-999c-1523f16dbb83})
----------
The name of the StateType ({d57c1e5e-2cc9-4638-999c-1523f16dbb83}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="610"/>
<source>Tone control changed</source>
<extracomment>The name of the EventType ({d57c1e5e-2cc9-4638-999c-1523f16dbb83}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="613"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="616"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="619"/>
<source>Treble</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: treble, ID: {38a3be02-6ed4-4a84-903e-eb923b933989})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: treble, ID: {38a3be02-6ed4-4a84-903e-eb923b933989})
----------
The name of the StateType ({38a3be02-6ed4-4a84-903e-eb923b933989}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="622"/>
<source>Treble changed</source>
<extracomment>The name of the EventType ({38a3be02-6ed4-4a84-903e-eb923b933989}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="625"/>
<source>Unjoin group</source>
<extracomment>The name of the Browser Item ActionType ({1b866b95-1fc7-4b45-ad71-c85e43fcc367}) of ThingClass heosPlayer</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="419"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="422"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="628"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="631"/>
<source>User name</source>
<extracomment>The name of the ParamType (ThingClass: heos, EventType: userDisplayName, ID: {77756132-5fa4-409e-969e-d23bcee72356})
----------
@ -460,24 +649,24 @@ The name of the StateType ({77756132-5fa4-409e-969e-d23bcee72356}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="425"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="634"/>
<source>User name changed</source>
<extracomment>The name of the EventType ({77756132-5fa4-409e-969e-d23bcee72356}) of ThingClass heos</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="428"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="637"/>
<source>Version</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {aa1158f7-b451-456a-840f-4f0c63b2b7f0})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="431"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="434"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="437"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="440"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="443"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="446"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="640"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="643"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="646"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="649"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="652"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="655"/>
<source>Volume</source>
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: volume, ID: {6d4886a1-fa5d-4889-96c5-7a1c206f59be})
----------
@ -493,8 +682,8 @@ The name of the StateType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="449"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="452"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="658"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="661"/>
<source>Volume changed</source>
<extracomment>The name of the EventType ({6d4886a1-fa5d-4889-96c5-7a1c206f59be}) of ThingClass heosPlayer
----------
@ -502,26 +691,14 @@ The name of the EventType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="455"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="458"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="461"/>
<source>power</source>
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
----------
The name of the ParamType (ThingClass: AVRX1000, EventType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
----------
The name of the StateType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="341"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="484"/>
<source>Set power</source>
<extracomment>The name of the ActionType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="353"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="356"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="508"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="511"/>
<source>Set volume</source>
<extracomment>The name of the ActionType ({6d4886a1-fa5d-4889-96c5-7a1c206f59be}) of ThingClass heosPlayer
----------
@ -529,7 +706,7 @@ The name of the ActionType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClas
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="329"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="469"/>
<source>Set channel</source>
<extracomment>The name of the ActionType ({f29ffa2c-31d6-4d88-b160-a38288c82ce1}) of ThingClass AVRX1000</extracomment>
<translation type="unfinished"></translation>
@ -538,34 +715,28 @@ The name of the ActionType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClas
<context>
<name>IntegrationPluginDenon</name>
<message>
<location filename="../integrationplugindenon.cpp" line="63"/>
<source>Thing discovery is not available.</source>
<extracomment>Error discovering Denon things</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="115"/>
<location filename="../integrationplugindenon.cpp" line="116"/>
<source>UPnP discovery failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="152"/>
<location filename="../integrationplugindenon.cpp" line="153"/>
<source>Please enter your HEOS account credentials. Leave empty if you doesn&apos;t have any. Some features like music browsing won&apos;t be available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="192"/>
<location filename="../integrationplugindenon.cpp" line="217"/>
<location filename="../integrationplugindenon.cpp" line="193"/>
<location filename="../integrationplugindenon.cpp" line="232"/>
<source>The given IP address is not valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="718"/>
<location filename="../integrationplugindenon.cpp" line="958"/>
<source>Service is not available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugindenon.cpp" line="929"/>
<location filename="../integrationplugindenon.cpp" line="1169"/>
<source>Wrong username or password</source>
<translation type="unfinished"></translation>
</message>