diff --git a/src/lib/backup/backup.ts b/src/lib/backup/backup.ts index 82a9eb97..e523f924 100644 --- a/src/lib/backup/backup.ts +++ b/src/lib/backup/backup.ts @@ -96,7 +96,12 @@ export function restoreFromFile( case "backup": { const recent = file.history[0]; if (!recent) return; - if (recent[1].device !== get(serialPort)?.device) { + let backupDevice = recent[1].device; + if (backupDevice === "TWO") backupDevice = "ONE"; + let currentDevice = get(serialPort)?.device; + if (currentDevice === "TWO") currentDevice = "ONE"; + + if (backupDevice !== currentDevice) { alert("Backup is incompatible with this device"); throw new Error("Backup is incompatible with this device"); } diff --git a/src/lib/components/layout/Layout.svelte b/src/lib/components/layout/Layout.svelte index 249d922e..91a726cd 100644 --- a/src/lib/components/layout/Layout.svelte +++ b/src/lib/components/layout/Layout.svelte @@ -21,6 +21,10 @@ import("$lib/assets/layouts/one.yml").then( (it) => it.default as VisualLayout, ), + TWO: () => + import("$lib/assets/layouts/one.yml").then( + (it) => it.default as VisualLayout, + ), LITE: () => import("$lib/assets/layouts/lite.yml").then( (it) => it.default as VisualLayout, diff --git a/src/lib/serial/device.ts b/src/lib/serial/device.ts index 6e1f11e9..ffc69c51 100644 --- a/src/lib/serial/device.ts +++ b/src/lib/serial/device.ts @@ -12,6 +12,7 @@ import { browser } from "$app/environment"; const PORT_FILTERS: Map = new Map([ ["ONE M0", { usbProductId: 32783, usbVendorId: 9114 }], + ["TWO S3", { usbProductId: 0x0056, usbVendorId: 0x2886}], ["LITE S2", { usbProductId: 33070, usbVendorId: 12346 }], ["LITE M0", { usbProductId: 32796, usbVendorId: 9114 }], ["X", { usbProductId: 33163, usbVendorId: 12346 }], @@ -87,8 +88,8 @@ export class CharaDevice { version!: SemVer; company!: "CHARACHORDER"; - device!: "ONE" | "LITE" | "X"; - chipset!: "M0" | "S2"; + device!: "ONE" | "TWO" | "LITE" | "X"; + chipset!: "M0" | "S2" | "S3"; keyCount!: 90 | 67 | 256; get portInfo() {