src/keyboard.c
changeset 0 06dd3b8d90ad
new file mode 100644
--- /dev/null
+++ b/src/keyboard.c
@@ -0,0 +1,36 @@
+/**
+ *  $Id: keyboard.c 53 2008-01-10 00:19:41Z mbroeker $
+ * $URL: http://localhost/svn/c/VirtualReader/trunk/src/keyboard.c $
+ */
+
+#include <keyboard.h>
+
+char getSingleKey ()
+{
+    // read and return single key with 1 second timeout
+
+    struct termios new_settings;
+    struct termios stored_settings;
+    int timeout = 1;            // 1 sec timeout
+    char c;
+
+    tcgetattr (0, &stored_settings);
+    new_settings = stored_settings;
+
+    new_settings.c_lflag &= ~(ICANON | ECHO);
+
+    new_settings.c_cc[VTIME] = timeout * 10;
+    new_settings.c_cc[VMIN] = 0;
+    tcsetattr (0, TCSANOW, &new_settings);
+
+    fflush (stdout);
+    c = getchar ();
+
+    tcsetattr (0, TCSANOW, &stored_settings);
+
+#ifdef DEBUG
+    if (isalpha (c))
+        printf ("received keypress: %c\n", c);
+#endif
+    return c;
+}