]> git.donarmstrong.com Git - kiibohd-controller.git/blobdiff - Debug/cli/cli.h
Code cleanup
[kiibohd-controller.git] / Debug / cli / cli.h
index d18cae6f2a03b341bfa1395d14a417ca398b267e..97efd8aa6f80032cd6cccda47f79bcfe5c699064 100644 (file)
@@ -19,8 +19,7 @@
  * THE SOFTWARE.
  */
 
-#ifndef cli_h__
-#define cli_h__
+#pragma once
 
 // ----- Includes -----
 
@@ -36,7 +35,7 @@
 #define CLILineBufferMaxSize 100
 #define CLIMaxDictionaries   10
 #define CLIEntryTabAlign     13
-
+#define CLIMaxHistorySize    10
 
 
 // ----- Macros -----
@@ -55,7 +54,7 @@
        const PROGMEM char name##CLIDict_DescEntry[] = description;
 
 // ARM is easy :P
-#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM
+#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) || defined(_mk20dx256vlh7_) // ARM
 #define CLIDict_Def(name,description) \
        const char name##Name[] = description; \
        const CLIDictItem name[]
@@ -67,6 +66,8 @@
        const char name##CLIDict_DescEntry[] = description;
 #endif
 
+#define RING_PREV(i) CLI_wrap(i - 1, 0, CLIMaxHistorySize - 1)
+#define RING_NEXT(i) CLI_wrap(i + 1, 0, CLIMaxHistorySize - 1)
 
 
 // ----- Structs -----
@@ -90,6 +91,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 +110,11 @@ void CLI_process();
 void CLI_registerDictionary( const CLIDictItem *cmdDict, const char* dictName );
 void CLI_argumentIsolation( char* string, char** first, char** second );
 
+int CLI_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 );
@@ -118,6 +129,3 @@ void cliFunc_reset   ( char* args );
 void cliFunc_restart ( char* args );
 void cliFunc_version ( char* args );
 
-
-#endif
-