Commit Graph

14 Commits

Author SHA1 Message Date
Alex 54beabb9dc
Revert "mpd: revamped to event-driven, single-threaded" 2020-10-18 10:45:31 +02:00
Joseph Benden 21fdcf41c3
mpd: revamped to event-driven, single-threaded
Fix MPD connection issues by converting/rewriting module into a
state-machine driven system. It is fully single-threaded and uses
events for transitioning between states. It supports all features
and functionality of the previous MPD module.

Signed-off-by: Joseph Benden <joe@benden.us>
2020-10-08 16:43:22 -07:00
Cole Helbling 75c6e2e7d5
mpd: add paused format string 2020-01-07 09:15:54 -08:00
Jonas Spanoghe e6599d8ed5 modules/mpd: take lock in waitForEvent to prevent SIGABORT
+ replaced deprecated MPD_IDLE_PLAYLIST with MPD_IDLE_QUEUE
+ add mutex for periodic_updater
2019-09-19 21:43:12 +02:00
Minijackson b50650f63f
fix(mpd): regularly timeout the event listener to prevent timeout
The MPD server has a connection_timeout that defaults to 60. If no data
is transferred in this timespan, the connection is closed. If the
connection is closed while the event listener is listening for events,
it will block forever. By timing out the event listening and
re-connecting regularly, we prevent this issue. An option "timeout" has
been added for users that have a lower server connection_timeout than
default. Fixes #277
2019-04-21 10:58:40 +02:00
Cole Helbling 160837b900
Ensure no NULL tags are set
Because `mpd_song_get_tag` from libmpdclient can return NULL, verify the
value of tag is valid. Otherwise, set a default string of "N/A". Also
adds configuration to specify what this default string should be.
2019-04-20 09:12:30 -07:00
Minijackson ab43d34a1e
refactor(mpd): Add module name to log messages 2019-04-18 15:57:57 +02:00
Minijackson cd92b475ad
chore: Add clang-format configuration and format MPD module 2019-04-18 15:57:57 +02:00
Minijackson 235997fa73
feat(mpd): Add support for elapsed and total time 2019-04-18 15:55:46 +02:00
Minijackson 80a12d0238
feat(mpd): play/pause on click & stop on right-click 2019-04-18 15:55:46 +02:00
Minijackson 07dab2baec
feat(mpd): Add support for options (random, repeat, etc.) 2019-04-18 15:55:45 +02:00
Minijackson cbfcec4867
feat(mpd): Add support for play/pause icons 2019-04-18 15:55:45 +02:00
Minijackson 557b786ce0
feat(mpd): Allow for specifying the reconnect interval 2019-04-18 15:55:45 +02:00
Minijackson 06aff70e2e
feat: Add basic support for MPD 2019-04-18 15:55:45 +02:00