Max Kellermann
|
93016ac6ab
|
output/wasapi: check AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED
Stop early, don't try more formats if it is clear that we have no
chance.
|
2021-03-05 19:33:38 +01:00 |
Max Kellermann
|
fc20a1f10a
|
output/wasapi: EnumerateDevices() logs, no std::vector
|
2021-03-05 19:27:52 +01:00 |
Max Kellermann
|
a4257e51d5
|
output/wasapi: reimplement SearchDevice() without EnumerateDevices()
|
2021-03-05 19:25:42 +01:00 |
Max Kellermann
|
2f2b3f1cdc
|
output/wasapi: SearchDevice() returns IMMDevice
|
2021-03-05 19:25:42 +01:00 |
Max Kellermann
|
2ff6a9ad2b
|
output/wasapi: GetDevice() returns IMMDevice
|
2021-03-05 19:25:42 +01:00 |
Max Kellermann
|
17d4873b60
|
output/wasapi: use default device only if none was configured
|
2021-03-05 19:25:42 +01:00 |
Max Kellermann
|
8b41c4f384
|
output/wasapi: release the COMWorker if OpenDevice() fails
Fixes assertion failure in the Thread destructor.
|
2021-03-05 19:25:42 +01:00 |
Max Kellermann
|
17f7098e27
|
output/wasapi: SafeTry() catches all exceptions
Fixes crash due to std::stoul() throwing std::invalid_argument.
|
2021-03-05 19:12:22 +01:00 |
Max Kellermann
|
9ff790b7bb
|
output/wasapi: move COM utilities to separate headers
|
2021-03-05 18:33:31 +01:00 |
Max Kellermann
|
ebc1fe2821
|
win32/ComPtr: operator*() returns reference
|
2021-03-05 17:39:48 +01:00 |
Max Kellermann
|
bc2988144e
|
test/run_output: use OptionParser, add option "--verbose"
|
2021-03-05 17:39:48 +01:00 |
Max Kellermann
|
b1a9958c66
|
test/run_output: add struct CommandLine
|
2021-03-05 17:39:48 +01:00 |
Max Kellermann
|
e6a81bb95c
|
output/wasapi: split the header
Reduce header dependencies.
|
2021-03-05 16:43:44 +01:00 |
Max Kellermann
|
9521c1ad58
|
output/wasapi: use forward declarations in the header
|
2021-03-05 16:42:38 +01:00 |
Max Kellermann
|
6d65cc48d7
|
output/wasapi: use [[gnu::pure]]
|
2021-03-05 16:42:15 +01:00 |
Max Kellermann
|
681956a963
|
output/wasapi: include cleanup
|
2021-03-05 16:42:14 +01:00 |
Max Kellermann
|
052f64d648
|
output/wasapi: include config.h for ENABLE_DSD
|
2021-03-05 16:35:21 +01:00 |
Max Kellermann
|
afe621c25c
|
output/wasapi: move to separate directory
|
2021-03-05 16:28:36 +01:00 |
Max Kellermann
|
637cf8a039
|
win32/WinEvent: add default value to Wait()
|
2021-03-05 16:05:32 +01:00 |
Max Kellermann
|
2011a6e2ee
|
win32/WinEvent: un-inline the constructor
Reduce header dependencies.
|
2021-03-05 16:01:23 +01:00 |
Max Kellermann
|
d54830de12
|
thread/WindowsFuture: include cleanup
|
2021-03-05 13:50:16 +01:00 |
Max Kellermann
|
a7e7312cca
|
win32/HResult: un-inline HResultCategory::message()
|
2021-03-05 13:40:40 +01:00 |
Max Kellermann
|
6b83fc6b57
|
win32/HResult: un-inline FormatHResultError()
Reduce header dependencies.
|
2021-03-05 13:40:38 +01:00 |
Max Kellermann
|
74f9e07151
|
win32/HResult: include cleanup
|
2021-03-05 13:40:37 +01:00 |
Max Kellermann
|
82a61ab3be
|
win32/meson.build: fix syntax error
|
2021-03-05 13:40:34 +01:00 |
Max Kellermann
|
54c1794cee
|
win32: build static library
Fixes linker failure on test/run_output.exe
|
2021-03-05 13:32:58 +01:00 |
Max Kellermann
|
c962a6be76
|
test/run_convert: fix Windows compiler errors
|
2021-03-05 13:24:28 +01:00 |
Max Kellermann
|
922c4bf3f0
|
test/TestLookupFile: fix Windows compiler errors
|
2021-03-05 13:22:34 +01:00 |
Max Kellermann
|
932756efce
|
win32/ComWorker: fix the FormatHResultError() return type
Casting to std::runtime_error loses information (and prevents RVO).
|
2021-03-05 13:17:40 +01:00 |
Max Kellermann
|
7838265482
|
win32/ComWorker: remove debug log messages
|
2021-03-05 13:16:09 +01:00 |
Max Kellermann
|
b14b0e5634
|
win32/ComWorker: reorder includes
|
2021-03-05 13:15:45 +01:00 |
Max Kellermann
|
4d2d0e7bb8
|
win32/ComWorker: include cleanup
|
2021-03-05 13:15:21 +01:00 |
Rosen Penev
|
44378b7dbe
|
use structured binding declarations
Shorter.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
|
2021-03-04 20:28:02 +01:00 |
Shen-Ta Hsieh
|
da642b2890
|
src/output: add algorithm for finding usable AudioFormat
* Use PcmExport for 24bit packed output
|
2021-03-04 18:53:58 +01:00 |
Shen-Ta Hsieh
|
6f77af20d0
|
src/output: Set fallback setting for DSD
|
2021-03-04 18:50:56 +01:00 |
Shen-Ta Hsieh
|
010f65a1d6
|
src/output: Add Interrupt interface
|
2021-03-04 18:50:09 +01:00 |
Shen-Ta Hsieh
|
c46f97454a
|
src/output: Reopen device on error
|
2021-03-04 18:49:28 +01:00 |
Shen-Ta Hsieh
|
844dbd2ec5
|
src/output: Use WinEvent for as a condition_variable without lock
|
2021-03-04 18:46:26 +01:00 |
Shen-Ta Hsieh
|
db7caa2dac
|
src/output: Move event and spsc_queue into thread object
|
2021-03-04 18:45:56 +01:00 |
Shen-Ta Hsieh
|
2974737746
|
src/win32: Add ComWorker to run all COM function on same thread
|
2021-03-04 18:43:43 +01:00 |
Shen-Ta Hsieh
|
b1d7567226
|
win32: Add ComWorker to run all COM function on same thread
|
2021-03-04 18:43:16 +01:00 |
Max Kellermann
|
5103eb3039
|
meson.build: compile Win32Main.cxx only on Windows
|
2021-03-04 18:43:00 +01:00 |
Shen-Ta Hsieh
|
0cccdcf9b2
|
src/win32: Add support for COINIT_APARTMENTTHREADED
|
2021-03-04 18:37:56 +01:00 |
Shen-Ta Hsieh
|
22b840c2f1
|
win32/Com: use if with init-statement
|
2021-03-04 18:37:35 +01:00 |
Shen-Ta Hsieh
|
ed1a995bff
|
thread: Add `Future` implement for mingw32 without pthread
|
2021-03-04 18:26:46 +01:00 |
Shen-Ta Hsieh
|
0f39dc1edb
|
output/wasapi: use AUDCLNT_BUFFERFLAGS_SILENT for paused output
|
2021-03-04 18:17:57 +01:00 |
Max Kellermann
|
dc9103befe
|
util/AllocatedString: remove Null(), IsNull()
|
2021-03-04 18:05:29 +01:00 |
Max Kellermann
|
67760f5283
|
util/AllocatedString: support casting a nulled instance to string_view
|
2021-03-04 18:05:29 +01:00 |
Max Kellermann
|
99405a4c93
|
util/AllocatedString: add operator=()
|
2021-03-04 18:05:26 +01:00 |
Max Kellermann
|
b833c5d2c7
|
util/AllocatedString: replace Clone() with copy constructor
|
2021-03-04 18:04:21 +01:00 |