switch support: it somewhat works ™️

This commit is contained in:
OniriCorpe 2025-06-12 21:04:43 +02:00
parent c3d9294019
commit 85e15a0955

View file

@ -6,8 +6,8 @@
// The thresholds are also dependent on SAMPLE_CACHE_LENGTH, if you
// changed SAMPLE_CACHE_LENGTH, you should also adjust thresholds
#define HIT_THRES 300
#define RESET_THRES 70
#define HIT_THRES 400
#define RESET_THRES 80
// Sampling period in μs, e.g., 500μs = 0.5ms = 2000Hz
#define SAMPLING_PERIOD 500
@ -37,9 +37,10 @@
#define R_KAT_KEY 'k'
// Switch controller output for each channel
#define L_DON_KEY_NS NSGAMEPAD_DPAD_RIGHT
// this default config should work for all the 3 game settings
#define L_DON_KEY_NS NSGAMEPAD_DPAD_DOWN
#define L_KAT_KEY_NS NSButton_LeftTrigger
#define R_DON_KEY_NS NSButton_A
#define R_DON_KEY_NS NSButton_B
#define R_KAT_KEY_NS NSButton_RightTrigger
// Enable debug mode to view analog input values from the Serial
@ -101,6 +102,9 @@ void loop() {
if (maxIndex != -1 && lastPower[maxIndex] < RESET_THRES) {
triggered = false;
digitalWrite(outPins[maxIndex], LOW);
if (controller_mode) {
Gamepad.releaseAll();
}
maxIndex = -1;
maxPower = 0;
}
@ -126,7 +130,12 @@ void loop() {
digitalWrite(outPins[maxIndex], HIGH);
#if !DEBUG
if (controller_mode) {
// special case for the DPAD
if (maxIndex == 0) {
Gamepad.dPad(outKeysNS[maxIndex]);
} else {
Gamepad.press(outKeysNS[maxIndex]);
}
Gamepad.loop();
} else {
Keyboard.write(outKeys[maxIndex]);