diff options
| author | Andrew Kloet <andrew@kloet.net> | 2025-07-03 19:13:21 -0400 |
|---|---|---|
| committer | Andrew Kloet <andrew@kloet.net> | 2025-07-03 19:13:21 -0400 |
| commit | 101ebe171f27463901d698254f84c4072dcc9745 (patch) | |
| tree | d8af496c6fde3a76b06379b42553225870512bcf | |
| parent | e74b4b900d9bf23d07f74cc9b01dec2c246e68f8 (diff) | |
add song buffer to prevent duplication
| -rw-r--r-- | mpd_ws.c | 7 | ||||
| -rw-r--r-- | mpd_ws.h | 1 |
2 files changed, 7 insertions, 1 deletions
@@ -250,7 +250,12 @@ void mpd_ws_update_song(struct mpd_ws_server *server) { } syslog(LOG_DEBUG, "Broadcasting: %s", server->current_song); - client_broadcast(server, server->current_song); + + /* Only broadcast if song actually changed */ + if (strcmp(server->current_song, server->previous_song) != 0) { + client_broadcast(server, server->current_song); + strcpy(server->previous_song, server->current_song); + } if (song) { mpd_song_free(song); @@ -24,6 +24,7 @@ struct mpd_ws_server { struct mpd_connection *mpd_conn; struct client_session *clients; char current_song[MAX_MESSAGE_SIZE]; + char previous_song[MAX_MESSAGE_SIZE]; volatile int running; int mpd_idle_active; }; |
