New upstream version 2.2.5+ds
authorIOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>
Tue, 2 Apr 2024 09:35:22 +0000 (11:35 +0200)
committerIOhannes m zmölnig (Debian/GNU) <umlaeute@debian.org>
Tue, 2 Apr 2024 09:35:22 +0000 (11:35 +0200)
12 files changed:
docs/changelog.yml
releases/edge/mac-manifests.json
releases/edge/win-manifests.json
releases/stable/linux-manifests.json
releases/stable/mac-manifests.json
releases/stable/win-manifests.json
src/gui/DeviceControlsGroup.qml
src/gui/virtualstudio.cpp
src/gui/vsDevice.cpp
src/gui/vsServerInfo.cpp
src/gui/vsServerInfo.h
src/jacktrip_globals.h

index 9c155230a8c4b6cf7beb67e3a8bf562e5e5414e5..f51ab4c1a1f8b0c9a470e194c93464e7e56eff1d 100644 (file)
@@ -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:
index fa4fffbba3789d975ae6452cb2a070970b854153..cbbd227dad2b85e0587f38f91dc6cd8adc9976fb 100644 (file)
@@ -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",
index 979cd16543466f1cf1823ce92af51e3767f1aa0c..ac561234e59caea141f10a5c29944b8e7c6632f0 100644 (file)
@@ -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",
index 3a4e57254c26fbcfacb980fd542a62e2e179fcd9..48460accd57a03357d57d7843898997e23d67dcd 100644 (file)
@@ -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",
index 754f30c9bdf27e8f898c4b11126bfad0c46e6a89..e5ddeef576f9e7684841f7ee8acaae0df009f19e 100644 (file)
@@ -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",
index f068d980c30c0308604ec5934d5e6a1eb9bf22be..5681cf16abff35daef287a059d010174a406b05d 100644 (file)
@@ -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",
index 297ae2f04385334530b22a1e1829361871b6cac4..43ca5fd9053503ead5f6224ce1bce3e168e79860 100644 (file)
@@ -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 {
index 8dcb7f4561c9b06a9c410e5308a6095a592bc482..321fdb981028605b3f145ad701ef08a9d74806b3 100644 (file)
@@ -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)
index 31f58dbd6ca4bdd0e6dec678750e9b24bfa671f9..79b99b9f7df06614fc328222de19ee079cba7d64 100644 (file)
@@ -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")));
     }
index 20dfdb3c4026d54bcc481455edc5f0271b7b6d6b..59c60dfc738b5a19b9836ab13cd760f1671aaa0a 100644 (file)
@@ -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
index fc524cd96af12329ae8973be3afc5fac12a20ae5..14db149e0b192af1e6f67b0e400cfe0205c2d18e 100644 (file)
@@ -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)
index 64d12f8794b9e552f58ce9f242aff2df62100955..f354fa2199eeeb804e8df69a5d4a2c33f77cfaab 100644 (file)
@@ -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