x86UNIXStdConsole.h
Engine/source/platformX86UNIX/x86UNIXStdConsole.h
Classes:
class
Public Defines
define
MAX_CMDS() 10
Public Variables
Detailed Description
Public Defines
MAX_CMDS() 10
Public Variables
StdConsole * stdConsole
1 2//----------------------------------------------------------------------------- 3// Copyright (c) 2012 GarageGames, LLC 4// 5// Permission is hereby granted, free of charge, to any person obtaining a copy 6// of this software and associated documentation files (the "Software"), to 7// deal in the Software without restriction, including without limitation the 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9// sell copies of the Software, and to permit persons to whom the Software is 10// furnished to do so, subject to the following conditions: 11// 12// The above copyright notice and this permission notice shall be included in 13// all copies or substantial portions of the Software. 14// 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21// IN THE SOFTWARE. 22//----------------------------------------------------------------------------- 23 24#ifndef _X86UNIXSTDCONSOLE_H_ 25#define _X86UNIXSTDCONSOLE_H_ 26 27#define MAX_CMDS 10 28#ifndef _CONSOLE_H_ 29#include "console/console.h" 30#endif 31#ifndef _EVENT_H_ 32#include "platform/event.h" 33#endif 34 35#include <termios.h> 36 37class StdConsole 38{ 39 bool stdConsoleEnabled; 40 bool stdConsoleInputEnabled; 41 // true if we're running in the background 42 bool inBackground; 43 44 int stdOut; 45 int stdIn; 46 int stdErr; 47 char inbuf[512]; 48 S32 inpos; 49 bool lineOutput; 50 char curTabComplete[512]; 51 S32 tabCompleteStart; 52 char rgCmds[MAX_CMDS][512]; 53 S32 iCmdIndex; 54 55 // this holds the original terminal state 56 // before we messed with it 57 struct termios *originalTermState; 58 59 void printf(const char *s, ...); 60 61public: 62 StdConsole(); 63 virtual ~StdConsole(); 64 void process(); 65 void enable(bool); 66 void enableInput(bool enabled); 67 void processConsoleLine(const char *consoleLine); 68 static void create(); 69 static void destroy(); 70 static bool isEnabled(); 71 void resetTerminal(); 72}; 73 74extern StdConsole *stdConsole; 75 76#endif 77