removed audio sources

This commit is contained in:
bernhard.trinnes 2020-03-24 17:32:07 +01:00
parent fb8c12fe3f
commit 99317f3405
2 changed files with 61 additions and 17 deletions

View File

@ -1,3 +1,18 @@
# Denon
This pluging provides support for the [Denon AV Amplifier AVR-X1000](http://www.denon.de/de/product/hometheater/avreceivers/avrx1000) device.
This pluging integrates audio products from Denon.
## Supported Things
* AVR-X1000
* Heos built-in products
## Requirements
* nymea and the Denon device must be in the same local area network.
* The package "nymea-plugin-denon" must be installed.
* TCP connection on port 1255 must not be block by the router.
## More
http://www.denon.com

View File

@ -425,16 +425,16 @@ void IntegrationPluginDenon::onPluginTimer()
heos->getPlayers();
heos->registerForChangeEvents(true);
} else if (thing->thingClassId() == heosPlayerThingClassId) {
Thing *heosThing = myThings().findById(thing->parentId());
Heos *heos = m_heosConnections.value(heosThing->id());
int playerId = thing->paramValue(heosPlayerThingPlayerIdParamTypeId).toInt();
//Thing *heosThing = myThings().findById(thing->parentId());
//Heos *heos = m_heosConnections.value(heosThing->id());
//int playerId = thing->paramValue(heosPlayerThingPlayerIdParamTypeId).toInt();
//TODO check if event stream is sufficent and remove polling
heos->getPlayerState(playerId);
heos->getPlayMode(playerId);
heos->getVolume(playerId);
heos->getMute(playerId);
heos->getNowPlayingMedia(playerId);
//heos->getPlayerState(playerId);
//heos->getPlayMode(playerId);
//heos->getVolume(playerId);
//heos->getMute(playerId);
//heos->getNowPlayingMedia(playerId);
}
}
}
@ -600,10 +600,20 @@ void IntegrationPluginDenon::onHeosPlayersReceived(QList<HeosPlayer *> heosPlaye
heosPlayerDescriptors.append(descriptor);
}
//TODO remove things
//autoThingDisappeared();
//TODO remove player from player Buffer
autoThingsAppeared(heosPlayerDescriptors);
foreach(Thing *existingThing, myThings().filterByParentId(thing->id())) {
bool playerAvailable = false;
int playerId = existingThing->paramValue(heosPlayerThingPlayerIdParamTypeId).toInt();
foreach (HeosPlayer *player, heosPlayers) {
if (player->playerId() == playerId) {
playerAvailable = true;
break;
}
}
if (!playerAvailable) {
autoThingDisappeared(existingThing->id());
m_playerBuffer.remove(playerId);
}
}
}
void IntegrationPluginDenon::onHeosPlayerInfoRecieved(HeosPlayer *heosPlayer)
@ -698,32 +708,41 @@ void IntegrationPluginDenon::onHeosMusicSourcesReceived(quint32 sequenceNumber,
item.setIcon(BrowserItem::BrowserIconMusic);
if (source.name == "Amazon") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconAmazon);
//result->addItem(item);
} else if (source.name == "Deezer") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconDeezer);
//result->addItem(item);
} else if (source.name == "Napster") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconNapster);
//result->addItem(item);
} else if (source.name == "SoundCloud") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconSoundCloud);
//result->addItem(item);
} else if (source.name == "Tidal") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconTidal);
//result->addItem(item);
} else if (source.name == "TuneIn") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconTuneIn);
item.setBrowsable(true);
item.setDescription(source.serviceUsername);
result->addItem(item);
} else if (source.name == "Local Music") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconDisk);
//result->addItem(item);
} else if (source.name == "Playlists") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconPlaylist);
} else if (source.name == "History") {
//result->addItem(item);
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconRecentlyPlayed);
} else if (source.name == "AUX Input") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconAux);
//result->addItem(item);
} else if (source.name == "Favorites") {
item.setIcon(BrowserItem::BrowserIconFavorites);
result->addItem(item);
} else {
item.setThumbnail(source.image_url);
}
result->addItem(item);
qDebug(dcDenon()) << "Music source received:" << source.name << source.type << source.sourceId << source.image_url;
}
result->finish(Thing::ThingErrorNoError);
@ -767,34 +786,44 @@ void IntegrationPluginDenon::onHeosBrowseRequestReceived(quint32 sequenceNumber,
qDebug(dcDenon()) << "Adding Item" << source.name << source.sourceId;
item.setId("source=" + QString::number(source.sourceId));
item.setIcon(BrowserItem::BrowserIconMusic);
item.setExecutable(false);
item.setBrowsable(true);
if (source.name.contains("Amazon")) {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconAmazon);
//result->addItem(item);
} else if (source.name == "Deezer") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconDeezer);
//result->addItem(item);
} else if (source.name == "Napster") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconNapster);
//result->addItem(item);
} else if (source.name == "SoundCloud") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconSoundCloud);
//result->addItem(item);
} else if (source.name == "Tidal") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconTidal);
//result->addItem(item);
} else if (source.name == "TuneIn") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconTuneIn);
result->addItem(item);
} else if (source.name == "Local Music") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconDisk);
//result->addItem(item);
} else if (source.name == "Playlists") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconPlaylist);
//result->addItem(item);
} else if (source.name == "History") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconRecentlyPlayed);
//result->addItem(item);
} else if (source.name == "AUX Input") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconAux);
//result->addItem(item);
} else if (source.name == "Favorites") {
item.setIcon(BrowserItem::BrowserIconFavorites);
result->addItem(item);
} else {
item.setThumbnail(source.image_url);
}
item.setExecutable(false);
item.setBrowsable(true);
result->addItem(item);
}
result->finish(Thing::ThingErrorNoError);
} else {