summaryrefslogtreecommitdiff
path: root/src/common/console.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/console.h')
-rw-r--r--src/common/console.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/common/console.h b/src/common/console.h
new file mode 100644
index 000000000..d0b9e8bb1
--- /dev/null
+++ b/src/common/console.h
@@ -0,0 +1,48 @@
+// Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// See the LICENSE file
+
+#ifndef _CONSOLE_H_
+#define _CONSOLE_H_
+
+#include "../common/atomic.h"
+#include "../common/thread.h"
+#include "../common/mutex.h"
+#include "../common/spinlock.h"
+#include "../config/core.h"
+
+/**
+ * Queue Max
+ * why is there a limit, why not make it dynamic? - I'm playing it safe, I'd rather not play with memory management between threads
+ **/
+#define CONSOLE_PARSE_SIZE 10
+struct {
+ char queue[CONSOLE_PARSE_SIZE][MAX_CONSOLE_INPUT];
+ unsigned short count;
+} cinput;
+
+struct console_interface {
+ void (*init) (void);
+ void (*final) (void);
+ void (*display_title) (void);
+#ifdef CONSOLE_INPUT
+ /* vars */
+ SPIN_LOCK ptlock;/* parse thread lock */
+ rAthread pthread;/* parse thread */
+ volatile int32 ptstate;/* parse thread state */
+ ramutex ptmutex;/* parse thread mutex */
+ racond ptcond;/* parse thread cond */
+ /* */
+ void (*parse_init) (void);
+ void (*parse_final) (void);
+ int (*parse_timer) (int tid, unsigned int tick, int id, intptr_t data);
+ void *(*pthread_main) (void *x);
+ void (*parse) (char* line);
+ int (*key_pressed) (void);
+#endif
+} console_s;
+
+struct console_interface *console;
+
+void console_defaults(void);
+
+#endif /* _CONSOLE_H_ */