MCPcopy Create free account
hub / github.com/kiibohd/controller / LCD_layerStack_capability

Function LCD_layerStack_capability

Scan/Devices/STLcd/lcd_scan.c:672–735  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

670uint16_t LCD_layerStack_prevSize = 0;
671uint16_t LCD_layerStack_prevTop = 0;
672void LCD_layerStack_capability( TriggerMacro *trigger, uint8_t state, uint8_t stateType, uint8_t *args )
673{
674 CapabilityState cstate = KLL_CapabilityState( state, stateType );
675
676 switch ( cstate )
677 {
678 case CapabilityState_Initial:
679 case CapabilityState_Any:
680 case CapabilityState_Last:
681 // Press/Hold/Release
682 break;
683 case CapabilityState_Debug:
684 // Display capability name
685 print("LCD_layerStack_capability()");
686 return;
687 default:
688 return;
689 }
690
691 // Parse the layer stack, top to bottom
692 extern uint16_t macroLayerIndexStack[];
693 extern uint16_t macroLayerIndexStackSize;
694
695 // Ignore if the stack size hasn't changed and the top of the stack is the same
696 if ( macroLayerIndexStackSize == LCD_layerStack_prevSize
697 && macroLayerIndexStack[macroLayerIndexStackSize - 1] == LCD_layerStack_prevTop )
698 {
699 return;
700 }
701 LCD_layerStack_prevSize = macroLayerIndexStackSize;
702 LCD_layerStack_prevTop = macroLayerIndexStack[macroLayerIndexStackSize - 1];
703
704 LCD_layerStackExact_args stack_args;
705 memset( stack_args.layers, 0, sizeof( stack_args.layers ) );
706
707 // Use the LCD_layerStackExact_capability to set the LCD using the determined stack
708 // Construct argument set for capability
709 stack_args.numArgs = macroLayerIndexStackSize;
710 for ( uint16_t layer = 1; layer <= macroLayerIndexStackSize; layer++ )
711 {
712 stack_args.layers[ layer - 1 ] = macroLayerIndexStack[ macroLayerIndexStackSize - layer ];
713 }
714
715 // Only deal with the interconnect if it has been compiled in
716#if defined(ConnectEnabled_define)
717 if ( Connect_master )
718 {
719 // generatedKeymap.h
720 extern const Capability CapabilitiesList[];
721
722 // Broadcast layerStackExact remote capability (0xFF is the broadcast id)
723 Connect_send_RemoteCapability(
724 0xFF,
725 LCD_layerStackExact_capability_index,
726 state,
727 stateType,
728 CapabilitiesList[ LCD_layerStackExact_capability_index ].argCount,
729 (uint8_t*)&stack_args

Callers

nothing calls this directly

Calls 4

KLL_CapabilityStateFunction · 0.85
memsetFunction · 0.50

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…