openal-soft.git
22 hours agoUse a span to register JACK portsmaster
Chris Robinson [Mon, 22 Apr 2024 09:32:14 +0000 (22 02:32 -0700)]
Use a span to register JACK ports

22 hours 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.

33 hours 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 days 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

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

5 days 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

6 days 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

6 days 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

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

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

8 days 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

8 days 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.

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

9 days 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.

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

13 days 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

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

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

13 days 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

2 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.

2 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)

2 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

2 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

2 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.

2 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

2 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

2 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

2 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

2 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

2 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

2 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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

3 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.

3 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

3 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

4 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

4 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

4 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

4 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

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

4 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

4 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

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

4 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

4 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

4 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

4 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

4 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

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

4 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

4 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

4 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.

4 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

4 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

4 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

5 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

5 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

5 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

5 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

5 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

5 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.

5 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.

5 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

5 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

5 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

5 weeks agoAvoid some pointer arithmetic
Chris Robinson [Thu, 14 Mar 2024 20:29:36 +0000 (14 13:29 -0700)]
Avoid some pointer arithmetic

5 weeks agoUse more consistent parameter names
Chris Robinson [Thu, 14 Mar 2024 17:16:40 +0000 (14 10:16 -0700)]
Use more consistent parameter names

5 weeks agoHandle AL errors more consistently
Chris Robinson [Thu, 14 Mar 2024 16:18:22 +0000 (14 09:18 -0700)]
Handle AL errors more consistently

5 weeks agoUse exceptions for effect slot errors
Chris Robinson [Wed, 13 Mar 2024 16:11:02 +0000 (13 09:11 -0700)]
Use exceptions for effect slot errors

5 weeks agoUse exceptions to handle buffer errors
Chris Robinson [Wed, 13 Mar 2024 15:03:19 +0000 (13 08:03 -0700)]
Use exceptions to handle buffer errors

Instead of abusing  return setError(...);  to return early with a void return
type (which doesn't work for non-void-returning functions). Compilers should
also automatically optimize for non-exception paths without (un)likely
attributes.

5 weeks agoMove some function definitions to a more appropriate source
Chris Robinson [Tue, 12 Mar 2024 15:39:41 +0000 (12 08:39 -0700)]
Move some function definitions to a more appropriate source

And fix up some headers

5 weeks agoMark a function maybe_unused that's only used in asserts
Chris Robinson [Tue, 12 Mar 2024 15:28:32 +0000 (12 08:28 -0700)]
Mark a function maybe_unused that's only used in asserts

5 weeks agoMake sure a needed header is included
Chris Robinson [Tue, 12 Mar 2024 15:27:57 +0000 (12 08:27 -0700)]
Make sure a needed header is included

5 weeks agoAvoid using preexisting enum values
Chris Robinson [Tue, 12 Mar 2024 15:24:32 +0000 (12 08:24 -0700)]
Avoid using preexisting enum values

Assumptions are what created this mess in the first place. Let's avoid making
another one.

5 weeks agoAvoid some pointer arithmetic
Chris Robinson [Tue, 12 Mar 2024 15:12:37 +0000 (12 08:12 -0700)]
Avoid some pointer arithmetic

6 weeks agoRecognize the system device name for PipeWire and PulseAudio
Chris Robinson [Mon, 11 Mar 2024 09:02:20 +0000 (11 02:02 -0700)]
Recognize the system device name for PipeWire and PulseAudio

This is for names like "alsa_output.pci-0000_08_00.4.analog-stereo". Names like
these are shared between PipeWire and PulseAudio APIs, offering a relatively
consistent system-level specifier (kind of like GUIDs on Windows). This doesn't
include the ALSA backend, though it's not commonly used outside of some power-
user setups (but it would be nice to find a way to identify the ALSA device
related to such a system device name).

6 weeks agoUse a subspan instead of pointer manipulation
Chris Robinson [Sun, 10 Mar 2024 07:43:53 +0000 (9 23:43 -0800)]
Use a subspan instead of pointer manipulation

6 weeks agoFix ringbuffer overflow check
Chris Robinson [Sun, 10 Mar 2024 07:39:56 +0000 (9 23:39 -0800)]
Fix ringbuffer overflow check

6 weeks agoSimplify generating IDs
Chris Robinson [Sun, 10 Mar 2024 05:08:26 +0000 (9 21:08 -0800)]
Simplify generating IDs

6 weeks agoUse span's iterators for FlexArray
Chris Robinson [Sat, 9 Mar 2024 07:41:04 +0000 (8 23:41 -0800)]
Use span's iterators for FlexArray

6 weeks agoUse a span for the distance compensation buffer
Chris Robinson [Sat, 9 Mar 2024 03:18:54 +0000 (8 19:18 -0800)]
Use a span for the distance compensation buffer

6 weeks agoAvoid some more raw pointers
Chris Robinson [Fri, 8 Mar 2024 09:20:42 +0000 (8 01:20 -0800)]
Avoid some more raw pointers

6 weeks agoRemove const from a return type
Chris Robinson [Fri, 8 Mar 2024 07:41:22 +0000 (7 23:41 -0800)]
Remove const from a return type

6 weeks agoUse spans instead of raw pointers for the filters' output
Chris Robinson [Wed, 6 Mar 2024 08:26:55 +0000 (6 00:26 -0800)]
Use spans instead of raw pointers for the filters' output

6 weeks agoUse spans more for voice processing
Chris Robinson [Wed, 6 Mar 2024 07:30:46 +0000 (5 23:30 -0800)]
Use spans more for voice processing

7 weeks agoFix buffer load size for negative buffer offsets
Chris Robinson [Mon, 4 Mar 2024 18:23:00 +0000 (4 10:23 -0800)]
Fix buffer load size for negative buffer offsets

7 weeks agoRename some 'pan's to 'gain's for clarity
Chris Robinson [Mon, 4 Mar 2024 18:22:11 +0000 (4 10:22 -0800)]
Rename some 'pan's to 'gain's for clarity

7 weeks agoUse an iterator to iterate over the channel orders
Chris Robinson [Mon, 4 Mar 2024 05:21:09 +0000 (3 21:21 -0800)]
Use an iterator to iterate over the channel orders

7 weeks agoIterate over the async events directly
Chris Robinson [Mon, 4 Mar 2024 02:32:17 +0000 (3 18:32 -0800)]
Iterate over the async events directly

7 weeks agoGive names to unnamed structs
Chris Robinson [Mon, 4 Mar 2024 00:03:10 +0000 (3 16:03 -0800)]
Give names to unnamed structs

7 weeks agoAdd an in-progress extension for panning sources
Chris Robinson [Sun, 3 Mar 2024 17:17:40 +0000 (3 09:17 -0800)]
Add an in-progress extension for panning sources