]> git.donarmstrong.com Git - kiibohd-controller.git/blobdiff - Debug/cli/cli.h
Add CLI History
[kiibohd-controller.git] / Debug / cli / cli.h
index d18cae6f2a03b341bfa1395d14a417ca398b267e..ab96fb227242a5faa029dbf4738d1aace2bc8369 100644 (file)
@@ -36,7 +36,7 @@
 #define CLILineBufferMaxSize 100
 #define CLIMaxDictionaries   10
 #define CLIEntryTabAlign     13
-
+#define CLIMaxHistorySize    10
 
 
 // ----- Macros -----
@@ -67,6 +67,8 @@
        const char name##CLIDict_DescEntry[] = description;
 #endif
 
+#define RING_PREV(i) wrap(i-1,0,CLIMaxHistorySize-1)
+#define RING_NEXT(i) wrap(i+1,0,CLIMaxHistorySize-1)
 
 
 // ----- Structs -----
@@ -90,6 +92,13 @@ CLIDictItem *CLIDict     [CLIMaxDictionaries];
 char*        CLIDictNames[CLIMaxDictionaries];
 uint8_t      CLIDictionariesUsed;
 
+// History
+char CLIHistoryBuffer[CLIMaxHistorySize][CLILineBufferMaxSize];
+uint8_t CLIHistoryHead;
+uint8_t CLIHistoryTail;
+int8_t CLIHistoryCurrent;
+
+// Debug
 uint8_t CLILEDState;
 uint8_t CLIHexDebugMode;
 
@@ -102,8 +111,11 @@ void CLI_process();
 void CLI_registerDictionary( const CLIDictItem *cmdDict, const char* dictName );
 void CLI_argumentIsolation( char* string, char** first, char** second );
 
+int wrap( int x, int low, int high );
 void CLI_commandLookup();
 void CLI_tabCompletion();
+void cli_saveHistory( char *buff );
+void cli_retreiveHistory( int index );
 
 // CLI Command Functions
 void cliFunc_arch    ( char* args );