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)
+ }
}
}
})