diff --git a/src/renderer/src/components/config/knob/KnobFeedbackConfig.vue b/src/renderer/src/components/config/knob/KnobFeedbackConfig.vue index e038924..09d2363 100644 --- a/src/renderer/src/components/config/knob/KnobFeedbackConfig.vue +++ b/src/renderer/src/components/config/knob/KnobFeedbackConfig.vue @@ -5,11 +5,36 @@ :show-toggle="true" > - + { - deviceStore.setHapticOutputRamp(outputRampValues[value]) + deviceStore.setHapticOutputRamp(outputRampValues.value[value]) +}) + +const feedbackStrengthValues = ref([0, 2, 5, 7, 10]) + +const feedbackStrengthIndex = feedbackStrengthValues.value.indexOf( + deviceStore.activeValue?.haptic?.detentStrength +) +const feedbackStrength = ref(feedbackStrengthIndex === -1 ? 5 : feedbackStrengthIndex) + +watch(feedbackStrength, (value) => { + deviceStore.setHapticFeedbackStrength(feedbackStrengthValues.value[value]) }) const auditoryHapticLevel = ref(2) diff --git a/src/renderer/src/deviceStore.ts b/src/renderer/src/deviceStore.ts index 01dbbba..9a02293 100644 --- a/src/renderer/src/deviceStore.ts +++ b/src/renderer/src/deviceStore.ts @@ -569,6 +569,21 @@ export const useDeviceStore = defineStore('device', { ) this.setDirtyState(true) } + }, + setHapticFeedbackStrength(value: number, updateDevice: boolean = true) { + this.currentProfile!.knob.forEach((v) => { + v.haptic.detentStrength = value + }) + if (updateDevice) { + sendDebounced( + this.currentDeviceId!, + JSON.stringify({ + profile: this.currentProfileName, + updates: { knob: this.currentProfile!.knob } + }) + ) + this.setDirtyState(true) + } } } })