|
|
@ -34,38 +34,38 @@ const MagicCombo::dictionary_t *MagicCombo::dictionary;
|
|
|
|
uint16_t MagicCombo::minInterval = 500;
|
|
|
|
uint16_t MagicCombo::minInterval = 500;
|
|
|
|
uint32_t MagicCombo::endTime;
|
|
|
|
uint32_t MagicCombo::endTime;
|
|
|
|
|
|
|
|
|
|
|
|
MagicCombo::MagicCombo (void) {
|
|
|
|
MagicCombo::MagicCombo(void) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
|
MagicCombo::begin (void) {
|
|
|
|
MagicCombo::begin(void) {
|
|
|
|
loop_hook_use (this->loopHook);
|
|
|
|
loop_hook_use(this->loopHook);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
|
MagicCombo::configure (const MagicCombo::dictionary_t dictionary_[]) {
|
|
|
|
MagicCombo::configure(const MagicCombo::dictionary_t dictionary_[]) {
|
|
|
|
dictionary = (dictionary_t *)dictionary_;
|
|
|
|
dictionary = (dictionary_t *)dictionary_;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
|
MagicCombo::loopHook (bool postClear) {
|
|
|
|
MagicCombo::loopHook(bool postClear) {
|
|
|
|
if (!dictionary || postClear)
|
|
|
|
if (!dictionary || postClear)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
for (byte i = 0;; i++) {
|
|
|
|
for (byte i = 0;; i++) {
|
|
|
|
dictionary_t combo;
|
|
|
|
dictionary_t combo;
|
|
|
|
|
|
|
|
|
|
|
|
combo.leftHand = pgm_read_dword (&(dictionary[i].leftHand));
|
|
|
|
combo.leftHand = pgm_read_dword(&(dictionary[i].leftHand));
|
|
|
|
combo.rightHand = pgm_read_dword (&(dictionary[i].rightHand));
|
|
|
|
combo.rightHand = pgm_read_dword(&(dictionary[i].rightHand));
|
|
|
|
|
|
|
|
|
|
|
|
if (combo.leftHand == 0 && combo.rightHand == 0)
|
|
|
|
if (combo.leftHand == 0 && combo.rightHand == 0)
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
if (LEFTHANDSTATE.all == combo.leftHand &&
|
|
|
|
if (LEFTHANDSTATE.all == combo.leftHand &&
|
|
|
|
RIGHTHANDSTATE.all == combo.rightHand) {
|
|
|
|
RIGHTHANDSTATE.all == combo.rightHand) {
|
|
|
|
if (millis () >= endTime) {
|
|
|
|
if (millis() >= endTime) {
|
|
|
|
magicComboActions (i, combo.leftHand, combo.rightHand);
|
|
|
|
magicComboActions(i, combo.leftHand, combo.rightHand);
|
|
|
|
endTime = millis () + minInterval;
|
|
|
|
endTime = millis() + minInterval;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -76,7 +76,7 @@ MagicCombo::loopHook (bool postClear) {
|
|
|
|
|
|
|
|
|
|
|
|
__attribute__((weak))
|
|
|
|
__attribute__((weak))
|
|
|
|
void
|
|
|
|
void
|
|
|
|
magicComboActions (uint8_t comboIndex, uint32_t leftHand, uint32_t rightHand) {
|
|
|
|
magicComboActions(uint8_t comboIndex, uint32_t leftHand, uint32_t rightHand) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
KaleidoscopePlugins::MagicCombo MagicCombo;
|
|
|
|
KaleidoscopePlugins::MagicCombo MagicCombo;
|
|
|
|