2023-09-27 21:27:10 +01:00
|
|
|
from . import config
|
2023-09-27 18:38:13 +01:00
|
|
|
from .kinds import request_kind_map
|
|
|
|
|
|
|
|
|
2023-09-24 16:35:00 +01:00
|
|
|
def remove_prefix(input_string, prefix):
|
|
|
|
if prefix and input_string.startswith(prefix):
|
|
|
|
return input_string[len(prefix) :]
|
|
|
|
return input_string
|
|
|
|
|
|
|
|
|
|
|
|
def remove_suffix(input_string, suffix):
|
|
|
|
if suffix and input_string.endswith(suffix):
|
|
|
|
return input_string[: -len(suffix)]
|
|
|
|
return input_string
|
2023-09-27 18:38:13 +01:00
|
|
|
|
|
|
|
|
|
|
|
def _make_gestures(kind_id):
|
|
|
|
kind = request_kind_map(kind_id)
|
|
|
|
defaults = {
|
2025-01-23 20:04:48 +00:00
|
|
|
'kb:NVDA+alt+s': 'strip_mode',
|
|
|
|
'kb:NVDA+alt+b': 'bus_mode',
|
|
|
|
'kb:NVDA+alt+g': 'gain_mode',
|
|
|
|
'kb:NVDA+alt+c': 'comp_mode',
|
|
|
|
'kb:NVDA+alt+t': 'gate_mode',
|
|
|
|
'kb:NVDA+alt+d': 'denoiser_mode',
|
|
|
|
'kb:NVDA+alt+a': 'audibility_mode',
|
|
|
|
'kb:NVDA+shift+q': 'announce_controller',
|
|
|
|
'kb:NVDA+shift+v': 'announce_voicemeeter_version',
|
|
|
|
'kb:NVDA+shift+o': 'toggle_mono',
|
|
|
|
'kb:NVDA+shift+s': 'toggle_solo',
|
|
|
|
'kb:NVDA+shift+m': 'toggle_mute',
|
|
|
|
'kb:NVDA+shift+c': 'toggle_mc',
|
|
|
|
'kb:NVDA+shift+k': 'karaoke',
|
|
|
|
'kb:NVDA+shift+upArrow': 'slider_increase_by_point_one',
|
|
|
|
'kb:NVDA+shift+downArrow': 'slider_decrease_by_point_one',
|
|
|
|
'kb:NVDA+shift+alt+upArrow': 'slider_increase_by_one',
|
|
|
|
'kb:NVDA+shift+alt+downArrow': 'slider_decrease_by_one',
|
|
|
|
'kb:NVDA+shift+control+upArrow': 'slider_increase_by_three',
|
|
|
|
'kb:NVDA+shift+control+downArrow': 'slider_decrease_by_three',
|
2023-09-27 18:38:13 +01:00
|
|
|
}
|
|
|
|
for i in range(1, kind.num_strip + 1):
|
2025-01-23 20:04:48 +00:00
|
|
|
defaults[f'kb:NVDA+alt+{i}'] = 'index'
|
2023-09-27 18:38:13 +01:00
|
|
|
for i in range(1, kind.phys_out + kind.virt_out + 1):
|
2025-01-23 20:04:48 +00:00
|
|
|
defaults[f'kb:NVDA+shift+{i}'] = 'bus_assignment'
|
|
|
|
abc = config.get('keybinds')
|
2023-09-27 18:38:13 +01:00
|
|
|
if abc:
|
2025-01-23 20:04:48 +00:00
|
|
|
overrides = {f'kb:{remove_prefix(k, "kb:")}': v for k, v in abc.items()}
|
2023-09-27 18:38:13 +01:00
|
|
|
matching_values = set(defaults.values()).intersection(set(overrides.values()))
|
|
|
|
defaults = {k: v for k, v in defaults.items() if v not in matching_values}
|
|
|
|
return {**defaults, **overrides}
|
|
|
|
return defaults
|