Skip to content

Commit 3a89c51

Browse files
authored
Merge branch 'mixxxdj:main' into silence_sord
2 parents 6e9948c + 4e9c190 commit 3a89c51

1,205 files changed

Lines changed: 213068 additions & 240036 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.clang-format

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ IndentCaseLabels: false
2828
DerivePointerAlignment: false
2929
SpaceAfterTemplateKeyword: false
3030
SpacesBeforeTrailingComments: 1
31+
PackConstructorInitializers: Never
3132
# StatementMacros don't require a trailing semicolon.
3233
# Trailing semicolons should be omitted after these macros
3334
# when compiling with -Wpedantic to avoid warnings.

.cmakelintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
filter=-linelength,-convention/filename,-package/stdargs

.codespellignorelines

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,24 @@
44
pInOut, pInOut,
55
CSAMPLE* pInOut,
66
CSAMPLE* pInOut,
7-
void EnginePregain::process(CSAMPLE* pInOut, const int iBufferSize) {
8-
void EngineDelay::process(CSAMPLE* pInOut, const int iBufferSize) {
7+
void EnginePregain::process(CSAMPLE* pInOut, const std::size_t bufferSize) {
8+
void EngineDelay::process(CSAMPLE* pInOut, const std::size_t bufferSize) {
99
pInOut[i] = (CSAMPLE) processSample(fbuf1, (double) pInOut[i]);
1010
pInOut[i + 1] = (CSAMPLE) processSample(fbuf2, (double) pInOut[i + 1]);
1111
m_pDelayBuffer[m_iDelayPos] = pInOut[i];
1212
pInOut[i] = m_pDelayBuffer[iDelaySourcePos];
13-
SampleUtil::applyRampingGain(&pInOut[0], m_fPrevGain, 0, iBufferSize / 2);
14-
SampleUtil::applyRampingGain(&pInOut[iBufferSize / 2], 0, totalGain, iBufferSize / 2);
15-
SampleUtil::applyRampingGain(pInOut, m_fPrevGain, totalGain, iBufferSize);
16-
SampleUtil::applyGain(pInOut, totalGain, iBufferSize);
17-
void process(CSAMPLE* pInOut, const int iBufferSize) override;
18-
void process(CSAMPLE* pInOut, const int iBufferSize);
19-
virtual void process(CSAMPLE* pInOut, const int iBufferSize);
13+
SampleUtil::applyRampingGain(&pInOut[0], m_fPrevGain, 0, bufferSize / 2);
14+
SampleUtil::applyRampingGain(&pInOut[bufferSize / 2], 0, totalGain, bufferSize / 2);
15+
SampleUtil::applyRampingGain(pInOut, m_fPrevGain, totalGain, bufferSize);
16+
SampleUtil::applyGain(pInOut, totalGain, bufferSize);
17+
void process(CSAMPLE* pInOut, const std::size_t bufferSize) override;
18+
void process(CSAMPLE* pInOut, const std::size_t bufferSize);
19+
virtual void process(CSAMPLE* pInOut, const std::size_t bufferSize);
2020
"CSAMPLE_GAIN gain%(i)din, CSAMPLE_GAIN gain%(i)dout"
2121
"gain%(i)dout == CSAMPLE_GAIN_ZERO) {"
2222
"pSrc%(i)d, gain%(i)din, gain%(i)dout" % {"i": j}
2323
"(gain%(i)dout - gain%(i)din) / (iNumSamples / 2);"
24-
MOCK_METHOD2(process, void(CSAMPLE* pInOut, const int iBufferSize));
24+
MOCK_METHOD(void, process, (CSAMPLE * pInOut, const std::size_t bufferSize), (override));
2525
const QString kName3 = QStringLiteral("I'm blue, da ba dee");
2626
float m_k2vg; // IIF factor
2727
float m_k2vgNew; // IIF factor
@@ -71,6 +71,6 @@ void EngineEffectsDelay::process(CSAMPLE* pInOut,
7171
// Source: FIPS 180-4 Secure Hash Standard (SHS)
7272
// ALAC/CAF has been added in version 1.0.26
7373
QStringLiteral("caf"),
74-
void EngineFilter::process(CSAMPLE* pInOut, const int iBufferSize)
74+
void EngineFilter::process(CSAMPLE* pInOut, const size_t bufferSize)
7575
// Note(RRyan/Max Linke):
7676
// https://github.com/codders/libshout/blob/a17fb84671d3732317b0353d7281cc47e2df6cf6/src/timing/timing.c

.gersemirc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
indent: 2

.github/ISSUE_TEMPLATE/bug.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: 🐛 Bug Report
22
description: |
33
Describe your problem here.
4-
labels: [bug]
4+
type: "bug"
55
body:
66
- type: markdown
77
attributes:

.github/ISSUE_TEMPLATE/feature_request.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: 🚀 Feature Request
22
description: |
33
What feature would you like to see added to Mixxx?
4-
labels: [feature]
4+
type: "feature"
55
body:
66
- type: markdown
77
attributes:

.github/dependabot.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ updates:
44
directory: "/"
55
schedule:
66
interval: "weekly"
7+
target-branch: "2.5"

.github/labeler.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,18 @@ controller mappings:
3232
- any-glob-to-any-file:
3333
- res/controllers/**
3434

35+
developer experience:
36+
- changed-files:
37+
- any-glob-to-any-file:
38+
- .github/ISSUE_TEMPLATE/**
39+
- .github/labeler.yml
40+
- tools/**
41+
- .pre-commit-config.yaml
42+
- CODE_OF_CONDUCT.md
43+
- CONTRIBUTING.md
44+
- README.md
45+
- src/dialog/dlgdevelopertools*
46+
3547
analyzer:
3648
- changed-files:
3749
- any-glob-to-any-file:

.github/workflows/build.yml

Lines changed: 82 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ jobs:
3939
fail-fast: false
4040
matrix:
4141
include:
42-
- name: Ubuntu 22.04
43-
os: ubuntu-22.04
42+
- name: Ubuntu 24.04
43+
os: ubuntu-24.04
4444
cmake_args: >-
4545
-DQT6=ON
4646
-DQML=ON
@@ -58,7 +58,7 @@ jobs:
5858
cpack_generator: DEB
5959
buildenv_basepath: /home/runner/buildenv
6060
buildenv_script: tools/debian_buildenv.sh
61-
artifacts_name: Ubuntu 22.04 Qt6 DEB
61+
artifacts_name: Ubuntu 24.04 Qt6 DEB
6262
artifacts_path: build/*.deb
6363
artifacts_slug: ubuntu-jammy
6464
qt_qpa_platform: offscreen
@@ -71,6 +71,7 @@ jobs:
7171
-DMACOS_BUNDLE=ON
7272
-DMODPLUG=ON
7373
-DQT6=ON
74+
-DQML=OFF
7475
-DWAVPACK=ON
7576
-DVCPKG_TARGET_TRIPLET=x64-osx-min1100-release
7677
# TODO: Fix this broken test on macOS
@@ -94,6 +95,7 @@ jobs:
9495
-DMACOS_BUNDLE=ON
9596
-DMODPLUG=ON
9697
-DQT6=ON
98+
-DQML=ON
9799
-DWAVPACK=ON
98100
-DVCPKG_TARGET_TRIPLET=arm64-osx-min1100-release
99101
# TODO: Fix this broken test on macOS
@@ -108,21 +110,20 @@ jobs:
108110
artifacts_path: build/*.dmg
109111
artifacts_slug: macos-macosarm
110112
qt_qpa_platform: offscreen
111-
- name: Windows 2022 (MSVC)
113+
- name: Windows 2022 x64
112114
os: windows-2022
113-
# TODO: Re-enable FFmpeg after licensing issues have been clarified
114115
# Attention: If you change the cmake_args for the Windows CI build,
115116
# also adjust the for the local Windows build setup in
116117
# ./tools/windows_buildenv.bat
117118
cmake_args: >-
118119
-DBULK=ON
119-
-DFFMPEG=OFF
120120
-DHSS1394=ON
121121
-DLOCALECOMPARE=ON
122122
-DMAD=ON
123123
-DMEDIAFOUNDATION=ON
124124
-DMODPLUG=ON
125125
-DQT6=ON
126+
-DQML=ON
126127
-DWAVPACK=ON
127128
-DVCPKG_TARGET_TRIPLET=x64-windows-release
128129
cc: cl
@@ -132,10 +133,40 @@ jobs:
132133
cpack_generator: WIX
133134
buildenv_basepath: C:\buildenv
134135
buildenv_script: tools/windows_buildenv.bat
135-
artifacts_name: Windows Installer
136+
artifacts_name: Windows x64 Installer
136137
artifacts_path: build/*.msi
137138
artifacts_slug: windows-win64
138139
qt_qpa_platform: windows
140+
arch: x64
141+
- name: Windows 11 ARM64
142+
os: windows-11-arm
143+
# Attention: If you change the cmake_args for the Windows CI build,
144+
# also adjust the for the local Windows build setup in
145+
# ./tools/windows_buildenv.bat
146+
cmake_args: >-
147+
-DBULK=ON
148+
-DHSS1394=ON
149+
-DLOCALECOMPARE=ON
150+
-DMAD=ON
151+
-DMEDIAFOUNDATION=ON
152+
-DMODPLUG=ON
153+
-DQT6=ON
154+
-DQML=ON
155+
-DWAVPACK=ON
156+
-DVCPKG_TARGET_TRIPLET=arm64-windows-release
157+
-DVCPKG_DEFAULT_HOST_TRIPLET=arm64-windows-release
158+
cc: cl
159+
cxx: cl
160+
# TODO: Fix these broken tests on Windows
161+
ctest_args: --exclude-regex '^AutoDJProcessorTest.*$'
162+
cpack_generator: WIX
163+
buildenv_basepath: C:\buildenv
164+
buildenv_script: tools/windows_buildenv.bat
165+
artifacts_name: Windows ARM64 Installer
166+
artifacts_path: build/*.msi
167+
artifacts_slug: windows-winarm
168+
qt_qpa_platform: windows
169+
arch: arm64
139170

140171
env:
141172
# macOS codesigning
@@ -149,6 +180,7 @@ jobs:
149180
artifact-macos-macosintel: ${{ steps.prepare_deploy.outputs.artifact-macos-macosintel }}
150181
artifact-macos-macosarm: ${{ steps.prepare_deploy.outputs.artifact-macos-macosarm }}
151182
artifact-windows-win64: ${{ steps.prepare_deploy.outputs.artifact-windows-win64 }}
183+
artifact-windows-winarm: ${{ steps.prepare_deploy.outputs.artifact-windows-winarm }}
152184
steps:
153185
- name: "Check out repository"
154186
uses: actions/checkout@v4.2.2
@@ -169,7 +201,7 @@ jobs:
169201

170202
- name: "[macOS] Set up cmake"
171203
uses: jwlawson/actions-setup-cmake@v2.0
172-
# Ubuntu 22.04 should use the CMake version from the repos.
204+
# Ubuntu 24.04 should use the CMake version from the repos.
173205
if: runner.os == 'macOS'
174206
with:
175207
# This should always match the minimum required version in
@@ -178,8 +210,9 @@ jobs:
178210

179211
- name: "[Windows] Set up cmake"
180212
uses: jwlawson/actions-setup-cmake@v2.0
181-
# Ubuntu 22.04 should use the CMake version from the repos.
182-
if: runner.os == 'Windows'
213+
# Ubuntu 24.04 should use the CMake version from the repos.
214+
# On windows-11-arm this action installs the x64 version which has unwanted side effects
215+
if: matrix.os == 'windows-2022'
183216
with:
184217
# This is a workaround for a SSL false positive in cmake 3.26.4
185218
# When downloading the manual. 3.21 is required for installing the
@@ -189,6 +222,18 @@ jobs:
189222
- name: "[Windows] Set up MSVC Developer Command Prompt"
190223
if: runner.os == 'Windows'
191224
uses: ilammy/msvc-dev-cmd@v1
225+
with:
226+
arch: ${{ matrix.arch }}
227+
228+
- name: "[Windows 11 ARM64] Install ARM64 CMake"
229+
if: matrix.os == 'windows-11-arm'
230+
run: |
231+
Invoke-WebRequest -Uri https://github.com/Kitware/CMake/releases/download/v3.30.1/cmake-3.30.1-windows-arm64.zip -OutFile cmake-arm64.zip
232+
Expand-Archive cmake-arm64.zip -DestinationPath $env:USERPROFILE\cmake
233+
$cmakePath = "$env:USERPROFILE\cmake\cmake-3.30.1-windows-arm64\bin"
234+
$cmakePath | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
235+
$env:Path += ";$cmakePath"
236+
cmake --version
192237
193238
- name: "[macOS] install ccache and make"
194239
if: runner.os == 'macOS'
@@ -350,20 +395,36 @@ jobs:
350395
timestamp-digest: SHA256
351396
timeout: 600
352397

398+
- name: "[Windows 11 ARM64] Install WiX Toolset3"
399+
if: matrix.os == 'windows-11-arm'
400+
run: |
401+
choco install wixtoolset
402+
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1
403+
refreshenv
404+
echo "WIX=$env:WIX" >> $env:GITHUB_ENV
405+
353406
- name: "Package"
407+
id: package
354408
if: matrix.cpack_generator != null
355409
# Use retry loop to work around a race condition on macOS causing
356410
# 'Resource busy' errors with 'hdiutil'. See
357411
# https://github.com/actions/runner-images/issues/7522
358412
uses: nick-fields/retry@v3
359413
with:
360414
timeout_minutes: 30
361-
max_attempts: 12
415+
max_attempts: ${{ runner.os == 'macOS' && 12 || 1 }}
362416
retry_wait_seconds: 1
363417
command: |
364418
cd build
365419
cpack -G ${{ matrix.cpack_generator }} -V
366420
421+
- name: Upload failed packaging logs
422+
if: always() && steps.package.outcome == 'failure' && runner.os == 'windows'
423+
uses: actions/upload-artifact@v4
424+
with:
425+
name: ${{ matrix.os }}-logs-packages-wix
426+
path: ${{ github.workspace }}/build/_CPack_Packages/win64/WIX/wix.log
427+
367428
- name: "[Ubuntu] Import PPA GPG key"
368429
if: startsWith(matrix.os, 'ubuntu') && env.RRYAN_AT_MIXXX_DOT_ORG_GPG_PRIVATE_KEY != null
369430
run: gpg --import <(echo "${{ secrets.RRYAN_AT_MIXXX_DOT_ORG_GPG_PRIVATE_KEY }}")
@@ -372,7 +433,7 @@ jobs:
372433

373434
- name: "Package for PPA"
374435
# No need to do the PPA build for both Ubuntu versions
375-
if: matrix.name == 'Ubuntu 22.04'
436+
if: matrix.name == 'Ubuntu 24.04'
376437
run: |
377438
if [[ "${{ github.ref }}" == "refs/heads/main" ]] && [[ "${{ github.repository }}" == "mixxxdj/mixxx" ]]; then
378439
CPACK_ARGS="-D DEB_UPLOAD_PPA=ppa:mixxx/nightlies"
@@ -442,7 +503,13 @@ jobs:
442503
SSH_PRIVATE_KEY: ${{ secrets.DOWNLOADS_HOSTGATOR_DOT_MIXXX_DOT_ORG_KEY }}
443504
if: runner.os == 'Windows' && inputs.publish && env.SSH_PRIVATE_KEY != null
444505
run: |
445-
$Env:PATH="c:\msys64\usr\bin;$Env:PATH"
506+
if (Test-Path "C:\msys64\usr\bin") {
507+
$msysPath="C:\msys64"
508+
} else {
509+
choco install msys2 -y
510+
$msysPath="C:\tools\msys64"
511+
}
512+
$Env:PATH="$msysPath\usr\bin;$Env:PATH"
446513
pacman -S --noconfirm coreutils bash rsync openssh
447514
# Unfortunately, mixing executables from msys64 and mingw (i.e. Git
448515
# Bash) does not work properly and leads to errors like these:
@@ -457,14 +524,14 @@ jobs:
457524
#
458525
# Also see related issue:
459526
# https://github.com/actions/virtual-environments/issues/594
460-
Copy-Item -Path "C:\msys64\usr\bin\bash.exe" -Destination "C:\Program Files\Git\bin\bash.exe" -Force
527+
Copy-Item -Path "$msysPath\usr\bin\bash.exe" -Destination "C:\Program Files\Git\bin\bash.exe" -Force
461528
# By default, MSYS2 uses an
462529
# /etc/profile file that changes
463530
# the current working directory
464531
# when bash is started. We don't
465532
# want this behavior,so we just
466533
# delete it.
467-
Remove-Item -Path "C:\msys64\etc\profile"
534+
Remove-Item -Path "$msysPath\etc\profile"
468535
# Add MSYS2's tools to %PATH%.
469536
Add-Content -Path "$Env:GITHUB_ENV" -Value "PATH=$Env:PATH"
470537

.github/workflows/checks.yml

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,17 @@ jobs:
2020
- name: clazy
2121
- name: clang-tidy
2222
- name: coverage
23-
runs-on: ubuntu-22.04
23+
runs-on: ubuntu-24.04
2424
name: ${{ matrix.name }}
2525
steps:
2626
- name: Check out repository
2727
uses: actions/checkout@v4.2.2
28+
- name: Add clazy PPA
29+
if: matrix.name == 'clazy'
30+
# Ubuntu2404 comes with v1.11, which is too old for the Qt6.4 shipped with Ubuntu 24.04
31+
run: |
32+
sudo add-apt-repository ppa:daschuer/clazy
33+
sudo apt update
2834
- name: Install build dependencies
2935
run: tools/debian_buildenv.sh setup
3036
- name: Create build directory
@@ -33,6 +39,7 @@ jobs:
3339
if: matrix.name == 'clazy'
3440
# Disable optimizations as workaround for Clang 9 bug: https://bugs.llvm.org/show_bug.cgi?id=45034
3541
run: |
42+
clazy --version
3643
cmake \
3744
-DCMAKE_BUILD_TYPE=Debug \
3845
-DWARNINGS_FATAL=ON \
@@ -60,6 +67,8 @@ jobs:
6067
CXX: clazy
6168
- name: Configure (clang-tidy)
6269
if: matrix.name == 'clang-tidy'
70+
# Our code contains the use of infinity(), which Clang >= 18 reports
71+
# as error, if you compile with -fast-math
6372
run: |
6473
cmake \
6574
-DCMAKE_BUILD_TYPE=Debug \
@@ -80,6 +89,7 @@ jobs:
8089
-DMAD=ON \
8190
-DMODPLUG=ON \
8291
-DWAVPACK=ON \
92+
-DCMAKE_CXX_FLAGS="-Wno-nan-infinity-disabled" \
8393
..
8494
working-directory: build
8595
env:
@@ -93,6 +103,7 @@ jobs:
93103
-DCMAKE_BUILD_TYPE=Debug \
94104
-DOPTIMIZE=off \
95105
-DQT6=ON \
106+
-DQML=ON \
96107
-DCOVERAGE=ON \
97108
-DWARNINGS_FATAL=OFF \
98109
-DDEBUG_ASSERTIONS_FATAL=OFF \
@@ -114,13 +125,6 @@ jobs:
114125
working-directory: build
115126
- name: Set up problem matcher
116127
uses: ammaraskar/gcc-problem-matcher@0.3.0
117-
# Work around https://github.com/actions/runner-images/issues/8659
118-
- name: "Remove GCC 13 from runner image (workaround)"
119-
shell: bash
120-
run: |
121-
sudo rm -f /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-jammy.list
122-
sudo apt-get update
123-
sudo apt-get install -y --allow-downgrades libc6=2.35* libc6-dev=2.35* libstdc++6=12.3.0-1ubuntu1~22.04 libgcc-s1=12.3.0-1ubuntu1~22.04
124128
- name: Build
125129
# Do not abort on errors and build/check the whole project
126130
run: cmake --build . -j $(nproc) -- --keep-going
@@ -157,6 +161,6 @@ jobs:
157161
continue-on-error: true
158162
uses: coverallsapp/github-action@v2.3.6
159163
with:
160-
flag-name: ubuntu-22.04
164+
flag-name: ubuntu-24.04
161165
path-to-lcov: build/lcov.info
162166
github-token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)