Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Update the effect EAX version only after setting a property | Chris Robinson | 2023-03-09 | 1 | -5/+4 |
| | |||||
* | Have the null effect inherit from EaxEffect4 | Chris Robinson | 2023-03-09 | 1 | -14/+35 |
| | |||||
* | Add a type indicator to EaxEffectProps | Chris Robinson | 2023-03-09 | 12 | -55/+84 |
| | |||||
* | Store the per-version EAX effect state in the base class | Chris Robinson | 2023-03-09 | 14 | -471/+491 |
| | | | | | | | | | | | | | | | | This is the start of the refactoring for holding separable per-version EAX effects. Currently the effect state is stored in the effect object, which is instantiated per-type. This makes it impossible for different effects to be assigned on different EAX versions for a given effect slot (e.g. if the app sets a Chorus effect on EAX4 Slot0, it would fail to get or set the EAX1/2/3 reverb properties since it's a Chorus effect object). Seperate per-version effects will allow for switching the OpenAL effect by switching versions. This will provide an extra benefit in being able to delay OpenAL effect initialization until some EAX version has been set, avoiding an extraneous reverb and/or chorus processor for apps that only query some EAX properties but don't set anything (or which only use Slot0, leaving Slot1 with a defaulted Chorus effect running). | ||||
* | 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 | 2 | -14/+37 |
| | |||||
* | Make the resampler enum a byte | Chris Robinson | 2023-03-07 | 1 | -1/+1 |
| | |||||
* | 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 | 3 | -0/+21 |
| | | | | | | | | | | | | | 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. | ||||
* | Don't assume the max property size unchecked for user pointers | Chris Robinson | 2023-03-06 | 1 | -56/+193 |
| | |||||
* | Don't get the front element of an empty queue | Chris Robinson | 2023-03-05 | 1 | -1/+4 |
| | |||||
* | Report the current buffer ID of a streaming source | Chris Robinson | 2023-03-05 | 1 | -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. | ||||
* | Fix compiling examples with an older libsndfile | Chris Robinson | 2023-03-05 | 3 | -9/+18 |
| | | | | Which lack the SF_FORMAT_MPEG_LAYER_* enums. | ||||
* | Make sure the fmt chunk is large enough | Chris Robinson | 2023-03-05 | 3 | -4/+4 |
| | |||||
* | Remove a couple unused variables | Chris Robinson | 2023-03-04 | 1 | -2/+2 |
| | |||||
* | Use macros for the likely/unlikely attributes | Chris Robinson | 2023-03-01 | 33 | -546/+558 |
| | | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places. | ||||
* | Remove another gratuitous [[likely]] | Chris Robinson | 2023-02-28 | 1 | -1/+1 |
| | |||||
* | Remove a [[likely]] that confuses some versions of GCC | Chris Robinson | 2023-02-28 | 1 | -1/+1 |
| | |||||
* | Add aLaw formats to AL_SOFT_UHJ_ex | Chris Robinson | 2023-02-27 | 2 | -4/+10 |
| | |||||
* | Add AL_SOFT_UHJ_ex to the extension list | Chris Robinson | 2023-02-26 | 4 | -10/+17 |
| | |||||
* | Add formats for UHJ with muLaw, and ADPCM for 2-channel UHJ | Chris Robinson | 2023-02-26 | 2 | -5/+20 |
| | | | | | | | | | | 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 C/C++ standard version properties manually | Chris Robinson | 2023-02-25 | 2 | -13/+34 |
| | | | | | Setting it globally interferes with Oboe trying to use C++17 (when its built as a sub-project), which we don't require yet. | ||||
* | Clamp the MS ADPCM block predictor to the correct size | Chris Robinson | 2023-02-24 | 1 | -4/+4 |
| | |||||
* | 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 | 3 | -8/+7 |
| | | | | | Instead of recalculating it all the time, even for sources that don't use callback buffers. | ||||
* | Support float and ADPCM formats in alstream | Chris Robinson | 2023-02-17 | 1 | -19/+210 |
| | |||||
* | Cleanup the examples' loading functions slightly | Chris Robinson | 2023-02-17 | 2 | -59/+59 |
| | |||||
* | Handle Int16 and ADPCM formats in alstreamcb | Chris Robinson | 2023-02-16 | 1 | -25/+181 |
| | |||||
* | Set the proper block align for callback buffers | Chris Robinson | 2023-02-16 | 1 | -1/+1 |
| | |||||
* | Support loading as float or ADPCM in alplay | Chris Robinson | 2023-02-16 | 1 | -12/+164 |
| | |||||
* | Decode IMA4 blocks with fewer loops | Chris Robinson | 2023-02-16 | 1 | -35/+30 |
| | | | | | Rather than decoding samples in chunks of 8, calculate the read offset from an incrementing index. | ||||
* | Combine and simplify some loops | Chris Robinson | 2023-02-15 | 1 | -24/+14 |
| | |||||
* | Skip ADPCM samples in a separate loop before writing | Chris Robinson | 2023-02-15 | 1 | -59/+83 |
| | |||||
* | Rename some variables for clarity | Chris Robinson | 2023-02-15 | 1 | -19/+19 |
| | |||||
* | Remove unused decoder functions | Chris Robinson | 2023-02-14 | 1 | -202/+2 |
| | |||||
* | Add comments describing the MSADPCM decode | Chris Robinson | 2023-02-14 | 1 | -0/+13 |
| | |||||
* | Fix write offset for loading FmtIMA4 samples | Chris Robinson | 2023-02-14 | 1 | -2/+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 | 5 | -1/+113 |
| | |||||
* | 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 | 12 | -65/+215 |
| | |||||
* | Simplify copying the all-pass filter state | Chris Robinson | 2023-02-13 | 2 | -15/+7 |
| | |||||
* | Pass a boolean for the decoder to update its state | Chris Robinson | 2023-02-13 | 3 | -51/+57 |
| | |||||
* | Explicitly cast a constexpr value to passify MSVC | Chris Robinson | 2023-02-12 | 1 | -3/+3 |
| | |||||
* | Use to_address to pass a pointer-like iterator as a real pointer | Chris Robinson | 2023-02-12 | 1 | -4/+5 |
| | |||||
* | The decoders don't need space for resampling | Chris Robinson | 2023-02-12 | 2 | -16/+13 |
| | |||||
* | Separate decoding and mixing from resampling | Chris Robinson | 2023-02-12 | 5 | -295/+314 |
| | |||||
* | Check a string for NULL before calling strtoull | Chris Robinson | 2023-02-11 | 1 | -8/+9 |
| | |||||
* | Explicitly cast a size_t to double | Chris Robinson | 2023-02-11 | 1 | -1/+1 |
| | |||||
* | Always write samples to the destination when resampling | Chris Robinson | 2023-02-11 | 8 | -72/+53 |
| |