diff --git a/.github/autobuild/android.sh b/.github/autobuild/android.sh
index d0a9cde29e..c02273e146 100755
--- a/.github/autobuild/android.sh
+++ b/.github/autobuild/android.sh
@@ -69,8 +69,20 @@ setup_qt() {
else
echo "Installing Qt..."
python3 -m pip install "aqtinstall==${AQTINSTALL_VERSION}"
+ local qtmultimedia=()
+ if [[ ! "${QT_VERSION}" =~ 5\..* ]]; then
+ # From Qt6 onwards, qtmultimedia is a module and cannot be installed
+ # as an archive anymore.
+ qtmultimedia=("--modules")
+ fi
+ qtmultimedia+=("qtmultimedia")
+
python3 -m aqt install-qt --outputdir "${QT_BASEDIR}" linux android "${QT_VERSION}" \
- --archives qtbase qttools qttranslations qtandroidextras
+ --archives qtbase qttools qttranslations qtandroidextras \
+ "${qtmultimedia[@]}"
+ # Delete libraries, which we don't use, but which bloat the resulting package and might introduce unwanted dependencies.
+ find "${QT_BASEDIR}" -name 'libQt5*Quick*.so' -delete
+ rm -r "${QT_BASEDIR}/${QT_VERSION}/android/qml/"
fi
}
diff --git a/.github/autobuild/ios.sh b/.github/autobuild/ios.sh
index 34820f5fe9..14cbcbf873 100755
--- a/.github/autobuild/ios.sh
+++ b/.github/autobuild/ios.sh
@@ -20,7 +20,14 @@ setup() {
echo "Installing Qt"
python3 -m pip install "aqtinstall==${AQTINSTALL_VERSION}"
# Install actual ios Qt:
- python3 -m aqt install-qt --outputdir "${QT_DIR}" mac ios "${QT_VERSION}" --archives qtbase qttools qttranslations
+ local qtmultimedia=()
+ if [[ ! "${QT_VERSION}" =~ 5\..* ]]; then
+ # From Qt6 onwards, qtmultimedia is a module and cannot be installed
+ # as an archive anymore.
+ qtmultimedia=("--modules")
+ fi
+ qtmultimedia+=("qtmultimedia")
+ python3 -m aqt install-qt --outputdir "${QT_DIR}" mac ios "${QT_VERSION}" --archives qtbase qttools qttranslations "${qtmultimedia[@]}"
if [[ ! "${QT_VERSION}" =~ 5\..* ]]; then
# Starting with Qt6, ios' qtbase install does no longer include a real qmake binary.
# Instead, it is a script which invokes the mac desktop qmake.
diff --git a/.github/autobuild/linux_deb.sh b/.github/autobuild/linux_deb.sh
index c85d688da0..31ff53388d 100755
--- a/.github/autobuild/linux_deb.sh
+++ b/.github/autobuild/linux_deb.sh
@@ -27,7 +27,7 @@ setup() {
echo "Installing dependencies..."
sudo apt-get -qq update
- sudo apt-get -qq --no-install-recommends -y install devscripts build-essential debhelper fakeroot libjack-jackd2-dev qtbase5-dev qttools5-dev-tools
+ sudo apt-get -qq --no-install-recommends -y install devscripts build-essential debhelper fakeroot libjack-jackd2-dev qtbase5-dev qttools5-dev-tools qtmultimedia5-dev
setup_cross_compiler
}
@@ -46,7 +46,7 @@ setup_cross_compiler() {
return
fi
local GCC_VERSION=7 # 7 is the default on 18.04, there is no reason not to update once 18.04 is out of support
- sudo apt install -qq -y --no-install-recommends "g++-${GCC_VERSION}-${ABI_NAME}" "qt5-qmake:${TARGET_ARCH}" "qtbase5-dev:${TARGET_ARCH}" "libjack-jackd2-dev:${TARGET_ARCH}"
+ sudo apt install -qq -y --no-install-recommends "g++-${GCC_VERSION}-${ABI_NAME}" "qt5-qmake:${TARGET_ARCH}" "qtbase5-dev:${TARGET_ARCH}" "libjack-jackd2-dev:${TARGET_ARCH}" "qtmultimedia5-dev:${TARGET_ARCH}"
sudo update-alternatives --install "/usr/bin/${ABI_NAME}-g++" g++ "/usr/bin/${ABI_NAME}-g++-${GCC_VERSION}" 10
sudo update-alternatives --install "/usr/bin/${ABI_NAME}-gcc" gcc "/usr/bin/${ABI_NAME}-gcc-${GCC_VERSION}" 10
diff --git a/.github/autobuild/mac.sh b/.github/autobuild/mac.sh
index 63f310893c..efb1fef565 100755
--- a/.github/autobuild/mac.sh
+++ b/.github/autobuild/mac.sh
@@ -19,7 +19,14 @@ setup() {
else
echo "Installing Qt..."
python3 -m pip install "aqtinstall==${AQTINSTALL_VERSION}"
- python3 -m aqt install-qt --outputdir "${QT_DIR}" mac desktop "${QT_VERSION}" --archives qtbase qttools qttranslations
+ local qtmultimedia=()
+ if [[ ! "${QT_VERSION}" =~ 5\..* ]]; then
+ # From Qt6 onwards, qtmultimedia is a module and cannot be installed
+ # as an archive anymore.
+ qtmultimedia=("--modules")
+ fi
+ qtmultimedia+=("qtmultimedia")
+ python3 -m aqt install-qt --outputdir "${QT_DIR}" mac desktop "${QT_VERSION}" --archives qtbase qttools qttranslations "${qtmultimedia[@]}"
fi
}
diff --git a/.github/autobuild/windows.ps1 b/.github/autobuild/windows.ps1
index 953070cddc..2a800bbb81 100644
--- a/.github/autobuild/windows.ps1
+++ b/.github/autobuild/windows.ps1
@@ -44,6 +44,13 @@ Function Install-Qt
"$QtArch",
"--archives", "qtbase", "qttools", "qttranslations"
)
+ if ( $QtVersion -notmatch '^5\.' )
+ {
+ # From Qt6 onwards, qtmultimedia is a module and cannot be installed
+ # as an archive anymore.
+ $Args += ("--modules")
+ }
+ $Args += ("qtmultimedia")
aqt install-qt @Args
if ( !$? )
{
diff --git a/COMPILING.md b/COMPILING.md
index b4d45c9ff4..5893000962 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -23,7 +23,7 @@ Then run `git clone git@github.com:jamulussoftware/jamulus` in Terminal to get t
### Install dependencies
-On Debian 11+ you can install the dependencies by issuing the following command: `sudo apt-get -qq --no-install-recommends -y install devscripts build-essential debhelper fakeroot libjack-jackd2-dev qtbase5-dev qttools5-dev-tools`
+On Debian 11+ you can install the dependencies by issuing the following command: `sudo apt-get -qq --no-install-recommends -y install devscripts build-essential debhelper fakeroot libjack-jackd2-dev qtbase5-dev qttools5-dev-tools qtmultimedia5-dev`
**Note:** The exact dependencies might be different for older distributions. See [this comment by softins](https://github.com/jamulussoftware/jamulus/pull/2267#issuecomment-1022127426)
@@ -34,6 +34,7 @@ On Debian 11+ you can install the dependencies by issuing the following command:
- qt5-qtbase
- jack-audio-connection-kit-devel
- qt5-linguist
+- qt5-qtmultimedia
### For all desktop distributions
diff --git a/Jamulus.pro b/Jamulus.pro
index 54034a0fec..3793fde7de 100644
--- a/Jamulus.pro
+++ b/Jamulus.pro
@@ -39,6 +39,7 @@ contains(CONFIG, "headless") {
QT -= gui
} else {
QT += widgets
+ QT += multimedia
}
LRELEASE_DIR = src/translation
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
index 5bf53539ae..7725864d27 100644
--- a/android/AndroidManifest.xml
+++ b/android/AndroidManifest.xml
@@ -13,7 +13,6 @@
-
" + - tr ( "Qt cross-platform application framework" ) + - ", https://www.qt.io
" - "Opus Interactive Audio Codec" - ", https://www.opus-codec.org
" + txvLibraries->setText ( + tr ( "This app uses the following libraries, resources or code snippets:" ) + "" + tr ( "Qt cross-platform application framework" ) + + ", https://www.qt.io
" + "Opus Interactive Audio Codec" + ", https://www.opus-codec.org
" # if defined( _WIN32 ) && !defined( WITH_JACK ) - "ASIO (Audio Stream I/O) SDK"
- ", https://www.steinberg.net/developers
" +
- "ASIO is a trademark and software of Steinberg Media Technologies GmbH
ASIO (Audio Stream I/O) SDK"
+ ", https://www.steinberg.net/developers
" +
+ "ASIO is a trademark and software of Steinberg Media Technologies GmbH
" + - tr ( "Audio reverberation code by Perry R. Cook and Gary P. Scavone" ) + - ", 1995 - 2021, " - "The Synthesis ToolKit in C++ (STK)
" - "" + - tr ( "Some pixmaps are from the" ) + - " Open Clip Art Library (OCAL), " - "https://openclipart.org
" - "" + - tr ( "Flag icons by Mark James" ) + ", http://www.famfamfam.com
" ); + "" + + tr ( "Audio reverberation code by Perry R. Cook and Gary P. Scavone" ) + + ", 1995 - 2021, " + "The Synthesis ToolKit in C++ (STK)
" + "" + + tr ( "Some pixmaps are from the" ) + + " Open Clip Art Library (OCAL), " + "https://openclipart.org
" + "" + + tr ( "Flag icons by Mark James" ) + ", http://www.famfamfam.com
" + "" + + tr ( "Some sound samples are from" ) + " Freesound, " + "https://freesound.org
" ); // contributors list txvContributors->setText ( @@ -1613,6 +1614,9 @@ QString GetVersionAndNameStr ( const bool bDisplayInGui ) strVersionText += "\n *** Flag icons by Mark James"; strVersionText += "\n ***