Max Kellermann
2ec94c0497
player/Control: start thread on demand
...
Keep MPD's footprint small until playback is requested.
2018-09-23 17:32:34 +02:00
Max Kellermann
8c638c50a3
player/Thread: remove obsolete buffered_before_play
attribute
2018-09-23 16:50:04 +02:00
Max Kellermann
6db6d3c50c
player/Thread: move StartPlayerThread() into PlayerControl
2018-09-21 17:14:19 +02:00
Max Kellermann
616abdda26
Merge branch 'v0.20.x'
2018-08-20 00:19:31 +02:00
Thomas Guillem
aff070bcbb
android: add LogListener
...
A Java object to send logs on the android side.
2018-08-19 23:32:24 +02:00
Max Kellermann
cc64c715a2
db/update/Service: Enqueue() throws on error
2018-08-19 23:15:52 +02:00
Max Kellermann
9999914c74
Main: throw exception instead of calling FatalError()
2018-08-19 23:13:29 +02:00
Max Kellermann
140aeea300
Main: allocate ConfigData on the stack
2018-08-19 23:08:23 +02:00
Max Kellermann
afd0fe666a
config/Global: move config_global_check() to Check.cxx
2018-08-19 23:01:30 +02:00
Max Kellermann
5f95c07305
config/Path: add InitPathParser()
...
Eliminate yet another access to the global ConfigData instance.
2018-08-19 22:29:39 +02:00
Max Kellermann
01d3777574
decoder/Thread, ...: log all exceptions
2018-08-09 11:14:40 +02:00
Max Kellermann
148c38fbb9
Main: use AtScopeExit() to delete the Instance
2018-08-06 11:42:46 +02:00
Max Kellermann
fbfefcc0a3
Main: call daemonize_finish() with AtScopeExit()
2018-08-06 10:47:06 +02:00
Max Kellermann
22192adbc8
lib/icu/Init: add class ScopeIcuInit
2018-08-02 10:17:31 +02:00
Max Kellermann
95acc4be07
Main: add "noexcept"
2018-08-01 20:16:40 +02:00
Max Kellermann
330a4cf573
Main: remove exception handler from mpd_main_after_fork()
...
Let MainOrThrow() forward it to mpd_main().
2018-08-01 20:15:54 +02:00
Max Kellermann
6ffbb151a0
Main: move log_deinit() call to mpd_main()
...
Deinitialize the logging library after the last exception handler,
because that one could still need it.
Use `AtScopeExit()` to ensure it's always called, even if an exception
was thrown.
2018-08-01 20:14:31 +02:00
Max Kellermann
271e49db5d
Main: move code to MainOrThrow(), leaving exception handler in mpd_main()
2018-08-01 20:13:27 +02:00
Max Kellermann
8d2101ccb4
Main: move libdbus cleanup to class ODBus::ScopeInit
2018-08-01 19:24:50 +02:00
Max Kellermann
bcc1e51097
StateFile: add struct StateFileConfig
2018-07-17 23:27:50 +02:00
Max Kellermann
0c8ffa1ac3
output/MultipleOutputs: use struct ConfigData
2018-07-17 23:13:35 +02:00
Max Kellermann
4f678aa244
neighbor/Glue: use struct ConfigData
2018-07-17 23:11:33 +02:00
Max Kellermann
3a4a430f6c
fs/Config: use struct ConfigData
2018-07-17 23:09:56 +02:00
Max Kellermann
36db40b224
client/Global: use struct ConfigData
2018-07-17 23:07:50 +02:00
Max Kellermann
426b9672cf
db/Configured: use struct ConfigData
2018-07-17 23:06:17 +02:00
Max Kellermann
4d80419982
pcm/ConfiguredResampler: use struct ConfigData
2018-07-17 23:04:26 +02:00
Max Kellermann
3983caa2c8
Listen: use struct ConfigData
2018-07-17 23:02:53 +02:00
Max Kellermann
0b4e0b7bcb
LogInit: use struct ConfigData
2018-07-17 23:02:06 +02:00
Max Kellermann
a9b8d5ecb6
Permission: use struct ConfigData
2018-07-17 23:00:42 +02:00
Max Kellermann
d2594c6380
storage/Configured: use struct ConfigData
2018-07-17 22:57:08 +02:00
Max Kellermann
2fc0a738ce
Main: use struct ConfigData
2018-07-17 22:54:16 +02:00
Max Kellermann
86c531b37d
config/Data: move std::chrono parsers from Global.hxx
2018-07-17 22:53:17 +02:00
Max Kellermann
a5b14a2ea7
Main: add local ConfigData reference
2018-07-17 22:48:43 +02:00
Max Kellermann
bf582bd969
ZeroconfGlue: use struct ConfigData
2018-07-17 22:44:16 +02:00
Max Kellermann
ad866f7a7d
db/update/Config: use struct ConfigData
2018-07-17 22:41:28 +02:00
Max Kellermann
24a86dce21
tag/Config: use struct ConfigData
2018-07-17 22:34:11 +02:00
Max Kellermann
0209bc4ba7
ReplayGainGlobal: use struct ConfigData
2018-07-17 22:32:56 +02:00
Max Kellermann
dd57b81989
PlaylistFile: use struct ConfigData
2018-07-17 22:31:33 +02:00
Max Kellermann
61a119b607
playlist/Registry: use struct ConfigData
2018-07-17 22:10:32 +02:00
Max Kellermann
0ff0aca2e2
input/Init: use struct ConfigData
2018-07-17 22:05:27 +02:00
Max Kellermann
57d77cc8a0
decoder/List: use struct ConfigData
2018-07-17 22:05:21 +02:00
Max Kellermann
99d5b61698
fs/Path: add operator/(Path,Path)
...
Modeled after std::filesystem::operator/() from C++17.
2018-07-17 18:33:32 +02:00
Max Kellermann
816603fd9a
config/Config*: rename files, drop "Config" prefix
2018-07-16 19:50:07 +02:00
Max Kellermann
86a37d0ed6
Main, pcm/SampleFormat, command/Error: remove obsolete GCC version checks
2018-07-16 11:04:05 +02:00
Max Kellermann
adf2d3aff2
zeroconf/Avahi: move dbus_shutdown() call to the end of Main()
...
Calling dbus_shutdown() too early will break the "udisks2" neighbor
plugin.
2018-06-03 10:37:54 +02:00
Max Kellermann
5b0e8c6de0
Merge branch 'v0.20.x'
2018-03-05 11:13:42 +01:00
Christian Kröner
79535212c8
Get rid of GCD on macOS which breaks debug builds
...
With Grand Central Dispatch used in Main.cxx, debug builds on macOS
crash as the IsInside() assertion gets triggered in the event loop. As
a simple fix, usage of GCD is removed. Plugging and unplugging
headphones or changes of the default output device was tested without
issues. Whatever the original commit tried to fix by GCD probably does
not need fixing anymore.
2018-03-04 10:43:55 +01:00
Max Kellermann
b30a510b45
release v0.20.18
...
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEEA5IzWngIOJSkMBxDI26KWMbbRRIFAlqR3zoQHG1heEBtdXNp
Y3BkLm9yZwAKCRAjbopYxttFEqNGEACGhsZJbhqls0EawfHhpOz/x7JcloMLWvoX
GzuvVinhdFmmFId0akLsg3TCyGElNA+4YzfDjB1TyMpPFBUxM/nnthYPrSmjiT68
t+0IV6OnqFVLE2PF6pHV2Gia0Km746GZBJ+TRLeZSIksADH7nU+soepIA6idwNRN
x8Wo0ashsRIPG3FyL6f/2W/vUvD/enoxohCBB/tvnZ73Px0k2bYAwlBNW/i9/yrX
ktJ2yJqbCkKOhBQnbUvsG72Nrd4/Iz2m7cA//KBVrDEGwNv5hxNKiK/hCq3YK2W9
Ndnl0+EQxNLT1NUwF5e1LS3GtU2Mh3FQwrcq81Cj7o/wEH5e7piKBZhwDCBgOYYH
vLbaLYWK+XW/EqitkRZx5ZBrfNoqOrLreX0d2+AZJOjKDjAWgMZXoOEjmQC9/Dcj
pGcRow4jAusBRJKVN0Wmu6eeVQMjiYJNWehhyhhruShHL2ZAjJSuDhygAFW5YB3I
N2kfhwZWMHVFpA0HvcVx5JwNx7U1OyJGs0lRGThV/6jhnklGzoujvomRNJ6VNx10
ppYhmcLaHm19GR1eb8KCYnZYL2QWoQT5YLVlm0vybTX9i1k3wdf9ezU/n5hB52rP
j20Ol1I9YQw4/L985SV1W+8ll1i71o9paoJx17C8AQpxWWamQLe+vgENt9fPKIPl
aLBYU7hq9Q==
=ndLr
-----END PGP SIGNATURE-----
Merge tag 'v0.20.18'
release v0.20.18
2018-02-24 23:16:06 +01:00
Max Kellermann
5b80711d75
Main: move WinSock initialization to class ScopeNetInit
2018-02-24 22:44:27 +01:00
Max Kellermann
d29d186d62
output/alsa: use a new I/O thread with real-time scheduling
...
The normal I/O event thread can have a large latency, e.g. when
libgnutls loads all TLS CA certificates for a https connect. This
makes it unreliable for the ALSA I/O notifications, and causes ring
buffer xruns. To avoid interfering with high latency events such as
CURL's, we move the ALSA I/O events to a separate I/O thread which
also obtains real-time scheduling (if possible).
Closes #221
2018-02-16 22:38:55 +01:00