From 0bf573b3f08bd4463d708c73db5c6fb47fda71f4 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Sun, 24 Jan 2021 02:18:05 +0100 Subject: [PATCH] EVENT: Reduce the number of things to read in the handle event function --- src/net/listen.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/net/listen.c b/src/net/listen.c index 6292aa2c..f73458c5 100644 --- a/src/net/listen.c +++ b/src/net/listen.c @@ -791,6 +791,8 @@ handle_queue_events(struct lkt_state *srv) evt.attr, sizeof(size_t) * CHAR_BIT / 4, evt.attr); \ func; \ break; +#define __ATTR_IS_STATE(state, func) { \ + if ((__LKT_PLAY_ ## state) == (size_t) evt.attr) { func; }} lkt_event evt; char *string = NULL; @@ -806,19 +808,19 @@ redo: free(string); }) - __CASE(play_next, { command_next(srv, NULL); }) - __CASE(play_prev, { command_previous(srv, NULL); }) + __CASE(play_next, command_next(srv, NULL) ) + __CASE(play_prev, command_previous(srv, NULL) ) __CASE(play_toggle, { - if (__LKT_PLAY_PAUSE == (size_t) evt.attr) database_queue_set_paused(srv->db, 1); - if (__LKT_PLAY_PLAY == (size_t) evt.attr) database_queue_set_paused(srv->db, 0); - if (__LKT_PLAY_TOGGLE == (size_t) evt.attr) database_queue_toggle_pause(srv->db); - if (__LKT_PLAY_STOP == (size_t) evt.attr) database_queue_stop(srv->db); + __ATTR_IS_STATE(PAUSE, database_queue_set_paused(srv->db, 1) ) + __ATTR_IS_STATE(PLAY, database_queue_set_paused(srv->db, 0) ) + __ATTR_IS_STATE(TOGGLE, database_queue_toggle_pause(srv->db) ) + __ATTR_IS_STATE(STOP, database_queue_stop(srv->db) ) }) - __CASE(prop_vol, { database_config_queue(srv->db, "volume", (size_t) evt.attr); }) - __CASE(prop_dur, { database_config_queue(srv->db, "duration", (size_t) evt.attr); }) - __CASE(prop_time, { database_config_queue(srv->db, "elapsed", (size_t) evt.attr); }) + __CASE(prop_vol, database_config_queue(srv->db, "volume", (size_t) evt.attr) ) + __CASE(prop_dur, database_config_queue(srv->db, "duration", (size_t) evt.attr) ) + __CASE(prop_time, database_config_queue(srv->db, "elapsed", (size_t) evt.attr) ) __CASE(skip_current, { RETURN_UNLESS((string = malloc(PATH_MAX * sizeof(char))), "Out of memory", NOTHING); @@ -833,6 +835,7 @@ redo: } goto redo; +#undef __ATTR_IS_STATE #undef __CASE } -- GitLab