mirror of
https://github.com/SuperBFG7/ympd
synced 2025-01-29 10:24:53 +00:00
Fix: handle duplicate idle player events for playCount updates
This commit is contained in:
parent
a640b9010d
commit
a9aa5a6741
@ -562,9 +562,10 @@ void mympd_parse_idle(struct mg_mgr *s, int idle_bitmask) {
|
||||
break;
|
||||
case MPD_IDLE_PLAYER:
|
||||
len = mympd_put_state(mpd.buf, &mpd.song_id, &mpd.next_song_id, &mpd.last_song_id, &mpd.queue_version, &mpd.queue_length);
|
||||
if (config.stickers && mpd.song_id != mpd.last_song_id) {
|
||||
if (config.stickers && mpd.song_id != mpd.last_song_id && mpd.last_update_sticker_song_id != mpd.song_id) {
|
||||
mympd_count_song_id(mpd.song_id, "playCount", 1);
|
||||
mympd_last_played_song_id(mpd.song_id);
|
||||
mpd.last_update_sticker_song_id = mpd.song_id;
|
||||
}
|
||||
break;
|
||||
case MPD_IDLE_MIXER:
|
||||
|
@ -127,6 +127,8 @@ struct t_mpd {
|
||||
unsigned queue_version;
|
||||
unsigned queue_length;
|
||||
int timeout;
|
||||
|
||||
int last_update_sticker_song_id;
|
||||
} mpd;
|
||||
|
||||
typedef struct {
|
||||
|
@ -183,6 +183,8 @@ int main(int argc, char **argv) {
|
||||
config.mixramp = true;
|
||||
|
||||
mpd.timeout = 3000;
|
||||
mpd.last_update_sticker_song_id = -1;
|
||||
mpd.last_song_id = -1;
|
||||
|
||||
if (argc == 2) {
|
||||
printf("Parsing config file: %s\n", argv[1]);
|
||||
|
Loading…
Reference in New Issue
Block a user