console.h
changeset 220 dc1710f96b39
parent 205 49e96fd94d63
child 222 b88456001397
equal deleted inserted replaced
219:adfdf7fad721 220:dc1710f96b39
     1 #ifndef CONSOLE_H
     1 #ifndef CONSOLE_H
     2 #define CONSOLE_H
     2 #define CONSOLE_H
       
     3 
     3 // ** console ** //
     4 // ** console ** //
     4 
     5 
     5 enum {
     6 enum {
     6 	ICONSOLE_OPENED=0,
     7 	ICONSOLE_OPENED=0,
     7 	ICONSOLE_CLOSED,
     8 	ICONSOLE_CLOSED,
    18 	ICONSOLE_VAR_INT16,
    19 	ICONSOLE_VAR_INT16,
    19 	ICONSOLE_VAR_INT32,
    20 	ICONSOLE_VAR_INT32,
    20 	ICONSOLE_VAR_STRING,
    21 	ICONSOLE_VAR_STRING,
    21 	ICONSOLE_VAR_POINTER,
    22 	ICONSOLE_VAR_POINTER,
    22 	ICONSOLE_VAR_REFERENCE,
    23 	ICONSOLE_VAR_REFERENCE,
    23 	ICONSOLE_VAR_UNKNOWN
    24 	ICONSOLE_VAR_UNKNOWN,
    24 } _iconsole_var_types;
    25 } _iconsole_var_types;
       
    26 
       
    27 enum {
       
    28 	ICONSOLE_HOOK_ACCESS,
       
    29 	ICONSOLE_HOOK_BEFORE_CHANGE,
       
    30 	ICONSOLE_HOOK_BEFORE_EXEC,
       
    31 	ICONSOLE_HOOK_AFTER_CHANGE,
       
    32 	ICONSOLE_HOOK_AFTER_EXEC,
       
    33 } _iconsole_hook_types;
    25 
    34 
    26 typedef struct {
    35 typedef struct {
    27 	// -------------- //
    36 	// -------------- //
    28 	void * addr;
    37 	void * addr;
    29 	byte * name;
    38 	byte * name;
       
    39 	// -------------- //
       
    40 	void * hook_access;
       
    41 	void * hook_before_exec;
       
    42 	void * hook_after_exec;
    30 	// -------------- //
    43 	// -------------- //
    31 	void * _next;
    44 	void * _next;
    32 	} _iconsole_cmd;
    45 	} _iconsole_cmd;
    33 
    46 
    34 typedef struct {
    47 typedef struct {
    35 	// --------------- //
    48 	// --------------- //
    36 	void * addr;
    49 	void * addr;
    37 	byte * name;
    50 	byte * name;
    38 	byte type;
    51 	byte type;
    39 	// -------------- //
    52 	// -------------- //
       
    53 	void * hook_access;
       
    54 	void * hook_before_change;
       
    55 	void * hook_after_change;
       
    56 	// -------------- //
    40 	void * _next;
    57 	void * _next;
    41 	bool _malloc;
    58 	bool _malloc;
    42 	} _iconsole_var;
    59 	} _iconsole_var;
       
    60 
       
    61 // ** console parser ** //
       
    62 
       
    63 _iconsole_cmd * _iconsole_cmds; // list of registred commands
       
    64 _iconsole_var * _iconsole_vars; // list of registred vars
    43 
    65 
    44 // ** console colors ** //
    66 // ** console colors ** //
    45 VARDEF byte _iconsole_color_default;
    67 VARDEF byte _iconsole_color_default;
    46 VARDEF byte _iconsole_color_error;
    68 VARDEF byte _iconsole_color_error;
    47 VARDEF byte _iconsole_color_debug;
    69 VARDEF byte _iconsole_color_debug;
    48 VARDEF byte _iconsole_color_commands;
    70 VARDEF byte _iconsole_color_commands;
    49 
    71 
    50 // ** ttd.c functions ** //
    72 // ** ttd.c functions ** //
       
    73 
    51 void SetDebugString(const char *s);
    74 void SetDebugString(const char *s);
    52 
    75 
    53 // ** console functions ** //
    76 // ** console functions ** //
    54 
    77 
    55 void IConsoleClearCommand();
    78 void IConsoleClearCommand();
    77 void* IConsoleCmdGetAddr(byte * name);
   100 void* IConsoleCmdGetAddr(byte * name);
    78 
   101 
    79 // *** Variables *** //
   102 // *** Variables *** //
    80 
   103 
    81 void IConsoleVarRegister(byte * name, void * addr, byte type);
   104 void IConsoleVarRegister(byte * name, void * addr, byte type);
       
   105 void IConsoleVarMemRegister(byte * name, byte type);
    82 void IConsoleVarInsert(_iconsole_var * var, byte * name);
   106 void IConsoleVarInsert(_iconsole_var * var, byte * name);
    83 _iconsole_var * IConsoleVarGet(byte * name);
   107 _iconsole_var * IConsoleVarGet(byte * name);
    84 _iconsole_var * IConsoleVarAlloc(byte type);
   108 _iconsole_var * IConsoleVarAlloc(byte type);
    85 void IConsoleVarFree(_iconsole_var * var);
   109 void IConsoleVarFree(_iconsole_var * var);
    86 void IConsoleVarSetString(_iconsole_var * var, byte * string);
   110 void IConsoleVarSetString(_iconsole_var * var, byte * string);
    89 
   113 
    90 // *** Parser *** //
   114 // *** Parser *** //
    91 
   115 
    92 void IConsoleCmdExec(byte * cmdstr);
   116 void IConsoleCmdExec(byte * cmdstr);
    93 
   117 
    94 #include "console_cmds.h"
   118 // ** console std lib ** //
       
   119 void IConsoleStdLibRegister();
       
   120 
       
   121 // ** hook code ** //
       
   122 void IConsoleVarHook(byte * name, byte type, void * proc);
       
   123 void IConsoleCmdHook(byte * name, byte type, void * proc);
       
   124 bool IConsoleVarHookHandle(_iconsole_var * hook_var, byte type);
       
   125 bool IConsoleCmdHookHandle(_iconsole_cmd * hook_cmd, byte type);
       
   126 
    95 
   127 
    96 #endif /* CONSOLE_H */
   128 #endif /* CONSOLE_H */