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

Function Trigger_evalShortTriggerMacroVote

Macro/PartialMap/trigger.c:224–390  ·  view source on GitHub ↗

Votes on the given key vs. guide, short macros

Source from the content-addressed store, hash-verified

222
223// Votes on the given key vs. guide, short macros
224TriggerMacroVote Trigger_evalShortTriggerMacroVote( TriggerEvent *event, TriggerGuide *guide, TriggerMacroVote *cur_vote )
225{
226 // Lookup full index
227 var_uint_t guide_index = KLL_TriggerIndex_loopkup( guide->type, guide->scanCode );
228 var_uint_t event_index = KLL_TriggerIndex_loopkup( event->type, event->index );
229
230 // Return value
231 TriggerMacroVote vote = TriggerMacroVote_Invalid;
232
233 // Depending on key type
234 switch ( guide->type )
235 {
236 // Normal State Type
237 case TriggerType_Switch1:
238 case TriggerType_Switch2:
239 case TriggerType_Switch3:
240 case TriggerType_Switch4:
241 // LED State Type
242 case TriggerType_LED1:
243 // Layer State Type
244 case TriggerType_Layer1:
245 case TriggerType_Layer2:
246 case TriggerType_Layer3:
247 case TriggerType_Layer4:
248 // Activity State Types
249 case TriggerType_Sleep1:
250 case TriggerType_Resume1:
251 case TriggerType_Inactive1:
252 case TriggerType_Active1:
253 // For short TriggerMacros completely ignore incorrect keys
254 // Only monitor 0x70 bits if set in the guide, otherwise ensure they are 0x00
255 // Used for Layer state information
256 if (
257 guide_index == event_index &&
258 guide->type == event->type &&
259 (
260 (guide->state & 0x70) == (event->state & 0x70) ||
261 (guide->state & 0x70) == 0x00
262 )
263 )
264 {
265 // If this trigger is generic, we can just vote based on the incoming state
266 if ( guide->state & ScheduleType_Gen )
267 {
268 vote = Trigger_evalShortTriggerMacroVote_PHRO( event->state );
269 break;
270 }
271
272 // TODO (HaaTa) Implement state scheduling
273 erro_printNL("State Scheduling not implemented yet...");
274 }
275
276 vote = TriggerMacroVote_DoNothing;
277 break;
278
279 /*
280 // LED State Type
281 case TriggerType_LED1:

Callers 1

Trigger_overallVoteFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…