Max Kellermann
968624035c
mixer/pipewire: new plugin
2021-08-05 10:57:37 +02:00
Max Kellermann
b838bf3109
output/pipewire: un-inline StateChanged()
2021-08-05 10:48:17 +02:00
Max Kellermann
4d1ce7023b
output/pipewire: implement Pause()
2021-08-04 17:26:54 +02:00
Max Kellermann
52577ac87a
output/pipewire: implement Cancel() properly
2021-08-04 17:24:49 +02:00
Max Kellermann
239698cb5a
output/pipewire: set channel positions
2021-07-30 15:55:37 +02:00
Max Kellermann
e55de6e9f0
output/pipewire: implement Drain()
2021-07-30 15:28:01 +02:00
Max Kellermann
cfaf2ed03c
output/pipewire: move code to CheckThrowError()
2021-07-30 15:24:20 +02:00
Max Kellermann
6015960871
output/pipewire: reset the "interrupted" flag in Cancel()
...
This fixes seeking.
2021-07-30 15:20:32 +02:00
Max Kellermann
26328cc915
output/pipewire: detect connection errors
2021-07-30 14:31:06 +02:00
Max Kellermann
cd512f0b40
output/pipewire: replace usleep() with with pw_thread_loop_wait()
2021-07-30 14:31:04 +02:00
Max Kellermann
be14dd59a8
output/pipewire: remove obsolete TODO comment
2021-07-30 13:50:55 +02:00
Max Kellermann
97e5787ff7
output/pipewire: call libpipewire only while holding the lock
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1210
2021-07-30 13:49:22 +02:00
Max Kellermann
6975d3ca4b
output/pipewire: switch from pw_main_loop to pw_thread_loop
...
We need this for pw_thread_loop_lock().
2021-07-30 13:42:59 +02:00
Max Kellermann
5eab2d96f4
output/winmm: fix struct/class mismatch
2021-07-16 08:30:34 +02:00
Max Kellermann
b29a43b4d7
decoder/mad, ...: more libfmt logging
2021-06-25 20:52:08 +02:00
Max Kellermann
6f539cfcd6
Partition, ...: use libfmt for logging
2021-06-24 21:40:11 +02:00
Max Kellermann
0185d58a2b
Log: add libfmt support
2021-06-24 21:14:42 +02:00
Rosen Penev
6af7be4a45
add constexpr
...
Found with cppcoreguidelines-interfaces-global-init
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-31 13:45:39 -07:00
Rosen Penev
220d2bf026
clang-tidy: add explicit deleted constructors
...
Found with cppcoreguidelines-special-member-functions
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-05-30 22:47:20 -07:00
Max Kellermann
4f75eb9bfe
output/pipewire: remove unreachable "return" statement
2021-05-26 11:57:57 +02:00
Max Kellermann
96707c0426
release v0.22.7
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmClOSYQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEkODD/49e950HLmZE8x3rmyeEEsgdvHkOVpPlKHo
+wsmSsi+N0sQKgEOffSYyL0MRWaQqzRMnl1EcEVErCfQl5f1mOw9+TL4f5ZEjVNw
CQFMy1awHtCfktgF5zq6NzXD3nor9mkjiP733x/kGcsxwfk/Y4radqUBKJ5Y4a2B
YSg35a/YTOfLCmb9WBquwAi22x7AkyBzyrY3ToCzynVuaNcT3gvLsAAMFzRUKpqD
QEoCtUxJ4CQayjWjtG/bBCs2TVSmJvovhM2xB4Jnm+MeZz+bKI0y+ALW2Wk0Agnd
qxDqyCEnvHi5pf8i9usl4/A63VDC7HHj9kDSLtPLGTijv+7Wvvr4kNpwm2DuJ4q1
1pOEgT480ryK1FPyO6XnYCk616NqjgMbplr6SQ1DuVpIddWdiGARoge/WiNvsbT9
pnEp0q9V3cQmuJ30LlskMJHAPyrE3KSrO1s+4P2zUeirwnMnOCPdq+gT+lRw4GNG
OqLFEDHaELgSaZxInCN8RCXdLMrpuvKm+FQQApU1KwbYPXIassR14yt6BPpjxqea
vkvFLtpwFWthNPLkujak5rDqAPvbHzAeOfaOiZelzd21nl/1omiMXSXRcJkEjONi
JC5VWJpi1PHMXocq6AcOQT/9XhIH4uDA+Xghn7CURBTB6WoB954TSmuVIjXTfgAv
XQYqRR+7Yw==
=Gtzo
-----END PGP SIGNATURE-----
Merge tag 'v0.22.7'
release v0.22.7
2021-05-19 18:43:19 +02:00
Max Kellermann
bcf0fdd3a8
meson.build: define NOUSER on Windows for lighter windows.h
...
A few exceptions are needed for sources which include COM header
(directly or indirectly).
This fixes lots of shadow warnings, see
https://github.com/MusicPlayerDaemon/MPD/issues/1150
2021-05-19 18:02:49 +02:00
Max Kellermann
a169a05e41
win32, ...: avoid including windows.h
...
Include the most specific header documented by MSDN instead.
2021-05-19 17:25:32 +02:00
Max Kellermann
8efa5c7641
output/wasapi: use "%lu" in log calls
...
"%lu" is portable - it works with both POSIX and Microsoft flavors.
Fixes a part of https://github.com/MusicPlayerDaemon/MPD/issues/1150
2021-05-19 17:10:49 +02:00
Max Kellermann
a2bdac571a
Merge branch 'v0.22.x'
2021-05-17 19:33:15 +02:00
Max Kellermann
0f02bbc2fe
output/jack: enable on Windows
...
This enables the JACK output plugin on Windows, but doesn't link
against libjack64.dll, instead loads the DLL at runtime with
LoadLibrary(). This kludge avoids the extremely fragile JACK shared
memory protocol by using the system's libjack64.dll, without requiring
the same DLL at build time.
2021-04-26 21:47:20 +02:00
Max Kellermann
a7ba10423d
Merge branch 'v0.22.x'
2021-03-13 08:41:10 +01:00
Shen-Ta Hsieh
4bcdcca7f5
output/wasapi: use calculated new buffer instead old one
2021-03-13 08:39:56 +01:00
bitkeeper
c08a8581ee
Added cross-origin header to http headers of the http output.
...
The current http output doesn't provide a header for cross-origin support. This prevents to use the mpd http stream directly from an other webapplication due the origin from the webpage differs from then the audio stream.
The fix is to add the following header to the http response:
Access-Control-Allow-Origin: *
2021-03-10 21:27:19 +01:00
Max Kellermann
25354b9d8c
Merge branch 'v0.22.x'
2021-03-10 21:06:12 +01:00
Max Kellermann
25b0194036
output/wasapi: implement Drain()
2021-03-10 21:05:48 +01:00
Max Kellermann
77fe727e69
output/wasapi: move the "is_started" flag to class WasapiOutputThread
2021-03-10 20:43:28 +01:00
Max Kellermann
73f9824ddf
output/wasapi: eliminate friend
declaration
2021-03-10 20:38:41 +01:00
Max Kellermann
1fe0c673bc
output/wasapi: implement Cancel() properly
...
Calling consume_all() is illegal in the producer thread.
2021-03-10 20:38:27 +01:00
Max Kellermann
8a045207a7
output/wasapi: add field paused
...
Fixes bogus Delay() results at the start of playback, because Delay()
thinks the output is paused.
2021-03-10 20:09:37 +01:00
Max Kellermann
fe7c5a4208
output/wasapi: initialize is_started in Open()
2021-03-10 20:07:22 +01:00
Max Kellermann
8024f7e84d
output/wasapi: move the thread->Play() call right before the consumed_size check
...
Fixes a bogus assertion failure (which can now be removed).
2021-03-10 20:07:19 +01:00
Max Kellermann
14f0134097
output/wasapi: make device_config const
2021-03-10 20:05:14 +01:00
Max Kellermann
1da27be84d
output/wasapi: move runtime fields below configuration fields
2021-03-10 20:00:08 +01:00
Max Kellermann
08135f2cb7
output/wasapi: make configuration fields const
2021-03-10 19:58:33 +01:00
Max Kellermann
5907656bbb
output/wasapi: stop the IAudioClient while paused
...
Instead of generating silence, do nothing, don't waste CPU time.
2021-03-10 17:48:49 +01:00
Max Kellermann
2ac2bd26f8
output/wasapi: combine two if
statements to one switch
2021-03-10 17:45:54 +01:00
Max Kellermann
a2be91aea5
output/wasapi: add method WasapiOutputThread::InterruptWaiter()
2021-03-10 17:42:26 +01:00
Max Kellermann
579428172e
output/wasapi: remove the broken Delay() calculation code
...
This code is complicated - and broken: the producer thread is not
allowed to call consumer methods. Also the code is not necessary
because this plugin implements Interrupt().
2021-03-10 17:39:07 +01:00
Max Kellermann
3e484637f9
output/wasapi: rename OpenDevice() to ChooseDevice()
...
OpenDevice was a confusing name because it does not actually open a
device.
2021-03-10 17:34:10 +01:00
Max Kellermann
3e93c392d7
output/wasapi: make enumerator
a local variable
2021-03-10 17:23:41 +01:00
Max Kellermann
0a97e68aa9
output/wasapi: start after the buffer has been filled
...
Postpone the Start() call until there is something to be played.
2021-03-08 23:03:25 +01:00
Max Kellermann
69783a44c8
output/wasapi: move Start()/Stop() calls to WasapiOutputThread::Work()
2021-03-08 22:58:20 +01:00
Max Kellermann
3a948515ce
output/wasapi: check for exceptions after Wait()
...
This finishes problems which occur early in the WasapiOutputThread;
previously, the error was ignored and the output blocked forever
without doing anything (and without reporting the error).
2021-03-08 22:46:40 +01:00
Max Kellermann
9ade93983c
output/wasapi: rename method WaitDataPoped() to Wait()
2021-03-08 22:44:49 +01:00
Max Kellermann
6931ce9558
output/wasapi: make the Thread a field, not a base class
2021-03-08 22:30:19 +01:00
Max Kellermann
d6fb07a3e4
output/wasapi: start the WasapiOutputThread in its constructor
2021-03-08 22:29:33 +01:00
Max Kellermann
01d3c2705e
output/wasapi: Finish() calls Join()
2021-03-08 22:28:36 +01:00
Max Kellermann
29346dc9c5
output/wasapi: remove the thread management code from DoDisable()
...
This is duplicate; this has already been done in Close().
2021-03-08 22:27:46 +01:00
Max Kellermann
798e68ef62
output/wasapi: don't clear the exception in CheckException()
...
This is pointless; the method cannot be called again anyway.
2021-03-08 22:18:48 +01:00
Max Kellermann
79397db5b4
output/wasapi: remove the "thrown" field
...
It is pointless to let WasapiOutputThread wait for the
CheckException() call.
2021-03-08 22:17:45 +01:00
Max Kellermann
9256190a9b
output/wasapi: move catch block to the Work() function level
...
If an exception has been caught, the method cannot continue playback,
therefore it doesn't make sense to have the "catch" block inside the
"while" block (and not break the loop after catching an exception).
2021-03-08 22:15:36 +01:00
Max Kellermann
3a0dbb0a67
output/wasapi: make WasapiOutputThread::is_exclusive const
2021-03-08 22:09:23 +01:00
Max Kellermann
3d6c9d1b88
output/wasapi: catch all exception
2021-03-08 22:06:29 +01:00
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
Max Kellermann
ee720064a7
Merge branch 'v0.22.x'
2021-03-05 19:41:17 +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
e1b62fb90d
Merge branch 'v0.22.x'
2021-03-05 19:33:46 +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
422cf5f182
Merge branch 'v0.22.x'
2021-03-05 16:05:56 +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
Max Kellermann
ef1acb4e2f
Merge branch 'v0.22.x'
2021-03-04 18:56:29 +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
Max Kellermann
d4bbb8c851
Merge branch 'struc' of git://github.com/neheb/MPD
2021-03-04 17:50:53 +01:00
Max Kellermann
428f769c38
output/pipewire: new output plugin
...
Very rough draft. Barely works.
2021-03-03 18:44:39 +01:00
Max Kellermann
133c8834df
output/httpd: update API documentation
2021-03-02 18:24:57 +01:00
Max Kellermann
34f735890e
output/snapcast: remove obsolete TODO comment
2021-02-24 17:05:14 +01:00
Max Kellermann
f08810b202
output/snapcast: add missing #ifdef HAVE_ZEROCONF
2021-02-24 17:04:15 +01:00
Max Kellermann
7a68775e6c
output/snapcast: Zeroconf support
2021-02-24 17:03:30 +01:00
Max Kellermann
abd416735d
output/snapcast: implement SendTag()
2021-02-22 23:20:56 +01:00
Max Kellermann
8e8fbe14b1
output/snapcast: implement Drain()
2021-02-22 22:49:32 +01:00
Max Kellermann
a8a39b6a38
output/snapcast: queue chunks
2021-02-22 22:41:31 +01:00
Max Kellermann
f84cb6de5e
output/snapcast/client: remove obsolete TODO comment
...
See commit dfc67c45c7
2021-02-22 22:39:32 +01:00
Max Kellermann
dfc67c45c7
output/snapcast: calculate the latency for TIME responses
2021-02-22 21:57:20 +01:00
Max Kellermann
e875da5d38
output/snapcast/protocol: swap "received" and "sent"
...
Snapcast's protocol documentation is wrong, see
https://github.com/badaix/snapcast/pull/811
2021-02-22 21:42:42 +01:00
Max Kellermann
ce6afe9379
output/httpd/Page: convert to type alias on AllocatedArray
2021-02-17 18:01:27 +01:00
Max Kellermann
6f04b2230a
output/httpd/Page: use std::byte
2021-02-17 17:54:38 +01:00
Max Kellermann
8d90b831e1
output/snapcast/Timestamp: drop static
2021-02-17 14:39:20 +01:00
Max Kellermann
9c8da03c5c
output/snapcast: new output plugin
...
New experimental code, first draft - it works, but there's a lot left
to do. Just look at all the TODO comments.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/975
2021-02-17 14:25:23 +01:00
Max Kellermann
ecc07e4e98
release v0.22.5
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmAq1woQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFElB1EACItrIKgEywkzW3l+gmgSjtwwQOiLfg+0Zg
Z3YgpegDvhmjBVXAHFDlhnXf//zCr286ZmCCVItrz2eGHYX2lvul0SdYxp/+Kebk
WrCez6LMecaoGjbgiwQ70u/stNkX85ZT62CznNyYvwMx4bRhXXgOuBdKYTAZTvT8
ABvfL+Ari7TBi88qCAaufmxyv7VFOaZg8+GpV1unIlHE6vu3febzDffPdjfODmOe
BpLILJJIzUd9p1tGmSCvNCUUHdElktbK1aSVS/0x2xdKG3eDKmPIhSdxdqOdunr7
9us4Mg7ZB5REaRC0ZfxR6P+vId0uIT3kpyDqs5i8Zao1WwmCdZhvaMMxJ3KF0MVs
q4Lb99LMF2xAvsoA4x+wY0E0SlFrBhySrFY/i4gaBd9ctzQsbxID3cOZhSbEmQnk
VNlPK/cYtWVHouLzSOUZeg3/nyMMWXTXy87esB/JdKWqushYLFqy/WIIJvKh4dRL
YTEJtGeAe7wn9BPoD5Sf1xaj9ULw5CG/Z72inMk1rdzQBn+sWypb8HwJiGtHH43Q
3YwTSAg/Z3MuxcMM1F9ce/IeE+sqCtOZKgTTpdp56hPlHMV9Fa0v7mnMHz508jB/
4ZwAm3eEbCy14IKtW1jfKwA/IgPnF6bR6D1nn7F9SKnBG+hdHsyAVyHaTsXbfO4u
0RZ5Y9vxdQ==
=I2BI
-----END PGP SIGNATURE-----
Merge tag 'v0.22.5'
release v0.22.5
2021-02-15 22:50:16 +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
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
def962b6cb
event/{Coarse,Fine,Far}TimerEvent: aliases for TimerEvent
...
Preparing for a variant of TimerEvent with coarse 1-second
granularity, but cheaper (with a timer wheel).
2021-02-05 18:16:05 +01:00
Max Kellermann
d56a51cb5e
Merge branch 'v0.22.x'
2021-01-21 22:28:11 +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
3bc45fbf68
util/AllocatedString: remove Null(), IsNull()
2021-01-21 20:12:05 +01:00
Max Kellermann
1caf57644f
util/AllocatedString: add default constructor
2021-01-21 18:05:50 +01:00
Max Kellermann
c70b63c183
util/AllocatedString: rename to BasicAllocatedString
...
To make things simpler, AllocatedString is now a non-template class.
2021-01-21 18:04:03 +01:00
Max Kellermann
8279cafd6d
release v0.22.4
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAmAJqgAQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEg2QEACJLeN2mk2RU7Iqxbh/ekwm6aTM8D6bx8RH
Xys4l1YAFQ0cg7sKZwMqefedGJG2j8CORbihYIF6Z8EvFsAiI6I3LjElfXrmnAc0
Y9SnWHIR5vxlSQgyqPlJ0jl213uzoHHpel8PpEJbTtYONT+8f3fQEuLpO4/uWOIT
S6mlX16vI0/Ydp//8UIazUUvjar1pPvBnSEZ0JZsZl8RTYlS/4SOfqpHnhhWnWpO
9RXlLP9Zo68rJzNhUPwRj7NkyVEkg74xpjHOWoyeTMNQ6tKMQn8b4jb/LcBfj6hk
I7mof5oX0aS+GyYaehKi9c9Az7wUcBxnnaN02qlAaSutcuox7ce70fKMtiAXRN0o
T9mFSJm1JKqHZb1dFvxqSqFjVr7eO9XCxHqaEqTbXCT+CL/6AJQZi5SVcX4gCY1P
NSM3Jnydjr73WFLmEfjCkWLTdtiJhY/2Q/J6+vcILMb3W2y5FaSHZTOFbxVG4nMM
spoQ27b7PoB9MbxLR3QJkYLa0WE3FrTORYgsH8Po7ZcCU9+JvqDSBnGXxx+Yv+JJ
dKMI5bEAvPziodSHHQXgD4lhx744JuiLAJNtlSYJvev1s2Irf2TtMHdmGERHQZwH
5cr9sQLgyHCLvTBDGt1dVZq/Z0T/PCkweIa5cT6ZBAim1hs7g20g8ksyFK2ZPUbB
vEGBNcuMIg==
=CEEr
-----END PGP SIGNATURE-----
Merge tag 'v0.22.4'
release v0.22.4
2021-01-21 17:42:26 +01:00
Max Kellermann
4949cd98f3
output/sles: add missing include for assert()
2021-01-19 20:17:17 +01:00
Rosen Penev
594dfe572b
clang-tidy: mark a bunch of variables constexpr
...
Found with cppcoreguidelines-interfaces-global-init
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2021-01-16 18:35:31 -08:00
Max Kellermann
abbd980671
Merge branch 'v0.22.x'
2021-01-01 19:59:15 +01:00
Max Kellermann
5348f8c9c8
copyright year 2021
2021-01-01 19:54:28 +01:00
Max Kellermann
774b4313f2
event/DeferEvent: split the thread-safe version into new class InjectEvent
2020-12-01 17:14:24 +01:00
Rosen Penev
0fd2c74a66
use structured binding declarations
...
Shorter.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-10-28 15:41:31 -07:00
Max Kellermann
0ecc3394c3
Merge branch 'v0.22.x' into master
2020-10-15 20:14:36 +02:00
Max Kellermann
bb6ab67175
output/osx: fix several -Wdouble-promotion warnings
2020-10-15 15:01:28 +02:00
Max Kellermann
5a4055fb08
event/SocketMonitor: refactor to SocketEvent
...
Similar to commits 1686f4e857
and
30a5dd267b
2020-10-14 15:54:12 +02:00
Max Kellermann
eeb96eb367
event/TimerEvent: add type alias for std::chrono::steady_clock::duration
2020-10-08 20:48:50 +02:00
Max Kellermann
4484d7a5c2
output/jack: implement Interrupt()
2020-10-02 11:00:04 +02:00
Max Kellermann
b80a135cf3
output/pulse: implement Interrupt()
2020-10-02 10:52:25 +02:00
Max Kellermann
4ad525d939
output/alsa: implement Interrupt()
...
This allows canceling the blocking method LockWaitWriteAvailable(),
and thus allows breaking free of misbehaving ALSA drivers, avoiding a
MPD lockup.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/966
2020-10-02 10:35:18 +02:00
Max Kellermann
c843bce9f5
LogLevel: rename DEFAULT to NOTICE
...
"DEFAULT" is a bad name - all it says is that it's the default value,
but it doesn't say what it means. The name NOTICE mimics the syslog
level.
2020-09-23 14:22:33 +02:00
Max Kellermann
67c7116f05
Merge branch 'v0.21.x' into master
2020-09-04 18:35:21 +02:00
Max Kellermann
4f6c54ecb3
output/osx: catch kAudioDevicePropertyHogMode errors
...
Our AudioObjectGetPropertyDataT() wrapper throws exception on error,
and calling it from OSXOutput::Disable() can cause MPD crash due to
std::terminate().
Closes https://github.com/MusicPlayerDaemon/MPD/issues/932
2020-08-14 16:33:43 +02:00
Max Kellermann
448b397cb8
output/sles: support floating point samples
...
According to https://developer.android.com/ndk/guides/audio/opensl/android-extensions
This feature was mentioned in https://github.com/MusicPlayerDaemon/MPD/issues/922
2020-07-20 15:23:50 +02:00
Max Kellermann
64a1386eb6
output/sles: move SampleFormat selection to switch/case block
2020-07-20 14:47:36 +02:00