From a185c11f2397c0296a4b62cc266b4fa00a63c1e2 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Wed, 14 May 2008 21:07:10 +0000 Subject: console, camera & interpolation --- src/sys/consoleinterface.h | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) (limited to 'src/sys/consoleinterface.h') diff --git a/src/sys/consoleinterface.h b/src/sys/consoleinterface.h index 33dc5b5..f874182 100644 --- a/src/sys/consoleinterface.h +++ b/src/sys/consoleinterface.h @@ -7,11 +7,11 @@ #ifndef __INCLUDED_SYS_CONSOLEINTERFACE_H__ #define __INCLUDED_SYS_CONSOLEINTERFACE_H__ -// project headers -#include "sys/sys.h" - -// C++ headers #include +#include +#include + +#include "sys/sys.h" /// global define to send a message to the system console #define con_print sys::ConsoleInterface::instance()->messagestream() @@ -30,6 +30,8 @@ namespace sys { +const size_t MAXCONLINES = 2048; + /// interface for the client and server Console classes class ConsoleInterface { @@ -40,27 +42,38 @@ public: /// default destructor virtual ~ConsoleInterface(); - /// stream to send normal messages too - virtual std::ostream & messagestream() = 0; + /// stream to send normal messages to + std::ostream & messagestream(); - /// stream to send warning messages too - virtual std::ostream & warningstream() = 0; + /// stream to send warning messages to + std::ostream & warningstream(); - /// stream to send error messages too - virtual std::ostream & errorstream() = 0; + /// stream to send error messages to + std::ostream & errorstream(); - /// stream to send debug messages too - virtual std::ostream & debugstream() = 0; + /// stream to send debug messages to + std::ostream & debugstream(); /// flush buffered messages - virtual void flush() = 0; + virtual void flush(); + + /// turn ANSI color codes on or off + inline void set_ansi(bool ansi) { consoleinterface_ansi = ansi; } /// a pointer to the current console instance static ConsoleInterface *instance(); +protected: + std::deque consoleinterface_text; + std::stringstream consoleinterface_buffer; + + /// print a string to stdout with ansi color codes + void print_ansi(const char *line); + private: /// console singleton static ConsoleInterface *consoleinterface_instance; + bool consoleinterface_ansi; }; } // namespace sys -- cgit v1.2.3