+- Version: "2.2.4"
+ Date: 2024-03-13
+ Description:
+ - (fixed) Allow software opengl for older windows video drivers
+ - (fixed) VS Mode avoid unnecessary JACK library checks at startup
- Version: "2.2.3"
Date: 2024-03-04
Description:
{
"app_name": "JackTrip",
"releases": [
+ {
+ "version": "2.2.3",
+ "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3",
+ "download": {
+ "date": "2024-03-04T00:00:00Z",
+ "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.3-macOS-x64-signed-installer.pkg",
+ "downloadSize": "177372204",
+ "sha256": "68a4e2b0d4979d77607707a2c3c8bb25446465401a4c487a6d00fae70d8c2511"
+ }
+ },
{
"version": "2.2.2",
"changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.2",
{
"app_name": "JackTrip",
"releases": [
+ {
+ "version": "2.2.3",
+ "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3",
+ "download": {
+ "date": "2024-03-04T00:00:00Z",
+ "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.3-Windows-x64-signed-installer.msi",
+ "downloadSize": "108511232",
+ "sha256": "76f721e1ca52835ab074909e2044624363e5f63f0e1b8f6702bf2a857da59979"
+ }
+ },
{
"version": "2.2.2",
"changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.2",
{
"app_name": "JackTrip",
"releases": [
+ {
+ "version": "2.2.3",
+ "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3",
+ "download": {
+ "date": "2024-03-04T00:00:00Z",
+ "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.3-Linux-x64-binary.zip",
+ "downloadSize": "1239992",
+ "sha256": "f06507caaed33705a8b4b6b20e2b49358fc77aba2138e79e4c543c1fce9b9bd5"
+ }
+ },
{
"version": "2.2.2",
"changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.2",
{
"app_name": "JackTrip",
"releases": [
+ {
+ "version": "2.2.3",
+ "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3",
+ "download": {
+ "date": "2024-03-04T00:00:00Z",
+ "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.3-macOS-x64-signed-installer.pkg",
+ "downloadSize": "177372204",
+ "sha256": "68a4e2b0d4979d77607707a2c3c8bb25446465401a4c487a6d00fae70d8c2511"
+ }
+ },
{
"version": "2.2.2",
"changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.2",
{
"app_name": "JackTrip",
"releases": [
+ {
+ "version": "2.2.3",
+ "changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.3",
+ "download": {
+ "date": "2024-03-04T00:00:00Z",
+ "url": "https://files.jacktrip.org/app-builds/JackTrip-v2.2.3-Windows-x64-signed-installer.msi",
+ "downloadSize": "108511232",
+ "sha256": "76f721e1ca52835ab074909e2044624363e5f63f0e1b8f6702bf2a857da59979"
+ }
+ },
{
"version": "2.2.2",
"changelog": "Full changelog at https://github.com/jacktrip/jacktrip/releases/tag/v2.2.2",
{
loadSettings();
- if (isBackendAvailable<AudioInterfaceMode::RTAUDIO>()) {
- if (!jackIsAvailable()) {
- m_audioBackendComboModel = {"RtAudio"};
- }
- } else {
- if (!jackIsAvailable()) {
- // shouldn't happen
- m_audioBackendComboModel = {};
- } else {
- m_audioBackendComboModel = {"JACK"};
- }
- }
-
QJsonObject element;
element.insert(QString::fromStdString("label"), QString::fromStdString("Mono"));
element.insert(QString::fromStdString("value"),
} else {
audioBackend = AudioBackendType::JACK;
}
-#ifdef USE_WEAK_JACK
- // Check if Jack is available
- if (have_libjack() != 0) {
-#ifdef RT_AUDIO
- audioBackend = AudioBackendType::RTAUDIO;
-#else
- // TODO: Handle this more gracefully, even if it's an unlikely scenario
- qFatal("JACK not found and not built with RtAudio support.");
-#endif // RT_AUDIO
- }
-#endif // USE_WEAK_JACK
if (audioBackend != m_backend) {
setAudioBackend(audioBackend == AudioBackendType::RTAUDIO
? QStringLiteral("RtAudio")
AudioInterface* VsAudio::newAudioInterface(JackTrip* jackTripPtr)
{
- AudioInterface* ifPtr = nullptr;
-
// Create AudioInterface Client Object
- if (isBackendAvailable<AudioInterfaceMode::ALL>() && jackIsAvailable()) {
- // all backends area available
- if (m_backend == VsAudio::AudioBackendType::JACK) {
- qDebug() << "Using JACK backend";
- ifPtr = newJackAudioInterface(jackTripPtr);
- } else {
- qDebug() << "Using RtAudio backend";
- ifPtr = newRtAudioInterface(jackTripPtr);
- }
- } else if (isBackendAvailable<AudioInterfaceMode::RTAUDIO>()) {
- // only RtAudio backend is available
- if (m_backend != VsAudio::AudioBackendType::RTAUDIO) {
- // A different backend was requested
- qDebug()
- << "Switching audio backend to RtAudio since nothing else is available";
- setAudioBackend(QStringLiteral("RtAudio"));
- } else {
- qDebug() << "Using RtAudio backend";
+ AudioInterface* ifPtr = nullptr;
+ if (m_backend == VsAudio::AudioBackendType::JACK) {
+ if (!isBackendAvailable<AudioInterfaceMode::JACK>()) {
+ throw std::runtime_error(
+ "JackTrip was not compiled with support for the Jack backend. "
+ "In order to use Jack, you'll need to "
+ "rebuild with Jack support.");
}
- ifPtr = newRtAudioInterface(jackTripPtr);
- } else if (m_backend == VsAudio::AudioBackendType::JACK && jackIsAvailable()) {
- // only Jack backend is available
- if (m_backend != VsAudio::AudioBackendType::JACK) {
- // A different backend was requested
- qDebug() << "Switching audio backend to Jack since nothing else is available";
- setAudioBackend(QStringLiteral("JACK"));
- } else {
- qDebug() << "Using JACK backend";
+ if (!jackIsAvailable()) {
+ throw std::runtime_error(
+ "Unable to load the Jack client library. "
+ "In order to use Jack, you'll need to first install it.");
}
+ qDebug() << "Using JACK backend";
ifPtr = newJackAudioInterface(jackTripPtr);
+ } else if (m_backend == VsAudio::AudioBackendType::RTAUDIO) {
+ if (!isBackendAvailable<AudioInterfaceMode::RTAUDIO>()) {
+ throw std::runtime_error(
+ "JackTrip was not compiled with support for the RtAudio backend. "
+ "In order to use RtAudio, you'll need to "
+ "rebuild with RtAudio support.");
+ }
+ qDebug() << "Using RtAudio backend";
+ ifPtr = newRtAudioInterface(jackTripPtr);
} else {
- // no backends are available!
- throw std::runtime_error(
- "JackTrip was compiled without RtAudio and can't find JACK. "
- "In order to use JackTrip, you'll need to install JACK or "
- "rebuild with RtAudio support.");
- std::exit(1);
+ throw std::runtime_error("Unknown audio backend");
}
- if (ifPtr == nullptr)
- return ifPtr;
-
mHasErrors = false;
ifPtr->setErrorCallback([this, jackTripPtr](const std::string& errorText) {
this->errorCallback(errorText, jackTripPtr);
#include "AudioInterface.h"
-constexpr const char* const gVersion = "2.2.3"; ///< JackTrip version
+constexpr const char* const gVersion = "2.2.4"; ///< JackTrip version
//*******************************************************************************
/// \name Default Values
#if !defined(NO_VS) && QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
// Enables resource sharing between the OpenGL contexts
QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts);
- QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL);
+ // QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL);
// QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
// QQuickWindow::setGraphicsApi(QSGRendererInterface::Direct3D11);
rmdir deploy /s /q\r
mkdir deploy\r
\r
+REM get opengl32sw.dll mesa3d llvm build, required by opengl software backend\r
+curl -L -s -o opengl32sw.zip https://files.jacktrip.org/contrib/opengl32sw.zip\r
+unzip opengl32sw.zip\r
+del opengl32sw.zip\r
+move opengl32sw.dll deploy\r
+\r
copy ..\LICENSE.md deploy\\r
xcopy ..\LICENSES deploy\LICENSES\\r
\r
<Component Id="cmp61BABE677B13AE7A25F57865DD2CB150" Directory="TARGETDIR" Guid="PUT-GUID-HERE">
<File Id="filD0B8E5384B7EB5609D1B2A67A98FF334" KeyPath="yes" Source="SourceDir\jacktrip.exe" />
</Component>
+ <Component Id="cmp5C97B37BB3181F77EDC11261A4463285" Directory="TARGETDIR" Guid="PUT-GUID-HERE">
+ <File Id="fil46101D0C43E1BEF1BE4C5475DA0B2837" KeyPath="yes" Source="SourceDir\JackTrip.msi" />
+ </Component>
<Component Id="cmpCD23A5CC7196B582D23DF7AC7DFE061F" Directory="TARGETDIR" Guid="PUT-GUID-HERE">
<File Id="fil00C2A327ECCB1D33F7BBF313ADEEFD43" KeyPath="yes" Source="SourceDir\jacktrip.wixobj" />
</Component>
+ <Component Id="cmpEF56078548B21E7891727FDE729B864B" Directory="TARGETDIR" Guid="PUT-GUID-HERE">
+ <File Id="fil01A07DE9CBC162E11AA3C8EFB4A4D4B9" KeyPath="yes" Source="SourceDir\JackTrip.wixpdb" />
+ </Component>
<Component Id="cmp63BFF65F319CB52D38DBB3FE6B8DE6F6" Directory="TARGETDIR" Guid="PUT-GUID-HERE">
<File Id="fil886DC1D217D62357ED536BCFF93E7C0F" KeyPath="yes" Source="SourceDir\jacktrip.wxs" />
</Component>
<Component Id="cmpE2BC49F17425202019B2C48873956253" Directory="TARGETDIR" Guid="PUT-GUID-HERE">
<File Id="fil011E2822115DD1D5BD9A9096D1914F51" KeyPath="yes" Source="SourceDir\license.rtf" />
</Component>
+ <Component Id="cmpC2B5C938CDBD7BD0FAE06ACAABDB3B54" Directory="TARGETDIR" Guid="PUT-GUID-HERE">
+ <File Id="fil025966B7C1FB522423ADF8E9CE443022" KeyPath="yes" Source="SourceDir\opengl32sw.dll" />
+ </Component>
<Component Id="cmpD16A82FC04DA86995B222E5199ABF99B" Directory="TARGETDIR" Guid="PUT-GUID-HERE">
<File Id="fil03546A9C6805C45BEB0A60D29FFC5D22" KeyPath="yes" Source="SourceDir\qt6.wixobj" />
</Component>
<Component Id="cmpE2BC49F17425202019B2C48873956253" Directory="INSTALLDIR" Guid="{4F42E138-BC56-4253-8AE7-47D1C92EA803}">
<File Id="fil011E2822115DD1D5BD9A9096D1914F51" KeyPath="yes" Source="SourceDir\license.rtf" />
</Component>
+ <Component Id="cmpC2B5C938CDBD7BD0FAE06ACAABDB3B54" Directory="INSTALLDIR" Guid="{E3D42FA3-DD28-4928-AB36-D33EFC3D454E}">
+ <File Id="fil025966B7C1FB522423ADF8E9CE443022" KeyPath="yes" Source="SourceDir\opengl32sw.dll" />
+ </Component>
<Component Id="cmp7111706DBFB0E180EC7A8BDC93A90139" Directory="INSTALLDIR" Guid="{B19ABB59-5607-4637-93D8-C03CA180767F}">
<File Id="fil1A08189509DCFE1E185AEC6B499929BA" KeyPath="yes" Source="SourceDir\Qt6Core.dll" />
</Component>