Brad Smith
e0df0b6d74
oss: Remove use of the soundcard.h header, OpenBSD no longer uses OSS
2023-02-03 18:38:20 -05:00
Max Kellermann
3cc770a00b
remove obsolete Boost dependency
...
Boost makes building a piece of software much more difficult than
necessary. It's a huge library, and just uncompressing it takes a
considerable amount of time. MPD only used a tiny fraction of it, yet
its header bloat made the MPD build very slow. Locating Boost was
difficult due to its arcane build system and its resistance to use
pkg-config; it's always a special case. MPD could never use features
of newer Boost versions because Linux distributions always shipped old
Boost versions. Boost made everything complicated and slow.
So, finally, after getting rid of GLib (commit ccdb94b06c ), switching
to C++ and using Boost (commit 0801b3f495 ), we've finally get rid of
it 8 years later.
Unfortunately, I had to reimplement parts of it along the way
(e.g. IntrusiveList). Kind of NIH, but on the other hand, compiling
MPD has become much easier for users.
2023-01-23 15:06:58 +01:00
Max Kellermann
cd2aaac0c2
output/osx: fix typo
2023-01-23 14:15:18 +01:00
Max Kellermann
ff8a7225fc
output/osx: change type to std::size_t to fix -Wc++11-narrowing
2023-01-23 14:06:56 +01:00
Max Kellermann
d0be122fc6
output/osx: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:55:50 +01:00
Max Kellermann
01e5a7b1b5
output/wasapi: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
0b42018377
output/PipeWire: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
7cb6c70bc2
output/alsa: use class RingBuffer instead of boost::lockfree::spsc_queue
2023-01-23 13:44:54 +01:00
Max Kellermann
5728c514d1
output/wasapi: use std::hardware_destructive_interference_size
2023-01-23 13:44:53 +01:00
Max Kellermann
b1422fbda4
Merge tag 'v0.23.12'
...
release v0.23.12
2023-01-17 18:58:04 +01:00
Max Kellermann
ad7d47a8ba
output/PipeWire: use PW_KEY_TARGET_OBJECT with PipeWire 0.3.64
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1721
2023-01-17 11:50:09 +01:00
Max Kellermann
fa58db798b
lib/fmt/RuntimeError: new library
...
Replacing FormatRuntimeError().
2022-11-29 14:10:34 +01:00
Max Kellermann
cf3f3a7750
lib/pulse/Error: use std::system_error
2022-11-29 09:56:47 +01:00
Max Kellermann
8ad0d919b1
lib/icuConverter, ...: use FmtBuffer() and FmtErrno()
2022-11-29 09:09:11 +01:00
Max Kellermann
66029c405f
system/FmtError: move to lib/fmt/
2022-11-28 23:09:27 +01:00
Max Kellermann
96ae659fdf
system/FmtError: new library
...
Replaces the Format*() functions in system/Error.hxx.
2022-11-28 21:56:12 +01:00
Max Kellermann
fb5d77158a
util/IntrusiveList: add enum LinkMode
...
Compile-time code simplification.
2022-11-13 08:15:47 +01:00
Max Kellermann
89d950e9a7
output/httpd: use IntrusiveList instead of boost::intrusive::list
2022-11-10 12:02:54 +01:00
Max Kellermann
d6d0f78e93
Merge tag 'v0.23.10'
...
release v0.23.10
2022-10-14 23:56:33 +02:00
Max Kellermann
76b25a1377
output/alsa: add nullptr check for snd_pcm_name() return value
...
It is not explicitly documented whether snd_pcm_name() is allowed to
return NULL:
https://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m.html#ga5031edc0422df8db1f70af056a12dd77
But apparently this is legal:
https://github.com/alsa-project/alsa-lib/blob/0222f45d11e8b71bf651b985b00fdb0addbf3eed/src/pcm/pcm.c#L2761-L2762
That's ... surprising!
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1645
2022-10-14 23:14:30 +02:00
jcorporation
310a146a55
OutputCommands get ride of global mixer idle events
2022-09-06 21:58:18 +02:00
Max Kellermann
29eb3e9ebc
mixer/Control: move some code to Lock*() methods
2022-08-18 17:34:00 +02:00
Max Kellermann
b0873fbc90
mixer/Mixer*: drop the "Mixer" prefix from source files
2022-08-18 17:21:39 +02:00
Max Kellermann
c14484a5cc
mixer/MixerList: eliminate header
2022-08-18 17:14:42 +02:00
Max Kellermann
3eedcc55b9
mixer/Control: convert pointers to references
2022-08-18 16:56:06 +02:00
Max Kellermann
b789ffd2bf
Merge branch 'v0.23.x'
2022-08-08 23:46:22 +02:00
Max Kellermann
4b4f47002b
mixer/Volume: refactor to class MixerMemento, per partition
...
Eliminate global variables, convert them to MixerMemento fields.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1583
2022-08-08 23:30:27 +02:00
Max Kellermann
0279f4fb57
output/jack: fix bogus assertion failure
...
Regression from commit 45071607aa
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1571
2022-08-08 22:01:59 +02:00
Max Kellermann
88793cbc1a
output/httpd: avoid extra buffer copy if possible
2022-08-08 21:00:38 +02:00
Max Kellermann
2afe427ab3
output/httpd: copy from returned encoder buffer
...
This fixes a regression from commits c266fb7758 and 00b8ced09f ,
but really caused by API change in commit 7e14f8f830 , and this
plugin's failure to adapt to this API change.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/1585
2022-08-08 21:00:27 +02:00
Dave Hocker
bbc088ae4e
This PR provides forward and backward compatibility at macos SDK 12.0. At SDK 12.0, API function names were changed essentially replacing
...
occurrences of the word Master/master with Main/main. This change was test built on two different systems.
1. macos 10.15.7 with Xcode 12.4 and clang 12.0.0 on x86_64
2. macos 12.5 with Xcode 13.4.1 and clang 13.1.6 on arm64 (Apple silicon M1)
It should be noted that on macos 10.15.7 with Xcode 11.2 and clang 11.0, MPD will not build.
The MPD documentation states that clang 11.0 is the minimum requirement,
but clang 11.0 produces compile errors. Apparently the macos version
of clang 11.0 is not fully compliant.
2022-08-08 17:39:29 +02:00
Max Kellermann
cc0def15c4
Copyright year 2022
2022-07-14 17:59:35 +02:00
Max Kellermann
cddeb2a0df
io/BufferedOutputStream: add missing #include
2022-07-13 14:11:36 +02:00
Max Kellermann
de1d443db1
output/Multiple: use std::size_t
2022-07-13 13:26:27 +02:00
Max Kellermann
e2040ed395
output/Multiple: use [[gnu::pure]]
2022-07-13 13:25:17 +02:00
Max Kellermann
8a0ba7a725
output/Control: GetName() returns std::string&
2022-07-13 13:23:21 +02:00
Max Kellermann
e74788ea32
output/Control: inline GetName()
2022-07-13 13:13:23 +02:00
Max Kellermann
fef79931c5
output/Multiple: pass std::string_view to FindByName()
2022-07-13 13:13:21 +02:00
Max Kellermann
b52b0ac85a
*: use BufferedOutputStream::Fmt()
2022-07-13 13:10:14 +02:00
Max Kellermann
ae4f4d3533
config/Data: add WithEach(ConfigBlockOption)
...
To improve error messages without making callers more complex.
2022-07-13 11:05:21 +02:00
Max Kellermann
89a18b49a7
Merge branch 'v0.23.x'
2022-07-12 14:00:00 +02:00
guihkx
956c5faebb
output/PipeWire: set app icon
...
Closes #1564
2022-07-12 13:59:05 +02:00
Max Kellermann
eb589b0a46
output/osx: fix CI failure
2022-07-12 13:37:46 +02:00
Max Kellermann
52eff41379
remove Haiku support
...
Haiku support has been unmaintained for many years, and this issue has
been open for more than 5 years, but apparently the Haiku people have
lost interest:
https://github.com/MusicPlayerDaemon/MPD/pull/183
Haiku support was therefore deprecated by this commit 4 years ago:
7de8fd04a4 - but in those 4 years, nobody stepped up to adopt
maintainership.
I don't have any computer (or VM) with Haiku and there is no CI with
Haiku support, so I'm unable to adapt the Haiku specific code to API
changes.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/182
Closes https://github.com/MusicPlayerDaemon/MPD/issues/185
2022-07-12 13:14:49 +02:00
Max Kellermann
45071607aa
output/Interface: pass std::span to Play()
2022-07-12 12:59:47 +02:00
Max Kellermann
f5d104e7af
output/ao: simplify write_size checks
2022-07-12 12:58:19 +02:00
Max Kellermann
4f8d2a8b1c
output/alsa: use std::byte instead of uint8_t
2022-07-12 12:36:39 +02:00
Max Kellermann
7e14f8f830
encoder/Interface: pass std::span to Write() and Read()
2022-07-12 10:33:59 +02:00
Max Kellermann
ff3d8509ac
output/httpd: move buffer to stack
2022-07-12 10:08:26 +02:00
Max Kellermann
e861d4f83d
encoder/interface: make Read() noexcept (all implementations are)
2022-07-12 10:07:38 +02:00