From ae86babb2282727f4be6651ff39fc27514f5d65b Mon Sep 17 00:00:00 2001 From: Robert Kossessa Date: Wed, 13 Mar 2024 03:14:08 +0100 Subject: [PATCH] UPD: Key leds in device preview --- .../components/config/keys/KeyLightConfig.vue | 8 ++++++-- .../src/components/device/DevicePreview.vue | 14 ++++++++++++++ src/renderer/src/deviceStore.ts | 17 +++++++++++++---- 3 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/renderer/src/components/config/keys/KeyLightConfig.vue b/src/renderer/src/components/config/keys/KeyLightConfig.vue index a9c24c0..3bee2dc 100644 --- a/src/renderer/src/components/config/keys/KeyLightConfig.vue +++ b/src/renderer/src/components/config/keys/KeyLightConfig.vue @@ -43,8 +43,12 @@ const keyColors = computed({ } }, set(newValue) { - deviceStore.setKeyColor(appStore.selectedKey, false, newValue.default.colorNumber) - deviceStore.setKeyColor(appStore.selectedKey, true, newValue.pressed.colorNumber) + if (newValue.default.colorNumber !== keyColor.value(appStore.selectedKey, false)) { + deviceStore.setKeyColor(appStore.selectedKey, false, newValue.default.colorNumber) + } + if (newValue.pressed.colorNumber !== keyColor.value(appStore.selectedKey, true)) { + deviceStore.setKeyColor(appStore.selectedKey, true, newValue.pressed.colorNumber) + } } }) diff --git a/src/renderer/src/components/device/DevicePreview.vue b/src/renderer/src/components/device/DevicePreview.vue index 6726968..33ba3bb 100644 --- a/src/renderer/src/components/device/DevicePreview.vue +++ b/src/renderer/src/components/device/DevicePreview.vue @@ -85,6 +85,7 @@ previewDeviceImages[appStore.previewDeviceModel || 'nanoOne'] ) +const { keyColor } = storeToRefs(deviceStore) + +const keyColors = computed(() => { + return { + a: Color(keyColor.value('a', deviceStore.keyStates.a)), + b: Color(keyColor.value('b', deviceStore.keyStates.b)), + c: Color(keyColor.value('c', deviceStore.keyStates.c)), + d: Color(keyColor.value('d', deviceStore.keyStates.d)) + } +}) + const offlineText = ref('NO DEVICE CONNECTED') const offlineTexts = [ 'AWAITING CONNECTION', diff --git a/src/renderer/src/deviceStore.ts b/src/renderer/src/deviceStore.ts index 6ca4a92..fec082a 100644 --- a/src/renderer/src/deviceStore.ts +++ b/src/renderer/src/deviceStore.ts @@ -44,6 +44,8 @@ interface UpdateData { profiles: string[] | undefined current: string | undefined profile: Profile | undefined + kd: number | undefined + ku: number | undefined } const { nanoIpc } = window @@ -60,6 +62,7 @@ export const useDeviceStore = defineStore('device', { angle: 0 as number, // angle of the knob turns: 0 as number, // number of turns of the knob velocity: 0 as number, // velocity of the knob + keyLabels: ['a', 'b', 'c', 'd'] as string[], // labels for the keys keyStates: {} as Record // state of the keys (true if pressed) }), getters: { @@ -239,22 +242,28 @@ export const initializeDevices = () => { console.error(e) } } - if (update.a) { + if (update.a !== undefined) { deviceStore.setAngle(update.a) } - if (update.profiles) { + if (update.profiles !== undefined) { deviceStore.setProfileNames(update.profiles, false) for (const profileName of update.profiles) { console.log('Requesting profile', profileName) nanoIpc.send(deviceid, JSON.stringify({ profile: profileName })) } } - if (update.current) { + if (update.current !== undefined) { deviceStore.setCurrentProfile(update.current, false) } - if (update.profile) { + if (update.profile !== undefined) { deviceStore.addProfile(update.profile, false) } + if (update.kd !== undefined) { + deviceStore.keyStates[deviceStore.keyLabels[update.kd]] = true + } + if (update.ku !== undefined) { + deviceStore.keyStates[deviceStore.keyLabels[update.ku]] = false + } } })