From 65804e73eaed005b0f8114e5c6f03fa59341a2bc Mon Sep 17 00:00:00 2001 From: Thomas Jansen Date: Mon, 10 Nov 2008 14:13:46 +0100 Subject: lirc: refactored event handler * moved lirc_event to lirc.c and split out the parts that depend on variables in main.c into three separate functions * changed keyboard_event accordingly to avoid duplicate code * merged lirc_event with ncmpc_lirc_get_command --- src/main.c | 73 ++++++++++++++++++++++++-------------------------------------- 1 file changed, 28 insertions(+), 45 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index b9fb3cd0e..26ab45896 100644 --- a/src/main.c +++ b/src/main.c @@ -282,71 +282,54 @@ timer_idle(mpd_unused gpointer data) return TRUE; } -static gboolean -keyboard_event(mpd_unused GIOChannel *source, - mpd_unused GIOCondition condition, mpd_unused gpointer data) +void begin_input_event(void) { - command_t cmd; - /* remove the idle timeout; add it later with fresh interval */ g_source_remove(idle_source_id); +} - if ((cmd=get_keyboard_command()) != CMD_NONE) { - if (cmd == CMD_QUIT) { - g_main_loop_quit(main_loop); - return FALSE; - } +void end_input_event(void) +{ + screen_update(mpd); - screen_cmd(mpd, cmd); + idle_source_id = g_timeout_add(idle_interval, timer_idle, NULL); +} - if (cmd == CMD_VOLUME_UP || cmd == CMD_VOLUME_DOWN) { - /* make sure we dont update the volume yet */ - g_source_remove(update_source_id); - update_source_id = g_timeout_add(update_interval, - timer_mpd_update, - GINT_TO_POINTER(TRUE)); - } +int do_input_event(command_t cmd) +{ + if (cmd == CMD_QUIT) { + g_main_loop_quit(main_loop); + return -1; } - screen_update(mpd); + screen_cmd(mpd, cmd); - idle_source_id = g_timeout_add(idle_interval, timer_idle, NULL); - return TRUE; + if (cmd == CMD_VOLUME_UP || cmd == CMD_VOLUME_DOWN) { + /* make sure we dont update the volume yet */ + g_source_remove(update_source_id); + update_source_id = g_timeout_add(update_interval, + timer_mpd_update, + GINT_TO_POINTER(TRUE)); + } + + return 0; } -#ifdef ENABLE_LIRC static gboolean -lirc_event(mpd_unused GIOChannel *source, - mpd_unused GIOCondition condition, mpd_unused gpointer data) +keyboard_event(mpd_unused GIOChannel *source, + mpd_unused GIOCondition condition, mpd_unused gpointer data) { command_t cmd; - /* remove the idle timeout; add it later with fresh interval */ - g_source_remove(idle_source_id); + begin_input_event(); - if ((cmd = ncmpc_lirc_get_command()) != CMD_NONE) { - if (cmd == CMD_QUIT) { - g_main_loop_quit(main_loop); + if ((cmd=get_keyboard_command()) != CMD_NONE) + if (do_input_event(cmd) != 0) return FALSE; - } - screen_cmd(mpd, cmd); - - if (cmd == CMD_VOLUME_UP || cmd == CMD_VOLUME_DOWN) { - /* make sure we dont update the volume yet */ - g_source_remove(update_source_id); - update_source_id = g_timeout_add(update_interval, - timer_mpd_update, - GINT_TO_POINTER(TRUE)); - } - } - - screen_update(mpd); - - idle_source_id = g_timeout_add(idle_interval, timer_idle, NULL); + end_input_event(); return TRUE; } -#endif #ifndef NCMPC_MINI /** -- cgit v1.2.3