Silent
cb854d7832
AudioCommon/WASAPI: Construct std::thread with invoke semantics instead of a lambda
2021-01-12 19:25:40 +01:00
Silent
11c5150c16
AudioCommon/WASAPI: Factorize device enumeration logic into a function to greatly reduce code duplication
2021-01-12 19:25:38 +01:00
Silent
c373890505
AudioCommon/WASAPI: Do volume adjustment only when really needed
...
This skips a potentially costly loop if volume is 100% or 0%,
as for former there is no need for volume adjustment,
while latter can be solved by specifying a AUDCLNT_BUFFERFLAGS_SILENT flag
2021-01-12 19:24:49 +01:00
Silent
991b3ba8c2
AudioCommon/WASAPI: Remove thread unsafe nullptr checks giving a false sense of safety
2021-01-12 19:24:49 +01:00
Silent
5dbbf36563
AudioCommon/WASAPI: Use std::string_view where applicable
2021-01-12 19:24:46 +01:00
Silent
7d59ad262f
AudioCommon/WASAPI: Use leaner memory model on m_running, no need for a full barrier
2021-01-12 19:21:54 +01:00
Silent
ee60be4501
AudioCommon/WASAPI: Simplify thread synchronization model by not detaching WASAPI handler thread
2021-01-12 19:21:54 +01:00
Silent
c5a372ab2a
AudioCommon/WASAPI: Use WRL/WIL whenever possible
...
This fixes numerous resource leaks, as not every return path cleaned every created resource
Now they are all managed automatically and "commited" to WASAPIStream class fields only
after it's certain they initialized properly
2021-01-12 19:21:22 +01:00
Silent
374629ef30
AudioCommon: Make HandleWinAPI handle all success return values properly, not just S_OK
2021-01-12 19:18:48 +01:00
Lioncash
22a79289d3
AudioCommon: Migrate logging over to fmt
...
printf specifiers, begone!
2020-10-21 13:32:28 -04:00
QuellaZhang
e67eb4693e
Fix implicit false-to-nullptr conversions
2019-08-15 17:49:57 +02:00
spycrab
a196dfe50d
AudioCommon: Implement WASAPI
2018-05-26 13:08:10 +02:00