Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add formats for UHJ with muLaw, and ADPCM for 2-channel UHJ | Chris Robinson | 2023-02-26 | 1 | -4/+9 |
| | | | | | | | | | | ADPCM doesn't seem to be well defined for more than two channels, even though there doesn't seem to be any issue with simply increasing the channel step over interleaved data (ffmpeg refuses to create IMA4 or MSADPCM files with more than two channels, and its decoder behaves oddly different when channels > 2). So IMA4 and MSADPCM can only safely handle 2-channel UHJ. There's no problem with muLaw supporting 2-, 3-, or 4-channel UHJ though. | ||||
* | Don't start with fading for negative offsets | Chris Robinson | 2023-02-18 | 1 | -2/+4 |
| | |||||
* | Track the callback buffer base separately | Chris Robinson | 2023-02-18 | 1 | -0/+1 |
| | | | | | Instead of recalculating it all the time, even for sources that don't use callback buffers. | ||||
* | Set the proper block align for callback buffers | Chris Robinson | 2023-02-16 | 1 | -1/+1 |
| | |||||
* | Remove unused decoder functions | Chris Robinson | 2023-02-14 | 1 | -202/+2 |
| | |||||
* | Don't convert MS ADPCM on load | Chris Robinson | 2023-02-14 | 2 | -37/+7 |
| | |||||
* | Support MSADPCM samples in the mixer | Chris Robinson | 2023-02-14 | 1 | -1/+3 |
| | |||||
* | Don't convert IMA4 samples on load | Chris Robinson | 2023-02-14 | 2 | -100/+98 |
| | |||||
* | Support IMA4 ADPCM as a mixing voice format | Chris Robinson | 2023-02-14 | 3 | -20/+22 |
| | |||||
* | Separate decoding and mixing from resampling | Chris Robinson | 2023-02-12 | 1 | -3/+9 |
| | |||||
* | Don't set an EAX version by default for sources | Chris Robinson | 2023-02-05 | 2 | -34/+10 |
| | | | | | | | | | 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 replaced | Chris Robinson | 2023-01-20 | 1 | -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. | ||||
* | clang-tidy cleanups (#800) | Rosen Penev | 2023-01-15 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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]> | ||||
* | Avoid unnecessary uses of make_optional | Chris Robinson | 2023-01-13 | 7 | -57/+57 |
| | |||||
* | Avoid some explicit casts and references | Chris Robinson | 2023-01-01 | 2 | -4/+4 |
| | |||||
* | Avoid a manual loop to find a buffer queue entry | Chris Robinson | 2022-12-24 | 1 | -6/+3 |
| | |||||
* | Constify some parameters | Chris Robinson | 2022-12-24 | 1 | -16/+16 |
| | |||||
* | Avoid using a macro to set a context error and return | Chris Robinson | 2022-12-24 | 6 | -84/+89 |
| | |||||
* | Avoid some macros for checking property sizes and values | Chris Robinson | 2022-12-24 | 1 | -169/+228 |
| | |||||
* | Use a bitset for the enabled event flags | Chris Robinson | 2022-12-16 | 1 | -14/+9 |
| | |||||
* | Avoid inlining certain exception functions | Chris Robinson | 2022-12-16 | 5 | -27/+24 |
| | |||||
* | Implement an al::unreachable wrapper/helper | Chris Robinson | 2022-12-13 | 1 | -2/+2 |
| | |||||
* | Rename a potentially confusing member function | Chris Robinson | 2022-12-08 | 1 | -1/+1 |
| | |||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 10 | -415/+415 |
| | |||||
* | Avoid LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 2 | -142/+142 |
| | |||||
* | Avoid some uses of the LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 4 | -195/+198 |
| | |||||
* | Use standard likely/unlikely attributes when available | Chris Robinson | 2022-12-05 | 6 | -83/+83 |
| | |||||
* | Add functions to start sources at a particular device time | Chris Robinson | 2022-11-03 | 1 | -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 time | Chris Robinson | 2022-11-03 | 1 | -0/+2 |
| | |||||
* | int64_t max can't fit into a double without narrowing | Chris Robinson | 2022-11-02 | 1 | -6/+0 |
| | |||||
* | Handle negative voice positions | Chris Robinson | 2022-11-02 | 1 | -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. | ||||
* | Fixed bug and possible overflow type (#771) | Herman Semenov | 2022-09-23 | 1 | -1/+1 |
| | |||||
* | Clear the buffer from X-RAM before updating its size | Chris Robinson | 2022-08-05 | 1 | -0/+3 |
| | |||||
* | AllocEffectSlot can't fail | Chris Robinson | 2022-07-29 | 1 | -17/+3 |
| | |||||
* | Use an intrusive_ptr to hold on to the EffectState | Chris Robinson | 2022-07-29 | 1 | -5/+3 |
| | |||||
* | Mark the EffectSlot in use after getting one | Chris Robinson | 2022-07-26 | 1 | -0/+1 |
| | |||||
* | Remove a redundant check | Chris Robinson | 2022-07-17 | 1 | -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 signedness | Chris Robinson | 2022-07-17 | 2 | -2/+2 |
| | |||||
* | Fix possible C2084 compiler error (#735) | Edoardo Lolletti | 2022-07-17 | 1 | -0/+3 |
| | | | | | | | * Fix possible C2084 compiler error Guiddef.h uses a separate header guard to define the GUID operators, in the current codebase this won't cause any issue, but i got such error while fiddling a bit with the program and including something that ended up including all the various windows headers, that ended up including Guiddef.h, causing the error as by not finding the macro declared, it ended up declaring the inline operators as well. * Update api.h | ||||
* | [EAX_SOURCE] Fix source's occlusion and exclusion contribution | Boris I. Bendovsky | 2022-07-17 | 3 | -19/+62 |
| | | | | 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_FX_SLOT] Fix setting EAX5 flags | Boris I. Bendovsky | 2022-07-17 | 1 | -1/+1 |
| | |||||
* | [EAX_FX_SLOT] Fix defaults for current properties | Boris I. Bendovsky | 2022-07-17 | 2 | -18/+45 |
| | |||||
* | [EAX_SOURCE] Skip occlusion calculation if occlusion property is zero | Boris I. Bendovsky | 2022-07-17 | 1 | -3/+7 |
| | |||||
* | [EAX_SOURCE] Fix Room and RoomHF contribution | Boris I. Bendovsky | 2022-07-17 | 1 | -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 IDs | Boris I. Bendovsky | 2022-07-17 | 2 | -2/+12 |
| | |||||
* | [EAX_FX_SLOT] Fix slot's occlusion contribution | Boris I. Bendovsky | 2022-07-17 | 1 | -1/+3 |
| | |||||
* | [EAX_CALL] Clear defer flag for immediate-only properties | Boris I. Bendovsky | 2022-07-17 | 1 | -1/+22 |
| | | | | EAX allow to set "defer" flag on immediate-only properties. If we don't clear our flag then "applyAllUpdates" in EAX context won't be called. | ||||
* | [EAX_FX_SLOT] Mark sources as changed instead of commiting them to catch up ↵ | Boris I. Bendovsky | 2022-07-17 | 1 | -0/+1 |
| | | | | with changes in FX slot | ||||
* | [EAX_FX_SLOT] Fix EAXGet for EAX5 | Boris I. Bendovsky | 2022-07-17 | 1 | -1/+1 |
| | |||||
* | Don't pass an EaxCall to initialize_fx_slots | Chris Robinson | 2022-07-15 | 4 | -29/+11 |
| |