feat: combine save/apply

resolves #45
This commit is contained in:
2023-11-29 01:06:24 +01:00
parent 018c7a5eac
commit 3a6483aa61
7 changed files with 97 additions and 134 deletions

View File

@@ -0,0 +1,26 @@
e + b + a,babe
e + c + b,because
f + e + c + a,face
h + e + c + a,each
i + d + ',I'd
i + g + b,big
i + g + e,give
k + b + a,back
k + e + a,take
l + e + a,late
l + e + d + a,lead
l + f + e,feel
l + g + e + a,large
l + h + e,help
l + i + a,Lia
l + i + f,fill
l + i + f + e,life
l + i + g + b + a,gitlab
l + k + i + e,like
m + e + a,make
m + i + ',I'm
n + c + a,can
n + d + a,and
n + e + b,been
n + e + b + a,enable
n + e + d,end
1 e + b + a babe
2 e + c + b because
3 f + e + c + a face
4 h + e + c + a each
5 i + d + ' I'd
6 i + g + b big
7 i + g + e give
8 k + b + a back
9 k + e + a take
10 l + e + a late
11 l + e + d + a lead
12 l + f + e feel
13 l + g + e + a large
14 l + h + e help
15 l + i + a Lia
16 l + i + f fill
17 l + i + f + e life
18 l + i + g + b + a gitlab
19 l + k + i + e like
20 m + e + a make
21 m + i + ' I'm
22 n + c + a can
23 n + d + a and
24 n + e + b been
25 n + e + b + a enable
26 n + e + d end

View File

@@ -0,0 +1,26 @@
e + b + a,babe
e + c + b,because
f + e + c + a,face
h + e + c + a,each
i + d + ',I'd
i + g + b,big
i + g + e,give
k + b + a,back
k + e + a,take
l + e + a,late
l + e + d + a,lead
l + f + e,feel
l + g + e + a,large
l + h + e,help
l + i + a,Lia
l + i + f,fill
l + i + f + e,life
l + i + g + b + a,gitlab
l + k + i + e,like
m + e + a,make
m + i + ',I'm
n + c + a,can
n + d + a,and
n + e + b,been
n + e + b + a,enable
n + e + d,end

View File

@@ -0,0 +1,21 @@
import { KEYMAP_IDS } from "$lib/serial/keymap-codes"
import type { CharaChordFile } from "$lib/share/chara-file"
export function csvChordsToJson(csv: string): CharaChordFile {
return {
charaVersion: 1,
type: 'chords',
chords: csv.split('\n').map(line => {
const [input, output] = line.split(',', 2)
return [
input.split('+').map(it => KEYMAP_IDS.get(it.trim())?.code ?? 0),
output.split('').map(it => KEYMAP_IDS.get(it.trim())?.code ?? 0),
]
})
}
}
export function isCsvLayout(csv: string): boolean {
return /^((\s*\w+\s*+?),\s*\w+\n?)+$/.test(csv)
}