Skip to content

Commit 1a2068f

Browse files
authored
Replace magic numbers with the enum names used in via and vial (#58)
1 parent 57ea2c0 commit 1a2068f

File tree

1 file changed

+76
-37
lines changed

1 file changed

+76
-37
lines changed

via.go

Lines changed: 76 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -122,21 +122,18 @@ func rxHandler(b []byte) {
122122

123123
func rxHandler2(b []byte) bool {
124124
switch b[0] {
125-
//case 0x12, 0x0E:
125+
//case viaCommandDynamicKeymapGetBuffer, viaCommandDynamicKeymapMacroGetBuffer:
126126
default:
127127
//fmt.Printf("RxHandler % X\n", b)
128128
}
129129

130130
copy(txb[:32], b)
131131
switch b[0] {
132-
case 0x01:
133-
// GetProtocolVersionCount
132+
case viaCommandGetProtocolVersion:
134133
txb[2] = 0x09
135-
case 0x11:
136-
// DynamicKeymapGetLayerCountCommand
134+
case viaCommandDynamicKeymapGetLayerCount:
137135
txb[1] = 0x06
138-
case 0x12:
139-
// DynamicKeymapReadBufferCommand
136+
case viaCommandDynamicKeymapGetBuffer:
140137
offset := (uint16(b[1]) << 8) + uint16(b[2])
141138
sz := b[3]
142139
//fmt.Printf(" offset : %04X + %d\n", offset, sz)
@@ -156,27 +153,22 @@ func rxHandler2(b []byte) bool {
156153
txb[4+2*i+0] = uint8(kc >> 8)
157154
}
158155

159-
case 0x0D:
160-
// DynamicKeymapMacroGetBufferSizeCommand
156+
case viaCommandDynamicKeymapMacroGetBufferSize:
161157
sz := len(device.Macros)
162158
txb[1] = byte(sz >> 8)
163159
txb[2] = byte(sz)
164-
case 0x0C:
165-
// DynamicKeymapMacroGetCountCommand
160+
case viaCommandDynamicKeymapMacroGetCount:
166161
txb[1] = 0x10
167-
case 0x0E:
168-
// DynamicKeymapMacroGetBufferCommand
162+
case viaCommandDynamicKeymapMacroGetBuffer:
169163
offset := (uint16(b[1]) << 8) + uint16(b[2])
170164
sz := b[3]
171165
copy(txb[4:4+sz], device.Macros[offset:])
172-
case 0x0F:
173-
// CMD_VIA_MACRO_SET_BUFFER
166+
case viaCommandDynamicKeymapMacroSetBuffer:
174167
offset := (uint16(b[1]) << 8) + uint16(b[2])
175168
sz := b[3]
176169
copy(device.Macros[offset:], txb[4:4+sz])
177170
device.flashCh <- true
178-
case 0x02:
179-
// id_get_keyboard_value
171+
case viaCommandGetKeyboardValue:
180172
Changed = false
181173
Changed2 = false
182174
switch txb[1] {
@@ -189,19 +181,18 @@ func rxHandler2(b []byte) bool {
189181
txb[idx] |= byte(1 << (col % 8))
190182
}
191183
}
192-
case 0x05:
184+
case viaCommandDynamicKeymapSetKeycode:
193185
//fmt.Printf("XXXXXXXXX % X\n", b)
194186
//Keys[b[1]][b[2]][b[3]] = Keycode((uint16(b[4]) << 8) + uint16(b[5]))
195187
device.SetKeycodeVia(int(b[1]), int(b[2]), int(b[3]), Keycode((uint16(b[4])<<8)+uint16(b[5])))
196188
device.flashCh <- true
197189
//Changed = true
198-
case 0x08:
199-
// id_lighting_get_value
190+
case viaCommandLightingGetValue:
200191
txb[1] = 0x00
201192
txb[2] = 0x00
202-
case 0xFE: // vial
193+
case viaCommandVialPrefix: // vial
203194
switch b[1] {
204-
case 0x00:
195+
case vialGetKeyboardId:
205196
// Get keyboard ID and Vial protocol version
206197
const vialProtocolVersion = 0x00000006
207198
txb[0] = vialProtocolVersion
@@ -216,14 +207,14 @@ func rxHandler2(b []byte) bool {
216207
txb[9] = 0xF3
217208
txb[10] = 0x54
218209
txb[11] = 0xE2
219-
case 0x01:
210+
case vialGetSize:
220211
// Retrieve keyboard definition size
221212
size := len(KeyboardDef)
222213
txb[0] = uint8(size)
223214
txb[1] = uint8(size >> 8)
224215
txb[2] = uint8(size >> 16)
225216
txb[3] = uint8(size >> 24)
226-
case 0x02:
217+
case vialGetDef:
227218
// Retrieve 32-bytes block of the definition, page ID encoded within 2 bytes
228219
page := uint16(b[2]) + (uint16(b[3]) << 8)
229220
start := page * 32
@@ -236,22 +227,18 @@ func rxHandler2(b []byte) bool {
236227
}
237228
//fmt.Printf("vial_get_def : page=%04X start=%04X end=%04X\n", page, start, end)
238229
copy(txb[:32], KeyboardDef[start:end])
239-
case 0x09:
240-
// vial_qmk_settings_query
241-
// 未対応
230+
case vialQmkSettingsQuery:
231+
// not impl
242232
for i := range txb[:32] {
243233
txb[i] = 0xFF
244234
}
245-
case 0x0D:
246-
// vial_dynamic_entry_op
235+
case vialDynamicEntryOp:
247236
switch b[2] {
248-
case 0x00:
249-
// DYNAMIC_VIAL_GET_NUMBER_OF_ENTRIES
237+
case dynamicVialGetNumberOfEntries:
250238
txb[0] = 0x00
251239
txb[1] = 0x20 // combos
252240
txb[2] = 0x00
253-
case 0x03:
254-
// DYNAMIC_VIAL_COMBO_GET
241+
case dynamicVialComboGet:
255242
txb[0] = 0x00
256243
idx := b[3]
257244
txb[1] = byte(device.Combos[idx][0])
@@ -266,8 +253,7 @@ func rxHandler2(b []byte) bool {
266253
txb[10] = byte(device.Combos[idx][4] >> 8)
267254
// 00 0400 0500 0000 0000 0700 000000000000000000000000000000000000000000
268255
// 0 1 3 5 7 9
269-
case 0x04:
270-
// DYNAMIC_VIAL_COMBO_SET
256+
case dynamicVialComboSet:
271257
txb[0] = 0x00
272258
idx := b[3]
273259
// fe0d04 00 0400 0500 0000 0000 0700 000000000000000000000000000000000000
@@ -283,8 +269,7 @@ func rxHandler2(b []byte) bool {
283269
txb[1] = 0x00
284270
txb[2] = 0x00
285271
}
286-
case 0x05:
287-
// vial_get_unlock_status
272+
case vialGetUnlockStatus:
288273
txb[0] = 1 // unlocked
289274
txb[1] = 0 // unlock_in_progress
290275

@@ -368,3 +353,57 @@ func setupHandler(setup usb.Setup) bool {
368353
}
369354
return ok
370355
}
356+
357+
// https://github.com/vial-kb/vial-qmk/quantum/via.h
358+
const (
359+
viaCommandGetProtocolVersion = 0x01 // always 0x01
360+
viaCommandGetKeyboardValue = 0x02
361+
viaCommandSetKeyboardValue = 0x03
362+
viaCommandDynamicKeymapGetKeycode = 0x04
363+
viaCommandDynamicKeymapSetKeycode = 0x05
364+
viaCommandDynamicKeymapReset = 0x06
365+
viaCommandCustomSetValue = 0x07
366+
viaCommandCustomGetValue = 0x08
367+
viaCommandCustomSave = 0x09
368+
viaCommandLightingSetValue = 0x07
369+
viaCommandLightingGetValue = 0x08
370+
viaCommandLightingSave = 0x09
371+
viaCommandEepromReset = 0x0A
372+
viaCommandBootloaderJump = 0x0B
373+
viaCommandDynamicKeymapMacroGetCount = 0x0C
374+
viaCommandDynamicKeymapMacroGetBufferSize = 0x0D
375+
viaCommandDynamicKeymapMacroGetBuffer = 0x0E
376+
viaCommandDynamicKeymapMacroSetBuffer = 0x0F
377+
viaCommandDynamicKeymapMacroReset = 0x10
378+
viaCommandDynamicKeymapGetLayerCount = 0x11
379+
viaCommandDynamicKeymapGetBuffer = 0x12
380+
viaCommandDynamicKeymapSetBuffer = 0x13
381+
viaCommandVialPrefix = 0xFE
382+
viaCommandUnhandled = 0xFF
383+
)
384+
385+
// https://github.com/vial-kb/vial-qmk/quantum/vial.h
386+
const (
387+
vialGetKeyboardId = 0x00
388+
vialGetSize = 0x01
389+
vialGetDef = 0x02
390+
vialGetEncoder = 0x03
391+
vialSetEncoder = 0x04
392+
vialGetUnlockStatus = 0x05
393+
vialUnlockStart = 0x06
394+
vialUnlockPoll = 0x07
395+
vialLock = 0x08
396+
vialQmkSettingsQuery = 0x09
397+
vialQmkSettingsGet = 0x0A
398+
vialQmkSettingsSet = 0x0B
399+
vialQmkSettingsReset = 0x0C
400+
vialDynamicEntryOp = 0x0D /* operate on tapdance, combos, etc */
401+
402+
dynamicVialGetNumberOfEntries = 0x00
403+
dynamicVialTapDanceGet = 0x01
404+
dynamicVialTapDanceSet = 0x02
405+
dynamicVialComboGet = 0x03
406+
dynamicVialComboSet = 0x04
407+
dynamicVialKeyOverrideGet = 0x05
408+
dynamicVialKeyOverrideSet = 0x06
409+
)

0 commit comments

Comments
 (0)