aboutsummaryrefslogtreecommitdiffstats
path: root/al/source.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Don't try to access null pointersChris Robinson2023-04-281-0/+3
|
* Use std::transform to cast doubles to floatsChris Robinson2023-04-271-2/+4
|
* Make sure extension functions are properly aligned on 32-bitChris Robinson2023-04-121-2/+3
|
* Allow using a negative offset with callback buffersChris Robinson2023-03-281-1/+4
|
* Log the buffer format when queueing mismatched buffersChris Robinson2023-03-221-2/+6
|
* Remove the separate UserFmt typesChris Robinson2023-03-191-16/+3
| | | | | All caller-usable formats are available as core formats now, so there's no reason to distinguish between them.
* Simplify some samples-to-bytes conversionsChris Robinson2023-03-191-40/+8
|
* Add a compat option to restore AL_SOFT_buffer_sub_dataChris Robinson2023-03-171-10/+134
|
* Rename some member functions and variables for consistencyChris Robinson2023-03-161-102/+102
|
* Commit deferred EAX properties in alcProcessContextChris Robinson2023-03-161-15/+0
|
* Fix the format check for queueing buffersChris Robinson2023-03-151-1/+1
|
* Set a default version for EAX source propertiesChris Robinson2023-03-141-14/+15
|
* Don't allow queueing a buffer with no formatChris Robinson2023-03-121-10/+18
|
* Don't commit EAX updates in applyAllUpdatesChris Robinson2023-03-111-32/+9
| | | | | | | | | | 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).
* Don't assume the max property size unchecked for user pointersChris Robinson2023-03-061-56/+193
|
* Don't get the front element of an empty queueChris Robinson2023-03-051-1/+4
|
* Report the current buffer ID of a streaming sourceChris Robinson2023-03-051-2/+13
| | | | | | The AL_BUFFER query should only return the buffer that was set on a static source, but some apps used it to detect when a current buffer of a streaming source changed instead of AL_BUFFERS_PROCESSED.
* Use macros for the likely/unlikely attributesChris Robinson2023-03-011-136/+136
| | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places.
* Don't start with fading for negative offsetsChris Robinson2023-02-181-2/+4
|
* Track the callback buffer base separatelyChris Robinson2023-02-181-0/+1
| | | | | Instead of recalculating it all the time, even for sources that don't use callback buffers.
* Support IMA4 ADPCM as a mixing voice formatChris Robinson2023-02-141-12/+15
|
* Don't set an EAX version by default for sourcesChris Robinson2023-02-051-26/+8
| | | | | | | | | 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.
* Don't force an update if there is no aux slot being replacedChris Robinson2023-01-201-4/+7
| | | | | A null effect slot can't be deleted, so we don't need to make sure it's set to change before returning.
* Avoid unnecessary uses of make_optionalChris Robinson2023-01-131-15/+15
|
* Avoid some explicit casts and referencesChris Robinson2023-01-011-3/+3
|
* Avoid a manual loop to find a buffer queue entryChris Robinson2022-12-241-6/+3
|
* Constify some parametersChris Robinson2022-12-241-16/+16
|
* Avoid using a macro to set a context error and returnChris Robinson2022-12-241-34/+32
|
* Avoid some macros for checking property sizes and valuesChris Robinson2022-12-241-169/+228
|
* Avoid using a macro to wrap standard attributesChris Robinson2022-12-061-135/+135
|
* Avoid LIKELY/UNLIKELY macrosChris Robinson2022-12-051-119/+119
|
* Use standard likely/unlikely attributes when availableChris Robinson2022-12-051-18/+18
|
* Add functions to start sources at a particular device timeChris Robinson2022-11-031-161/+234
| | | | | | | | 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.
* Add the ability to start a voice at a particular timeChris Robinson2022-11-031-0/+2
|
* int64_t max can't fit into a double without narrowingChris Robinson2022-11-021-6/+0
|
* Handle negative voice positionsChris Robinson2022-11-021-36/+66
| | | | | | This allows a voice/source to start with a delay, more accurately than simply waiting to call alSourcePlay. The delay is affected by pitch and velocity, making it useful to simulate distant sounds that take time to be heard.
* Remove a redundant checkChris Robinson2022-07-171-3/+0
| | | | | | If src_occlusion_mb is 0, it'll be multiplied with whatever the ratio ends up being, which will result in 0 anyway. A number of uses also already check the occlusion value before calling the method.
* Fix parameter signednessChris Robinson2022-07-171-1/+1
|
* [EAX_SOURCE] Fix source's occlusion and exclusion contributionBoris I. Bendovsky2022-07-171-17/+44
| | | | Source's oclussion and exclusion properties should be taken into account only for listener's environment (see p. 16, p. 56, pp. 62-63 and p. 64 of "EAX® 4.0 Programmer’s Guide").
* [EAX_SOURCE] Skip occlusion calculation if occlusion property is zeroBoris I. Bendovsky2022-07-171-3/+7
|
* [EAX_SOURCE] Fix Room and RoomHF contributionBoris I. Bendovsky2022-07-171-2/+3
| | | | Those properties should be taken into account only for environmental effect slot (see pp. 60-61 of "EAX® 4.0 Programmer’s Guide").
* [EAX_SOURCE] Fix getting active FX slot IDsBoris I. Bendovsky2022-07-171-2/+11
|
* [EAX_FX_SLOT] Fix slot's occlusion contributionBoris I. Bendovsky2022-07-171-1/+3
|
* Dynamically allocate EffectSlot objectsChris Robinson2022-07-151-2/+2
|
* Don't always activate the EAX primary effect slot for sourcesChris Robinson2022-07-061-14/+22
| | | | | The context's primary effect slot should only be considered when the source's active slot IDs include the primary effect slot.
* Combine multiple individual flagsChris Robinson2022-06-191-48/+32
|
* Track EAX1 source changesChris Robinson2022-06-191-9/+6
| | | | | | Even though it's only a single value, this allows for not having to explicitly track version changes, since the version being changed to will always have a property change, implicitly marking an EAX update/commit for the source.
* Avoid changing the EAX version on failureChris Robinson2022-06-181-3/+2
|
* Fix inverted checksChris Robinson2022-06-181-4/+4
|
* Don't mark the EAX version changed when getting propertiesChris Robinson2022-06-181-4/+5
|