aboutsummaryrefslogtreecommitdiff
path: root/AmpelJonas/cInput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'AmpelJonas/cInput.cpp')
-rw-r--r--AmpelJonas/cInput.cpp74
1 files changed, 0 insertions, 74 deletions
diff --git a/AmpelJonas/cInput.cpp b/AmpelJonas/cInput.cpp
deleted file mode 100644
index e0aa233..0000000
--- a/AmpelJonas/cInput.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-#include "cInput.h"
-
-cInput::cInput()
-{
- // Save original serial communication configuration for stdin
- tcgetattr( STDIN_FILENO, &original);
-
- // Put stdin in raw mode so keys get through directly without
- // requiring pressing enter.
- cfmakeraw (&raw);
- tcsetattr (STDIN_FILENO, TCSANOW, &raw);
-
- // Switch to the alternate buffer screen
- write (STDOUT_FILENO, "\e[?47h", 6);
-
- // Enable mouse tracking
- write (STDOUT_FILENO, "\e[?9h", 5);
-}
-
-cInput::~cInput()
-{
- //revert changes to console
- write (STDOUT_FILENO, "\e[?9l", 5);
- write (STDOUT_FILENO, "\e[?47l", 6);
- tcsetattr (STDIN_FILENO, TCSANOW, &original);
-}
-
-sInputEvent cInput::poll()
-{
- sInputEvent ret;
- unsigned char buff [6];
-
- //setup for select
- fd_set rfds;
- struct timeval tv;
- FD_ZERO(&rfds);
- FD_SET(STDIN_FILENO, &rfds);
- tv.tv_sec = 0;
- tv.tv_usec = 0;
-
- ret.type = _EVENT_NULL;
-
- //Check for Input. return of none
- if(!select(1, &rfds, NULL, NULL, &tv))
- return ret;
-
- read (STDIN_FILENO, &buff, 1);
-
- if (buff[0] == '\x1B') //Escape sequence
- {
- read (STDIN_FILENO, &buff, 5);
- if(buff[0] == '[')
- {
- if(buff[1] == 'M') //Mouse Event
- {
- ret.b = buff[2] - 32;
- ret.x = buff[3] - 32;
- ret.y = buff[4] - 32;
- ret.type = _EVENT_MOUSE;
- }
- else //e.g. Arrow Keys
- {
- ret.c = buff[1];
- ret.type = _EVENT_KEY;
- }
- }
- }
- else
- {
- ret.type = _EVENT_CHAR;
- ret.c = buff[0];
- }
- return ret;
-}