Max Kellermann
|
5823e79fe7
|
output/wasapi: remove broken Drain() implementation
The current Drain() implementation does what Cancel() should do; it
does not wait for completion, but instead discards the buffer.
|
2021-03-08 21:41:34 +01:00 |
|
Max Kellermann
|
5f656dffda
|
output/wasapi: implement Cancel()
|
2021-03-08 19:58:15 +01:00 |
|
Max Kellermann
|
34d4d9157a
|
output/wasapi: add inline
|
2021-03-08 19:57:40 +01:00 |
|
Max Kellermann
|
22c329cdb4
|
output/wasapi: convert pointer to reference
|
2021-03-08 19:56:56 +01:00 |
|
Max Kellermann
|
980ef82216
|
output/wasapi: move SetEventHandle() call to thread constructor
|
2021-03-08 17:52:44 +01:00 |
|
Max Kellermann
|
84a06a72df
|
output/wasapi: fix coding style
|
2021-03-08 17:52:43 +01:00 |
|
Max Kellermann
|
4833d0891d
|
output/wasapi: eliminate kErrorId
|
2021-03-08 17:47:07 +01:00 |
|
Max Kellermann
|
cd53ca22c6
|
output/wasapi: remove unused function SafeTry()
|
2021-03-08 17:43:36 +01:00 |
|
Max Kellermann
|
927f1e03a3
|
win32/Com: make COINIT_APARTMENTTHREADED the default constructor
|
2021-03-08 14:02:49 +01:00 |
|
Max Kellermann
|
6a75c48dba
|
win32/HResult: add MakeHResultError()
None of the current FormatHResultError() callers need the format string.
|
2021-03-08 13:46:36 +01:00 |
|
Max Kellermann
|
90d97053a8
|
win32/ComWorker: make COMWorker a real class, no static members
|
2021-03-06 20:46:29 +01:00 |
|
Shen-Ta Hsieh
|
e1fe9ebcd6
|
output/wasapi: Add dop support for WASAPI
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1102
|
2021-03-05 19:40:32 +01:00 |
|
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
|
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
|
54c1794cee
|
win32: build static library
Fixes linker failure on test/run_output.exe
|
2021-03-05 13:32:58 +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
|
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
|
32b7b2e2fa
|
util/AllocatedString: add default constructor
|
2021-03-04 18:04:06 +01:00 |
|
Max Kellermann
|
cfb7f8ab84
|
util/AllocatedString: rename to BasicAllocatedString
To make things simpler, AllocatedString is now a non-template class.
|
2021-03-04 18:03:56 +01:00 |
|
Shen-Ta Hsieh
|
481c330c17
|
src/output: Set thread name for Wasapi output thread
|
2021-02-15 17:51:49 +01:00 |
|
Max Kellermann
|
efde78db77
|
output/Thread: skip drain calls if there is no data to be played
Keep track of whether there is data being played, and don't call
AudioOutput::Drain() after Cancel() has been called already.
|
2021-02-15 16:39:13 +01:00 |
|
Max Kellermann
|
f1b8bcd6b2
|
output/pulse: don't drain if stream is suspended or corked
In this state, we can't make any progress.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1084
|
2021-02-15 16:07:16 +01:00 |
|
Max Kellermann
|
c2bc3704e1
|
output/pulse: move code to virtual method Drain()
Drain only if it was requested explicitly.
|
2021-02-15 15:59:54 +01:00 |
|
Max Kellermann
|
def120aca4
|
output/pulse: eliminate the pause field
It is useless, because we're always checking pa_stream_is_corked().
|
2021-02-15 15:59:46 +01:00 |
|
Max Kellermann
|
9e2d09dabc
|
net/SocketError: add syscall specific check functions
Fixes Windows compatibility.
|
2021-01-21 22:05:21 +01:00 |
|
Max Kellermann
|
4949cd98f3
|
output/sles: add missing include for assert()
|
2021-01-19 20:17:17 +01:00 |
|
Max Kellermann
|
5348f8c9c8
|
copyright year 2021
|
2021-01-01 19:54:28 +01:00 |
|
Max Kellermann
|
394f69bee1
|
output/Control: allow copy elision (fix -Wpessimizing-move)
|
2020-11-15 19:55:11 +01:00 |
|