From e673a6fceaaaa817dc239e9495f8af01d5028fdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Thu, 7 Aug 2025 16:22:29 +0200 Subject: [PATCH] denon: Add Qt6 support --- denon/avrconnection.cpp | 27 +++--- denon/denon.pro | 4 +- denon/heos.cpp | 144 ++++++++++++++++--------------- denon/integrationplugindenon.cpp | 48 +++++------ 4 files changed, 115 insertions(+), 108 deletions(-) diff --git a/denon/avrconnection.cpp b/denon/avrconnection.cpp index b5b6d6e9..e2016694 100644 --- a/denon/avrconnection.cpp +++ b/denon/avrconnection.cpp @@ -41,8 +41,13 @@ AvrConnection::AvrConnection(const QHostAddress &hostAddress, const int &port, Q connect(m_socket, &QTcpSocket::connected, this, &AvrConnection::onConnected); connect(m_socket, &QTcpSocket::disconnected, this, &AvrConnection::onDisconnected); connect(m_socket, &QTcpSocket::readyRead, this, &AvrConnection::readData); +#if QT_VERSION >= QT_VERSION_CHECK(6,0,0) + connect(m_socket, &QTcpSocket::errorOccurred, this, &AvrConnection::onError); +#else // Note: error signal will be interpreted as function, not as signal in C++11 connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError))); +#endif + m_commandTimer = new QTimer(this); m_commandTimer->start(50); // 50ms is the minimum request interval specified @@ -157,20 +162,20 @@ QUuid AvrConnection::sendCommand(const QByteArray &message) QUuid AvrConnection::setChannel(const QByteArray &channel) { QByteArray cmd = "SI" + channel + "\r"; - qCDebug(dcDenon) << "Change to channel:" << channel; + qCDebug(dcDenon()) << "Change to channel:" << channel; return sendCommand(cmd); } QUuid AvrConnection::setVolume(uint volume) { - qCDebug(dcDenon) << "Set volume" << volume; + qCDebug(dcDenon()) << "Set volume" << volume; QByteArray cmd = "MV" + QByteArray::number(volume) + "\r"; return sendCommand(cmd); } QUuid AvrConnection::setMute(bool mute) { - qCDebug(dcDenon) << "Set mute" << mute; + qCDebug(dcDenon()) << "Set mute" << mute; QByteArray cmd; if (mute) { cmd = "MUON\r"; @@ -182,7 +187,7 @@ QUuid AvrConnection::setMute(bool mute) QUuid AvrConnection::setPower(bool power) { - qCDebug(dcDenon) << "Set power" << power; + qCDebug(dcDenon()) << "Set power" << power; QByteArray cmd; if (power) { cmd = "PWON\r"; @@ -194,7 +199,7 @@ QUuid AvrConnection::setPower(bool power) QUuid AvrConnection::setSurroundMode(const QByteArray &surroundMode) { - qCDebug(dcDenon) << "Set surround mode" << surroundMode; + qCDebug(dcDenon()) << "Set surround mode" << surroundMode; QByteArray cmd = "MS" + surroundMode + "\r"; return sendCommand(cmd); } @@ -298,33 +303,33 @@ QUuid AvrConnection::setRepeat(AvrConnection::RepeatMode mode) QUuid AvrConnection::increaseVolume() { - qCDebug(dcDenon) << "Execute volume increase"; + qCDebug(dcDenon()) << "Execute volume increase"; QByteArray cmd = "MVUP\r"; return sendCommand(cmd); } QUuid AvrConnection::decreaseVolume() { - qCDebug(dcDenon) << "Execute volume decrease"; + qCDebug(dcDenon()) << "Execute volume decrease"; QByteArray cmd = "MVDOWN\r"; return sendCommand(cmd); } void AvrConnection::onConnected() { - qCDebug(dcDenon) << "connected successfully to" << hostAddress().toString() << port(); + qCDebug(dcDenon()) << "connected successfully to" << hostAddress().toString() << port(); emit connectionStatusChanged(true); } void AvrConnection::onDisconnected() { - qCDebug(dcDenon) << "disconnected from" << hostAddress().toString() << port(); + qCDebug(dcDenon()) << "disconnected from" << hostAddress().toString() << port(); emit connectionStatusChanged(false); } void AvrConnection::onError(QAbstractSocket::SocketError socketError) { - qCWarning(dcDenon) << "socket error:" << socketError << m_socket->errorString(); + qCWarning(dcDenon()) << "socket error:" << socketError << m_socket->errorString(); emit socketErrorOccured(socketError); } @@ -337,7 +342,7 @@ void AvrConnection::readData() if(line.isEmpty()) continue; - qCDebug(dcDenon) << "Data received" << line; + qCDebug(dcDenon()) << "Data received" << line; if (line.contains("MV") && !data.contains("MAX")){ int index = data.indexOf("MV"); int volume = data.mid(index+2, 2).toInt(); diff --git a/denon/denon.pro b/denon/denon.pro index 04bb1aac..edd2b677 100644 --- a/denon/denon.pro +++ b/denon/denon.pro @@ -1,8 +1,6 @@ include(../plugins.pri) -QT += network - -TARGET = $$qtLibraryTarget(nymea_integrationplugindenon) +QT *= network SOURCES += \ integrationplugindenon.cpp \ diff --git a/denon/heos.cpp b/denon/heos.cpp index b0ebb618..2c179d17 100644 --- a/denon/heos.cpp +++ b/denon/heos.cpp @@ -50,7 +50,11 @@ Heos::Heos(const QHostAddress &hostAddress, QObject *parent) : connect(m_socket, &QTcpSocket::connected, this, &Heos::onConnected); connect(m_socket, &QTcpSocket::disconnected, this, &Heos::onDisconnected); connect(m_socket, &QTcpSocket::readyRead, this, &Heos::readData); +#if QT_VERSION >= QT_VERSION_CHECK(6,0,0) + connect(m_socket, &QTcpSocket::errorOccurred, this, &Heos::onError); +#else connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onError(QAbstractSocket::SocketError))); +#endif m_reconnectTimer = new QTimer(this); m_reconnectTimer->setInterval(5000); @@ -113,7 +117,7 @@ void Heos::registerForChangeEvents(bool state) query = "?enable=off"; } QByteArray cmd = "heos://system/register_for_change_events" + query + "\r\n"; - qCDebug(dcDenon) << "Register for change events:" << cmd; + qCDebug(dcDenon()) << "Register for change events:" << cmd; m_socket->write(cmd); } @@ -164,35 +168,35 @@ void Heos::prettifyJsonResponse(bool enable) void Heos::playNext(int playerId) { QByteArray cmd = "heos://player/play_next?pid=" + QVariant(playerId).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Play next:" << cmd; + qCDebug(dcDenon()) << "Play next:" << cmd; m_socket->write(cmd); } void Heos::playPrevious(int playerId) { QByteArray cmd = "heos://player/play_previous?pid=" + QVariant(playerId).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Play previous:" << cmd; + qCDebug(dcDenon()) << "Play previous:" << cmd; m_socket->write(cmd); } void Heos::volumeUp(int playerId, int step) { QByteArray cmd = "heos://player/volume_up?pid=" + QVariant(playerId).toByteArray() + "&step=" + QVariant(step).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Volume up:" << cmd; + qCDebug(dcDenon()) << "Volume up:" << cmd; m_socket->write(cmd); } void Heos::volumeDown(int playerId, int step) { QByteArray cmd = "heos://player/volume_down?pid=" + QVariant(playerId).toByteArray() + "&step=" + QVariant(step).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Volume down:" << cmd; + qCDebug(dcDenon()) << "Volume down:" << cmd; m_socket->write(cmd); } void Heos::clearQueue(int playerId) { QByteArray cmd = "heos://player/clear_queue?pid=" + QVariant(playerId).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "clear queue:" << cmd; + qCDebug(dcDenon()) << "clear queue:" << cmd; m_socket->write(cmd); } @@ -203,16 +207,16 @@ void Heos::moveQueue(int playerId, int sourcQueueId, int destinationQueueId) queryParams.addQueryItem("pid", QString::number(playerId)); queryParams.addQueryItem("sqid", QString::number(sourcQueueId)); queryParams.addQueryItem("dqid", QString::number(destinationQueueId)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "moving queue:" << cmd; + qCDebug(dcDenon()) << "moving queue:" << cmd; m_socket->write(cmd); } void Heos::checkForFirmwareUpdate(int playerId) { QByteArray cmd = "heos://player/check_update?pid=" + QVariant(playerId).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Check firmware update:" << cmd; + qCDebug(dcDenon()) << "Check firmware update:" << cmd; m_socket->write(cmd); } void Heos::getNowPlayingMedia(int playerId) @@ -230,7 +234,7 @@ void Heos::getPlayers() void Heos::getPlayerInfo(int playerId) { QByteArray cmd = "heos://player/get_player_info?pid=" + QVariant(playerId).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Get player info:" << cmd; + qCDebug(dcDenon()) << "Get player info:" << cmd; m_socket->write(cmd); } @@ -243,7 +247,7 @@ void Heos::getVolume(int playerId) void Heos::setVolume(int playerId, int volume) { QByteArray cmd = "heos://player/set_volume?pid=" + QVariant(playerId).toByteArray() + "&level=" + QVariant(volume).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Set volume:" << cmd; + qCDebug(dcDenon()) << "Set volume:" << cmd; m_socket->write(cmd); } @@ -262,7 +266,7 @@ void Heos::setMute(int playerId, bool state) stateQuery = "&state=off"; } QByteArray cmd = "heos://player/set_mute?pid=" + QVariant(playerId).toByteArray() + stateQuery + "\r\n"; - qCDebug(dcDenon) << "Set mute:" << cmd; + qCDebug(dcDenon()) << "Set mute:" << cmd; m_socket->write(cmd); } @@ -279,7 +283,7 @@ void Heos::setPlayerState(int playerId, PLAYER_STATE state) } QByteArray cmd = "heos://player/set_play_state?pid=" + QVariant(playerId).toByteArray() + playerStateQuery + "\r\n"; - qCDebug(dcDenon) << "Set play mode:" << cmd; + qCDebug(dcDenon()) << "Set play mode:" << cmd; m_socket->write(cmd); } @@ -310,7 +314,7 @@ void Heos::setPlayMode(int playerId, REPEAT_MODE repeatMode, bool shuffle) } QByteArray cmd = "heos://player/set_play_mode?pid=" + QVariant(playerId).toByteArray() + repeatModeQuery + shuffleQuery + "\r\n"; - qCDebug(dcDenon) << "Set play mode:" << cmd; + qCDebug(dcDenon()) << "Set play mode:" << cmd; m_socket->write(cmd); } @@ -357,7 +361,7 @@ void Heos::getGroupMute(int groupId) void Heos::setGroupVolume(int groupId, bool volume) { QByteArray cmd = "heos://group/set_volume?gid=" + QVariant(groupId).toByteArray() + "&level=" + QVariant(volume).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Volume up:" << cmd; + qCDebug(dcDenon()) << "Volume up:" << cmd; m_socket->write(cmd); } @@ -381,28 +385,28 @@ void Heos::setGroup(QList playerIds) } cmd.resize(cmd.size()-1); //remove last ',' cmd.append("\r\n"); - qCDebug(dcDenon) << "Set group:" << cmd; + qCDebug(dcDenon()) << "Set group:" << cmd; m_socket->write(cmd); } void Heos::toggleGroupMute(int groupId) { QByteArray cmd = "heos://group/toggle_mute?gid=" + QVariant(groupId).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Volume up:" << cmd; + qCDebug(dcDenon()) << "Volume up:" << cmd; m_socket->write(cmd); } void Heos::groupVolumeUp(int groupId, int step) { QByteArray cmd = "heos://group/volume_up?pid=" + QVariant(groupId).toByteArray() + "&step=" + QVariant(step).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Group volume up:" << cmd; + qCDebug(dcDenon()) << "Group volume up:" << cmd; m_socket->write(cmd); } void Heos::groupVolumeDown(int groupId, int step) { QByteArray cmd = "heos://group/volume_down?pid=" + QVariant(groupId).toByteArray() + "&step=" + QVariant(step).toByteArray() + "\r\n"; - qCDebug(dcDenon) << "Group volume up:" << cmd; + qCDebug(dcDenon()) << "Group volume up:" << cmd; m_socket->write(cmd); } @@ -416,9 +420,9 @@ quint32 Heos::getMusicSources() QByteArray cmd = "heos://browse/get_music_sources?"; QUrlQuery queryParams; queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "Get music sources:" << cmd; + qCDebug(dcDenon()) << "Get music sources:" << cmd; m_socket->write(cmd); return sequence; } @@ -430,9 +434,9 @@ quint32 Heos::getSourceInfo(const QString &sourceId) QUrlQuery queryParams; queryParams.addQueryItem("sid", sourceId); queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "Get source info:" << cmd; + qCDebug(dcDenon()) << "Get source info:" << cmd; m_socket->write(cmd); return sequence; } @@ -443,9 +447,9 @@ quint32 Heos::getSearchCriteria(const QString &sourceId) QByteArray cmd = "heos://browse/get_search_criteria?"; QUrlQuery queryParams; queryParams.addQueryItem("sid", sourceId); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "Get search criteria:" << cmd; + qCDebug(dcDenon()) << "Get search criteria:" << cmd; m_socket->write(cmd); return sequence; } @@ -457,9 +461,9 @@ quint32 Heos::browseSource(const QString &sourceId) QUrlQuery queryParams; queryParams.addQueryItem("sid", sourceId); queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "Browse source:" << cmd; + qCDebug(dcDenon()) << "Browse source:" << cmd; m_socket->write(cmd); return sequence; } @@ -472,9 +476,9 @@ quint32 Heos::browseSourceContainers(const QString &sourceId, const QString &con queryParams.addQueryItem("sid", sourceId); queryParams.addQueryItem("cid", containerId); queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "Browsing container:" << cmd; + qCDebug(dcDenon()) << "Browsing container:" << cmd; m_socket->write(cmd); return sequence; } @@ -498,9 +502,9 @@ quint32 Heos::playStation(int playerId, const QString &sourceId, const QString & queryParams.addQueryItem("name", stationName); } queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "playing station:" << cmd; + qCDebug(dcDenon()) << "playing station:" << cmd; m_socket->write(cmd); return sequence; } @@ -513,9 +517,9 @@ quint32 Heos::playPresetStation(int playerId, int presetNumber) queryParams.addQueryItem("pid", QString::number(playerId)); queryParams.addQueryItem("preset", QString::number(presetNumber)); queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "playing preset station:" << cmd; + qCDebug(dcDenon()) << "playing preset station:" << cmd; m_socket->write(cmd); return sequence; } @@ -528,9 +532,9 @@ quint32 Heos::playInputSource(int playerId, const QString &inputName) queryParams.addQueryItem("pid", QString::number(playerId)); queryParams.addQueryItem("input", inputName); queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "playing input source:" << cmd; + qCDebug(dcDenon()) << "playing input source:" << cmd; m_socket->write(cmd); return sequence; } @@ -543,9 +547,9 @@ quint32 Heos::playUrl(int playerId, const QUrl &mediaUrl) queryParams.addQueryItem("pid", QString::number(playerId)); queryParams.addQueryItem("url", mediaUrl.toString()); queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "playing url:" << cmd; + qCDebug(dcDenon()) << "playing url:" << cmd; m_socket->write(cmd); return sequence; } @@ -574,16 +578,16 @@ quint32 Heos::addContainerToQueue(int playerId, const QString &sourceId, const Q queryParams.addQueryItem("cid", containerId); queryParams.addQueryItem("aid", QString::number(addCriteria)); queryParams.addQueryItem("SEQUENCE", QString::number(sequence)); - cmd.append(queryParams.toString()); + cmd.append(queryParams.toString().toUtf8()); cmd.append("\r\n"); - qCDebug(dcDenon) << "Adding to queue:" << cmd; + qCDebug(dcDenon()) << "Adding to queue:" << cmd; m_socket->write(cmd); return sequence; } void Heos::onError(QAbstractSocket::SocketError socketError) { - qCWarning(dcDenon) << "Heos: Socket error:" << socketError << m_socket->errorString(); + qCWarning(dcDenon()) << "Heos: Socket error:" << socketError << m_socket->errorString(); } void Heos::readData() @@ -595,7 +599,7 @@ void Heos::readData() data = m_socket->readLine(); QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error); if (error.error != QJsonParseError::NoError) { - qCWarning(dcDenon) << "failed to parse json :" << error.errorString(); + qCWarning(dcDenon()) << "failed to parse json :" << error.errorString(); return; } QVariantMap dataMap = jsonDoc.toVariant().toMap(); @@ -627,18 +631,18 @@ void Heos::readData() if (command.contains("register_for_change_events")) { QString enabled = message.queryItemValue("enabled"); if (enabled.contains("off")) { - qDebug(dcDenon) << "Events are disabled"; + qCDebug(dcDenon()) << "Events are disabled"; m_eventRegistered = false; emit systemEventsEnabled(false); } else { - qDebug(dcDenon) << "Events are enabled"; + qCDebug(dcDenon()) << "Events are enabled"; m_eventRegistered = true; emit systemEventsEnabled(true); } } else if (command.contains("check_account")) { - qDebug(dcDenon()) << "System command check_account:" << message.toString(); + qCDebug(dcDenon()) << "System command check_account:" << message.toString(); bool signedIn; QString username = ""; if (message.hasQueryItem("signed_in")){ @@ -651,7 +655,7 @@ void Heos::readData() } else if (command.contains("sign_in")) { - qDebug(dcDenon()) << "System command sign_in:" << message.toString(); + qCDebug(dcDenon()) << "System command sign_in:" << message.toString(); if (message.hasQueryItem("signed_in")) { QString username = message.queryItemValue("un"); @@ -660,7 +664,7 @@ void Heos::readData() } // otherwise it will be command under process and we will wait for the event } else if (command.contains("sign_out")) { - qDebug(dcDenon()) << "System command sign_out:" << message.toString(); + qCDebug(dcDenon()) << "System command sign_out:" << message.toString(); emit userChanged(false, ""); } else if (command.contains("heart_beat")) { @@ -670,7 +674,7 @@ void Heos::readData() } else if (command.contains("prettify_json_response")) { } else { - qDebug(dcDenon) << "Unhandled Heos system command" << command; + qCDebug(dcDenon()) << "Unhandled Heos system command" << command; } /* 4.2 Player Commands * 4.2.1 Get Players @@ -743,7 +747,7 @@ void Heos::readData() QString artwork = dataMap.value("payload").toMap().value("image_url").toString(); QString album = dataMap.value("payload").toMap().value("album").toString(); QString sourceId = dataMap.value("payload").toMap().value("sid").toString(); - qDebug(dcDenon) << "Now playing" << playerId << sourceId << artist << album << song; + qCDebug(dcDenon()) << "Now playing" << playerId << sourceId << artist << album << song; emit nowPlayingMediaStatusReceived(playerId, sourceId, artist, album, song, artwork); } else if (command.contains("get_play_state") || command.contains("set_play_state")) { @@ -797,7 +801,7 @@ void Heos::readData() bool updateExist = payloadVariantMap.value("update").toString().contains("exist"); emit playerUpdateAvailable(playerId, updateExist); } else { - qDebug(dcDenon) << "Unhandled Heos group command" << command; + qCDebug(dcDenon()) << "Unhandled Heos group command" << command; } /* * 4.3 Group Commands @@ -815,7 +819,7 @@ void Heos::readData() } else if (command.startsWith("group")) { int groupId = 0; if (message.hasQueryItem("gid")) { - qDebug(dcDenon) << "Group id" << message.queryItemValue("gid"); + qCDebug(dcDenon()) << "Group id" << message.queryItemValue("gid"); groupId = message.queryItemValue("gid").toInt(); } if (command.contains("get_groups")) { @@ -887,7 +891,7 @@ void Heos::readData() } else if (command.contains("toggle_mute")) { } else { - qDebug(dcDenon) << "Unhandled Heos group command" << command; + qCDebug(dcDenon()) << "Unhandled Heos group command" << command; } @@ -912,12 +916,12 @@ void Heos::readData() quint32 sequenceNumber = 0; if (message.hasQueryItem("SEQUENCE")) { - qDebug(dcDenon) << "Sequence number" << message.queryItemValue("SEQUENCE"); + qCDebug(dcDenon()) << "Sequence number" << message.queryItemValue("SEQUENCE"); sequenceNumber = message.queryItemValue("SEQUENCE").toUInt(); } if (command.contains("get_music_sources") || command.contains("get_source_info")) { - qDebug(dcDenon()) << "Get music source request response received" << command; + qCDebug(dcDenon()) << "Get music source request response received" << command; QVariantList payloadVariantList = jsonDoc.toVariant().toMap().value("payload").toList(); QList musicSources; if (success) { @@ -935,7 +939,7 @@ void Heos::readData() } } else if (command.contains("browse/browse")) { - qDebug(dcDenon()) << "Browse response:" << jsonDoc.toVariant().toMap().value("payload"); + qCDebug(dcDenon()) << "Browse response:" << jsonDoc.toVariant().toMap().value("payload"); QVariantList payloadVariantList = jsonDoc.toVariant().toMap().value("payload").toList(); QString sourceId; QString containerId; @@ -947,7 +951,7 @@ void Heos::readData() } if (message.toString().contains("command under process")){ - qDebug(dcDenon()) << "Browse command is beeing processed"; + qCDebug(dcDenon()) << "Browse command is beeing processed"; return; } if (success) { @@ -961,13 +965,13 @@ void Heos::readData() source.image_url = payloadEntryVariant.toMap().value("image_url").toString(); source.type = payloadEntryVariant.toMap().value("type").toString(); source.sourceId = payloadEntryVariant.toMap().value("sid").toInt(); - qDebug(dcDenon()) << "Source" << source.name << source.type << source.sourceId << payloadEntryVariant.toMap().value("sid"); + qCDebug(dcDenon()) << "Source" << source.name << source.type << source.sourceId << payloadEntryVariant.toMap().value("sid"); //source.available = payloadEntryVariant.toMap().value("available").toString().contains("true"); //source.serviceUsername = payloadEntryVariant.toMap().value("service_username").toString(); musicSources.append(source); } else { MediaObject media; - qDebug(dcDenon()) << "Media Item" << payloadEntryVariant.toMap().value("mid").toString() << payloadEntryVariant.toMap().value("cid").toString(); + qCDebug(dcDenon()) << "Media Item" << payloadEntryVariant.toMap().value("mid").toString() << payloadEntryVariant.toMap().value("cid").toString(); media.name = payloadEntryVariant.toMap().value("name").toString(); if (payloadEntryVariant.toMap().contains("cid")) { media.containerId = payloadEntryVariant.toMap().value("cid").toString(); @@ -1016,7 +1020,7 @@ void Heos::readData() } else if (command.contains("retrieve_metadata")) { } else { - qDebug(dcDenon) << "Unhandled Heos browse command" << command; + qCDebug(dcDenon()) << "Unhandled Heos browse command" << command; } @@ -1046,7 +1050,7 @@ void Heos::readData() emit groupsChanged(); } else if (command.contains("player_state_changed")) { - qDebug(dcDenon()) << "Player state changed"; + qCDebug(dcDenon()) << "Player state changed"; if (message.hasQueryItem("pid")) { int playerId = message.queryItemValue("pid").toInt(); if (message.hasQueryItem("state")) { @@ -1062,13 +1066,13 @@ void Heos::readData() } } } else if (command.contains("player_now_playing_changed")) { - qDebug(dcDenon()) << "Player now playing changed, player id:" << message.queryItemValue("pid").toInt(); + qCDebug(dcDenon()) << "Player now playing changed, player id:" << message.queryItemValue("pid").toInt(); if (message.hasQueryItem("pid")) { int playerId = message.queryItemValue("pid").toInt(); emit playerNowPlayingChanged(playerId); } } else if (command.contains("player_now_playing_progress")) { - //qDebug(dcDenon()) << "Player now playing progress"; + //qCDebug(dcDenon()) << "Player now playing progress"; if (message.hasQueryItem("pid")) { int playerId = message.queryItemValue("pid").toInt(); int currentPossition = message.queryItemValue("cur_pos").toInt(); @@ -1076,7 +1080,7 @@ void Heos::readData() emit playerNowPlayingProgressReceived(playerId, currentPossition, duration); } } else if (command.contains("player_playback_error")) { - qDebug(dcDenon) << "Player playback error"; + qCDebug(dcDenon()) << "Player playback error"; int playerId = 0; if (message.hasQueryItem("pid")) { playerId = message.queryItemValue("pid").toInt(); @@ -1084,14 +1088,14 @@ void Heos::readData() emit playerPlaybackErrorReceived(playerId, errorMessage); } } else if (command.contains("player_queue_changed")) { - qDebug(dcDenon()) << "Player queue Changed"; + qCDebug(dcDenon()) << "Player queue Changed"; int playerId = 0; if (message.hasQueryItem("pid")) { playerId = message.queryItemValue("pid").toInt(); emit playerQueueChanged(playerId); } } else if (command.contains("player_volume_changed")) { - qDebug(dcDenon()) << "Event player volume Changed"; + qCDebug(dcDenon()) << "Event player volume Changed"; int playerId = 0; if (message.hasQueryItem("pid")) { playerId = message.queryItemValue("pid").toInt(); @@ -1111,7 +1115,7 @@ void Heos::readData() } } } else if (command.contains("repeat_mode_changed")) { - qDebug(dcDenon()) << "Repeat mode Changed"; + qCDebug(dcDenon()) << "Repeat mode Changed"; int playerId = 0; if (message.hasQueryItem("pid")) { playerId = message.queryItemValue("pid").toInt(); @@ -1129,7 +1133,7 @@ void Heos::readData() } } } else if (command.contains("shuffle_mode_changed")) { - qDebug(dcDenon()) << "Shuffle mode Changed"; + qCDebug(dcDenon()) << "Shuffle mode Changed"; int playerId = 0; if (message.hasQueryItem("pid")) { playerId = message.queryItemValue("pid").toInt(); @@ -1145,7 +1149,7 @@ void Heos::readData() } } } else if (command.contains("group_volume_changed")) { - qDebug(dcDenon()) << "Event group volume Changed"; + qCDebug(dcDenon()) << "Event group volume Changed"; int playerId = 0; if (message.hasQueryItem("gid")) { playerId = message.queryItemValue("gid").toInt(); @@ -1166,7 +1170,7 @@ void Heos::readData() } } else if (command.contains("user_changed")) { - qDebug(dcDenon()) << "Event user changed" << message.toString(); + qCDebug(dcDenon()) << "Event user changed" << message.toString(); bool signedIn; QString username; if (message.hasQueryItem("signed_out")){ @@ -1177,10 +1181,10 @@ void Heos::readData() } emit userChanged(signedIn, username); } else { - qDebug(dcDenon) << "Unhandled Heos event"; + qCDebug(dcDenon()) << "Unhandled Heos event"; } } else { - qDebug(dcDenon) << "Unhandled Heos category" << command; + qCDebug(dcDenon()) << "Unhandled Heos category" << command; } } } diff --git a/denon/integrationplugindenon.cpp b/denon/integrationplugindenon.cpp index fb15edf4..0154ff54 100644 --- a/denon/integrationplugindenon.cpp +++ b/denon/integrationplugindenon.cpp @@ -90,7 +90,7 @@ void IntegrationPluginDenon::discoverThings(ThingDiscoveryInfo *info) QString id = service.name().split("@").first(); QString name = service.name().split("@").last(); QString address = service.hostAddress().toString(); - qCDebug(dcDenon) << "service discovered" << name << "ID:" << id; + qCDebug(dcDenon()) << "service discovered" << name << "ID:" << id; if (discoveredIds.contains(id)) break; discoveredIds.append(id); @@ -135,7 +135,7 @@ void IntegrationPluginDenon::discoverThings(ThingDiscoveryInfo *info) foreach (const UpnpDeviceDescriptor &upnpThing, reply->deviceDescriptors()) { 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(); + qCDebug(dcDenon()) << "uPnP thing found:" << upnpThing.modelDescription() << upnpThing.friendlyName() << upnpThing.hostAddress().toString() << upnpThing.modelName() << upnpThing.manufacturer() << upnpThing.serialNumber(); m_heosIpAddresses.insert(upnpThing.serialNumber(), upnpThing.hostAddress()); ThingDescriptor descriptor(heosThingClassId, upnpThing.modelName(), upnpThing.serialNumber()); @@ -206,7 +206,7 @@ void IntegrationPluginDenon::setupThing(ThingSetupInfo *info) Thing *thing = info->thing(); if (thing->thingClassId() == AVRX1000ThingClassId) { - qCDebug(dcDenon) << "Setup AVR X1000 thing" << thing->name(); + qCDebug(dcDenon()) << "Setup AVR X1000 thing" << thing->name(); if (m_avrConnections.contains(thing->id())) { qCDebug(dcDenon()) << "Setup after reconfiguration, cleaning up ..."; @@ -251,10 +251,10 @@ void IntegrationPluginDenon::setupThing(ThingSetupInfo *info) return; } else if (thing->thingClassId() == heosThingClassId) { - qCDebug(dcDenon) << "Setup Heos connection thing" << thing->name(); + qCDebug(dcDenon()) << "Setup Heos connection thing" << thing->name(); QString serialnumber = thing->paramValue(heosThingSerialNumberParamTypeId).toString(); if (serialnumber.isEmpty()) { - qCWarning(dcDenon) << "Serial number is empty"; + qCWarning(dcDenon()) << "Serial number is empty"; info->finish(Thing::ThingErrorInvalidParameter, QT_TR_NOOP("Serial number is not set")); return; } @@ -312,7 +312,7 @@ void IntegrationPluginDenon::setupThing(ThingSetupInfo *info) } } else if (thing->thingClassId() == heosPlayerThingClassId) { - qCDebug(dcDenon) << "Setup Heos player" << thing->name(); + 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(); @@ -334,7 +334,7 @@ void IntegrationPluginDenon::setupThing(ThingSetupInfo *info) void IntegrationPluginDenon::thingRemoved(Thing *thing) { - qCDebug(dcDenon) << "Delete " << thing->name(); + qCDebug(dcDenon()) << "Delete " << thing->name(); if (thing->thingClassId() == AVRX1000ThingClassId) { if (m_avrConnections.contains(thing->id())) { @@ -361,7 +361,7 @@ void IntegrationPluginDenon::executeAction(ThingActionInfo *info) Thing *thing = info->thing(); Action action = info->action(); - qCDebug(dcDenon) << "Execute action" << thing->id() << action.params(); + qCDebug(dcDenon()) << "Execute action" << thing->id() << action.params(); if (thing->thingClassId() == AVRX1000ThingClassId) { AvrConnection *avrConnection = m_avrConnections.value(thing->id()); @@ -944,7 +944,7 @@ void IntegrationPluginDenon::onHeosPlayersReceived(QList heosPlaye params.append(Param(heosPlayerThingSerialNumberParamTypeId, player->serialNumber())); params.append(Param(heosPlayerThingVersionParamTypeId, player->playerVersion())); descriptor.setParams(params); - qCDebug(dcDenon) << "Found new heos player" << player->name(); + qCDebug(dcDenon()) << "Found new heos player" << player->name(); heosPlayerDescriptors.append(descriptor); } if (!heosPlayerDescriptors.isEmpty()) @@ -969,7 +969,7 @@ void IntegrationPluginDenon::onHeosPlayersReceived(QList heosPlaye void IntegrationPluginDenon::onHeosPlayerInfoRecieved(HeosPlayer *heosPlayer) { - qDebug(dcDenon()) << "Heos player info received" << heosPlayer->name() << heosPlayer->playerId() << heosPlayer->groupId(); + qCDebug(dcDenon()) << "Heos player info received" << heosPlayer->name() << heosPlayer->playerId() << heosPlayer->groupId(); m_playerBuffer.insert(heosPlayer->playerId(), heosPlayer); } @@ -1110,7 +1110,7 @@ void IntegrationPluginDenon::onHeosMusicSourcesReceived(quint32 sequenceNumber, } else { item.setThumbnail(source.image_url); } - qDebug(dcDenon()) << "Music source received:" << source.name << source.type << source.sourceId << source.image_url; + qCDebug(dcDenon()) << "Music source received:" << source.name << source.type << source.sourceId << source.image_url; } result->finish(Thing::ThingErrorNoError); } @@ -1141,7 +1141,7 @@ void IntegrationPluginDenon::onHeosBrowseRequestReceived(quint32 sequenceNumber, foreach(MediaObject media, mediaItems) { MediaBrowserItem item; item.setIcon(BrowserItem::BrowserIconMusic); - qDebug(dcDenon()) << "Adding Item" << media.name << media.mediaId << media.containerId << media.mediaType; + qCDebug(dcDenon()) << "Adding Item" << media.name << media.mediaId << media.containerId << media.mediaType; item.setDisplayName(media.name); if (media.mediaType == MEDIA_TYPE_CONTAINER) { item.setId("container=" + media.containerId + "&" + sourceId); @@ -1158,7 +1158,7 @@ void IntegrationPluginDenon::onHeosBrowseRequestReceived(quint32 sequenceNumber, foreach(MusicSourceObject source, musicSources) { MediaBrowserItem item; item.setDisplayName(source.name); - qDebug(dcDenon()) << "Adding Item" << source.name << source.sourceId; + qCDebug(dcDenon()) << "Adding Item" << source.name << source.sourceId; item.setId("source=" + QString::number(source.sourceId)); item.setIcon(BrowserItem::BrowserIconMusic); item.setExecutable(false); @@ -1209,7 +1209,7 @@ void IntegrationPluginDenon::onHeosBrowseRequestReceived(quint32 sequenceNumber, } result->finish(Thing::ThingErrorNoError); } else { - qWarning(dcDenon()) << "Pending browser result doesnt recognize" << identifier << m_pendingBrowseResult.keys(); + qCWarning(dcDenon()) << "Pending browser result doesnt recognize" << identifier << m_pendingBrowseResult.keys(); } } @@ -1224,7 +1224,7 @@ void IntegrationPluginDenon::onHeosBrowseErrorReceived(const QString &sourceId, if (m_pendingBrowseResult.contains(identifier)) { BrowseResult *result = m_pendingBrowseResult.take(identifier); - qWarning(dcDenon) << "Browse error" << errorMessage << errorId; + qCWarning(dcDenon()) << "Browse error" << errorMessage << errorId; result->finish(Thing::ThingErrorHardwareFailure, errorMessage); } } @@ -1323,7 +1323,7 @@ void IntegrationPluginDenon::browseThing(BrowseResult *result) } if (result->itemId().isEmpty()) { - qDebug(dcDenon()) << "Browse source"; + qCDebug(dcDenon()) << "Browse source"; MediaBrowserItem item; item.setId("type=group"); item.setIcon(BrowserItem::BrowserIcon::BrowserIconPackage); @@ -1341,7 +1341,7 @@ void IntegrationPluginDenon::browseThing(BrowseResult *result) if (itemQuery.hasQueryItem("group")) { //TBD list players in groups } else { - qDebug(dcDenon()) << "Browse source" << result->itemId(); + qCDebug(dcDenon()) << "Browse source" << result->itemId(); int pid = result->thing()->paramValue(heosPlayerThingPlayerIdParamTypeId).toInt(); HeosPlayer *browsingPlayer = m_playerBuffer.value(pid); foreach (GroupObject group, m_groupBuffer) { @@ -1362,7 +1362,7 @@ void IntegrationPluginDenon::browseThing(BrowseResult *result) } foreach (HeosPlayer *player, m_playerBuffer.values()) { - qDebug(dcDenon) << "Adding group item" << player->name(); + qCDebug(dcDenon()) << "Adding group item" << player->name(); if (browsingPlayer->playerId() == player->playerId()) { //player is the current browsing thing continue; } @@ -1384,14 +1384,14 @@ void IntegrationPluginDenon::browseThing(BrowseResult *result) } } else if (result->itemId().startsWith("source=")){ - qDebug(dcDenon()) << "Browse source" << result->itemId(); + qCDebug(dcDenon()) << "Browse source" << result->itemId(); QString id = result->itemId().remove("source="); heos->browseSource(id); m_pendingBrowseResult.insert(id, result); connect(result, &QObject::destroyed, this, [this, id](){ m_pendingBrowseResult.remove(id);}); } else if (result->itemId().startsWith("container=")){ - qDebug(dcDenon()) << "Browse container" << result->itemId(); + qCDebug(dcDenon()) << "Browse container" << result->itemId(); QStringList values = result->itemId().split("&"); if (values.length() == 2) { QString id = values[0].remove("container="); @@ -1413,7 +1413,7 @@ void IntegrationPluginDenon::browserItem(BrowserItemResult *result) result->finish(Thing::ThingErrorHardwareNotAvailable); return; } - qDebug(dcDenon()) << "Browse item called" << result->itemId(); + qCDebug(dcDenon()) << "Browse item called" << result->itemId(); result->item().setDisplayName("Test name"); if (m_mediaObjects.contains(result->itemId())) { @@ -1435,7 +1435,7 @@ void IntegrationPluginDenon::executeBrowserItem(BrowserActionInfo *info) } BrowserAction action = info->browserAction(); int playerId = info->thing()->paramValue(heosPlayerThingPlayerIdParamTypeId).toInt(); - qDebug(dcDenon()) << "Execute browse item called. Player Id:" << playerId << "Item ID" << action.itemId(); + qCDebug(dcDenon()) << "Execute browse item called. Player Id:" << playerId << "Item ID" << action.itemId(); if (m_mediaObjects.contains(action.itemId())) { MediaObject media = m_mediaObjects.value(action.itemId()); @@ -1445,7 +1445,7 @@ void IntegrationPluginDenon::executeBrowserItem(BrowserActionInfo *info) heos->playStation(playerId, media.sourceId, media.containerId, media.mediaId, media.name); } } else { - qWarning(dcDenon()) << "Media item not found" << action.itemId(); + qCWarning(dcDenon()) << "Media item not found" << action.itemId(); } info->finish(Thing::ThingErrorNoError); @@ -1470,7 +1470,7 @@ void IntegrationPluginDenon::executeBrowserItemAction(BrowserItemActionInfo *inf } else if(query.hasQueryItem("group")) { GroupObject group = m_groupBuffer.value(query.queryItemValue("group").toInt()); - qDebug(dcDenon()) << "Execute browse item action called, Group:" << query.queryItemValue("group").toInt() << group.name; + qCDebug(dcDenon()) << "Execute browse item action called, Group:" << query.queryItemValue("group").toInt() << group.name; QList playerIds; foreach(PlayerObject player, group.players) { playerIds.append(player.playerId);