aboutsummaryrefslogtreecommitdiffstats
path: root/alc/backends/wasapi.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Make and use a bit_cast functionChris Robinson2023-05-041-2/+2
| | | | Instead of reinterpret_casting between incompatible types
* Update ComPtr and use an out_ptr() functionChris Robinson2023-05-041-41/+26
|
* Distinguish a couple log messagesChris Robinson2023-01-301-3/+3
| | | | And downgrade an ERR to a WARN
* Use the correct variable for reading the WASAPI playback rateChris Robinson2022-12-051-2/+2
|
* Fix WASAPI capture handling the background COM threadChris Robinson2022-11-191-18/+30
|
* Use the correct frame size for WASAPI resamplingChris Robinson2022-11-131-2/+2
|
* Change a function to a static methodChris Robinson2022-11-131-3/+4
|
* Add a config option to prevent WASAPI from using a resamplerChris Robinson2022-11-121-1/+5
|
* Add a resampler to WASAPI outputChris Robinson2022-11-121-10/+75
| | | | | | | This allows mixing at various samples rates that WASAPI doesn't otherwise support. This is mostly helpful for users that have unnecessarily high device rates (96 or 192khz), and lets the ALC_FREQUENCY attribute or frequency config option set a lower mixing rate for more efficient processing.
* Dynamically start/stop the WASAPI message threadChris Robinson2022-11-121-86/+117
|
* Add preliminary support for 7.1.4 output modesChris Robinson2022-11-031-2/+20
| | | | | | | | I don't know how different sound APIs handle 7.1.4 ("Atmos" or "Auro3D") output, but currently it simply specifies the additional channels with the height channel labels. This isn't likely how it works for a virtualized channel bed, for playing over other with-height configurations (7.1.2, 5.1.4, etc), but this should be an okay start.
* Match exactly 5.1 Rear in WASAPIChris Robinson2022-06-161-2/+2
| | | | | So 7.1 and other configurations like it aren't detected as 5.1 Rear despite having side channels.
* Handle a blank channel mask from WASAPIChris Robinson2022-06-141-10/+18
| | | | | | | Without a channel mask, the channels are treated as "raw" or unknown. Auto- detection will only go up to stereo (assuming the first two channels are front- left and front-right), while explicit requests will work as long as there are enough channels (the user is responsible for ensuring a correct setup).
* Check and handle 5.1 Rear with WASAPI captureChris Robinson2022-06-071-3/+23
|
* Trace the WASAPI device mix formatChris Robinson2022-06-071-0/+1
|
* Track 5.1 Rear with WASAPI playbackChris Robinson2022-06-071-3/+14
|
* Use the mix format if IsFormatSupported fails for WASAPI captureChris Robinson2022-05-171-1/+6
|
* Handle 3D7.1 as a separate channel configurationChris Robinson2022-04-261-1/+5
| | | | | | | It's treated as 5.1 + 2 aux channels. This allows AL_DIRECT_CHANNELS_SOFT to behave better, not forwarding rear left/right channel inputs to lower front and upper rear, and allows reporting a more appropriate output mode to the app instead of 7.1.
* Make a couple more operator bools explicitChris Robinson2022-02-201-1/+1
|
* Don't change the requested format when it's usable with WASAPIChris Robinson2021-10-251-19/+53
|
* Use a flag to indicate headphone-like outputChris Robinson2021-10-231-2/+1
|
* Properly check the channel count for WASAPI captureChris Robinson2021-08-231-1/+2
|
* Don't store "OpenAL Soft on " in WASAPI device namesChris Robinson2021-08-221-21/+39
| | | | It's still prepended for enumeration, just not part of the name in the DevMap.
* Avoid 5.1Rear as its own channel configurationChris Robinson2021-07-301-15/+4
| | | | | | It messes with 5.1 sources using direct channels, and the surround channels are supposed to map to the side labels. Individual backends can deal with the channel order/label differences, as they already do to a degree.
* Update include headersChris Robinson2021-04-271-3/+3
| | | | Don't add alc/ to the include paths.
* Use the DeviceBase for the backendChris Robinson2021-04-241-4/+4
|
* Move some more sources to coreChris Robinson2021-04-241-1/+1
|
* Move helpers.cpp to coreChris Robinson2021-04-221-1/+1
|
* Don't activate the WASAPI device when initially opening itChris Robinson2021-03-171-17/+2
|
* Avoid returning objects with a reference parameterChris Robinson2021-03-161-13/+13
|
* Check that CoCreateInstance succeedsChris Robinson2021-03-161-13/+17
|
* Move the ComPtr wrapper to a common headerChris Robinson2021-03-081-63/+1
|
* Allow calling BackendBase::open multiple times on playback devicesChris Robinson2021-03-081-132/+130
| | | | | | | | | | | It will not be called while the device is running. If the first call succeeds, a subsequent call that happens to fail must leave the existing device state as it was so it can be resumed. This is a rough first pass. It will fail when trying to re-open the same device which can only be opened once (for instance, with direct hardware access, on hardware that doesn't do its own mixing). Some backends won't guarantee the new device is usable until the reset() or start() call.
* Make PopCount and CountTrailingZeros more standard-likeChris Robinson2021-01-221-1/+2
|
* Use a standard bitset for bitfield flagsChris Robinson2021-01-221-2/+2
|
* Move alexcpt to coreChris Robinson2020-12-241-1/+0
|
* Avoid AL/ALC types in the backendsChris Robinson2020-12-171-17/+17
|
* Don't use ALC error enums for the backend error codeChris Robinson2020-12-171-7/+11
|
* Don't return an enum from captureSamplesChris Robinson2020-12-171-9/+6
| | | | It's always no_error
* Move logging to coreChris Robinson2020-12-171-1/+1
|
* Use inline functions for popcnt and ctz instead of macrosChris Robinson2020-10-131-1/+1
|
* Be more robust with to-mono channel conversionsChris Robinson2020-10-051-16/+52
|
* Fix a variable nameChris Robinson2020-10-051-53/+53
|
* Round (and clamp) the reftime instead of ceiling itChris Robinson2020-09-121-3/+3
|
* Avoid repeating string literalsChris Robinson2020-09-111-5/+7
|
* Use an RAII wrapper to manage COM object referencesChris Robinson2020-09-051-87/+111
|
* Avoid duplicate WASAPI devices by matching GUIDsChris Robinson2020-09-041-33/+31
|
* Use a wait predicate instead of a while loopChris Robinson2020-08-121-2/+1
|
* Change a couple functions into member functionsChris Robinson2020-08-071-6/+6
|
* Set channel labels from WFX channel masksChris Robinson2020-06-151-13/+11
|