openal-soft.git
19 hours agoRemove some explicit inlinesmaster
Chris Robinson [Sun, 5 May 2024 00:22:12 +0000 (4 17:22 -0700)]
Remove some explicit inlines

19 hours agoFix some missing and unnecessary includes
Chris Robinson [Sun, 5 May 2024 00:17:36 +0000 (4 17:17 -0700)]
Fix some missing and unnecessary includes

19 hours agoMake some struct methods const
Chris Robinson [Sat, 4 May 2024 23:54:48 +0000 (4 16:54 -0700)]
Make some struct methods const

19 hours agoFix narrowing conversion warning for Win32 semaphores
Chris Robinson [Sat, 4 May 2024 23:53:27 +0000 (4 16:53 -0700)]
Fix narrowing conversion warning for Win32 semaphores

20 hours agoFix more clang-tidy warnings in the dsound and winmm backends
Chris Robinson [Sat, 4 May 2024 23:26:17 +0000 (4 16:26 -0700)]
Fix more clang-tidy warnings in the dsound and winmm backends

21 hours agoFix some clang-tidy warnings in the WASAPI backend
Chris Robinson [Sat, 4 May 2024 22:01:23 +0000 (4 15:01 -0700)]
Fix some clang-tidy warnings in the WASAPI backend

22 hours agoAvoid reference-to-function template parameters
Chris Robinson [Sat, 4 May 2024 20:39:05 +0000 (4 13:39 -0700)]
Avoid reference-to-function template parameters

32 hours agoAdd missing include
Chris Robinson [Sat, 4 May 2024 10:27:33 +0000 (4 03:27 -0700)]
Add missing include

33 hours agoMake the function pointer order consistent with the declarations
Chris Robinson [Sat, 4 May 2024 10:18:52 +0000 (4 03:18 -0700)]
Make the function pointer order consistent with the declarations

35 hours agoClean up some clang-tidy header warnings
Chris Robinson [Sat, 4 May 2024 08:02:31 +0000 (4 01:02 -0700)]
Clean up some clang-tidy header warnings

39 hours agoMake sure DriverIface is not copyable
Chris Robinson [Sat, 4 May 2024 04:24:18 +0000 (3 21:24 -0700)]
Make sure DriverIface is not copyable

44 hours agoReduce the amount of macro hackery for loading functions
Chris Robinson [Fri, 3 May 2024 23:09:49 +0000 (3 16:09 -0700)]
Reduce the amount of macro hackery for loading functions

44 hours agoProperly check for empty paths
Chris Robinson [Fri, 3 May 2024 22:34:25 +0000 (3 15:34 -0700)]
Properly check for empty paths

46 hours agoDon't include empty names for the router to accept/reject
Chris Robinson [Fri, 3 May 2024 20:41:37 +0000 (3 13:41 -0700)]
Don't include empty names for the router to accept/reject

2 days agoUse unsigned indices for the iface maps
Chris Robinson [Fri, 3 May 2024 05:58:01 +0000 (2 22:58 -0700)]
Use unsigned indices for the iface maps

2 days agoClean up some clang-tidy warnings in the router
Chris Robinson [Fri, 3 May 2024 03:43:52 +0000 (2 20:43 -0700)]
Clean up some clang-tidy warnings in the router

2 days agoUse std::unordered_map for the handle->index map
Chris Robinson [Fri, 3 May 2024 00:11:24 +0000 (2 17:11 -0700)]
Use std::unordered_map for the handle->index map

2 days agoDeclare variables closer to where they're used
Chris Robinson [Thu, 2 May 2024 22:58:22 +0000 (2 15:58 -0700)]
Declare variables closer to where they're used

2 days agoCheck ALROUTER_ACCEPT/REJECT for dlls to accept/reject
Chris Robinson [Thu, 2 May 2024 20:33:30 +0000 (2 13:33 -0700)]
Check ALROUTER_ACCEPT/REJECT for dlls to accept/reject

3 days agoAvoid fixed-length paths in the router
Chris Robinson [Thu, 2 May 2024 08:23:38 +0000 (2 01:23 -0700)]
Avoid fixed-length paths in the router

3 days agoHandle a public private enum value in the ALSA backend
Chris Robinson [Thu, 2 May 2024 04:42:06 +0000 (1 21:42 -0700)]
Handle a public private enum value in the ALSA backend

4 days agoConvert a few more loops to algorithms
Chris Robinson [Wed, 1 May 2024 06:02:17 +0000 (30 23:02 -0700)]
Convert a few more loops to algorithms

4 days agoFix reverb main delay fading
Chris Robinson [Wed, 1 May 2024 01:10:09 +0000 (30 18:10 -0700)]
Fix reverb main delay fading

4 days agoReplace a couple loops with algorithms
Chris Robinson [Wed, 1 May 2024 00:37:56 +0000 (30 17:37 -0700)]
Replace a couple loops with algorithms

8 days agoUse std::transform in the mixers instead of loops
Chris Robinson [Sat, 27 Apr 2024 01:30:10 +0000 (26 18:30 -0700)]
Use std::transform in the mixers instead of loops

8 days agoEnsure the context is connected when probing PulseAudio devices
Chris Robinson [Fri, 26 Apr 2024 20:13:53 +0000 (26 13:13 -0700)]
Ensure the context is connected when probing PulseAudio devices

13 days agoUse a span to register JACK ports
Chris Robinson [Mon, 22 Apr 2024 09:32:14 +0000 (22 02:32 -0700)]
Use a span to register JACK ports

13 days agoAvoid interlaced mixing for the non-RT JACK mixing
Chris Robinson [Mon, 22 Apr 2024 09:15:27 +0000 (22 02:15 -0700)]
Avoid interlaced mixing for the non-RT JACK mixing

It just needs to be deinterlaced in the JACK process callback anyway.

13 days agoFixed compilation as a subdirectory with MinGW (#991)
Dominik [Sun, 21 Apr 2024 22:15:10 +0000 (22 00:15 +0200)]
Fixed compilation as a subdirectory with MinGW (#991)

2 weeks agoReplace a loop with a couple algorithms
Chris Robinson [Sat, 20 Apr 2024 11:59:38 +0000 (20 04:59 -0700)]
Replace a loop with a couple algorithms

2 weeks agoRemove an undesireable cast
Chris Robinson [Sat, 20 Apr 2024 05:06:12 +0000 (19 22:06 -0700)]
Remove an undesireable cast

2 weeks agoReduce the number of mutable variables in the reverb all-passes
Chris Robinson [Thu, 18 Apr 2024 04:32:36 +0000 (17 21:32 -0700)]
Reduce the number of mutable variables in the reverb all-passes

2 weeks agoUse spans more in the reverb effect
Chris Robinson [Tue, 16 Apr 2024 12:24:55 +0000 (16 05:24 -0700)]
Use spans more in the reverb effect

2 weeks agoFix an implicit array-to-pointer decay
Chris Robinson [Tue, 16 Apr 2024 11:50:18 +0000 (16 04:50 -0700)]
Fix an implicit array-to-pointer decay

2 weeks agoAdd missing include
Chris Robinson [Mon, 15 Apr 2024 10:52:47 +0000 (15 03:52 -0700)]
Add missing include

2 weeks agoRename SoundIO to SndIO
Chris Robinson [Mon, 15 Apr 2024 01:38:57 +0000 (14 18:38 -0700)]
Rename SoundIO to SndIO

2 weeks agoRename FindSoundIO.cmake to FindSndIO.cmake
Chris Robinson [Mon, 15 Apr 2024 01:37:25 +0000 (14 18:37 -0700)]
Rename FindSoundIO.cmake to FindSndIO.cmake

2 weeks agoDisable SndIO by default on non-BSD systems
Chris Robinson [Mon, 15 Apr 2024 01:05:55 +0000 (14 18:05 -0700)]
Disable SndIO by default on non-BSD systems

It can still be enabled by setting ALSOFT_BACKEND_SNDIO=TRUE with cmake, but
since it isn't loaded dynamically, don't create a requirement on libsndio when
it's not needed or wanted.

3 weeks agoClarify a log message
Chris Robinson [Sun, 14 Apr 2024 18:34:29 +0000 (14 11:34 -0700)]
Clarify a log message

3 weeks agoClean up some asserts and add an alassert
Chris Robinson [Sun, 14 Apr 2024 03:12:32 +0000 (13 20:12 -0700)]
Clean up some asserts and add an alassert

Unlike a normal assert, alassert doesn't compile away in Release/NDEBUG builds,
making it useful for checks that must be true for continuing operation but may
not be due to unforeseeable/extenuating circumstances.

3 weeks agoSimplify PortAudio device enumeration
Chris Robinson [Sat, 13 Apr 2024 03:07:16 +0000 (12 20:07 -0700)]
Simplify PortAudio device enumeration

3 weeks agoReplace a set of ifs with a switch
Chris Robinson [Tue, 9 Apr 2024 13:52:16 +0000 (9 06:52 -0700)]
Replace a set of ifs with a switch

3 weeks agoSimplify sorting new elements
Chris Robinson [Tue, 9 Apr 2024 12:57:00 +0000 (9 05:57 -0700)]
Simplify sorting new elements

3 weeks agoRemove unnecessary NOLINT comments
Chris Robinson [Tue, 9 Apr 2024 10:56:21 +0000 (9 03:56 -0700)]
Remove unnecessary NOLINT comments

3 weeks agoClean up some temporary span definitions
Chris Robinson [Tue, 9 Apr 2024 09:49:33 +0000 (9 02:49 -0700)]
Clean up some temporary span definitions

3 weeks agoAvoid calling std::max in alignas
Chris Robinson [Tue, 9 Apr 2024 07:45:27 +0000 (9 00:45 -0700)]
Avoid calling std::max in alignas

To work around a bug in older versions of GCC 8 that some systems use.

3 weeks agoRemove extra '; almalloc.h (#986)
Trung Lê [Mon, 8 Apr 2024 01:05:15 +0000 (8 11:05 +1000)]
Remove extra '; almalloc.h (#986)

4 weeks agoUpdate AppVeyor to VS 2022
Chris Robinson [Sun, 7 Apr 2024 09:22:50 +0000 (7 02:22 -0700)]
Update AppVeyor to VS 2022

4 weeks agoAdd enumeration to the PortAudio backend
Chris Robinson [Sun, 7 Apr 2024 08:22:10 +0000 (7 01:22 -0700)]
Add enumeration to the PortAudio backend

4 weeks agoAllow specify other channel counts for PortAudio playback
Chris Robinson [Sun, 7 Apr 2024 05:05:08 +0000 (6 22:05 -0700)]
Allow specify other channel counts for PortAudio playback

The default channel configuration is stereo. The user is responsible for
ensuring the requested channels are compatible with the device configuration
since PortAudio provides no way to check.

4 weeks ago(Re-)add a cubic spline resampler
Chris Robinson [Sun, 7 Apr 2024 00:35:40 +0000 (6 17:35 -0700)]
(Re-)add a cubic spline resampler

4 weeks agoRename the cubic resampler to gaussian
Chris Robinson [Sun, 7 Apr 2024 00:15:39 +0000 (6 17:15 -0700)]
Rename the cubic resampler to gaussian

4 weeks agoPass spans to the resamplers instead of pointers to arrays
Chris Robinson [Sat, 6 Apr 2024 23:21:54 +0000 (6 16:21 -0700)]
Pass spans to the resamplers instead of pointers to arrays

4 weeks agoFix implicit signedness conversion warnings on 32-bit
Chris Robinson [Fri, 5 Apr 2024 01:12:09 +0000 (4 18:12 -0700)]
Fix implicit signedness conversion warnings on 32-bit

4 weeks agoAvoid more raw pointer manipulation in uhjfilter
Chris Robinson [Thu, 4 Apr 2024 07:45:47 +0000 (4 00:45 -0700)]
Avoid more raw pointer manipulation in uhjfilter

4 weeks agoBe a bit safer and less explicit with spans
Chris Robinson [Wed, 3 Apr 2024 01:33:34 +0000 (2 18:33 -0700)]
Be a bit safer and less explicit with spans

4 weeks agoUse spans in place of some pointer and iterator manipulation
Chris Robinson [Tue, 2 Apr 2024 18:52:58 +0000 (2 11:52 -0700)]
Use spans in place of some pointer and iterator manipulation

4 weeks agoRound up the HRIR length for the SIMD HRTF filter
Chris Robinson [Sun, 31 Mar 2024 22:42:42 +0000 (31 15:42 -0700)]
Round up the HRIR length for the SIMD HRTF filter

5 weeks agoRemove a couple inferred template parameters
Chris Robinson [Sat, 30 Mar 2024 16:19:30 +0000 (30 09:19 -0700)]
Remove a couple inferred template parameters

5 weeks agoInline a couple more globals
Chris Robinson [Sat, 30 Mar 2024 13:35:38 +0000 (30 06:35 -0700)]
Inline a couple more globals

5 weeks agoPass spans to the HRTF mixer functions instead of pointers
Chris Robinson [Sat, 30 Mar 2024 13:20:50 +0000 (30 06:20 -0700)]
Pass spans to the HRTF mixer functions instead of pointers

5 weeks agoPass spans to the mixer functions instead of pointers
Chris Robinson [Sat, 30 Mar 2024 10:10:09 +0000 (30 03:10 -0700)]
Pass spans to the mixer functions instead of pointers

5 weeks agoRemove some unnecessary RESTRICT uses
Chris Robinson [Sat, 30 Mar 2024 03:22:53 +0000 (29 20:22 -0700)]
Remove some unnecessary RESTRICT uses

5 weeks agoAssert for out-of-bounds subspans instead of throwing
Chris Robinson [Fri, 29 Mar 2024 12:13:34 +0000 (29 05:13 -0700)]
Assert for out-of-bounds subspans instead of throwing

5 weeks agoMinor clean up of some std::generate calls
Chris Robinson [Fri, 29 Mar 2024 09:01:39 +0000 (29 02:01 -0700)]
Minor clean up of some std::generate calls

5 weeks agoAdd an aldirect example for the Direct extension
Chris Robinson [Fri, 29 Mar 2024 08:56:09 +0000 (29 01:56 -0700)]
Add an aldirect example for the Direct extension

5 weeks agoDo 4 samples at a time in PhaseShifterT::process for NEON
Chris Robinson [Thu, 28 Mar 2024 08:19:18 +0000 (28 01:19 -0700)]
Do 4 samples at a time in PhaseShifterT::process for NEON

5 weeks agoProcess 4 samples at a time in PhaseShifterT::process
Chris Robinson [Thu, 28 Mar 2024 04:54:25 +0000 (27 21:54 -0700)]
Process 4 samples at a time in PhaseShifterT::process

For SSE only for now. I'm not sure yet how to do it efficiently for NEON.

5 weeks agoUse the proper size for the spans in uhjencoder
Chris Robinson [Thu, 28 Mar 2024 04:22:32 +0000 (27 21:22 -0700)]
Use the proper size for the spans in uhjencoder

5 weeks agoSupport mono input files in uhjencoder
Chris Robinson [Thu, 28 Mar 2024 03:36:26 +0000 (27 20:36 -0700)]
Support mono input files in uhjencoder

5 weeks agoAvoid repeating the return type
Chris Robinson [Tue, 26 Mar 2024 01:59:24 +0000 (25 18:59 -0700)]
Avoid repeating the return type

5 weeks agoMake an operator bool explicit
Chris Robinson [Tue, 26 Mar 2024 00:38:29 +0000 (25 17:38 -0700)]
Make an operator bool explicit

5 weeks agoReturn a vector of strings for enumeration from the backends
Chris Robinson [Tue, 26 Mar 2024 00:25:28 +0000 (25 17:25 -0700)]
Return a vector of strings for enumeration from the backends

5 weeks agoSuppress warnings about using hardware_interference_size
Chris Robinson [Mon, 25 Mar 2024 22:52:58 +0000 (25 15:52 -0700)]
Suppress warnings about using hardware_interference_size

5 weeks agoFix value truncation warning
Chris Robinson [Mon, 25 Mar 2024 22:49:28 +0000 (25 15:49 -0700)]
Fix value truncation warning

5 weeks agoChange a couple string literals to string_view literals
Chris Robinson [Mon, 25 Mar 2024 20:02:38 +0000 (25 13:02 -0700)]
Change a couple string literals to string_view literals

5 weeks agoDon't try to sort an empty list
Chris Robinson [Mon, 25 Mar 2024 06:15:23 +0000 (24 23:15 -0700)]
Don't try to sort an empty list

5 weeks agoRemove an unused initializer
Chris Robinson [Sun, 24 Mar 2024 22:09:02 +0000 (24 15:09 -0700)]
Remove an unused initializer

6 weeks agoSimplify calculating the 90-degree phase shift FIR filter
Chris Robinson [Sun, 24 Mar 2024 09:04:54 +0000 (24 02:04 -0700)]
Simplify calculating the 90-degree phase shift FIR filter

6 weeks agoAvoid pointer arithmetic with HRTF storage
Chris Robinson [Sun, 24 Mar 2024 08:13:03 +0000 (24 01:13 -0700)]
Avoid pointer arithmetic with HRTF storage

6 weeks agoAvoid pointer arithmetic with near-field filter mixing
Chris Robinson [Sun, 24 Mar 2024 08:11:59 +0000 (24 01:11 -0700)]
Avoid pointer arithmetic with near-field filter mixing

6 weeks agoFix uhjencoder's fallback channel IDs
Chris Robinson [Sun, 24 Mar 2024 07:46:13 +0000 (24 00:46 -0700)]
Fix uhjencoder's fallback channel IDs

6 weeks agoUse a more appropriate type for an array offset
Chris Robinson [Sat, 23 Mar 2024 08:32:09 +0000 (23 01:32 -0700)]
Use a more appropriate type for an array offset

6 weeks agoRemove unused getopt
Chris Robinson [Sat, 23 Mar 2024 08:08:59 +0000 (23 01:08 -0700)]
Remove unused getopt

6 weeks agoAvoid pointer arithmetic in sofa-info and makemhr
Chris Robinson [Sat, 23 Mar 2024 08:06:48 +0000 (23 01:06 -0700)]
Avoid pointer arithmetic in sofa-info and makemhr

6 weeks agoProtect effect slot state changes with the effect slot lock
Chris Robinson [Thu, 21 Mar 2024 21:26:51 +0000 (21 14:26 -0700)]
Protect effect slot state changes with the effect slot lock

6 weeks agoDon't over-allocate the active effect slot array
Chris Robinson [Thu, 21 Mar 2024 19:54:52 +0000 (21 12:54 -0700)]
Don't over-allocate the active effect slot array

Rather than hacking in the sorted array by assuming an equal length array after
the end of the active array, include it as the back half of the array.

6 weeks agoAvoid raw pointers in uhjdecoder/uhjencoder
Chris Robinson [Thu, 21 Mar 2024 06:05:01 +0000 (20 23:05 -0700)]
Avoid raw pointers in uhjdecoder/uhjencoder

6 weeks agoRecognize _M_ARM64 in PFFFT for MSVC NEON support
Chris Robinson [Thu, 21 Mar 2024 04:29:55 +0000 (20 21:29 -0700)]
Recognize _M_ARM64 in PFFFT for MSVC NEON support

6 weeks agoUse spans a bit more in place of pointers
Chris Robinson [Wed, 20 Mar 2024 06:38:48 +0000 (19 23:38 -0700)]
Use spans a bit more in place of pointers

6 weeks agoClean up some more raw pointer arithmetic
Chris Robinson [Mon, 18 Mar 2024 04:25:04 +0000 (17 21:25 -0700)]
Clean up some more raw pointer arithmetic

7 weeks agoAvoid pointers for calculating B-Format upsampler matrix
Chris Robinson [Sun, 17 Mar 2024 18:14:33 +0000 (17 11:14 -0700)]
Avoid pointers for calculating B-Format upsampler matrix

7 weeks agoMake a span's contents const
Chris Robinson [Sun, 17 Mar 2024 04:28:06 +0000 (16 21:28 -0700)]
Make a span's contents const

7 weeks agoAvoid some more direct pointer manipulation
Chris Robinson [Sun, 17 Mar 2024 04:20:11 +0000 (16 21:20 -0700)]
Avoid some more direct pointer manipulation

7 weeks agoMark some conditionally-used parameters as maybe_unused
Chris Robinson [Sat, 16 Mar 2024 14:55:56 +0000 (16 07:55 -0700)]
Mark some conditionally-used parameters as maybe_unused

7 weeks agoAdd a pointer wrapper for al::span's iterators
Chris Robinson [Sat, 16 Mar 2024 14:51:23 +0000 (16 07:51 -0700)]
Add a pointer wrapper for al::span's iterators

This helps ensure expected behavior for eventually switching to std::span in
C++20, as iterator objects can't be offset with any old integer type.

7 weeks agoWorkaround libc++ defining __cpp_lib_hardware_interference_size
Chris Robinson [Sat, 16 Mar 2024 14:15:10 +0000 (16 07:15 -0700)]
Workaround libc++ defining __cpp_lib_hardware_interference_size

Older versions of libc++ define the feature test macro
__cpp_lib_hardware_interference_size, but not the
std::hardware_destructive_interference_size and
std::hardware_constructive_interference_size variables it's for. Not sure which
version fixed it, so don't use it at all with libc++ for now.

7 weeks agoDon't pass an iterator where a pointer is expected
Chris Robinson [Fri, 15 Mar 2024 19:49:06 +0000 (15 12:49 -0700)]
Don't pass an iterator where a pointer is expected

7 weeks agoMake another global variable inline
Chris Robinson [Fri, 15 Mar 2024 18:08:36 +0000 (15 11:08 -0700)]
Make another global variable inline

7 weeks agoAvoid some more direct pointer manipulation
Chris Robinson [Fri, 15 Mar 2024 08:47:53 +0000 (15 01:47 -0700)]
Avoid some more direct pointer manipulation