void main(void) { init(); while(!greenButton) {} while(greenButton) {} switchDelay(); while(1 != 2) { State = ((~PORTE) & 0b00000111); PORTB = State; switch(State) { case 1: Mode1(); break; case 2: Mode2(); break; case 3: Mode3(); break; default: error(); } } }
void waitPress(void) { while(1 != 2) { if(greenButton) { while(greenButton) {} switchDelay(); green = 1; break; } else if(redButton) { while(redButton) {} switchDelay(); green = 0; break; } } }
void Mode3(void) { while(1 != 2) // infinte loop { error1 = 10; error2 = 10; error3 = 2; waitPress(); Count = AtoD(); mainTran = 1; while(!engaged) { longTimer(); error1--; if(error1 == 0) { error(); } } secTran = 1; switchDelay(); mainTran = 0; while(Count > 0) { longTimer(); // 1s delay loop if(!engaged) { error3--; if(error3 == 0) { error(); } mainTran = 1; SwitchDelay(); mainTran = 0; } Count--; } secTran = 0; while(engaged) { longTimer(); error2--; if(error2 == 0) { error(); } } } }
void ServerConfig::saveSettings() { settings().beginGroup("internalConfig"); settings().remove(""); settings().setValue("numColumns", numColumns()); settings().setValue("numRows", numRows()); settings().setValue("hasHeartbeat", hasHeartbeat()); settings().setValue("heartbeat", heartbeat()); settings().setValue("relativeMouseMoves", relativeMouseMoves()); settings().setValue("screenSaverSync", screenSaverSync()); settings().setValue("win32KeepForeground", win32KeepForeground()); settings().setValue("hasSwitchDelay", hasSwitchDelay()); settings().setValue("switchDelay", switchDelay()); settings().setValue("hasSwitchDoubleTap", hasSwitchDoubleTap()); settings().setValue("switchDoubleTap", switchDoubleTap()); settings().setValue("switchCornerSize", switchCornerSize()); settings().setValue("ignoreAutoConnectClient", ignoreAutoConnectClient()); writeSettings(settings(), switchCorners(), "switchCorner"); settings().beginWriteArray("screens"); for (int i = 0; i < screens().size(); i++) { settings().setArrayIndex(i); screens()[i].saveSettings(settings()); } settings().endArray(); settings().beginWriteArray("hotkeys"); for (int i = 0; i < hotkeys().size(); i++) { settings().setArrayIndex(i); hotkeys()[i].saveSettings(settings()); } settings().endArray(); settings().endGroup(); }
static int8_t processKeys(const uint8_t* current, uint8_t* processed, uint8_t* report) { int8_t xmit; if (!memcmp(current, processed, 8)) return XMIT_NONE; memset(report, 0, 8); if (current[1] & MOD_FN) { uint8_t modifiers = current[0]; uint8_t count = 2; xmit = XMIT_NORMAL; for (int8_t i = 2; i < 8 && xmit == XMIT_NORMAL; ++i) { uint8_t code = current[i]; const uint8_t* a = getKeyFn(code); for (int8_t j = 0; j < 3 && count < 8; ++j) { uint8_t key = a[j]; int8_t make = !memchr(processed + 2, code, 6); switch (key) { case 0: break; case KEY_F1: if (make) { #ifdef WITH_HOS if (current[0] & MOD_SHIFT) { switchProfile(1); modifiers &= ~(MOD_CONTROL | MOD_SHIFT); xmit = XMIT_BRK; } else #endif { about(); xmit = XMIT_MACRO; } } break; case KEY_F2: if (make) { #ifdef WITH_HOS if (current[0] & MOD_SHIFT) { switchProfile(2); modifiers &= ~(MOD_CONTROL | MOD_SHIFT); xmit = XMIT_BRK; } else #endif { switchOS(); xmit = XMIT_MACRO; } } break; case KEY_F3: if (make) { #ifdef WITH_HOS if (current[0] & MOD_SHIFT) { switchProfile(3); modifiers &= ~(MOD_CONTROL | MOD_SHIFT); xmit = XMIT_BRK; } else #endif { switchBase(); xmit = XMIT_MACRO; } } break; case KEY_F4: if (make) { #ifdef WITH_HOS if (current[0] & MOD_SHIFT) { switchProfile(0); modifiers &= ~(MOD_CONTROL | MOD_SHIFT); xmit = XMIT_BRK; } else #endif { switchKana(); xmit = XMIT_MACRO; } } break; case KEY_F5: if (make) { switchDelay(); xmit = XMIT_MACRO; } break; case KEY_F6: if (make) { switchMod(); xmit = XMIT_MACRO; } break; case KEY_F7: if (make) { switchIME(); xmit = XMIT_MACRO; } break; case KEY_F8: if (make) { switchLED(); xmit = XMIT_MACRO; } break; case KEY_F9: if (make) { switchPrefixShift(); xmit = XMIT_MACRO; } break; case KEY_LEFTCONTROL: modifiers |= MOD_LEFTCONTROL; break; case KEY_RIGHTCONTROL: modifiers |= MOD_RIGHTCONTROL; break; case KEY_LEFTSHIFT: modifiers |= MOD_LEFTSHIFT; break; case KEY_RIGHTSHIFT: modifiers |= MOD_RIGHTSHIFT; break; #ifdef WITH_HOS case KEY_ESCAPE: if (make) { if (!isUSBMode() && (current[0] & MOD_SHIFT)) { HosSetEvent(HOS_TYPE_DEFAULT, HOS_EVENT_CLEAR_BONDING_DATA); modifiers &= ~(MOD_CONTROL | MOD_SHIFT); xmit = XMIT_BRK; } else { key = toggleKanaMode(key, current[0], make); report[count++] = key; } } break; #endif default: key = toggleKanaMode(key, current[0], make); report[count++] = key; break; } } } #ifdef WITH_HOS if (count == 2) { modifiers &= ~MOD_SHIFT; } #endif report[0] = modifiers; } else if (isKanaMode(current)) xmit = processKeysKana(current, processed, report); else xmit = processKeysBase(current, processed, report); #ifdef ENABLE_DUAL_ROLE_FN if (isDualRoleFnMod()) { if ((current[1] ^ processed[1]) & MOD_FN) { modFn = (current[1] & MOD_FN); if (modFn) { dualFn = modFn; } else if (dualFn && xmit == XMIT_NORMAL && !report[2]) { uint8_t key = (dualFn & MOD_RIGHTFN) ? KEY_LANG1 : KEY_LANG2; key = toggleKanaMode(key, current[0], 1); report[2] = key; memmove(processed, current, 8); processed[1] |= dualFn; dualFn = 0; return xmit; } } if (dualFn && (xmit != XMIT_NORMAL || report[2])) { dualFn = 0; } } #endif if (xmit == XMIT_NORMAL || xmit == XMIT_IN_ORDER || xmit == XMIT_MACRO) memmove(processed, current, 8); return xmit; }