Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make the API functions noexcept | Chris Robinson | 2023-05-22 | 1 | -15/+5 |
| | | | | | | | | | | | Only relevant for C++, but these functions can't throw as it's a C-based API. Letting the compiler know that helps improve code generation. Extension callbacks must also not let exceptions leave the callback, or else Bad Things can happen. The macro AL_DISABLE_NOEXCEPT may be defined before including the headers to not mark functions as noexcept, but this should only be done if the caller can't otherwise be fixed. | ||||
* | Fix linkage definitions | Chris Robinson | 2023-05-14 | 1 | -24/+24 |
| | |||||
* | Don't check for a null context in direct functions | Chris Robinson | 2023-05-14 | 1 | -80/+9 |
| | |||||
* | Implement direct functions for buffers | Chris Robinson | 2023-05-14 | 1 | -181/+178 |
| | |||||
* | Implement direct functions for extension queries and EAX | Chris Robinson | 2023-05-14 | 1 | -2/+6 |
| | |||||
* | Avoid using al::vector unnecessarily | Chris Robinson | 2023-05-12 | 1 | -2/+3 |
| | |||||
* | Special-case setting a single buffer's mode | Chris Robinson | 2023-05-11 | 1 | -9/+46 |
| | | | | To avoid extraneous allocations and extra work for a common case. | ||||
* | Avoid counting buffers multiple times in EAXSetBufferMode | Chris Robinson | 2023-05-10 | 1 | -29/+28 |
| | |||||
* | Mark some functions noexcept when possible | Chris Robinson | 2023-05-10 | 1 | -6/+2 |
| | |||||
* | Use some more standard functions | Chris Robinson | 2023-05-05 | 1 | -2/+2 |
| | |||||
* | Use std::byte instead of a custom al::byte | Chris Robinson | 2023-05-04 | 1 | -7/+7 |
| | |||||
* | Make and use a bit_cast function | Chris Robinson | 2023-05-04 | 1 | -1/+1 |
| | | | | Instead of reinterpret_casting between incompatible types | ||||
* | Replace al::optional with std::optional | Chris Robinson | 2023-05-04 | 1 | -10/+10 |
| | |||||
* | Don't try to access null pointers | Chris Robinson | 2023-04-28 | 1 | -0/+3 |
| | |||||
* | Make sure extension functions are properly aligned on 32-bit | Chris Robinson | 2023-04-12 | 1 | -2/+2 |
| | |||||
* | Remove a duplicate function | Chris Robinson | 2023-04-03 | 1 | -19/+3 |
| | |||||
* | Support the AL_EXT_STATIC_BUFFER extension | Chris Robinson | 2023-04-03 | 1 | -18/+144 |
| | |||||
* | Hold the buffer sample pointer separate from the vector | Chris Robinson | 2023-04-03 | 1 | -6/+8 |
| | |||||
* | Remove the separate UserFmt types | Chris Robinson | 2023-03-19 | 1 | -230/+128 |
| | | | | | All caller-usable formats are available as core formats now, so there's no reason to distinguish between them. | ||||
* | Support aLaw samples for UHJ | Chris Robinson | 2023-03-07 | 1 | -1/+4 |
| | |||||
* | Don't use "hardware" for automatic buffer storage | Chris Robinson | 2023-03-07 | 1 | -13/+30 |
| | |||||
* | Avoid duplicate parameter validation | Chris Robinson | 2023-03-07 | 1 | -7/+6 |
| | |||||
* | Add queries for the buffer byte/sample/sec length | Chris Robinson | 2023-03-07 | 1 | -0/+13 |
| | | | | | | | | | | | | | 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. | ||||
* | Use macros for the likely/unlikely attributes | Chris Robinson | 2023-03-01 | 1 | -124/+124 |
| | | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places. | ||||
* | 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. | ||||
* | 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 | 1 | -35/+6 |
| | |||||
* | 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 | 1 | -98/+96 |
| | |||||
* | Support IMA4 ADPCM as a mixing voice format | Chris Robinson | 2023-02-14 | 1 | -7/+7 |
| | |||||
* | Separate decoding and mixing from resampling | Chris Robinson | 2023-02-12 | 1 | -3/+9 |
| | |||||
* | Avoid unnecessary uses of make_optional | Chris Robinson | 2023-01-13 | 1 | -23/+23 |
| | |||||
* | Avoid using a macro to set a context error and return | Chris Robinson | 2022-12-24 | 1 | -17/+17 |
| | |||||
* | Implement an al::unreachable wrapper/helper | Chris Robinson | 2022-12-13 | 1 | -2/+2 |
| | |||||
* | Avoid using a macro to wrap standard attributes | Chris Robinson | 2022-12-06 | 1 | -124/+124 |
| | |||||
* | Avoid some uses of the LIKELY/UNLIKELY macros | Chris Robinson | 2022-12-05 | 1 | -125/+128 |
| | |||||
* | Use standard likely/unlikely attributes when available | Chris Robinson | 2022-12-05 | 1 | -2/+2 |
| | |||||
* | Clear the buffer from X-RAM before updating its size | Chris Robinson | 2022-08-05 | 1 | -0/+3 |
| | |||||
* | Move EAX files to their own sub-directory | Chris Robinson | 2022-05-16 | 1 | -2/+2 |
| | |||||
* | Remove the unused flags parameter from alBufferCallbackSOFT | Chris Robinson | 2022-04-01 | 1 | -3/+1 |
| | |||||
* | Simplify al::byte | Chris Robinson | 2022-03-30 | 1 | -12/+10 |
| | | | | | It's just an alias for unsigned char now, and no longer strongly-typed like std::byte. | ||||
* | Ensure the EAX functions are suitably aligned on 32-bit | Chris Robinson | 2022-03-16 | 1 | -2/+2 |
| | |||||
* | Fix X-RAM tracking | Chris Robinson | 2022-03-06 | 1 | -182/+115 |
| | |||||
* | Make some local constexpr variables static | Chris Robinson | 2022-02-23 | 1 | -1/+1 |
| | |||||
* | Move ALSOFT_EAX definition to config.h | Chris Robinson | 2022-01-30 | 1 | -9/+6 |
| | | | | And disable it by default for non-Windows targets | ||||
* | Add EAX extensions (EAX 2.0-5.0, X-RAM) (#632) | Boris I. Bendovsky | 2022-01-30 | 1 | -0/+292 |
| | | | | | | | | | | | | | | | * Add EAX extensions (EAX 2.0-5.0, X-RAM) * Comment out C++17 leftovers * Remove everything related to patching * Update alsoftrc.sample * Rewrite integration * Fix GCC compilation under Linux * Always reset EAX effect properties when loading it into FX slot | ||||
* | Properly compare the buffer channels for preservation | Chris Robinson | 2022-01-17 | 1 | -1/+1 |
| | |||||
* | Add an internal Super Stereo format | Chris Robinson | 2021-12-11 | 1 | -8/+4 |
| | | | | | | | It's not available as an AL buffer format (yet) since I'm not sure how to expose it. Internally it seems fine as a separate channel configuration, but because OpenAL combines the channel configuration and sample type, a flag may work better there. | ||||
* | Update some in-progress extension types | Chris Robinson | 2021-11-10 | 1 | -2/+2 |
| |