diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-10-20 08:45:01 +0200 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-10-20 08:54:57 +0200 |
commit | af293d4059ff1e0873d452d871d41b501ed1636a (patch) | |
tree | bd1bedd07106057981ff939715ee58d0d731f733 /src/g_curses_input.c | |
parent | 2d9ad6d33aabafa51f05598cce3eda72bf815da8 (diff) | |
download | pa-sink-ctl-af293d4059ff1e0873d452d871d41b501ed1636a.tar.gz pa-sink-ctl-af293d4059ff1e0873d452d871d41b501ed1636a.tar.bz2 pa-sink-ctl-af293d4059ff1e0873d452d871d41b501ed1636a.zip |
Kill off g_curses_input
Use a g_io_channel that listens to STDIN_FILENO instead.
Diffstat (limited to 'src/g_curses_input.c')
-rw-r--r-- | src/g_curses_input.c | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/src/g_curses_input.c b/src/g_curses_input.c deleted file mode 100644 index ece0213..0000000 --- a/src/g_curses_input.c +++ /dev/null @@ -1,79 +0,0 @@ -#include <curses.h> -#include <glib.h> -#include "interface.h" -#include "g_curses_input.h" - -typedef struct _GCursesInput { - GSource source; - WINDOW *win; -} GCursesInput; - -static gboolean -check(GSource *source) -{ - GCursesInput *curses_input = (GCursesInput*) source; - gint ch = wgetch(curses_input->win); - - if (ch != ERR) - ungetch(ch); - return ch != ERR; -} - -static gboolean -prepare(GSource *source, gint *timeout_) -{ - *timeout_ = 2; - return check(source); -} - -static gboolean -dispatch(GSource *source, GSourceFunc callback, gpointer user_data) -{ - GCursesInput *curses_input = (GCursesInput*) source; - - return callback((gpointer)curses_input->win) ? TRUE : FALSE; -} - -static GSourceFuncs SourceFuncs = -{ - .prepare = prepare, - .check = check, - .dispatch = dispatch, - .finalize = NULL, - .closure_callback = NULL, .closure_marshal = NULL -}; - -GSource * -g_curses_input_source_new(WINDOW *win) { - GSource *source = g_source_new(&SourceFuncs, sizeof(GCursesInput)); - GCursesInput *curses_input = (GCursesInput*) source; - - curses_input->win = win; - nodelay(win, TRUE); /* important! make wgetch non-blocking */ - - return source; -} - -guint -g_curses_input_add_full(gint priority, WINDOW *win, GSourceFunc function, - gpointer data, GDestroyNotify notify) -{ - g_return_val_if_fail(function != NULL, 0); - GSource *source = g_curses_input_source_new(win); - guint id; - - if (priority != G_PRIORITY_DEFAULT) - g_source_set_priority (source, priority); - g_source_set_callback(source, function, data, notify); - id = g_source_attach(source, NULL); - g_source_unref(source); - - return id; -} - -guint -g_curses_input_add(WINDOW *win, GSourceFunc function, gpointer data) -{ - return g_curses_input_add_full(G_PRIORITY_DEFAULT, - win, function, data, NULL); -} |