| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Except CoreAudio and Solaris backends
|
| |
|
|
|
|
|
| |
This avoids using an array of 1 as a flexible array member, and instead uses a
span to reference the memory after itself.
|
| |
|
|
|
|
|
| |
While the common use case, convolution can do more than just reverb, and it
nicely shortens the name.
|
| |
|
|
|
|
|
| |
This also seems to work around the problematic MinGW code generation, so the
indirection to access it can be removed.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
And dynamically build the full AL_EXTENSIONS string
|
|
|
|
|
| |
Setting the debug flag at context creation enables more debug messages for the
created context, and enables debug messages by default.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
There's no full guarantee about calling AL functions in a debug callback, due
to a risk of deadlocks from an AL call that tries to take a lock that's already
held at the time the callback is invoked, but this helps more work.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
To avoid alcProcessContext causing deferred EAX properties to be committed.
This simplifies updates when EAX has been initialized, but never or rarely
used.
Committing now always occurs in EAXSet when the property is non-deferred,
updating the OpenAL object(s) with it (with OpenAL's updates then being applied
based on the context's defer state).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These used to exist with the now-defunct AL_SOFT_buffer_samples extension, this
just restores those queries without extra baggage.
The sample length query are necessary when handling ADPCM buffers, since the
size/channels*8/bits calculation is incorrect with ADPCM. 'Bits' is usually
reported as 4 since most samples in a block are stored as nibbles, but that's
only approximate and doesn't account for the block header. The average number
of bits per sample in an ADPCM block can't be represented as an integer, so the
more blocks there are stored in the buffer, the more inaccurate the calculation
becomes.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Presuming sources start in a neutral state for EAX effects, that is they're not
affected by EAX by default, there's no need to set an active EAX state for one
until the app sets an EAX property on it. Since the deferred and immediate
properties are stored independently per-version, they can always be set to
defaults, and simply not have a particular version committed as active until
the app sets an EAX property, which will inherently set the active version.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* clang-tidy: use bool literals
Found with modernize-use-bool-literals
Signed-off-by: Rosen Penev <[email protected]>
* clang-tidy: replace std::bind with lambdas
Found with modernize-avoid-bind
Signed-off-by: Rosen Penev <[email protected]>
* clang-tidy: use data() instead of pointer stuff
Found with readability-container-data-pointe
Signed-off-by: Rosen Penev <[email protected]>
* clang-tidy: use empty()
Found with readability-container-size-empty
Signed-off-by: Rosen Penev <[email protected]>
* clang-tidy: remove static in anon namespace
Found with readability-static-definition-in-anonymous-namespace
Signed-off-by: Rosen Penev <[email protected]>
* clang-tidy: remove const return
Found with readability-const-return-type
Signed-off-by: Rosen Penev <[email protected]>
Signed-off-by: Rosen Penev <[email protected]>
|
|
|
|
|
| |
This will be much for efficient than a recursive mutex, given the amount of
contention will be very low.
|
| |
|
|
|
|
|
|
|
|
| |
I don't know how different sound APIs handle 7.1.4 ("Atmos" or "Auro3D")
output, but currently it simply specifies the additional channels with the
height channel labels. This isn't likely how it works for a virtualized channel
bed, for playing over other with-height configurations (7.1.2, 5.1.4, etc), but
this should be an okay start.
|
|
|
|
|
|
|
|
| |
This starts a source at a particular device clock time, rounded to the nearest
sample (really, 4th sample for SIMD reasons), allowing to start a sound at a
particular point in the output instead of the next update.
Unlike using negative offsets, this is not affected by pitch/velocity.
|
| |
|
|
|
|
| |
with changes in FX slot
|
| |
|
| |
|