v7
This commit is contained in:
parent
ba54146f4e
commit
06b39604cf
@ -172,6 +172,9 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
const applyPresetState = (preset) => {
|
||||
if (!preset) return;
|
||||
if (controls.angle && preset.angle_deg !== undefined) controls.angle.value = preset.angle_deg;
|
||||
if (controls.backAngle && preset.back_angle !== undefined) controls.backAngle.value = preset.back_angle;
|
||||
if (controls.legAngle && preset.leg_angle !== undefined) controls.legAngle.value = preset.leg_angle;
|
||||
if (controls.headAngle && preset.head_angle !== undefined) controls.headAngle.value = preset.head_angle;
|
||||
if (controls.intensity && preset.intensity_pct !== undefined) controls.intensity.value = preset.intensity_pct;
|
||||
if (controls.pattern && preset.pattern_mode) controls.pattern.value = preset.pattern_mode;
|
||||
if (controls.name && preset.name !== undefined) controls.name.value = preset.name;
|
||||
@ -397,6 +400,9 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
applyPresetState({
|
||||
name: button.dataset.name || '',
|
||||
angle_deg: button.dataset.angle || 0,
|
||||
back_angle: button.dataset.back || 0,
|
||||
leg_angle: button.dataset.leg || 0,
|
||||
head_angle: button.dataset.head || 0,
|
||||
intensity_pct: button.dataset.intensity || 0,
|
||||
pattern_mode: button.dataset.pattern || 'continuous',
|
||||
notes: button.dataset.notes || ''
|
||||
@ -452,6 +458,46 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
notify(`Disconnected: ${event.gamepad.id}`);
|
||||
});
|
||||
|
||||
// Keyboard Shortcuts
|
||||
document.addEventListener('keydown', (e) => {
|
||||
if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA' || e.target.tagName === 'SELECT') return;
|
||||
|
||||
const step = e.shiftKey ? 10 : 5;
|
||||
|
||||
switch (e.key.toLowerCase()) {
|
||||
case 'v':
|
||||
runVibration().catch(console.error);
|
||||
break;
|
||||
case 'r':
|
||||
if (ui.resetButton) ui.resetButton.click();
|
||||
break;
|
||||
case 'arrowup':
|
||||
if (controls.angle) {
|
||||
controls.angle.value = Math.min(180, Number(controls.angle.value) + step);
|
||||
updateVisualization();
|
||||
}
|
||||
break;
|
||||
case 'arrowdown':
|
||||
if (controls.angle) {
|
||||
controls.angle.value = Math.max(0, Number(controls.angle.value) - step);
|
||||
updateVisualization();
|
||||
}
|
||||
break;
|
||||
case 'arrowright':
|
||||
if (controls.intensity) {
|
||||
controls.intensity.value = Math.min(100, Number(controls.intensity.value) + step);
|
||||
updateVisualization();
|
||||
}
|
||||
break;
|
||||
case 'arrowleft':
|
||||
if (controls.intensity) {
|
||||
controls.intensity.value = Math.max(0, Number(controls.intensity.value) - step);
|
||||
updateVisualization();
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
applyPresetState(appConfig.initialPreset || {});
|
||||
wirePresetButtons();
|
||||
refreshGamepads();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user