From a3e3d2c9506d17b3e19e205535ec263ee75178c9 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 14 Oct 2008 22:38:14 +0200 Subject: command: added command "idle" "idle" waits until something noteworthy happens on the server, e.g. song change, playlist modified, database updated. This allows clients to keep up to date without polling. --- src/main.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index b4f821008..1a7e73254 100644 --- a/src/main.c +++ b/src/main.c @@ -17,6 +17,7 @@ */ #include "client.h" +#include "idle.h" #include "command.h" #include "playlist.h" #include "database.h" @@ -445,9 +446,17 @@ int main(int argc, char *argv[]) while (COMMAND_RETURN_KILL != client_manager_io() && COMMAND_RETURN_KILL != handlePendingSignals()) { + unsigned flags; + syncPlayerAndPlaylist(); client_manager_expire(); reap_update_task(); + + /* send "idle" notificaions to all subscribed + clients */ + flags = idle_get(); + if (flags != 0) + client_manager_idle_add(flags); } write_state_file(); -- cgit v1.2.3