diff --git a/src/main.c b/src/main.c
index af6732737d2fd26079057501819b930b4b2a6095..85548bec1ebaa6376f01f52dd228713bfc08abda 100644 (file)
--- a/src/main.c
+++ b/src/main.c
#include "strfsong.h"
#include "i18n.h"
#include "player_command.h"
+#include "lirc.h"
#ifndef NCMPC_MINI
#include "conf.h"
#include "lyrics.h"
#endif
-#ifdef ENABLE_LIRC
-#include "lirc.h"
-#endif
-
#include <mpd/client.h>
#include <stdlib.h>
static void
catch_sigcont(gcc_unused int sig)
{
- char irrelevant = 'a';
- if (1 != write(sigwinch_pipes[1], &irrelevant, 1))
+ if (1 != write(sigwinch_pipes[1], "", 1))
exit(EXIT_FAILURE);
}
/* watch out for keyboard input */
GIOChannel *keyboard_channel = g_io_channel_unix_new(STDIN_FILENO);
g_io_add_watch(keyboard_channel, G_IO_IN, keyboard_event, NULL);
+ g_io_channel_unref(keyboard_channel);
-#ifdef ENABLE_LIRC
/* watch out for lirc input */
- int lirc_socket = ncmpc_lirc_open();
- GIOChannel *lirc_channel = NULL;
- if (lirc_socket >= 0) {
- lirc_channel = g_io_channel_unix_new(lirc_socket);
- g_io_add_watch(lirc_channel, G_IO_IN, lirc_event, NULL);
- }
-#endif
+ ncmpc_lirc_init();
#ifndef WIN32
- GIOChannel *sigwinch_channel = NULL;
if (!pipe(sigwinch_pipes) &&
!fcntl(sigwinch_pipes[1], F_SETFL, O_NONBLOCK)) {
- sigwinch_channel = g_io_channel_unix_new(sigwinch_pipes[0]);
+ GIOChannel *sigwinch_channel = g_io_channel_unix_new(sigwinch_pipes[0]);
g_io_add_watch(sigwinch_channel, G_IO_IN, sigwinch_event, NULL);
+ g_io_channel_unref(sigwinch_channel);
}
else {
perror("sigwinch pipe creation failed");
screen_paint(mpd);
g_main_loop_run(main_loop);
+ g_main_loop_unref(main_loop);
/* cleanup */
g_source_remove(check_key_bindings_source_id);
#endif
- g_main_loop_unref(main_loop);
- g_io_channel_unref(keyboard_channel);
- g_io_channel_unref(sigwinch_channel);
close(sigwinch_pipes[0]);
close(sigwinch_pipes[1]);
-#ifdef ENABLE_LIRC
- if (lirc_socket >= 0)
- g_io_channel_unref(lirc_channel);
- ncmpc_lirc_close();
-#endif
+ ncmpc_lirc_deinit();
screen_exit();
#ifndef NCMPC_MINI