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