// TaskManager.cpp // Copyright 2000-01, Sony Online Entertainment Inc., all rights reserved. // Author: Justin Randall //----------------------------------------------------------------------- #include "FirstTaskManager.h" #include "Console.h" #include #include #include #include #include //----------------------------------------------------------------------- struct SetBufferMode { SetBufferMode(); ~SetBufferMode() {}; }; SetBufferMode::SetBufferMode() { setvbuf(stdin, NULL, _IONBF, 0); } //----------------------------------------------------------------------- const char Console::getNextChar() { static SetBufferMode setBufferMode; char result = 0; fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(STDIN_FILENO, &rfds); tv.tv_sec = 0; tv.tv_usec = 0; int ready = select(1, &rfds, 0, 0, &tv); if(ready) { result = static_cast(getchar()); if(result < 1) result = 0; } /* if(_kbhit()) result = static_cast(_getche()); */ return result; } //-----------------------------------------------------------------------