testing browsing of TuneIn

This commit is contained in:
Boernsman 2020-02-10 17:56:07 +05:00 committed by bernhard.trinnes
parent 8fa10cc548
commit 5dbe8ebf7d
2 changed files with 36 additions and 18 deletions

View File

@ -459,12 +459,18 @@ quint32 Heos::playStation(int playerId, const QString &sourceId, const QString &
QByteArray cmd("heos://browse/play_stream?"); QByteArray cmd("heos://browse/play_stream?");
QUrlQuery queryParams; QUrlQuery queryParams;
queryParams.addQueryItem("pid", QString::number(playerId)); queryParams.addQueryItem("pid", QString::number(playerId));
if (!sourceId.isEmpty()) {
queryParams.addQueryItem("sid", sourceId); queryParams.addQueryItem("sid", sourceId);
}
if (!containerId.isEmpty()) { if (!containerId.isEmpty()) {
queryParams.addQueryItem("cid", containerId); queryParams.addQueryItem("cid", containerId);
} }
if (!mediaId.isEmpty()) {
queryParams.addQueryItem("mid", mediaId); queryParams.addQueryItem("mid", mediaId);
}
if (!stationName.isEmpty()) {
queryParams.addQueryItem("name", stationName); queryParams.addQueryItem("name", stationName);
}
queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); queryParams.addQueryItem("SEQUENCE", QString::number(sequence));
cmd.append(queryParams.toString()); cmd.append(queryParams.toString());
cmd.append("\r\n"); cmd.append("\r\n");
@ -643,7 +649,8 @@ void Heos::readData()
* 4.2.2 Get Player Info * 4.2.2 Get Player Info
* 4.2.3 Get Play State * 4.2.3 Get Play State
* 4.2.4 Set Play State * 4.2.4 Set Play State
* 4.2.5 Get Now Playing Media 4.2.6 Get Volume * 4.2.5 Get Now Playing Media
* 4.2.6 Get Volume
* 4.2.7 Set Volume * 4.2.7 Set Volume
* 4.2.8 Volume Up * 4.2.8 Volume Up
* 4.2.9 Volume Down * 4.2.9 Volume Down
@ -654,7 +661,9 @@ void Heos::readData()
* 4.2.14 Set Play Mode * 4.2.14 Set Play Mode
* 4.2.15 Get Queue * 4.2.15 Get Queue
* 4.2.16 Play Queue Item * 4.2.16 Play Queue Item
* 4.2.17 Remove Item(s) from Queue 4.2.18 Save Queue as Playlist 4.2.19 Clear Queue * 4.2.17 Remove Item(s) from Queue
* 4.2.18 Save Queue as Playlist
* 4.2.19 Clear Queue
* 4.2.20 Move Queue * 4.2.20 Move Queue
* 4.2.21 Play Next * 4.2.21 Play Next
* 4.2.22 Play Previous * 4.2.22 Play Previous
@ -900,8 +909,14 @@ void Heos::readData()
} else if (command.contains("browse/browse")) { } else if (command.contains("browse/browse")) {
qDebug(dcDenon()) << "Browse response:" << jsonDoc.toVariant().toMap().value("payload"); qDebug(dcDenon()) << "Browse response:" << jsonDoc.toVariant().toMap().value("payload");
QVariantList payloadVariantList = jsonDoc.toVariant().toMap().value("payload").toList(); QVariantList payloadVariantList = jsonDoc.toVariant().toMap().value("payload").toList();
QString sourceId = message.queryItemValue("sid"); QString sourceId;
QString containerId = message.queryItemValue("cid"); QString containerId;
if (message.hasQueryItem("sid")) {
sourceId = message.queryItemValue("sid");
}
if (message.hasQueryItem("cid")) {
containerId = message.queryItemValue("cid");
}
if (message.toString().contains("command under process")){ if (message.toString().contains("command under process")){
qDebug(dcDenon()) << "Browse command is beeing processed"; qDebug(dcDenon()) << "Browse command is beeing processed";
@ -962,6 +977,7 @@ void Heos::readData()
} else if (command.contains("play_preset")) { } else if (command.contains("play_preset")) {
} else if (command.contains("play_input")) { } else if (command.contains("play_input")) {
qCDebug(dcDenon()) << "Command play input";
} else if (command.contains("add_to_queue")) { } else if (command.contains("add_to_queue")) {

View File

@ -1032,6 +1032,8 @@ void DevicePluginDenon::onHeosMusicSourcesReceived(quint32 sequenceNumber, QList
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconTidal); item.setMediaIcon(MediaBrowserItem::MediaBrowserIconTidal);
} else if (source.name == "TuneIn") { } else if (source.name == "TuneIn") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconTuneIn); item.setMediaIcon(MediaBrowserItem::MediaBrowserIconTuneIn);
item.setBrowsable(true);
item.setDescription(source.serviceUsername);
} else if (source.name == "Local Music") { } else if (source.name == "Local Music") {
item.setMediaIcon(MediaBrowserItem::MediaBrowserIconDisk); item.setMediaIcon(MediaBrowserItem::MediaBrowserIconDisk);
} else if (source.name == "Playlists") { } else if (source.name == "Playlists") {
@ -1306,7 +1308,7 @@ void IntegrationPluginDenon::browseDevice(BrowseResult *result)
QString id = result->itemId().remove("source="); QString id = result->itemId().remove("source=");
heos->browseSource(id); heos->browseSource(id);
m_pendingBrowseResult.insert(id, result); m_pendingBrowseResult.insert(id, result);
//connect(result, &QObject::destroyed, this, [this, result->itemId()](){ m_pendingBrowseResult.remove(result->itemId());}); connect(result, &QObject::destroyed, this, [this, id](){ m_pendingBrowseResult.remove(id);});
} else if (result->itemId().startsWith("container=")){ } else if (result->itemId().startsWith("container=")){
qDebug(dcDenon()) << "Browse container" << result->itemId(); qDebug(dcDenon()) << "Browse container" << result->itemId();