diff options
author | Thomas Jansen <mithi@mithi.net> | 2008-11-10 14:13:46 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-11-10 14:13:46 +0100 |
commit | 65804e73eaed005b0f8114e5c6f03fa59341a2bc (patch) | |
tree | 293df2bec18223dda8cffbc6c70c50be6ced24dc /src/main.c | |
parent | 237fc6e8d2a4e6d1b958fbd40322a8b99b9525d2 (diff) | |
download | mpd-65804e73eaed005b0f8114e5c6f03fa59341a2bc.tar.gz mpd-65804e73eaed005b0f8114e5c6f03fa59341a2bc.tar.xz mpd-65804e73eaed005b0f8114e5c6f03fa59341a2bc.zip |
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
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 73 |
1 files changed, 28 insertions, 45 deletions
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 /** |