Merge PR #395: Denon: Added rediscovery on IP change
This commit is contained in:
commit
4b711f39da
@ -44,28 +44,31 @@ Heos::Heos(const QHostAddress &hostAddress, QObject *parent) :
|
||||
QObject(parent),
|
||||
m_hostAddress(hostAddress)
|
||||
{
|
||||
qCDebug(dcDenon()) << "Heos: Creating heos connection" << m_hostAddress;
|
||||
m_socket = new QTcpSocket(this);
|
||||
|
||||
connect(m_socket, &QTcpSocket::stateChanged, this, &Heos::onStateChanged);
|
||||
connect(m_socket, &QTcpSocket::connected, this, &Heos::onConnected);
|
||||
connect(m_socket, &QTcpSocket::disconnected, this, &Heos::onDisconnected);
|
||||
connect(m_socket, &QTcpSocket::readyRead, this, &Heos::readData);
|
||||
connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError)));
|
||||
|
||||
m_reconnectTimer = new QTimer(this);
|
||||
m_reconnectTimer->setInterval(5000);
|
||||
connect(m_reconnectTimer, &QTimer::timeout, this, [this]{
|
||||
qCDebug(dcDenon()) << "Heos: Reconnect timer timeout, trying to connect to" << m_hostAddress.toString();
|
||||
connectDevice();
|
||||
});
|
||||
}
|
||||
|
||||
Heos::~Heos()
|
||||
{
|
||||
m_socket->close();
|
||||
qCDebug(dcDenon()) << "Heos: Deleting heos connection" << m_hostAddress;
|
||||
}
|
||||
|
||||
void Heos::connectDevice()
|
||||
{
|
||||
if (m_socket->state() == QAbstractSocket::ConnectingState) {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
m_socket->connectToHost(m_hostAddress, 1255);
|
||||
}
|
||||
@ -75,6 +78,21 @@ bool Heos::connected()
|
||||
return m_socket->isOpen();
|
||||
}
|
||||
|
||||
void Heos::setAddress(QHostAddress address)
|
||||
{
|
||||
qCDebug(dcDenon()) << "Heos: Set address" << address.toString();
|
||||
if (address != m_hostAddress) {
|
||||
m_hostAddress = address;
|
||||
m_socket->disconnectFromHost();
|
||||
// Reconnect after the disconnect event has been emitted
|
||||
}
|
||||
}
|
||||
|
||||
QHostAddress Heos::getAddress()
|
||||
{
|
||||
return m_hostAddress;
|
||||
}
|
||||
|
||||
|
||||
void Heos::disconnectDevice()
|
||||
{
|
||||
@ -532,24 +550,18 @@ quint32 Heos::playUrl(int playerId, const QUrl &mediaUrl)
|
||||
return sequence;
|
||||
}
|
||||
|
||||
void Heos::onStateChanged(QAbstractSocket::SocketState state)
|
||||
void Heos::onConnected()
|
||||
{
|
||||
switch (state) {
|
||||
case QAbstractSocket::ConnectedState:
|
||||
qCDebug(dcDenon()) << "connected successfully to" << m_hostAddress.toString();
|
||||
m_reconnectTimer->stop();
|
||||
emit connectionStatusChanged(true);
|
||||
break;
|
||||
case QAbstractSocket::ConnectingState:
|
||||
break;
|
||||
case QAbstractSocket::UnconnectedState:
|
||||
m_reconnectTimer->start();
|
||||
qCDebug(dcDenon()) << "Disconnected from" << m_hostAddress.toString() << "try reconnecting in 5 seconds";
|
||||
emit connectionStatusChanged(false);
|
||||
break;
|
||||
default:
|
||||
emit connectionStatusChanged(false);
|
||||
}
|
||||
qCDebug(dcDenon()) << "Heos: Connected successfully to" << m_hostAddress.toString();
|
||||
m_reconnectTimer->stop();
|
||||
emit connectionStatusChanged(true);
|
||||
}
|
||||
|
||||
void Heos::onDisconnected()
|
||||
{
|
||||
m_reconnectTimer->start();
|
||||
qCDebug(dcDenon()) << "Heos: Disconnected from" << m_hostAddress.toString() << "try reconnecting in 5 seconds";
|
||||
emit connectionStatusChanged(false);
|
||||
}
|
||||
|
||||
quint32 Heos::addContainerToQueue(int playerId, const QString &sourceId, const QString &containerId, ADD_CRITERIA addCriteria)
|
||||
@ -571,7 +583,7 @@ quint32 Heos::addContainerToQueue(int playerId, const QString &sourceId, const Q
|
||||
|
||||
void Heos::onError(QAbstractSocket::SocketError socketError)
|
||||
{
|
||||
qCWarning(dcDenon) << "socket error:" << socketError << m_socket->errorString();
|
||||
qCWarning(dcDenon) << "Heos: Socket error:" << socketError << m_socket->errorString();
|
||||
}
|
||||
|
||||
void Heos::readData()
|
||||
|
||||
@ -164,7 +164,8 @@ signals:
|
||||
void userChanged(bool signedIn, const QString &userName);
|
||||
|
||||
private slots:
|
||||
void onStateChanged(QAbstractSocket::SocketState state);
|
||||
void onConnected();
|
||||
void onDisconnected();
|
||||
void onError(QAbstractSocket::SocketError socketError);
|
||||
void readData();
|
||||
|
||||
|
||||
@ -84,7 +84,7 @@ void IntegrationPluginDenon::discoverThings(ThingDiscoveryInfo *info)
|
||||
QStringList discoveredIds;
|
||||
|
||||
foreach (const ZeroConfServiceEntry &service, m_serviceBrowser->serviceEntries()) {
|
||||
qCDebug(dcDenon()) << "mDNS service entry:" << service;
|
||||
qCDebug(dcDenon()) << "mDNS service entry:" << service;
|
||||
if (service.txt().contains("am=AVRX1000")) {
|
||||
|
||||
QString id = service.name().split("@").first();
|
||||
@ -96,7 +96,6 @@ void IntegrationPluginDenon::discoverThings(ThingDiscoveryInfo *info)
|
||||
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)) {
|
||||
@ -118,37 +117,39 @@ void IntegrationPluginDenon::discoverThings(ThingDiscoveryInfo *info)
|
||||
* The HEOS product IP address can also be set statically and manually programmed into the control system.
|
||||
* Search target name (ST) in M-SEARCH discovery request is 'urn:schemas-denon-com:thing:ACT-Denon:1'.
|
||||
*/
|
||||
if (!hardwareManager()->upnpDiscovery()->available()) {
|
||||
qCDebug(dcDenon()) << "UPnP discovery not available";
|
||||
info->finish(Thing::ThingErrorHardwareNotAvailable, "UPnP discovery not possible");
|
||||
return;
|
||||
}
|
||||
UpnpDiscoveryReply *reply = hardwareManager()->upnpDiscovery()->discoverDevices();
|
||||
connect(reply, &UpnpDiscoveryReply::finished, reply, &UpnpDiscoveryReply::deleteLater);
|
||||
connect(reply, &UpnpDiscoveryReply::finished, info, [this, reply, info](){
|
||||
reply->deleteLater();
|
||||
|
||||
if (reply->error() != UpnpDiscoveryReply::UpnpDiscoveryReplyErrorNoError) {
|
||||
qCWarning(dcDenon()) << "Upnp discovery error" << reply->error();
|
||||
info->finish(Thing::ThingErrorHardwareFailure, QT_TR_NOOP("UPnP discovery failed."));
|
||||
return;
|
||||
}
|
||||
|
||||
m_heosIpAddresses.clear();
|
||||
foreach (const UpnpDeviceDescriptor &upnpThing, reply->deviceDescriptors()) {
|
||||
qCDebug(dcDenon) << "UPnP thing found:" << upnpThing.modelDescription() << upnpThing.friendlyName() << upnpThing.hostAddress().toString() << upnpThing.modelName() << upnpThing.manufacturer() << upnpThing.serialNumber();
|
||||
if (upnpThing.modelName().contains("HEOS", Qt::CaseSensitivity::CaseInsensitive) && upnpThing.serialNumber() != "0000001") {
|
||||
// child things have serial number 0000001
|
||||
qCDebug(dcDenon) << "uPnP thing found:" << upnpThing.modelDescription() << upnpThing.friendlyName() << upnpThing.hostAddress().toString() << upnpThing.modelName() << upnpThing.manufacturer() << upnpThing.serialNumber();
|
||||
|
||||
if (upnpThing.modelName().contains("HEOS", Qt::CaseSensitivity::CaseInsensitive)) {
|
||||
QString serialNumber = upnpThing.serialNumber();
|
||||
if (serialNumber != "0000001") {
|
||||
// child things have serial number 0000001
|
||||
ThingDescriptor descriptor(heosThingClassId, upnpThing.modelName(), serialNumber);
|
||||
ParamList params;
|
||||
foreach (Thing *existingThing, myThings()) {
|
||||
if (existingThing->paramValue(heosThingSerialNumberParamTypeId).toString().contains(serialNumber, Qt::CaseSensitivity::CaseInsensitive)) {
|
||||
descriptor.setThingId(existingThing->id());
|
||||
break;
|
||||
}
|
||||
m_heosIpAddresses.insert(upnpThing.serialNumber(), upnpThing.hostAddress());
|
||||
ThingDescriptor descriptor(heosThingClassId, upnpThing.modelName(), upnpThing.serialNumber());
|
||||
ParamList params;
|
||||
foreach (Thing *existingThing, myThings()) {
|
||||
if (existingThing->paramValue(heosThingSerialNumberParamTypeId).toString().contains(upnpThing.serialNumber(), Qt::CaseSensitivity::CaseInsensitive)) {
|
||||
descriptor.setThingId(existingThing->id());
|
||||
break;
|
||||
}
|
||||
params.append(Param(heosThingModelNameParamTypeId, upnpThing.modelName()));
|
||||
params.append(Param(heosThingIpParamTypeId, upnpThing.hostAddress().toString()));
|
||||
params.append(Param(heosThingSerialNumberParamTypeId, serialNumber));
|
||||
descriptor.setParams(params);
|
||||
info->addThingDescriptor(descriptor);
|
||||
}
|
||||
params.append(Param(heosThingModelNameParamTypeId, upnpThing.modelName()));
|
||||
params.append(Param(heosThingSerialNumberParamTypeId, upnpThing.serialNumber()));
|
||||
descriptor.setParams(params);
|
||||
info->addThingDescriptor(descriptor);
|
||||
}
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
@ -173,21 +174,30 @@ void IntegrationPluginDenon::confirmPairing(ThingPairingInfo *info, const QStrin
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
|
||||
QHostAddress address(info->params().paramValue(heosThingIpParamTypeId).toString());
|
||||
Heos *heos = createHeosConnection(address);
|
||||
m_unfinishedHeosConnections.insert(info->thingId(), heos);
|
||||
m_unfinishedHeosPairings.insert(heos, info);
|
||||
connect(info, &ThingPairingInfo::aborted, this, [heos, this] {
|
||||
m_unfinishedHeosPairings.remove(heos);
|
||||
heos->deleteLater();
|
||||
});
|
||||
heos->connectDevice();
|
||||
heos->setUserAccount(username, password);
|
||||
Q_FOREACH(const QString &serialNumber, m_heosIpAddresses.keys()) {
|
||||
if (serialNumber == info->params().paramValue(heosThingSerialNumberParamTypeId).toString()) {
|
||||
ThingId thingId = info->thingId();
|
||||
Heos *heos = createHeosConnection(m_heosIpAddresses.value(serialNumber));
|
||||
m_unfinishedHeosConnections.insert(thingId, heos);
|
||||
m_unfinishedHeosPairings.insert(heos, info);
|
||||
connect(heos, &Heos::destroyed, this, [this, thingId, heos] {
|
||||
qCDebug(dcDenon()) << "Heos connection deleted, cleaning up";
|
||||
m_unfinishedHeosPairings.remove(heos);
|
||||
m_unfinishedHeosConnections.remove(thingId);
|
||||
});
|
||||
connect(info, &ThingPairingInfo::aborted, this, [heos] {
|
||||
qCDebug(dcDenon()) << "ThingPairingInfo aborted, deleting heos connection";
|
||||
heos->deleteLater();
|
||||
});
|
||||
heos->connectDevice();
|
||||
heos->setUserAccount(username, password);
|
||||
|
||||
pluginStorage()->beginGroup(info->thingId().toString());
|
||||
pluginStorage()->setValue("username", username);
|
||||
pluginStorage()->setValue("password", password);
|
||||
pluginStorage()->endGroup();
|
||||
pluginStorage()->beginGroup(info->thingId().toString());
|
||||
pluginStorage()->setValue("username", username);
|
||||
pluginStorage()->setValue("password", password);
|
||||
pluginStorage()->endGroup();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -196,12 +206,17 @@ void IntegrationPluginDenon::setupThing(ThingSetupInfo *info)
|
||||
Thing *thing = info->thing();
|
||||
|
||||
if (thing->thingClassId() == AVRX1000ThingClassId) {
|
||||
qCDebug(dcDenon) << "Setup Denon thing" << thing->paramValue(AVRX1000ThingIpParamTypeId).toString();
|
||||
qCDebug(dcDenon) << "Setup AVR X1000 thing" << thing->name();
|
||||
|
||||
QHostAddress address(thing->paramValue(AVRX1000ThingIpParamTypeId).toString());
|
||||
if (m_avrConnections.contains(thing->id())) {
|
||||
qCDebug(dcDenon()) << "Setup after reconfiguration, cleaning up ...";
|
||||
m_avrConnections.take(thing->id())->deleteLater();
|
||||
|
||||
}
|
||||
QString id = thing->paramValue(AVRX1000ThingIdParamTypeId).toString();
|
||||
QHostAddress address = findAvrById(id);
|
||||
if (address.isNull()) {
|
||||
qCWarning(dcDenon) << "Could not parse ip address" << thing->paramValue(AVRX1000ThingIpParamTypeId).toString();
|
||||
info->finish(Thing::ThingErrorInvalidParameter, QT_TR_NOOP("The given IP address is not valid."));
|
||||
info->finish(Thing::ThingErrorHardwareNotAvailable);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -235,32 +250,83 @@ void IntegrationPluginDenon::setupThing(ThingSetupInfo *info)
|
||||
denonConnection->connectDevice();
|
||||
return;
|
||||
} else if (thing->thingClassId() == heosThingClassId) {
|
||||
qCDebug(dcDenon) << "Setup Denon thing" << thing->paramValue(heosThingIpParamTypeId).toString();
|
||||
|
||||
QHostAddress address(thing->paramValue(heosThingIpParamTypeId).toString());
|
||||
if (address.isNull()) {
|
||||
qCWarning(dcDenon) << "Could not parse ip address" << thing->paramValue(heosThingIpParamTypeId).toString();
|
||||
info->finish(Thing::ThingErrorInvalidParameter, QT_TR_NOOP("The given IP address is not valid."));
|
||||
qCDebug(dcDenon) << "Setup Heos connection thing" << thing->name();
|
||||
QString serialnumber = thing->paramValue(heosThingSerialNumberParamTypeId).toString();
|
||||
if (serialnumber.isEmpty()) {
|
||||
qCWarning(dcDenon) << "Serial number is empty";
|
||||
info->finish(Thing::ThingErrorInvalidParameter, QT_TR_NOOP("Serial number is not set"));
|
||||
return;
|
||||
}
|
||||
|
||||
Heos *heos;
|
||||
if (m_heosConnections.contains(thing->id())) {
|
||||
qCDebug(dcDenon()) << "Setup after reconfiguration, cleaning up ...";
|
||||
m_heosConnections.take(thing->id())->deleteLater();
|
||||
}
|
||||
|
||||
if (m_unfinishedHeosConnections.contains(thing->id())) {
|
||||
heos = m_unfinishedHeosConnections.take(thing->id());
|
||||
qCDebug(dcDenon()) << "Setup after discovery";
|
||||
Heos *heos = m_unfinishedHeosConnections.take(thing->id());
|
||||
m_heosConnections.insert(thing->id(), heos);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
heos = createHeosConnection(address);
|
||||
m_heosConnections.insert(thing->id(), heos);
|
||||
m_asyncHeosSetups.insert(heos, info);
|
||||
// In case the setup is cancelled before we finish it...
|
||||
connect(info, &QObject::destroyed, this, [=]() {m_asyncHeosSetups.remove(heos);});
|
||||
heos->connectDevice();
|
||||
qCDebug(dcDenon()) << "Starting Heos discovery";
|
||||
if (!hardwareManager()->upnpDiscovery()->available()) {
|
||||
qCDebug(dcDenon()) << "UPnP discovery not available";
|
||||
info->finish(Thing::ThingErrorHardwareNotAvailable, "Discovery not possible");
|
||||
return;
|
||||
}
|
||||
UpnpDiscoveryReply *reply = hardwareManager()->upnpDiscovery()->discoverDevices();
|
||||
connect(reply, &UpnpDiscoveryReply::finished, reply, &UpnpDiscoveryReply::deleteLater);
|
||||
connect(reply, &UpnpDiscoveryReply::finished, info, [this, reply, info] {
|
||||
if (reply->error() != UpnpDiscoveryReply::UpnpDiscoveryReplyErrorNoError) {
|
||||
qCWarning(dcDenon()) << "Upnp discovery error" << reply->error();
|
||||
info->finish(Thing::ThingErrorHardwareFailure, QT_TR_NOOP("Device discovery failed."));
|
||||
return;
|
||||
}
|
||||
qCDebug(dcDenon()) << "UPnP discovery finished, found" << reply->deviceDescriptors().count() << "uPnP devices";
|
||||
Q_FOREACH (const UpnpDeviceDescriptor &upnpThing, reply->deviceDescriptors()) {
|
||||
if (upnpThing.modelName().contains("HEOS", Qt::CaseSensitivity::CaseInsensitive)) {
|
||||
QString serialNumber = info->thing()->paramValue(heosThingSerialNumberParamTypeId).toString();
|
||||
if (serialNumber == upnpThing.serialNumber()) {
|
||||
ThingId thingId = info->thing()->id();
|
||||
qCDebug(dcDenon()) << "Found Heos device, creating Heos connection";
|
||||
Heos *heos = createHeosConnection(upnpThing.hostAddress());
|
||||
m_heosConnections.insert(thingId, heos);
|
||||
m_asyncHeosSetups.insert(heos, info);
|
||||
// In case the setup is cancelled before we finish it...
|
||||
connect(info, &ThingSetupInfo::aborted, heos, &Heos::deleteLater);
|
||||
connect(heos, &Heos::destroyed, this, [thingId, heos, this] {
|
||||
m_asyncHeosSetups.remove(heos);
|
||||
m_heosConnections.remove(thingId);
|
||||
});
|
||||
heos->connectDevice();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
qCDebug(dcDenon()) << "Device not found";
|
||||
info->finish(Thing::ThingErrorHardwareNotAvailable);
|
||||
return;
|
||||
});
|
||||
}
|
||||
return;
|
||||
} else if (thing->thingClassId() == heosPlayerThingClassId) {
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
|
||||
qCDebug(dcDenon) << "Setup Heos player" << thing->name();
|
||||
Thing *parentThing = myThings().findById(thing->parentId());
|
||||
if (!parentThing) {
|
||||
qCWarning(dcDenon()) << "Parent thing not found for Heos player" << thing->name();
|
||||
return;
|
||||
}
|
||||
if (parentThing->setupStatus() == Thing::ThingSetupStatusComplete) {
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
connect(parentThing, &Thing::setupStatusChanged, info, [info, parentThing] {
|
||||
if (parentThing->setupStatus() == Thing::ThingSetupStatusComplete) {
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
info->finish(Thing::ThingErrorThingClassNotFound);
|
||||
}
|
||||
@ -490,6 +556,8 @@ void IntegrationPluginDenon::executeAction(ThingActionInfo *info)
|
||||
|
||||
void IntegrationPluginDenon::postSetupThing(Thing *thing)
|
||||
{
|
||||
qCDebug(dcDenon()) << "Post setup thing" << thing->name();
|
||||
|
||||
if (thing->thingClassId() == AVRX1000ThingClassId) {
|
||||
AvrConnection *avrConnection = m_avrConnections.value(thing->id());
|
||||
thing->setStateValue(AVRX1000ConnectedStateTypeId, avrConnection->connected());
|
||||
@ -506,15 +574,6 @@ void IntegrationPluginDenon::postSetupThing(Thing *thing)
|
||||
} else if (thing->thingClassId() == heosThingClassId) {
|
||||
Heos *heos = m_heosConnections.value(thing->id());
|
||||
thing->setStateValue(heosConnectedStateTypeId, heos->connected());
|
||||
if (pluginStorage()->childGroups().contains(thing->id().toString())) {
|
||||
pluginStorage()->beginGroup(thing->id().toString());
|
||||
QString username = pluginStorage()->value("username").toString();
|
||||
QString password = pluginStorage()->value("password").toString();
|
||||
pluginStorage()->endGroup();
|
||||
heos->setUserAccount(username, password);
|
||||
} else {
|
||||
qCWarning(dcDenon()) << "Plugin storage doesn't contain this deviceId";
|
||||
}
|
||||
heos->getPlayers();
|
||||
heos->getGroups();
|
||||
|
||||
@ -531,6 +590,7 @@ void IntegrationPluginDenon::postSetupThing(Thing *thing)
|
||||
}
|
||||
|
||||
if (!m_pluginTimer) {
|
||||
qCDebug(dcDenon()) << "Creating plugin timer";
|
||||
m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(60);
|
||||
connect(m_pluginTimer, &PluginTimer::timeout, this, &IntegrationPluginDenon::onPluginTimer);
|
||||
}
|
||||
@ -557,13 +617,11 @@ void IntegrationPluginDenon::onPluginTimer()
|
||||
}
|
||||
}
|
||||
|
||||
foreach(Thing *thing, myThings()) {
|
||||
foreach(Thing *thing, myThings().filterByThingClassId(heosThingClassId)) {
|
||||
|
||||
if (thing->thingClassId() == heosThingClassId) {
|
||||
Heos *heos = m_heosConnections.value(thing->id());
|
||||
heos->getPlayers();
|
||||
heos->registerForChangeEvents(true);
|
||||
}
|
||||
Heos *heos = m_heosConnections.value(thing->id());
|
||||
heos->getPlayers();
|
||||
heos->registerForChangeEvents(true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -590,6 +648,14 @@ void IntegrationPluginDenon::onAvrConnectionChanged(bool status)
|
||||
|
||||
if (thing->thingClassId() == AVRX1000ThingClassId) {
|
||||
thing->setStateValue(AVRX1000ConnectedStateTypeId, denonConnection->connected());
|
||||
|
||||
if (!status) {
|
||||
QString id = thing->paramValue(AVRX1000ThingIdParamTypeId).toString();
|
||||
QHostAddress address = findAvrById(id);
|
||||
if (!address.isNull()){
|
||||
denonConnection->setHostAddress(address);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -816,6 +882,7 @@ void IntegrationPluginDenon::onHeosConnectionChanged(bool status)
|
||||
if (!thing)
|
||||
return;
|
||||
|
||||
qCDebug(dcDenon()) << "Heos connection changed" << thing->name();
|
||||
if (thing->thingClassId() == heosThingClassId) {
|
||||
|
||||
if (pluginStorage()->childGroups().contains(thing->id().toString())) {
|
||||
@ -825,12 +892,17 @@ void IntegrationPluginDenon::onHeosConnectionChanged(bool status)
|
||||
pluginStorage()->endGroup();
|
||||
heos->setUserAccount(username, password);
|
||||
} else {
|
||||
qCWarning(dcDenon()) << "Plugin storage doesn't contain this deviceId";
|
||||
qCWarning(dcDenon()) << "Plugin storage doesn't contain this thingId";
|
||||
}
|
||||
|
||||
if (!status) {
|
||||
thing->setStateValue(heosLoggedInStateTypeId, false);
|
||||
thing->setStateValue(heosUserDisplayNameStateTypeId, "");
|
||||
|
||||
qCDebug(dcDenon()) << "Starting Heos discovery";
|
||||
UpnpDiscoveryReply *reply = hardwareManager()->upnpDiscovery()->discoverDevices();
|
||||
connect(reply, &UpnpDiscoveryReply::finished, reply, &UpnpDiscoveryReply::deleteLater);
|
||||
connect(reply, &UpnpDiscoveryReply::finished, this, &IntegrationPluginDenon::onHeosDiscoveryFinished);
|
||||
}
|
||||
thing->setStateValue(heosConnectedStateTypeId, status);
|
||||
// update connection status for all child things
|
||||
@ -857,6 +929,10 @@ void IntegrationPluginDenon::onHeosPlayersReceived(QList<HeosPlayer *> heosPlaye
|
||||
}
|
||||
|
||||
QList<ThingDescriptor> heosPlayerDescriptors;
|
||||
if (heosPlayers.isEmpty()) {
|
||||
qCWarning(dcDenon()) << "Received empty player list, this is likely because of a bug in the Heos API, ignoring";
|
||||
return;
|
||||
}
|
||||
foreach (HeosPlayer *player, heosPlayers) {
|
||||
ThingDescriptor descriptor(heosPlayerThingClassId, player->name(), player->playerModel(), thing->id());
|
||||
ParamList params;
|
||||
@ -884,6 +960,7 @@ void IntegrationPluginDenon::onHeosPlayersReceived(QList<HeosPlayer *> heosPlaye
|
||||
}
|
||||
}
|
||||
if (!playerAvailable) {
|
||||
qCDebug(dcDenon()) << "Heos player vanished, removing" << thing->name();
|
||||
autoThingDisappeared(existingThing->id());
|
||||
m_playerBuffer.remove(playerId);
|
||||
}
|
||||
@ -1181,7 +1258,6 @@ void IntegrationPluginDenon::onHeosGroupsChanged()
|
||||
|
||||
void IntegrationPluginDenon::onHeosUserChanged(bool signedIn, const QString &userName)
|
||||
{
|
||||
Q_UNUSED(userName)
|
||||
Heos *heos = static_cast<Heos *>(sender());
|
||||
|
||||
//This is to check if the credentials are correct
|
||||
@ -1203,6 +1279,30 @@ void IntegrationPluginDenon::onHeosUserChanged(bool signedIn, const QString &use
|
||||
}
|
||||
}
|
||||
|
||||
void IntegrationPluginDenon::onHeosDiscoveryFinished()
|
||||
{
|
||||
UpnpDiscoveryReply *reply = static_cast<UpnpDiscoveryReply *>(sender());
|
||||
|
||||
if (reply->error() != UpnpDiscoveryReply::UpnpDiscoveryReplyErrorNoError) {
|
||||
qCWarning(dcDenon()) << "Upnp discovery error" << reply->error();
|
||||
return;
|
||||
}
|
||||
|
||||
Q_FOREACH(const UpnpDeviceDescriptor &upnpThing, reply->deviceDescriptors()) {
|
||||
Q_FOREACH(Thing *thing, myThings().filterByThingClassId(heosThingClassId)) {
|
||||
QString serialNumber = thing->paramValue(heosThingSerialNumberParamTypeId).toString();
|
||||
if (serialNumber == upnpThing.serialNumber()) {
|
||||
Heos *heos = m_heosConnections.value(thing->id());
|
||||
if (!heos) {
|
||||
qCWarning(dcDenon()) << "On heos discovery, heos connection not found for" << thing->name();
|
||||
return;
|
||||
}
|
||||
heos->setAddress(upnpThing.hostAddress());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void IntegrationPluginDenon::onPluginConfigurationChanged(const ParamTypeId ¶mTypeId, const QVariant &value)
|
||||
{
|
||||
qCDebug(dcDenon()) << "Plugin configuration changed";
|
||||
@ -1416,3 +1516,15 @@ Heos *IntegrationPluginDenon::createHeosConnection(const QHostAddress &address)
|
||||
connect(heos, &Heos::userChanged, this, &IntegrationPluginDenon::onHeosUserChanged);
|
||||
return heos;
|
||||
}
|
||||
|
||||
QHostAddress IntegrationPluginDenon::findAvrById(const QString &id)
|
||||
{
|
||||
foreach (const ZeroConfServiceEntry &service, m_serviceBrowser->serviceEntries()) {
|
||||
if (service.txt().contains("am=AVRX1000")) {
|
||||
if (service.name().split("@").first() == id) {
|
||||
return service.hostAddress();
|
||||
}
|
||||
}
|
||||
}
|
||||
return QHostAddress();
|
||||
}
|
||||
|
||||
@ -102,7 +102,10 @@ private:
|
||||
QHash<int, GroupObject> m_groupBuffer;
|
||||
QHash<int, HeosPlayer *> m_playerBuffer;
|
||||
|
||||
QHash<QString, QHostAddress> m_heosIpAddresses;
|
||||
|
||||
Heos *createHeosConnection(const QHostAddress &address);
|
||||
QHostAddress findAvrById(const QString &id);
|
||||
|
||||
private slots:
|
||||
void onPluginTimer();
|
||||
@ -126,6 +129,7 @@ private slots:
|
||||
void onHeosGroupsReceived(QList<GroupObject> groups);
|
||||
void onHeosGroupsChanged();
|
||||
void onHeosUserChanged(bool signedIn, const QString &userName);
|
||||
void onHeosDiscoveryFinished();
|
||||
|
||||
void onAvrConnectionChanged(bool status);
|
||||
void onAvrSocketError();
|
||||
|
||||
@ -24,18 +24,12 @@
|
||||
"createMethods": ["discovery"],
|
||||
"interfaces": ["mediaplayer", "mediacontroller", "volumecontroller", "mediametadataprovider", "connectable", "power"],
|
||||
"paramTypes": [
|
||||
{
|
||||
"id": "cb6eeeb0-3d75-43b6-8177-b5ac19648557",
|
||||
"name": "ip",
|
||||
"displayName": "IPv4 address",
|
||||
"type" : "QString",
|
||||
"inputType": "IPv4Address"
|
||||
},
|
||||
{
|
||||
"id": "2e8806cb-f6f3-4e9a-b6ea-0b35f75e61c5",
|
||||
"name": "id",
|
||||
"displayName": "ID",
|
||||
"type" : "QString"
|
||||
"type" : "QString",
|
||||
"readOnly": true
|
||||
}
|
||||
],
|
||||
"stateTypes": [
|
||||
@ -319,24 +313,19 @@
|
||||
"setupMethod": "userandpassword",
|
||||
"interfaces": ["gateway"],
|
||||
"paramTypes": [
|
||||
{
|
||||
"id": "a54b98b4-b78f-41dd-a257-14425c6cf9ab",
|
||||
"name": "ip",
|
||||
"displayName": "IPv4 address",
|
||||
"type" : "QString",
|
||||
"inputType": "IPv4Address"
|
||||
},
|
||||
{
|
||||
"id": "f796664d-6cb7-4f29-9d05-771968d82a32",
|
||||
"name": "serialNumber",
|
||||
"displayName": "Serial number",
|
||||
"type" : "QString"
|
||||
"type" : "QString",
|
||||
"readOnly": true
|
||||
},
|
||||
{
|
||||
"id": "ab1a0be8-e3a5-4f95-b9b7-893de1ca4cf7",
|
||||
"name": "modelName",
|
||||
"displayName": "Model name",
|
||||
"type" : "QString"
|
||||
"type" : "QString",
|
||||
"readOnly": true
|
||||
}
|
||||
],
|
||||
"stateTypes": [
|
||||
|
||||
@ -195,15 +195,6 @@ The name of the ActionType ({d3752c32-92e3-4396-8e2f-ab5e57c6cfb1}) of ThingClas
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="320"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="323"/>
|
||||
<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>IPv4 Adresse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="326"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="329"/>
|
||||
<source>Increase volume</source>
|
||||
<extracomment>The name of the ActionType ({ebdc35f8-24a2-4984-855e-4c1a158289b7}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -211,14 +202,14 @@ The name of the ActionType ({4ae686d6-2307-40a0-bd38-2cd3a92342cc}) of ThingClas
|
||||
<translation>Lautstärke verringern</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="326"/>
|
||||
<source>Join group</source>
|
||||
<extracomment>The name of the Browser Item ActionType ({73112a01-84c7-4b1d-8b86-71672c110d06}) of ThingClass heosPlayer</extracomment>
|
||||
<translation>Gruppe beitreten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="335"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="338"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="329"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="332"/>
|
||||
<source>Logged in</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heos, EventType: loggedIn, ID: {ab689a6e-eb71-4a41-a267-ba1afe7e2f56})
|
||||
----------
|
||||
@ -226,30 +217,30 @@ The name of the StateType ({ab689a6e-eb71-4a41-a267-ba1afe7e2f56}) of ThingClass
|
||||
<translation>Eingelogged</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="335"/>
|
||||
<source>Logged in changed</source>
|
||||
<extracomment>The name of the EventType ({ab689a6e-eb71-4a41-a267-ba1afe7e2f56}) of ThingClass heos</extracomment>
|
||||
<translation>Eingelogged geändert</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="338"/>
|
||||
<source>Model</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {e760f92b-8fca-4f20-aead-a52045505b81})</extracomment>
|
||||
<translation>Modell</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="341"/>
|
||||
<source>Model name</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heos, Type: thing, ID: {ab1a0be8-e3a5-4f95-b9b7-893de1ca4cf7})</extracomment>
|
||||
<translation>Modellname</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="347"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="350"/>
|
||||
<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="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"/>
|
||||
<source>Mute</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: mute, ID: {fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f})
|
||||
----------
|
||||
@ -265,8 +256,8 @@ The name of the StateType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClass
|
||||
<translation>Stumm</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="371"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="362"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="365"/>
|
||||
<source>Mute changed</source>
|
||||
<extracomment>The name of the EventType ({fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -274,14 +265,14 @@ The name of the EventType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClass
|
||||
<translation>Stumm geändert</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="368"/>
|
||||
<source>Notification url</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: denon, Type: plugin, ID: {5a3cd3eb-8ff5-4110-aef0-7b0608450e60})</extracomment>
|
||||
<translation>Benachrichtigungs-Url</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="371"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="374"/>
|
||||
<source>Pause</source>
|
||||
<extracomment>The name of the ActionType ({21c1cbe6-278f-4688-a65f-6620be1ee5ea}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -289,8 +280,8 @@ The name of the ActionType ({3de38047-006f-4d97-9326-08bb5ad79b05}) of ThingClas
|
||||
<translation>Pause</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="386"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="377"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="380"/>
|
||||
<source>Play</source>
|
||||
<extracomment>The name of the ActionType ({c64964e4-cea0-468a-a9bf-8f69657b74e9}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -298,12 +289,12 @@ The name of the ActionType ({d04eb30b-838d-4fbd-b781-c01005b59756}) of ThingClas
|
||||
<translation>Play</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="386"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="389"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="392"/>
|
||||
<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="404"/>
|
||||
<source>Playback status</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: playbackStatus, ID: {6db3b484-4cd4-477b-b822-275865d308db})
|
||||
----------
|
||||
@ -319,8 +310,8 @@ The name of the StateType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass
|
||||
<translation>Wiedergabestatus</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="401"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="404"/>
|
||||
<source>Playback status changed</source>
|
||||
<extracomment>The name of the EventType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -328,16 +319,16 @@ The name of the EventType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass
|
||||
<translation>Wiedergabestatus geändert</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="407"/>
|
||||
<source>Player ID</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {89629008-6ad8-4e92-863d-b86e0e012d0b})</extracomment>
|
||||
<translation>Player ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="410"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="413"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="416"/>
|
||||
<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="425"/>
|
||||
<source>Player type</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: playerType, ID: {c59835ac-ee6e-4e6c-aa20-aeb3501937c5})
|
||||
----------
|
||||
@ -349,8 +340,8 @@ The name of the StateType ({2f372374-16f3-4900-afdc-834f51075d07}) of ThingClass
|
||||
<translation>Playertyp</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="431"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="422"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="425"/>
|
||||
<source>Player type changed</source>
|
||||
<extracomment>The name of the EventType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -358,9 +349,9 @@ The name of the EventType ({2f372374-16f3-4900-afdc-834f51075d07}) of ThingClass
|
||||
<translation>Playertyp 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="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"/>
|
||||
<source>Power</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
|
||||
----------
|
||||
@ -370,24 +361,24 @@ The name of the StateType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass
|
||||
<translation>Eingeschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="443"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="437"/>
|
||||
<source>Power changed</source>
|
||||
<extracomment>The name of the EventType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass AVRX1000</extracomment>
|
||||
<translation>Eingeschalten geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="446"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="440"/>
|
||||
<source>Reboot</source>
|
||||
<extracomment>The name of the ActionType ({4f8b7fe8-7a18-483a-859d-ed5acb0b9a20}) of ThingClass heos</extracomment>
|
||||
<translation>Neustarten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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="449"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="452"/>
|
||||
<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"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="464"/>
|
||||
<source>Repeat mode</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: repeat, ID: {4e60cd17-5845-4351-aa2c-2504610e1532})
|
||||
----------
|
||||
@ -403,8 +394,8 @@ The name of the StateType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass
|
||||
<translation>Wiederholungsmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="467"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="470"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="461"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="464"/>
|
||||
<source>Repeat mode changed</source>
|
||||
<extracomment>The name of the EventType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -412,8 +403,8 @@ The name of the EventType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass
|
||||
<translation>Wiederholungsmodus geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="473"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="476"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="467"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="470"/>
|
||||
<source>Serial number</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {866e8d6a-953f-4bdc-8d85-8d92e51e8592})
|
||||
----------
|
||||
@ -421,14 +412,14 @@ The name of the ParamType (ThingClass: heos, Type: thing, ID: {f796664d-6cb7-4f2
|
||||
<translation>Seriennummer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="479"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="473"/>
|
||||
<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="485"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="488"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="479"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="482"/>
|
||||
<source>Set mute</source>
|
||||
<extracomment>The name of the ActionType ({fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -436,8 +427,8 @@ The name of the ActionType ({3e11470d-a5b7-499c-be55-9b1b4fe5eedf}) of ThingClas
|
||||
<translation>Setze Stumm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="491"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="494"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="485"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="488"/>
|
||||
<source>Set playback status</source>
|
||||
<extracomment>The name of the ActionType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -445,8 +436,8 @@ The name of the ActionType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClas
|
||||
<translation>Setze Wiedergabemodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="500"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="503"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="494"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="497"/>
|
||||
<source>Set repeat mode</source>
|
||||
<extracomment>The name of the ActionType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -454,8 +445,8 @@ The name of the ActionType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClas
|
||||
<translation>Setze Wiederholungsmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="506"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="509"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="500"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="503"/>
|
||||
<source>Set shuffle</source>
|
||||
<extracomment>The name of the ActionType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -463,30 +454,30 @@ The name of the ActionType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClas
|
||||
<translation>Setze Zufallswiedergabe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="512"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="506"/>
|
||||
<source>Set surround mode</source>
|
||||
<extracomment>The name of the ActionType ({4f203bdd-691c-4384-a934-2d49a5448f0a}) of ThingClass AVRX1000</extracomment>
|
||||
<translation>Setze Surroundmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="515"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="509"/>
|
||||
<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="518"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="512"/>
|
||||
<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="521"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="524"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="527"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="530"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="533"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="536"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="539"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="542"/>
|
||||
<source>Shuffle</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: shuffle, ID: {4b581237-acf5-4d8f-9e83-9b24e9ac900a})
|
||||
----------
|
||||
@ -502,8 +493,8 @@ The name of the StateType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass
|
||||
<translation>Zufallswiedergabe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="545"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="548"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="539"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="542"/>
|
||||
<source>Shuffle changed</source>
|
||||
<extracomment>The name of the EventType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -511,8 +502,8 @@ The name of the EventType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass
|
||||
<translation>Zufallswiedergabe geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="551"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="554"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="545"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="548"/>
|
||||
<source>Skip back</source>
|
||||
<extracomment>The name of the ActionType ({a718f7e9-0b54-4403-b661-49f7b0d13085}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -520,8 +511,8 @@ The name of the ActionType ({3f2eb789-918c-475a-a295-14c0c24338b8}) of ThingClas
|
||||
<translation>Zurück</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="557"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="560"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="551"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="554"/>
|
||||
<source>Skip next</source>
|
||||
<extracomment>The name of the ActionType ({57697e9c-ce5e-4b8f-b42e-16662829ceb2}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -529,8 +520,8 @@ The name of the ActionType ({bf9664e4-a53e-474c-afcc-88f25e6fe365}) of ThingClas
|
||||
<translation>Nächstes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="563"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="566"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="557"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="560"/>
|
||||
<source>Source</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: source, ID: {eee22722-3ee5-48f7-8af8-275dc04b21eb})
|
||||
----------
|
||||
@ -538,18 +529,24 @@ The name of the StateType ({eee22722-3ee5-48f7-8af8-275dc04b21eb}) of ThingClass
|
||||
<translation>Quelle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="569"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="563"/>
|
||||
<source>Source changed</source>
|
||||
<extracomment>The name of the EventType ({eee22722-3ee5-48f7-8af8-275dc04b21eb}) of ThingClass heosPlayer</extracomment>
|
||||
<translation>Quelle geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="566"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="569"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="572"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="575"/>
|
||||
<source>Step size</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: decreaseVolume, ID: {ef5a252b-3d28-4817-a668-1dacf0ed1f8a})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: heosPlayer, ActionType: increaseVolume, ID: {0770da3f-61c3-4145-b0d8-348f42a8cf0d})</extracomment>
|
||||
The name of the ParamType (ThingClass: heosPlayer, ActionType: increaseVolume, ID: {0770da3f-61c3-4145-b0d8-348f42a8cf0d})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: AVRX1000, ActionType: decreaseVolume, ID: {0731daad-e689-40f6-8685-6d6362b715ec})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: AVRX1000, ActionType: increaseVolume, ID: {f24e4e9d-5f7b-4b5c-ad0a-eb6316d86408})</extracomment>
|
||||
<translation>Schrittgröße</translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -697,14 +694,14 @@ The name of the EventType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClass
|
||||
<translation>Lautstärke geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="497"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="491"/>
|
||||
<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="521"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="524"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="515"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="518"/>
|
||||
<source>Set volume</source>
|
||||
<extracomment>The name of the ActionType ({6d4886a1-fa5d-4889-96c5-7a1c206f59be}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -712,7 +709,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="482"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="476"/>
|
||||
<source>Set channel</source>
|
||||
<extracomment>The name of the ActionType ({f29ffa2c-31d6-4d88-b160-a38288c82ce1}) of ThingClass AVRX1000</extracomment>
|
||||
<translation>Wähle Kanal</translation>
|
||||
@ -721,28 +718,32 @@ The name of the ActionType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClas
|
||||
<context>
|
||||
<name>IntegrationPluginDenon</name>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="127"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="131"/>
|
||||
<source>UPnP discovery failed.</source>
|
||||
<translation>UPnP Gerätesuche fehlgeschlagen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="164"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="165"/>
|
||||
<source>Please enter your HEOS account credentials. Leave empty if you doesn't have any. Some features like music browsing won't be available.</source>
|
||||
<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="204"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="243"/>
|
||||
<source>The given IP address is not valid.</source>
|
||||
<translation>Die eingegebene IP-Adresse ist nicht gültig.</translation>
|
||||
<location filename="../integrationplugindenon.cpp" line="258"/>
|
||||
<source>Serial number is not set</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="982"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="284"/>
|
||||
<source>Device discovery failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="1059"/>
|
||||
<source>Service is not available</source>
|
||||
<translation>Service ist nicht verfügbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="1193"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="1269"/>
|
||||
<source>Wrong username or password</source>
|
||||
<translation>Falscher Benutzername oder Passwort</translation>
|
||||
</message>
|
||||
|
||||
@ -195,15 +195,6 @@ The name of the ActionType ({d3752c32-92e3-4396-8e2f-ab5e57c6cfb1}) of ThingClas
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="320"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="323"/>
|
||||
<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>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="326"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="329"/>
|
||||
<source>Increase volume</source>
|
||||
<extracomment>The name of the ActionType ({ebdc35f8-24a2-4984-855e-4c1a158289b7}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -211,14 +202,14 @@ The name of the ActionType ({4ae686d6-2307-40a0-bd38-2cd3a92342cc}) of ThingClas
|
||||
<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="326"/>
|
||||
<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="335"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="338"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="329"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="332"/>
|
||||
<source>Logged in</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heos, EventType: loggedIn, ID: {ab689a6e-eb71-4a41-a267-ba1afe7e2f56})
|
||||
----------
|
||||
@ -226,30 +217,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="341"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="335"/>
|
||||
<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="344"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="338"/>
|
||||
<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="347"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="341"/>
|
||||
<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="344"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="347"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="350"/>
|
||||
<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="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"/>
|
||||
<source>Mute</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: mute, ID: {fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f})
|
||||
----------
|
||||
@ -265,8 +256,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="368"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="371"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="362"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="365"/>
|
||||
<source>Mute changed</source>
|
||||
<extracomment>The name of the EventType ({fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -274,14 +265,14 @@ 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="374"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="368"/>
|
||||
<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="377"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="380"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="371"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="374"/>
|
||||
<source>Pause</source>
|
||||
<extracomment>The name of the ActionType ({21c1cbe6-278f-4688-a65f-6620be1ee5ea}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -289,8 +280,8 @@ The name of the ActionType ({3de38047-006f-4d97-9326-08bb5ad79b05}) of ThingClas
|
||||
<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="386"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="377"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="380"/>
|
||||
<source>Play</source>
|
||||
<extracomment>The name of the ActionType ({c64964e4-cea0-468a-a9bf-8f69657b74e9}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -298,12 +289,12 @@ The name of the ActionType ({d04eb30b-838d-4fbd-b781-c01005b59756}) of ThingClas
|
||||
<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="386"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="389"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="392"/>
|
||||
<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="404"/>
|
||||
<source>Playback status</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: playbackStatus, ID: {6db3b484-4cd4-477b-b822-275865d308db})
|
||||
----------
|
||||
@ -319,8 +310,8 @@ The name of the StateType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass
|
||||
<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="401"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="404"/>
|
||||
<source>Playback status changed</source>
|
||||
<extracomment>The name of the EventType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -328,16 +319,16 @@ The name of the EventType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClass
|
||||
<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="407"/>
|
||||
<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="410"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="413"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="416"/>
|
||||
<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="425"/>
|
||||
<source>Player type</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: playerType, ID: {c59835ac-ee6e-4e6c-aa20-aeb3501937c5})
|
||||
----------
|
||||
@ -349,8 +340,8 @@ The name of the StateType ({2f372374-16f3-4900-afdc-834f51075d07}) of ThingClass
|
||||
<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="431"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="422"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="425"/>
|
||||
<source>Player type changed</source>
|
||||
<extracomment>The name of the EventType ({c59835ac-ee6e-4e6c-aa20-aeb3501937c5}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -358,9 +349,9 @@ The name of the EventType ({2f372374-16f3-4900-afdc-834f51075d07}) of ThingClass
|
||||
<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="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"/>
|
||||
<source>Power</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: AVRX1000, ActionType: power, ID: {1cdb6b54-6831-4900-95b2-c78f64497701})
|
||||
----------
|
||||
@ -370,24 +361,24 @@ The name of the StateType ({1cdb6b54-6831-4900-95b2-c78f64497701}) of ThingClass
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="443"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="437"/>
|
||||
<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="446"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="440"/>
|
||||
<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="443"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="446"/>
|
||||
<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="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"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="464"/>
|
||||
<source>Repeat mode</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: repeat, ID: {4e60cd17-5845-4351-aa2c-2504610e1532})
|
||||
----------
|
||||
@ -403,8 +394,8 @@ The name of the StateType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="467"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="470"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="461"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="464"/>
|
||||
<source>Repeat mode changed</source>
|
||||
<extracomment>The name of the EventType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -412,8 +403,8 @@ The name of the EventType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClass
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="473"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="476"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="467"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="470"/>
|
||||
<source>Serial number</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, Type: thing, ID: {866e8d6a-953f-4bdc-8d85-8d92e51e8592})
|
||||
----------
|
||||
@ -421,14 +412,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="479"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="473"/>
|
||||
<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="485"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="488"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="479"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="482"/>
|
||||
<source>Set mute</source>
|
||||
<extracomment>The name of the ActionType ({fcc89c7c-b793-4b6f-a3dc-0e0e3a86748f}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -436,8 +427,8 @@ 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="491"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="494"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="485"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="488"/>
|
||||
<source>Set playback status</source>
|
||||
<extracomment>The name of the ActionType ({6db3b484-4cd4-477b-b822-275865d308db}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -445,8 +436,8 @@ The name of the ActionType ({8ef6708c-812a-4e6a-a608-9e480aa3b7bf}) of ThingClas
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="500"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="503"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="494"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="497"/>
|
||||
<source>Set repeat mode</source>
|
||||
<extracomment>The name of the ActionType ({4e60cd17-5845-4351-aa2c-2504610e1532}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -454,8 +445,8 @@ The name of the ActionType ({9478987b-14e4-4572-a059-a18a5a9db229}) of ThingClas
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="506"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="509"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="500"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="503"/>
|
||||
<source>Set shuffle</source>
|
||||
<extracomment>The name of the ActionType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -463,30 +454,30 @@ The name of the ActionType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClas
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="512"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="506"/>
|
||||
<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="515"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="509"/>
|
||||
<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="518"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="512"/>
|
||||
<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="521"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="524"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="527"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="530"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="533"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="536"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="539"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="542"/>
|
||||
<source>Shuffle</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: shuffle, ID: {4b581237-acf5-4d8f-9e83-9b24e9ac900a})
|
||||
----------
|
||||
@ -502,8 +493,8 @@ The name of the StateType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="545"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="548"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="539"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="542"/>
|
||||
<source>Shuffle changed</source>
|
||||
<extracomment>The name of the EventType ({4b581237-acf5-4d8f-9e83-9b24e9ac900a}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -511,8 +502,8 @@ The name of the EventType ({8ad33cb9-e758-433d-a013-2e4d43157c92}) of ThingClass
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="551"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="554"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="545"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="548"/>
|
||||
<source>Skip back</source>
|
||||
<extracomment>The name of the ActionType ({a718f7e9-0b54-4403-b661-49f7b0d13085}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -520,8 +511,8 @@ The name of the ActionType ({3f2eb789-918c-475a-a295-14c0c24338b8}) of ThingClas
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="557"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="560"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="551"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="554"/>
|
||||
<source>Skip next</source>
|
||||
<extracomment>The name of the ActionType ({57697e9c-ce5e-4b8f-b42e-16662829ceb2}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -529,8 +520,8 @@ The name of the ActionType ({bf9664e4-a53e-474c-afcc-88f25e6fe365}) of ThingClas
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="563"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="566"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="557"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="560"/>
|
||||
<source>Source</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, EventType: source, ID: {eee22722-3ee5-48f7-8af8-275dc04b21eb})
|
||||
----------
|
||||
@ -538,18 +529,24 @@ 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="569"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="563"/>
|
||||
<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="566"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="569"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="572"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="575"/>
|
||||
<source>Step size</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: heosPlayer, ActionType: decreaseVolume, ID: {ef5a252b-3d28-4817-a668-1dacf0ed1f8a})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: heosPlayer, ActionType: increaseVolume, ID: {0770da3f-61c3-4145-b0d8-348f42a8cf0d})</extracomment>
|
||||
The name of the ParamType (ThingClass: heosPlayer, ActionType: increaseVolume, ID: {0770da3f-61c3-4145-b0d8-348f42a8cf0d})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: AVRX1000, ActionType: decreaseVolume, ID: {0731daad-e689-40f6-8685-6d6362b715ec})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: AVRX1000, ActionType: increaseVolume, ID: {f24e4e9d-5f7b-4b5c-ad0a-eb6316d86408})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
@ -697,14 +694,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="497"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="491"/>
|
||||
<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="521"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="524"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="515"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="518"/>
|
||||
<source>Set volume</source>
|
||||
<extracomment>The name of the ActionType ({6d4886a1-fa5d-4889-96c5-7a1c206f59be}) of ThingClass heosPlayer
|
||||
----------
|
||||
@ -712,7 +709,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="482"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/denon/plugininfo.h" line="476"/>
|
||||
<source>Set channel</source>
|
||||
<extracomment>The name of the ActionType ({f29ffa2c-31d6-4d88-b160-a38288c82ce1}) of ThingClass AVRX1000</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
@ -721,28 +718,32 @@ The name of the ActionType ({773636b9-304d-463a-8755-fc7488dc0ff3}) of ThingClas
|
||||
<context>
|
||||
<name>IntegrationPluginDenon</name>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="127"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="131"/>
|
||||
<source>UPnP discovery failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="164"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="165"/>
|
||||
<source>Please enter your HEOS account credentials. Leave empty if you doesn't have any. Some features like music browsing won't be available.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="204"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="243"/>
|
||||
<source>The given IP address is not valid.</source>
|
||||
<location filename="../integrationplugindenon.cpp" line="258"/>
|
||||
<source>Serial number is not set</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="982"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="284"/>
|
||||
<source>Device discovery failed.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="1059"/>
|
||||
<source>Service is not available</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugindenon.cpp" line="1193"/>
|
||||
<location filename="../integrationplugindenon.cpp" line="1269"/>
|
||||
<source>Wrong username or password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user