return;
}
+ // Only use capability on press or release
+ // TODO Analog
+ // XXX This may cause issues, might be better to implement state table here to decide -HaaTa
+ if ( stateType == 0x00 && state == 0x02 ) // Hold condition
+ return;
+
// Get layer index from arguments
// Cast pointer to uint8_t to unsigned int then access that memory location
uint16_t layer = *(uint16_t*)(&args[0]);
return;
}
+ // Only use capability on press
+ // TODO Analog
+ // XXX To make sense, this code be on press or release. Or it could even be a sticky shift (why? dunno) -HaaTa
+ if ( stateType == 0x00 && state != 0x01 ) // All normal key conditions except press
+ return;
+
// Get layer index from arguments
// Cast pointer to uint8_t to unsigned int then access that memory location
uint16_t layer = *(uint16_t*)(&args[0]);
return;
}
+ // Only use capability on press
+ // TODO Analog
+ // XXX Could also be on release, but that's sorta dumb -HaaTa
+ if ( stateType == 0x00 && state != 0x01 ) // All normal key conditions except press
+ return;
+
// Get layer index from arguments
// Cast pointer to uint8_t to unsigned int then access that memory location
uint16_t layer = *(uint16_t*)(&args[0]);
return;
}
+ // Only use capability on press or release
+ // TODO Analog
+ if ( stateType == 0x00 && ( state == 0x00 || state == 0x02 ) ) // Only pass press or release conditions
+ return;
+
+ print("YAY");
+
// Get layer index from arguments
// Cast pointer to uint8_t to unsigned int then access that memory location
uint16_t layer = *(uint16_t*)(&args[0]);
return TriggerMacroEval_Remove;
}
// Otherwise, just remove the macro on key release
- // XXX Might cause some issues
+ // One more result has to be called to indicate to the ResultMacro that the key transitioned to the release state
else if ( overallVote & TriggerMacroVote_Release )
{
- return TriggerMacroEval_Remove;
+ return TriggerMacroEval_DoResultAndRemove;
}
// If this is a short macro, just remove it