// ----- Variables -----
-// Variables used to communciate to the usb module
+// Variables used to communciate to the output module
+// XXX Even if the output module is not USB, this is internally understood keymapping scheme
extern uint8_t USBKeys_Modifiers;
extern uint8_t USBKeys_Array[USB_MAX_KEY_SEND];
extern uint8_t USBKeys_Sent;
extern volatile uint8_t USBKeys_LEDs;
+extern uint8_t USBKeys_Changed;
static const uint8_t USBKeys_MaxSize = USB_MAX_KEY_SEND;
+extern volatile uint8_t USBKeys_Protocol; // 0 - Boot Mode, 1 - NKRO Mode
// Misc variables (XXX Some are only properly utilized using AVR)
-extern uint8_t USBKeys_Protocol;
extern uint8_t USBKeys_Idle_Config;
extern uint8_t USBKeys_Idle_Count;
+// ----- Capabilities -----
+
+void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
+
+
+
// ----- Functions -----
-void output_setup();
-void output_send();
+void Output_setup();
+void Output_send();
-void output_firmwareReload();
-void output_softReset();
+void Output_firmwareReload();
+void Output_softReset();
// Relies on USB serial module
-unsigned int output_availablechar();
+unsigned int Output_availablechar();
-int output_getchar();
-int output_putchar( char c );
-int output_putstr( char* str );
+int Output_getchar();
+int Output_putchar( char c );
+int Output_putstr( char* str );
#endif