diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000..154f627 Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/src-slider_io/src/output/config.rs b/src-slider_io/src/output/config.rs index 613ae92..f1690b0 100644 --- a/src-slider_io/src/output/config.rs +++ b/src-slider_io/src/output/config.rs @@ -14,6 +14,7 @@ pub enum KeyboardLayout { Tasoller, Yuancon, Umiguri, + PDFTA, TasollerHalf, EightK, SixK, @@ -140,6 +141,12 @@ impl OutputMode { sensitivity: u8::try_from(v["keyboardSensitivity"].as_i64()?).ok()?, direct_input: v["keyboardDirectInput"].as_bool()?, }, + "kb-pdfta" => OutputMode::Keyboard { + layout: KeyboardLayout::PDFTA, + polling: PollingRate::from_str(v["outputPolling"].as_str()?)?, + sensitivity: u8::try_from(v["keyboardSensitivity"].as_i64()?).ok()?, + direct_input: v["keyboardDirectInput"].as_bool()?, + }, "gamepad-voltex" => OutputMode::Gamepad { layout: GamepadLayout::Voltex, polling: PollingRate::from_str(v["outputPolling"].as_str()?)?, diff --git a/src-slider_io/src/output/keyboard.rs b/src-slider_io/src/output/keyboard.rs index 9f0e69c..2937ede 100644 --- a/src-slider_io/src/output/keyboard.rs +++ b/src-slider_io/src/output/keyboard.rs @@ -42,6 +42,26 @@ const UMIGURI_KB_MAP: [usize; 41] = [ 0x50, 0xbc, 0xbe, // P, VK_OEM_COMMA, VK_OEM_PERIOD, 0x0d, 0x20, 0x1b // VK_RETURN, VK_SPACE, VK_ESCAPE ]; +#[rustfmt::skip] +const PDFTA_KB_MAP: [usize; 41] = [ + 0x5a /* Z */, 0x50 /* P */, + 0x5a /* Z */, 0x50 /* P */, + 0x5a /* Z */, 0x4F /* O */, + 0x5a /* Z */, 0x4F /* O */, + 0x58 /* X */, 0x49 /* I */, + 0x58 /* X */, 0x49 /* I */, + 0x58 /* X */, 0x55 /* U */, + 0x58 /* X */, 0x55 /* U */, + 0x43 /* C */, 0x52 /* R */, + 0x43 /* C */, 0x52 /* R */, + 0x43 /* C */, 0x45 /* E */, + 0x43 /* C */, 0x45 /* E */, + 0x56 /* V */, 0x57 /* W */, + 0x56 /* V */, 0x57 /* W */, + 0x56 /* V */, 0x51 /* Q */, + 0x56 /* V */, 0x51 /* Q */, + 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b, 0x1b // VK_ESCAPE +]; #[rustfmt::skip] const TASOLLER_HALF_KB_MAP: [usize; 41] = [ @@ -150,6 +170,7 @@ impl KeyboardOutput { KeyboardLayout::Tasoller => &TASOLLER_KB_MAP, KeyboardLayout::Yuancon => &YUANCON_KB_MAP, KeyboardLayout::Umiguri => &UMIGURI_KB_MAP, + KeyboardLayout::PDFTA => &PDFTA_KB_MAP, KeyboardLayout::TasollerHalf => &TASOLLER_HALF_KB_MAP, KeyboardLayout::EightK => &EIGHT_K_MAP, KeyboardLayout::SixK => &SIX_K_MAP, diff --git a/src/App.svelte b/src/App.svelte index 465d59d..b09cd46 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -27,6 +27,7 @@ let ledWebsocketUrl = "http://localhost:3001"; let ledUmgrWebsocketPort = 7124; let ledSerialPort = "COM5"; + let hideByDefault = false; let dirty = false; @@ -41,6 +42,7 @@ let tick = 0; let previewData = Array(131).fill(0); let timerData = ""; + let initStart = true; function updatePolling(enabled) { if (!!polling) { @@ -85,6 +87,11 @@ ledWebsocketUrl = payload.ledWebsocketUrl || "http://localhost:3001"; ledUmgrWebsocketPort = payload.ledUmgrWebsocketPort || 7124; ledSerialPort = payload.ledSerialPort || "COM5"; + hideByDefault = payload.hideByDefault || false; + if (hideByDefault && initStart) { + hide(); + } + initStart = false; }); await listen("showState", (event) => { @@ -143,6 +150,7 @@ ledWebsocketUrl, ledUmgrWebsocketPort, ledSerialPort, + hideByDefault, }) ); dirty = false; @@ -319,7 +327,8 @@ - + + @@ -611,6 +620,21 @@ {/if} +