diff options
Diffstat (limited to 'Src/Wasabi/api/console')
-rw-r--r-- | Src/Wasabi/api/console/console.cpp | 33 | ||||
-rw-r--r-- | Src/Wasabi/api/console/console.h | 19 |
2 files changed, 52 insertions, 0 deletions
diff --git a/Src/Wasabi/api/console/console.cpp b/Src/Wasabi/api/console/console.cpp new file mode 100644 index 00000000..3188ac7d --- /dev/null +++ b/Src/Wasabi/api/console/console.cpp @@ -0,0 +1,33 @@ +#include "console.h" +#include <api/service/svcs/svc_console.h> +#include <api/service/svc_enum.h> + +void Console::outputString(int severity, const char *string) { + if (!console) { + console = new ConsoleEnum; + } + + if (needscan) { + needscan=0; + console->reset(); + svc_console *con = console->getNext(); + noconsole = (con == NULL); + } + if (noconsole) return; + + console->reset(); + svc_console *con = console->getNext(); + while (con) { + con->outputString(severity, string); + con = console->getNext(); + } +} + +void Console::reset() { + needscan=1; +} + +int Console::needscan=1; +int Console::noconsole=0; + +ConsoleEnum *Console::console = NULL; diff --git a/Src/Wasabi/api/console/console.h b/Src/Wasabi/api/console/console.h new file mode 100644 index 00000000..bece619d --- /dev/null +++ b/Src/Wasabi/api/console/console.h @@ -0,0 +1,19 @@ +#ifndef __CONSOLE_H +#define __CONSOLE_H + +class ConsoleEnum; + +class Console { + public: + + static void outputString(int severity, const char *string); + static void reset(); + + private: + + static ConsoleEnum *console; + static int needscan; + static int noconsole; +}; + +#endif |