Commit Graph

22 Commits

Author SHA1 Message Date
157ccbbdb5 C++11 fallthrough (2/2) 2023-05-19 05:34:25 +02:00
1eb98316a3
Rename KeyboardLayout to PianoKeyBindings
This is to prevent polluting the global namespace with a
symbol name that is likely to cause conflicts.
2020-04-07 18:40:04 +02:00
Nil Geisweiller
7ffaae77a7
Rename KeyboardLayout::set_keyboard_layout to set_layout
Since the class indicates that it is a keyboard layout, no need to over
load the name with it.
2020-04-07 18:26:45 +02:00
Nil Geisweiller
104d37e5a2
Move keyboard layout in its own class 2020-04-07 18:26:45 +02:00
9873e1d211
VKeybd: fix stuck keys when changing octaves - #7957
Using the mouse/dropdown to change octaves can lead to stuck
notes when keys are held. This is because the most recently
pressed key, sends key-repeat events.

Using Arrow keys to switch octaves does not cause this problem,
because the most recently pressed key will be an arrow key.

PS. Changing Chromatic Transpose while holding keys still
can lead to stuck notes. This will need a different fix.
2020-03-29 00:47:26 +01:00
6aac8b2c8a
Fix another clang-scan warning 2020-01-27 03:32:18 +01:00
49df7abd0b
NO-OP: whitespace 2019-12-27 19:35:03 +01:00
b942eecc9c
Vkeybd: force release notes on panic
If key(s) are still being pressed, a key-repeat will re-trigger
the most recently pressed note (depending on keyboard settings).
2019-12-26 12:17:20 +01:00
9c6d9324bd
VKeybd: exponential pitch-wheel/bend interpolation 2019-12-17 16:47:46 +01:00
322e6e08c4
Vkeybd: grab all key-events and use timer instead of key-repeat
This fixes an issue with arrow-keys (up/down, left/right). Those
were previously only handled when the Virtual Keyboard window itself
had focus.

Also key-repeat for pitch-bend is now ignored and a dedicated timer
is used to queue events. This fixes an issue with the first repeat
taking longer than successive ones, and makes this feature independent
of any desktop user settings.
2019-12-16 15:02:39 +01:00
6fa14a1b47
VKeybd: Pass on primary (Ctrl/Cmd) shortcuts
This allows Ctrl/Cmd+s (save) and Ctrl/Cmd+z (undo) etc shortcuts
to work, even though the virtual-keyboard is visible.
2019-12-15 20:34:14 +01:00
c3a27fadae
NO-OP: some const correctness 2019-12-12 23:59:38 +01:00
f2170f0a2f
VKeybd: fix MacOS key-bindings 2019-12-12 23:59:37 +01:00
407c2bed63
VKeybd: grab and ignore some keys
With default QWERTY and QWERTZ layout some keys that are easily
accidentally pressed. Those triggered editor actions,
(e.g. "a" (audition), or "1" (edit-tool)) and are now ignored.
2019-12-05 22:13:34 +01:00
5ec9e0fa5e
Virtual-keyboard: momentary pedal (no toggle) 2019-11-03 17:50:25 +01:00
db08810164
Virtual-keyboard: "Tab" to sustain (still undocumented) 2019-11-02 23:56:40 +01:00
36ea069722
Fix use of std::map<> in const methods
Prefer iterators, instead of C++11 `at() const`.
This should also fix MSVC error C2663
2019-10-28 15:37:13 +01:00
474a3c5f69
Virtual-keyboard: allow octave switches while hand-pedaling 2019-10-27 13:54:47 +01:00
b53431a089
Virtual-keyboard: consolidate options
Remove use options for annotations, force them "always on",
and request space to draw them.

Add option to pick single-line octave bindings
2019-10-27 00:06:14 +02:00
9fd0813d16
Add support for single-octave "asdfg.." key-bindings 2019-10-26 23:49:57 +02:00
12d4d6daa7
Virtual-keyboard: never-ending details
- Fix key-bindings (first propagate to piano, ignore global bindings)
- Allow to switch octaves with left/right arrow key
- Tweak font-sizes used for annotations
2019-10-25 21:24:25 +02:00
c0c1fd8b60
Rename PianoKeyboard class, avoid ambiguities
A C++ class "PianoKeyboard" in the global namespace may cause
issues with some plugins that export and use an identically
named symbol.
2019-10-25 21:24:25 +02:00