Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Move ContextBase and VoiceChange to core | Chris Robinson | 2021-04-27 | 1 | -1/+1 | |
| | ||||||
* | Partially implement an extension to hold sources on disconnect | Chris Robinson | 2021-04-26 | 1 | -14/+24 | |
| | | | | | | | | Rather than stopping voices/sources when the device becomes disconnected, the context can be set to leave them alone. As a consequence, their state will remain as playing and they'll keep their last known sample offset indefinately. For applications mindful of this behavior, it will allow resetting or reopening the device to reconnect and automatically resume where it left off. | |||||
* | Move bformatdec to core | Chris Robinson | 2021-04-25 | 1 | -1/+1 | |
| | ||||||
* | Create a base the ALCdevice and ALCcontext structs | Chris Robinson | 2021-04-24 | 1 | -11/+11 | |
| | | | | | A base that contains the API-agnostic data, with ALCdevice and ALCcontext being for AL-specific data. | |||||
* | Fix dirty flag check | Chris Robinson | 2021-04-18 | 1 | -1/+1 | |
| | ||||||
* | Restore missing AL_SOFT_source_length queries | Chris Robinson | 2021-04-15 | 1 | -0/+93 | |
| | ||||||
* | Make an inverted atomic flag type and use it | Chris Robinson | 2021-04-15 | 1 | -5/+5 | |
| | | | | | | | | The inverted atomic flag replaces test_and_set+clear with test_and_clear+set, essentially inverting the flag status. This makes more logical sense for flagging dirty state, which is less confusing than flagging clean state. The one caveat is ATOMIC_FLAG_INIT (or default construction in C++20) initializes the state to true rather than false. | |||||
* | Add support for 4-channel UHJ | Chris Robinson | 2021-03-31 | 1 | -4/+4 | |
| | | | | Also add the SOFT moniker to the new macros | |||||
* | Handle 3-channel UHJ audio buffers | Chris Robinson | 2021-03-31 | 1 | -2/+4 | |
| | ||||||
* | Decode UHJ buffers to B-Format for mixing | Chris Robinson | 2021-03-31 | 1 | -4/+4 | |
| | | | | | This should also have an adjustment for the shelf filter. Although it's not clear what the appropriate adjustments should be. | |||||
* | Combine some duplicate code | Chris Robinson | 2021-03-30 | 1 | -42/+1 | |
| | ||||||
* | Load/convert samples from all channels at once for mixing | Chris Robinson | 2021-03-19 | 1 | -7/+8 | |
| | | | | | | | This uses a bit more memory (each voice needs to hold buffers for the deinterleaved samples of each channel, instead of just one buffer for the current channel being mixed on the device), but it will allow for handling formats that need or prefer their channels decoded together. | |||||
* | Add a alSourceQueueBufferLayersSOFT stub | Chris Robinson | 2021-02-04 | 1 | -0/+11 | |
| | | | | For compatiblity with apps that may have directly linked to it on accident. | |||||
* | Make sure InitVoice is given a valid buffer queue item | Chris Robinson | 2021-01-26 | 1 | -2/+2 | |
| | ||||||
* | Use an AL-specific buffer queue item struct for sources | Chris Robinson | 2021-01-25 | 1 | -36/+32 | |
| | ||||||
* | Use a deque for the source buffer queue | Chris Robinson | 2021-01-25 | 1 | -148/+112 | |
| | | | | | | This mainly avoids having to allocate ~64-byte structures individually. The mixing voice still holds the queue as a linked list so as to be container- agnostic. | |||||
* | Store the callback in the buffer list item | Chris Robinson | 2021-01-24 | 1 | -1/+3 | |
| | ||||||
* | Store buffer info in the queue entry | Chris Robinson | 2021-01-24 | 1 | -3/+8 | |
| | ||||||
* | Make PopCount and CountTrailingZeros more standard-like | Chris Robinson | 2021-01-22 | 1 | -3/+4 | |
| | ||||||
* | Avoid global constexpr arrays | Chris Robinson | 2021-01-21 | 1 | -2/+2 | |
| | ||||||
* | Add a crossover frequency field for the device | Chris Robinson | 2020-12-26 | 1 | -1/+1 | |
| | | | | | | Used when upsampling low-order ambisonic signals to higher order. Rather than a hardcoded 400hz, it ensures a consistent crossover point when an ambdec configuration is used. It can also allow for an alsoft config option. | |||||
* | Move alexcpt to core | Chris Robinson | 2020-12-24 | 1 | -1/+1 | |
| | ||||||
* | Move logging to core | Chris Robinson | 2020-12-17 | 1 | -1/+1 | |
| | ||||||
* | Don't link DistanceModel enums to AL values | Chris Robinson | 2020-12-16 | 1 | -10/+39 | |
| | ||||||
* | Use a separate enum for the VoiceChange state | Chris Robinson | 2020-12-16 | 1 | -7/+7 | |
| | ||||||
* | Move VoiceChange to a separate header | Chris Robinson | 2020-12-16 | 1 | -0/+1 | |
| | ||||||
* | Move ambidefs.h to core | Chris Robinson | 2020-12-12 | 1 | -1/+1 | |
| | ||||||
* | Move the filters to core | Chris Robinson | 2020-12-04 | 1 | -2/+2 | |
| | ||||||
* | Make sure batched source updates are with the proper voice | Chris Robinson | 2020-11-24 | 1 | -6/+9 | |
| | ||||||
* | Make ALbuffer inherit from BufferStorage | Chris Robinson | 2020-11-21 | 1 | -72/+55 | |
| | ||||||
* | Disassociate internal voice enums from AL enums | Chris Robinson | 2020-11-20 | 1 | -12/+62 | |
| | ||||||
* | Use BufferStorage for the buffer queue | Chris Robinson | 2020-11-19 | 1 | -92/+107 | |
| | ||||||
* | Use a separate structure for the active effect slot properties | Chris Robinson | 2020-11-07 | 1 | -2/+4 | |
| | ||||||
* | Replace the mixer fraction macros with constexpr variables | Chris Robinson | 2020-10-21 | 1 | -9/+8 | |
| | ||||||
* | Replace some more macros with constexpr variables | Chris Robinson | 2020-10-21 | 1 | -1/+1 | |
| | ||||||
* | Change some more macros into constexpr variables | Chris Robinson | 2020-10-21 | 1 | -7/+7 | |
| | ||||||
* | Declare variables closer to where they're used | Chris Robinson | 2020-10-13 | 1 | -50/+43 | |
| | ||||||
* | Use inline functions for popcnt and ctz instead of macros | Chris Robinson | 2020-10-13 | 1 | -4/+3 | |
| | ||||||
* | Use a separate structure for buffer storage | Chris Robinson | 2020-08-28 | 1 | -21/+22 | |
| | ||||||
* | Clarify an error message | Chris Robinson | 2020-05-25 | 1 | -3/+5 | |
| | ||||||
* | Use an enum class for SpatializeMode | Chris Robinson | 2020-05-21 | 1 | -1/+1 | |
| | ||||||
* | Fix up some more uses of [AL[C]]void | Chris Robinson | 2020-04-28 | 1 | -24/+24 | |
| | ||||||
* | Fix the source ID for a source voice stopped from deletion | Chris Robinson | 2020-04-21 | 1 | -1/+1 | |
| | ||||||
* | Track a buffer's ambisonic order | Chris Robinson | 2020-04-04 | 1 | -10/+16 | |
| | ||||||
* | Rename ALvoice and related structs to Voice | Chris Robinson | 2020-03-28 | 1 | -45/+45 | |
| | ||||||
* | Avoid some extraneous uses of AL type aliases | Chris Robinson | 2020-03-25 | 1 | -88/+88 | |
| | ||||||
* | Dynamically allocate voice channel data | Chris Robinson | 2020-03-25 | 1 | -13/+13 | |
| | | | | | | | Rather than allocating for a full 8 channels for each voice, when the vast majority will only need 1 or 2. The voice channel data is relatively big since it needs to hold HRTF coefficients and history, and this will allow increasing the maximum number of buffer channels without an obscene memory increase. | |||||
* | Use inline initialization more for sources | Chris Robinson | 2020-03-23 | 1 | -45/+0 | |
| | ||||||
* | Fix voices being forced to update without valid properties | Chris Robinson | 2020-03-04 | 1 | -2/+3 | |
| | | | | | | | | | | | | | | | | When starting a voice, the source ID was set before its first update struct was provided, creating a small window where a listener or effect slot update could force a voice to update without it having any valid properties to update with. Supplying the update struct first would create a different race, where the mixer could see a voice without a source but with an update struct, causing the update struct to be 'freed' without being applied. The fix here is to provide the update struct before setting the source ID, and change the mixer to ignore update structs for voices without a source ID. This can pseudo-orphan the updates that get set on a voice just as it stops, leaving the struct unusable until the voice is used again, or the voice gets deleted which will clear it. But it allows the update struct to stay in place and get applied once the voice gets a source ID. | |||||
* | Avoid redundantly setting voice members | Chris Robinson | 2020-03-04 | 1 | -26/+24 | |
| |