Browse Source

Adding layerDebug cli command

- Useful when trying to report layer stacking bugs
- Or at least getting unconfused about what's happening with the layers
connect
Jacob Alexander 9 years ago
parent
commit
99098fb2d6
1 changed files with 40 additions and 0 deletions
  1. 40
    0
      Macro/PartialMap/macro.c

+ 40
- 0
Macro/PartialMap/macro.c View File

void cliFunc_keyHold ( char* args ); void cliFunc_keyHold ( char* args );
void cliFunc_keyPress ( char* args ); void cliFunc_keyPress ( char* args );
void cliFunc_keyRelease( char* args ); void cliFunc_keyRelease( char* args );
void cliFunc_layerDebug( char* args );
void cliFunc_layerList ( char* args ); void cliFunc_layerList ( char* args );
void cliFunc_layerState( char* args ); void cliFunc_layerState( char* args );
void cliFunc_macroDebug( char* args ); void cliFunc_macroDebug( char* args );
CLIDict_Entry( keyHold, "Send key-hold events to the macro module. Duplicates have undefined behaviour." NL "\t\t\033[35mS10\033[0m Scancode 0x0A" ); CLIDict_Entry( keyHold, "Send key-hold events to the macro module. Duplicates have undefined behaviour." NL "\t\t\033[35mS10\033[0m Scancode 0x0A" );
CLIDict_Entry( keyPress, "Send key-press events to the macro module. Duplicates have undefined behaviour." NL "\t\t\033[35mS10\033[0m Scancode 0x0A" ); CLIDict_Entry( keyPress, "Send key-press events to the macro module. Duplicates have undefined behaviour." NL "\t\t\033[35mS10\033[0m Scancode 0x0A" );
CLIDict_Entry( keyRelease, "Send key-release event to macro module. Duplicates have undefined behaviour." NL "\t\t\033[35mS10\033[0m Scancode 0x0A" ); CLIDict_Entry( keyRelease, "Send key-release event to macro module. Duplicates have undefined behaviour." NL "\t\t\033[35mS10\033[0m Scancode 0x0A" );
CLIDict_Entry( layerDebug, "Layer debug mode. Shows layer stack and any changes." );
CLIDict_Entry( layerList, "List available layers." ); CLIDict_Entry( layerList, "List available layers." );
CLIDict_Entry( layerState, "Modify specified indexed layer state <layer> <state byte>." NL "\t\t\033[35mL2\033[0m Indexed Layer 0x02" NL "\t\t0 Off, 1 Shift, 2 Latch, 4 Lock States" ); CLIDict_Entry( layerState, "Modify specified indexed layer state <layer> <state byte>." NL "\t\t\033[35mL2\033[0m Indexed Layer 0x02" NL "\t\t0 Off, 1 Shift, 2 Latch, 4 Lock States" );
CLIDict_Entry( macroDebug, "Disables/Enables sending USB keycodes to the Output Module and prints U/K codes." ); CLIDict_Entry( macroDebug, "Disables/Enables sending USB keycodes to the Output Module and prints U/K codes." );
CLIDict_Item( keyHold ), CLIDict_Item( keyHold ),
CLIDict_Item( keyPress ), CLIDict_Item( keyPress ),
CLIDict_Item( keyRelease ), CLIDict_Item( keyRelease ),
CLIDict_Item( layerDebug ),
CLIDict_Item( layerList ), CLIDict_Item( layerList ),
CLIDict_Item( layerState ), CLIDict_Item( layerState ),
CLIDict_Item( macroDebug ), CLIDict_Item( macroDebug ),
}; };




// Layer debug flag - If set, displays any changes to layers and the full layer stack on change
uint8_t layerDebugMode = 0;

// Macro debug flag - If set, clears the USB Buffers after signalling processing completion // Macro debug flag - If set, clears the USB Buffers after signalling processing completion
uint8_t macroDebugMode = 0; uint8_t macroDebugMode = 0;


// Reduce LayerIndexStack size // Reduce LayerIndexStack size
macroLayerIndexStackSize--; macroLayerIndexStackSize--;
} }

// Layer Debug Mode
if ( layerDebugMode )
{
dbug_msg("Layer ");

// Iterate over each of the layers displaying the state as a hex value
for ( uint16_t index = 0; index < LayerNum; index++ )
{
printHex_op( LayerState[ index ], 0 );
}

// Always show the default layer (it's always 0)
print(" 0");

// Iterate over the layer stack starting from the bottom of the stack
for ( uint16_t index = 0; index < macroLayerIndexStackSize; index++ )
{
print(":");
printHex_op( macroLayerIndexStack[ index ], 0 );
}

print( NL );
}
} }


// Modifies the specified Layer control byte // Modifies the specified Layer control byte
} }
} }


void cliFunc_layerDebug( char *args )
{
// Toggle layer debug mode
layerDebugMode = layerDebugMode ? 0 : 1;

print( NL );
info_msg("Layer Debug Mode: ");
printInt8( layerDebugMode );
}

void cliFunc_layerList( char* args ) void cliFunc_layerList( char* args )
{ {
print( NL ); print( NL );