aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.c
diff options
context:
space:
mode:
authorThomas Jansen <mithi@mithi.net>2008-11-10 14:13:46 +0100
committerMax Kellermann <max@duempel.org>2008-11-10 14:13:46 +0100
commit65804e73eaed005b0f8114e5c6f03fa59341a2bc (patch)
tree293df2bec18223dda8cffbc6c70c50be6ced24dc /src/main.c
parent237fc6e8d2a4e6d1b958fbd40322a8b99b9525d2 (diff)
downloadmpd-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.c73
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
/**