From: IOhannes m zmölnig (Debian/GNU) Date: Tue, 2 Apr 2024 09:35:22 +0000 (+0200) Subject: New upstream version 2.2.5+ds X-Git-Tag: archive/raspbian/2.5.1+ds-1+rpi1~1^2~9^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e1ff4663b99f42b52d8943edd7f9060be75bfe79;p=jacktrip.git New upstream version 2.2.5+ds --- diff --git a/docs/changelog.yml b/docs/changelog.yml index 9c15523..f51ab4c 100644 --- a/docs/changelog.yml +++ b/docs/changelog.yml @@ -1,3 +1,9 @@ +- Version: "2.2.5" + Date: 2024-03-28 + Description: + - (fixed) VS Mode only admins could join new sessions starting up + - (fixed) VS Mode only ask for feedback if you've joined a session + - (updated) VS Mode updates to support self hosted virtual studios - Version: "2.2.4" Date: 2024-03-13 Description: diff --git a/releases/edge/mac-manifests.json b/releases/edge/mac-manifests.json index fa4fffb..cbbd227 100644 --- a/releases/edge/mac-manifests.json +++ b/releases/edge/mac-manifests.json @@ -1,6 +1,16 @@ { "app_name": "JackTrip", "releases": [ + { + "version": "2.2.4", + "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.4", + "download": { + "date": "2024-03-13T00:00:00Z", + "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.4-macOS-x64-signed-installer.pkg", + "downloadSize": "177373843", + "sha256": "d01ebaa71cf101f57e20214d0cbdf402a989debda8ffd231ea84252da59656b1" + } + }, { "version": "2.2.3", "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3", diff --git a/releases/edge/win-manifests.json b/releases/edge/win-manifests.json index 979cd16..ac56123 100644 --- a/releases/edge/win-manifests.json +++ b/releases/edge/win-manifests.json @@ -1,6 +1,16 @@ { "app_name": "JackTrip", "releases": [ + { + "version": "2.2.4", + "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.4", + "download": { + "date": "2024-03-13T00:00:00Z", + "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.4-Windows-x64-signed-installer.msi", + "downloadSize": "116228096", + "sha256": "559cc71c0050d72706378997d9eb24c923953142abdba72a47d82b8887c29c9d" + } + }, { "version": "2.2.3", "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3", diff --git a/releases/stable/linux-manifests.json b/releases/stable/linux-manifests.json index 3a4e572..48460ac 100644 --- a/releases/stable/linux-manifests.json +++ b/releases/stable/linux-manifests.json @@ -1,6 +1,16 @@ { "app_name": "JackTrip", "releases": [ + { + "version": "2.2.4", + "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.4", + "download": { + "date": "2024-03-13T00:00:00Z", + "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.4-Linux-x64-binary.zip", + "downloadSize": "1249531", + "sha256": "5b83840c3df05d0399e5d2dea420e58cc4324dc13895b59897d62baa8a430991" + } + }, { "version": "2.2.3", "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3", diff --git a/releases/stable/mac-manifests.json b/releases/stable/mac-manifests.json index 754f30c..e5ddeef 100644 --- a/releases/stable/mac-manifests.json +++ b/releases/stable/mac-manifests.json @@ -1,6 +1,16 @@ { "app_name": "JackTrip", "releases": [ + { + "version": "2.2.4", + "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.4", + "download": { + "date": "2024-03-13T00:00:00Z", + "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.4-macOS-x64-signed-installer.pkg", + "downloadSize": "177373843", + "sha256": "d01ebaa71cf101f57e20214d0cbdf402a989debda8ffd231ea84252da59656b1" + } + }, { "version": "2.2.3", "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3", diff --git a/releases/stable/win-manifests.json b/releases/stable/win-manifests.json index f068d98..5681cf1 100644 --- a/releases/stable/win-manifests.json +++ b/releases/stable/win-manifests.json @@ -1,6 +1,16 @@ { "app_name": "JackTrip", "releases": [ + { + "version": "2.2.4", + "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.4", + "download": { + "date": "2024-03-13T00:00:00Z", + "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.4-Windows-x64-signed-installer.msi", + "downloadSize": "116228096", + "sha256": "559cc71c0050d72706378997d9eb24c923953142abdba72a47d82b8887c29c9d" + } + }, { "version": "2.2.3", "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3", diff --git a/src/gui/DeviceControlsGroup.qml b/src/gui/DeviceControlsGroup.qml index 297ae2f..43ca5fd 100644 --- a/src/gui/DeviceControlsGroup.qml +++ b/src/gui/DeviceControlsGroup.qml @@ -19,7 +19,7 @@ Rectangle { function getShowDeviceControls () { // self-managed servers do not support minified controls so keep it full size - return !virtualstudio.currentStudio.isManaged || (!virtualstudio.collapseDeviceControls && isReady); + return (!virtualstudio.currentStudio.isManaged && virtualstudio.currentStudio.sessionId === "") || (!virtualstudio.collapseDeviceControls && isReady); } MouseArea { @@ -96,7 +96,7 @@ Rectangle { Button { id: closeDeviceControlsButton - visible: virtualstudio.currentStudio.isManaged + visible: virtualstudio.currentStudio.isManaged || virtualstudio.currentStudio.sessionId !== "" width: 24 * virtualstudio.uiScale height: 24 * virtualstudio.uiScale background: Rectangle { diff --git a/src/gui/virtualstudio.cpp b/src/gui/virtualstudio.cpp index 8dcb7f4..321fdb9 100644 --- a/src/gui/virtualstudio.cpp +++ b/src/gui/virtualstudio.cpp @@ -831,7 +831,7 @@ void VirtualStudio::connectToStudio() m_studioSocketPtr->openSocket(); // Check if we have an address for our server - if (m_currentStudio.status() != "Ready" && m_currentStudio.isAdmin() == true) { + if (m_currentStudio.status() != "Ready") { m_connectionState = QStringLiteral("Waiting..."); emit connectionStateChanged(); } else { @@ -843,8 +843,20 @@ void VirtualStudio::connectToStudio() void VirtualStudio::completeConnection() { + // sanity check if (m_currentStudio.id() == "" || m_currentStudio.status() == QStringLiteral("Disabled")) { + processError("Studio session has ended"); + return; + } + + // these shouldn't happen + if (m_currentStudio.status() != "Ready") { + processError("Studio session is not ready"); + return; + } + if (m_currentStudio.host().isEmpty()) { + processError("Studio host is unknown"); return; } @@ -984,45 +996,56 @@ void VirtualStudio::triggerReconnect(bool refresh) void VirtualStudio::disconnect() { - m_connectionState = QStringLiteral("Disconnecting..."); - emit connectionStateChanged(); - setConnectedErrorMsg(""); - + // stop jackrip if it's running if (m_jackTripRunning) { m_devicePtr->stopJackTrip(false); // persist any volume level or device changes m_audioConfigPtr->saveSettings(); - } else { - // How did we get here? This shouldn't be possible, but include for safety. - if (m_isExiting) { - emit signalExit(); - } else if (m_onConnectedScreen) { - emit disconnected(); - m_onConnectedScreen = false; - } - } - - // Restart our studio refresh timer. - if (!m_isExiting) { - m_refreshTimer.start(); } m_connectionState = QStringLiteral("Disconnected"); emit connectionStateChanged(); + setConnectedErrorMsg(""); - if (!m_currentStudio.id().isEmpty()) { - emit openFeedbackSurveyModal(m_currentStudio.id()); + if (m_isExiting) { + emit signalExit(); + return; } - // cleanup - m_currentStudio.setId(""); - emit currentStudioChanged(); + // if this occurs on the setup or settings screen (for example, due to an issue with + // devices) then don't emit disconnected, as that would move you back to the "Browse" + // screen + if (m_onConnectedScreen) { + m_onConnectedScreen = false; + emit disconnected(); + // Refresh studios and restart timer + refreshStudios(0, true); + m_refreshTimer.start(); + } + + if (!m_jackTripRunning) { + return; + } + m_jackTripRunning = false; if (!m_studioSocketPtr.isNull()) { m_studioSocketPtr->closeSocket(); m_studioSocketPtr->disconnect(); m_studioSocketPtr.reset(); } + + // reset network statistics + m_networkStats = QJsonObject(); + + if (!m_currentStudio.id().isEmpty()) { + emit openFeedbackSurveyModal(m_currentStudio.id()); + m_currentStudio.setId(""); + emit currentStudioChanged(); + } + +#ifdef __APPLE__ + m_noNap.enableNap(); +#endif } void VirtualStudio::manageStudio(const QString& studioId, bool start) @@ -1267,33 +1290,6 @@ void VirtualStudio::connectionFinished() // use disconnect function to handle reset of all internal flags and timers disconnect(); - - // reset network statistics - m_networkStats = QJsonObject(); - - if (m_isExiting) { - emit signalExit(); - return; - } - - if (!m_jackTripRunning) { - return; - } - - m_jackTripRunning = false; - m_connectionState = QStringLiteral("Disconnected"); - emit connectionStateChanged(); - - // if this occurs on the setup or settings screen (for example, due to an issue with - // devices) then don't emit disconnected, as that would move you back to the "Browse" - // screen - if (m_onConnectedScreen) { - m_onConnectedScreen = false; - emit disconnected(); - } -#ifdef __APPLE__ - m_noNap.enableNap(); -#endif } void VirtualStudio::processError(const QString& errorMessage) diff --git a/src/gui/vsDevice.cpp b/src/gui/vsDevice.cpp index 31f58db..79b99b9 100644 --- a/src/gui/vsDevice.cpp +++ b/src/gui/vsDevice.cpp @@ -347,9 +347,12 @@ void VsDevice::startJackTrip(const VsServerInfo& studioInfo) // intialize the pinger used to generate network latency statistics for // Virtual Studio - QString host = studioInfo.sessionId(); - host.append(QString::fromStdString(".jacktrip.cloud")); + QString host = studioInfo.host(); if (studioInfo.isManaged()) { + host = studioInfo.sessionId(); + host.append(QString::fromStdString(".jacktrip.cloud")); + } + if (studioInfo.isManaged() || !studioInfo.sessionId().isEmpty()) { m_pinger.reset(new VsPinger(QString::fromStdString("wss"), host, QString::fromStdString("/ping"))); } diff --git a/src/gui/vsServerInfo.cpp b/src/gui/vsServerInfo.cpp index 20dfdb3..59c60df 100644 --- a/src/gui/vsServerInfo.cpp +++ b/src/gui/vsServerInfo.cpp @@ -272,7 +272,7 @@ QString VsServerInfo::sessionId() const void VsServerInfo::setSessionId(const QString& sessionId) { - m_sessionId = sessionId; + m_sessionId = (sessionId == "undefined") ? "" : sessionId; } QString VsServerInfo::inviteKey() const diff --git a/src/gui/vsServerInfo.h b/src/gui/vsServerInfo.h index fc524cd..14db149 100644 --- a/src/gui/vsServerInfo.h +++ b/src/gui/vsServerInfo.h @@ -59,6 +59,7 @@ class VsServerInfo : public QObject Q_PROPERTY(quint16 period READ period CONSTANT) Q_PROPERTY(quint32 sampleRate READ sampleRate CONSTANT) Q_PROPERTY(quint16 queueBuffer READ queueBuffer CONSTANT) + Q_PROPERTY(QString sessionId READ sessionId CONSTANT) Q_PROPERTY(QString status READ status CONSTANT) Q_PROPERTY(bool enabled READ enabled CONSTANT) Q_PROPERTY(QString cloudId READ cloudId CONSTANT) diff --git a/src/jacktrip_globals.h b/src/jacktrip_globals.h index 64d12f8..f354fa2 100644 --- a/src/jacktrip_globals.h +++ b/src/jacktrip_globals.h @@ -40,7 +40,7 @@ #include "AudioInterface.h" -constexpr const char* const gVersion = "2.2.4"; ///< JackTrip version +constexpr const char* const gVersion = "2.2.5"; ///< JackTrip version //******************************************************************************* /// \name Default Values