Skip to content
Extraits de code Groupes Projets
Vérifiée Valider fa1ddc65 rédigé par Kubat's avatar Kubat
Parcourir les fichiers

MISC: Reduce the 'if/else' statement number for the idle command

parent cf072b82
Branches
Étiquettes
1 requête de fusion!179Queue download if update asked per ID
Pipeline #2542 réussi
...@@ -591,34 +591,22 @@ command_idle(struct lkt_state *srv, size_t c, char *args[LKT_MESSAGE_ARGS_MAX]) ...@@ -591,34 +591,22 @@ command_idle(struct lkt_state *srv, size_t c, char *args[LKT_MESSAGE_ARGS_MAX])
bool once; bool once;
size_t i; size_t i;
#pragma message(TODO "Use a lookup table here...")
for (once = false, i = 0; args[i]; ++i, once |= true) { for (once = false, i = 0; args[i]; ++i, once |= true) {
if (STR_MATCH(args[i], "database")) MPD_IDLE_FLAG idle_mask =
lkt_client_add_mask(srv, c, MPD_IDLE_DATABASE); (STR_MATCH(args[i], "database") * MPD_IDLE_DATABASE) +
else if (STR_MATCH(args[i], "update")) (STR_MATCH(args[i], "update") * MPD_IDLE_UPDATE) +
lkt_client_add_mask(srv, c, MPD_IDLE_UPDATE); (STR_MATCH(args[i], "stored_playlist") * MPD_IDLE_STORED_PLAYLIST) +
else if (STR_MATCH(args[i], "stored_playlist")) (STR_MATCH(args[i], "playlist") * MPD_IDLE_PLAYLIST) +
lkt_client_add_mask(srv, c, MPD_IDLE_STORED_PLAYLIST); (STR_MATCH(args[i], "player") * MPD_IDLE_PLAYER) +
else if (STR_MATCH(args[i], "playlist")) (STR_MATCH(args[i], "mixer") * MPD_IDLE_MIXER) +
lkt_client_add_mask(srv, c, MPD_IDLE_PLAYLIST); (STR_MATCH(args[i], "output") * MPD_IDLE_OUTPUT) +
else if (STR_MATCH(args[i], "player")) (STR_MATCH(args[i], "options") * MPD_IDLE_OPTIONS) +
lkt_client_add_mask(srv, c, MPD_IDLE_PLAYER); (STR_MATCH(args[i], "partition") * MPD_IDLE_PARTITION) +
else if (STR_MATCH(args[i], "mixer")) (STR_MATCH(args[i], "sticker") * MPD_IDLE_STICKER) +
lkt_client_add_mask(srv, c, MPD_IDLE_MIXER); (STR_MATCH(args[i], "subscription") * MPD_IDLE_SUBSCRIPTION) +
else if (STR_MATCH(args[i], "output")) (STR_MATCH(args[i], "message") * MPD_IDLE_MESSAGE);
lkt_client_add_mask(srv, c, MPD_IDLE_OUTPUT); idle_mask = idle_mask + ((unsigned int)(!(bool)(idle_mask)) * MPD_IDLE_ALL);
else if (STR_MATCH(args[i], "options")) lkt_client_add_mask(srv, c, idle_mask);
lkt_client_add_mask(srv, c, MPD_IDLE_OPTIONS);
else if (STR_MATCH(args[i], "partition"))
lkt_client_add_mask(srv, c, MPD_IDLE_PARTITION);
else if (STR_MATCH(args[i], "sticker"))
lkt_client_add_mask(srv, c, MPD_IDLE_STICKER);
else if (STR_MATCH(args[i], "subscription"))
lkt_client_add_mask(srv, c, MPD_IDLE_SUBSCRIPTION);
else if (STR_MATCH(args[i], "message"))
lkt_client_add_mask(srv, c, MPD_IDLE_MESSAGE);
else
lkt_client_add_mask(srv, c, MPD_IDLE_ALL);
} }
if (!once) if (!once)
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter