Commit Graph

8 Commits

Author SHA1 Message Date
Dale Whinham
71fa6533af Implement volume button hold/repeat with delay
Improve the button handling code so that a pressed and held button will
now generate additional press events after a short delay.

An acceleration curve is also applied so that events are generated with
increasing frequency the longer the button is held down.

Closes #323.
2023-02-06 20:36:10 +00:00
Dale Whinham
f1eaf2f43c Update copyright notices 2023-02-02 13:32:48 +00:00
Dale Whinham
07004eac54 Update copyright notices 2022-01-06 17:35:40 +00:00
Dale Whinham
484dacd42f Major refactor of all LCD-related code
Previously, the LCD code needed to be aware of each synthesizer to know
how to draw their respective displays, which wasn't very maintainable.

Introduce a UI class where generic drawing utility functions and
"system" drawing code can be implemented, and move synth-specific
drawing to the synth classes themselves. This simplifies the LCD/OLED
drivers to just being interfaces to the hardware.

Also introduce a "MIDI monitor" class which tracks the state of all MIDI
activity per-synth for level meter drawing purposes. This ensures we
never miss a note; previously we were simply polling each synth engine
for its note velocities per LCD update, which was prone to missing fast
notes and also didn't account for channel volume or expression pedal.

Finally, enable support for 16-character wide displays (closes #58).
2021-06-25 23:57:13 +01:00
Dale Whinham
59cf085d1c Update copyright notices 2021-02-03 05:06:40 +00:00
Dale Whinham
8fd2fdf270 Display MiSTer logo when MiSTer is detected 2020-12-20 20:42:19 +00:00
Dale Whinham
8d6b84fecc Add initial physical control system
This commit adds a simple physical control system with two schemes:

  * simple_buttons: 4-button scheme
  * simple_encoder: 2-button scheme + rotary encoder (with button)
2020-12-19 16:46:57 +00:00
Dale Whinham
51f86d6fda Introduce support for MiSTer I2C control interface 2020-12-19 15:02:47 +00:00