mojoAL
mojoAL copied to clipboard
Support various OpenAL Soft extensions
There are several extensions from OpenAL Soft that are totally reasonable to support. Go through the list at that link and see what we can plug in here trivially.
Things we can probably handle:
- [x] AL_EXT_32bit_formats ... just int32 mono/stereo. It lists others if you support AL_EXT_MCFORMATS too.
- [x] AL_EXT_source_distance_model
- [x] AL_EXT_thread_local_context
- [ ] AL_SOFT_buffer_sub_data
- [ ] AL_SOFT_direct_channels
- [ ] AL_SOFT_direct_channels_remix
- [ ] AL_SOFT_gain_clamp_ex
- [ ] ALC_SOFT_output_mode
- [ ] ALC_SOFT_pause_device
Things we can maybe handle:
- [ ] AL_EXT_debug
- [ ] AL_EXT_direct_context. LOTS of entry points and related extensions...but most of it can probably happen with macro magic and light refactoring.
- [ ] AL_SOFT_buffer_samples
- [ ] AL_SOFT_callback_buffer
- [ ] AL_SOFT_deferred_updates.txt
- [ ] AL_SOFT_events
- [ ] AL_SOFT_loop_points
- [ ] ALC_SOFT_reopen_device
- [ ] AL_SOFT_source_length
- [ ] AL_SOFT_source_spatialize
Might be doable, but could be painful:
Things we likely can't handle, or would take a lot of work, needs external dependencies or complex data formats, needs things SDL doesn't provide, or would simply be difficult to do reasonably in a single-file OpenAL implementation:
- AL_SOFT_HRTF
- AL_SOFT_MSADPCM
- AL_SOFT_UHJ
- AL_SOFT_UHJ_ex
- AL_SOFT_bformat_ex
- AL_SOFT_bformat_hoa
- AL_SOFT_block_alignment
- AL_SOFT_buffer_length_query (doable but not really useful without some of these other extensions.)
- AL_SOFT_device_clock
- AL_SOFT_effect_target
- ALC_SOFT_loopback_bformat
- ALC_SOFT_output_limiter
- ALC_SOFT_source_latency
- AL_SOFT_source_resampler
- AL_SOFT_source_start_delay
+1 to AL_SOFT_callback_buffer, as it allows user code to correctly synchronize real-time audio and video.