aboutsummaryrefslogtreecommitdiffstats
path: root/alc
Commit message (Collapse)AuthorAgeFilesLines
* Remove an outdated commentChris Robinson2023-10-201-3/+0
|
* Don't log failed config option lookupsChris Robinson2023-10-191-5/+2
|
* Avoid some unique and wrapper typesChris Robinson2023-10-151-58/+33
|
* Use the same stereo angles in convolution as normal mixingChris Robinson2023-10-151-19/+15
|
* Use a span for a known array length instead of a raw pointerChris Robinson2023-10-159-30/+30
|
* Ensure some variables are the sameChris Robinson2023-10-151-21/+21
| | | | And clean up some comments
* Avoid an extra copy to calculate the convolution FFTChris Robinson2023-10-141-6/+5
|
* Read the correct half-frequency binChris Robinson2023-10-141-1/+1
|
* Rename the convolution reverb effect to just convolutionChris Robinson2023-10-123-6/+6
| | | | | While the common use case, convolution can do more than just reverb, and it nicely shortens the name.
* Add an orientation property for convolution reverbChris Robinson2023-10-121-1/+2
| | | | Only affects ambisonic (B-Format and UHJ) formats
* Add convolution effect properties to rotate ambisonic responsesChris Robinson2023-10-121-3/+23
|
* Attenuate the convolution filter instead of the filter resultChris Robinson2023-10-111-9/+8
|
* Make and use a separate zconvolve method without scalingChris Robinson2023-10-111-8/+7
| | | | | | When you're doing hundreds or thousands of separate zconvolve calls into the same buffer, it's more efficient to do the multiply once at the end instead of in each call.
* Use PFFFT for the convolution effectChris Robinson2023-10-061-40/+92
|
* Improve ambisonic rotator coefficient accuracyChris Robinson2023-10-021-17/+38
|
* Declare a missing variableChris Robinson2023-10-011-1/+1
|
* Get the default WASAPI device on UWPChris Robinson2023-10-011-25/+14
|
* Add a wrapper for COM initializationChris Robinson2023-09-292-34/+24
| | | | | This helps ensure COM is initialized and deinitialized in order relative to other objects (e.g. ComPtr).
* Ensure the WASAPI resample buffer is cleared when mixing startsChris Robinson2023-09-291-9/+6
| | | | | Otherwise, stopping and restarting without resetting could leave it with invalid pointers.
* Set the appropriate padding sizeChris Robinson2023-09-261-1/+1
| | | | It's based on the original/stream size, not the ALCdevice's.
* Constify some pointers to indicate they won't changeChris Robinson2023-09-251-1/+1
|
* Honor the wasapi allow-resampler option with spatial sound outputChris Robinson2023-09-241-0/+4
|
* Match the output sample rate if not requesting oneChris Robinson2023-09-241-0/+4
|
* Support resampling with WASAPI spatial audio outputChris Robinson2023-09-241-14/+67
|
* Fix cppwinrt exception type capture (#918)Deal2023-09-231-1/+1
|
* Avoid casting an integer literalChris Robinson2023-09-224-8/+8
|
* UWP: migrate C++/CX to C++/WinRT (#916)Deal2023-09-222-67/+66
|
* Try to get the device period for spatial audio streamsChris Robinson2023-09-211-30/+52
|
* Don't assume the size of AudioObjectTypeChris Robinson2023-09-211-1/+1
|
* Again try to fix handling an enum typeChris Robinson2023-09-201-1/+2
|
* Don't assume an enum's underlying typeChris Robinson2023-09-201-1/+1
|
* Fix MSVC compilationChris Robinson2023-09-201-0/+2
| | | | MinGW's headers don't seem to define operator| for AudioObjectType.
* Preliminary implementation of WASAPI spatial audio playbackChris Robinson2023-09-201-161/+538
|
* Replace some more unnecessary angles with vectorsChris Robinson2023-09-181-47/+77
|
* Store channel positions as vectors instead of anglesChris Robinson2023-09-146-128/+173
| | | | To avoid extraneous conversions between angles and vectors
* Use a span instead of an auto&& to arrayChris Robinson2023-09-131-7/+7
|
* Add a alcGetProcAddress2 functionChris Robinson2023-09-123-0/+8
| | | | | | | | | | | | | | | | This is essentially just a copy of alcGetProcAddress. It's purpose is to bypass Creative's router's alcGetProcAddress implementation, which returns its own functions even if given a device handle. When combined with it also wrapping the drivers' device and context handles, that prevents any extention function that needs a recognizable device or context handle from working, like the *Direct functions, as there's no way for the app to get a device or context handle the driver can know about). An alternate function to get function pointers allows a driver to return its own implementation for standard and extension functions, which an application can use to "bootstrap" audio to use a particular driver directly, enabling use of extensions that the router gets in the way of (and also avoid the overhead of the router, however small that may be).
* Make some global and static member variables inlineChris Robinson2023-09-112-18/+1
| | | | | This also seems to work around the problematic MinGW code generation, so the indirection to access it can be removed.
* Approximate sin for the reverb modulator LFOChris Robinson2023-09-111-2/+7
| | | | | | | Reverb needs to prioritize efficiency since it's expected that an app may use multiple reverb effects simultaneously, and each individual effect may process twice during a pipeline transition. Approximating sin helps by replacing a per- sample libc call that we don't need to be perfectly accurate.
* Combine multiple divisions into oneChris Robinson2023-09-101-8/+11
|
* Include the early and late reverb gain for the decay fade timerChris Robinson2023-09-051-3/+30
|
* Don't use a custom config for the pipewire event loopChris Robinson2023-09-031-1/+1
|
* Avoid putting strings in fixed arrays of char arraysChris Robinson2023-09-021-21/+22
|
* Handle a null string in DeviceHelper::OnDefaultDeviceChangedChris Robinson2023-08-311-6/+6
|
* Combine separate loops into oneChris Robinson2023-08-301-5/+6
|
* Use a more accurate ring modulator waveform generatorChris Robinson2023-08-291-37/+76
| | | | | | This restricts available frequencies to fit an integer number of samples per cycle, but ensures no unintended harmonics from misaligned samples w.r.t. sawtooth and square waveforms.
* Avoid some large stack buffersChris Robinson2023-08-281-27/+18
|
* Allow querying AL_EFFECTSLOT_EFFECTChris Robinson2023-08-251-1/+1
| | | | | | | This doesn't make much sense since the effect associated with the ID may be modified and not represent the effect being played, or was even deleted and isn't a valid effect ID, but Generic Software allows querying it so it should be queryable for compatibility if nothing else.
* Clear errno prior to the call that may set itChris Robinson2023-08-211-0/+1
|
* Use a string instead of a c_str for a string_viewChris Robinson2023-08-181-1/+1
|