Andrew Belt
d85856eccc
Add `FramebufferWidget::dirtyOnSubpixelChange` setting. Disable it for the FramebufferWidget that contains the RackRail.
4 years ago
Andrew Belt
0cefd1138b
Replace event::Zoom with event::Dirty.
4 years ago
Andrew Belt
feece06fbb
Add event::KeyBase::keyName, which fixes key commands on AZERTY and Dvorak. Add lots of documentation to event::KeyBase.
4 years ago
Andrew Belt
05427d938b
Overhaul threading model for Engine using a shared mutex based design.
4 years ago
Andrew Belt
9ea49664bb
Copy cable color when cloning cables with Ctrl+click.
4 years ago
Andrew Belt
120aafe6d3
Change order of includes to C++ standard headers, library headers, and local project headers.
4 years ago
Andrew Belt
ca9231e1b3
Rename App to Context and app.hpp to context.hpp. The APP macro is still valid.
4 years ago
Andrew Belt
12fcaa4b08
Move moduleFromJson from engine to plugin namespace. Move Engine mutex lock at the top of Engine::step().
5 years ago
Andrew Belt
05df47fbd1
Add Internal struct to ModuleWidget.
5 years ago
Andrew Belt
6c9afbec7a
Fix template cable IDs.
5 years ago
Andrew Belt
4936df2c0b
Move ParamWidget/Knob/Switch properties to ParamQuantity. Fix static linking on Linux.
5 years ago
Andrew Belt
e4b6056ded
Massive WIP v2 overhaul:
- Add Engine::fromJson which can be called without the GUI at all.
- Make RackWidget::fromJson attach itself to existing Engine state. However, once attached, they own their Engine objects (Module, Cable).
- Remove Engine thread. Now Engine must be stepped by other threads, such as the audio thread. This is fantastic because there is no longer a mutex lock every audio buffer.
- Add concept of the "primary module", which is allowed to call Engine::step().
- Add many Module events.
5 years ago
Andrew Belt
26bda06eb7
Move slug normalization from getPlugin or getModel functions to fromJson functions.
5 years ago
Andrew Belt
ff2ac805e2
Fix #1510
5 years ago
Andrew Belt
f55d039ee9
Fix #1479
5 years ago
Andrew Belt
dca30e2b53
Auto-format code with astyle.
5 years ago
Andrew Belt
f3bd8baa4a
Fix crash in RackWidget::pastePresetClipboardAction().
5 years ago
Andrew Belt
266b63d5aa
Fix expander assignment when force-dragging modules.
5 years ago
Andrew Belt
e0094d090f
Fix bug in RackWidget::toJson() where cable ID was being set on the root patch object. Refactor RackWidget, ModuleWidget, Module, and CableWidget to/fromJson().
5 years ago
Andrew Belt
696939069d
Use <> instead of "" for include directive.
5 years ago
Andrew Belt
54544bbe93
Use Module::Expander struct for accessing expander messages.
5 years ago
Andrew Belt
2cd29d62f0
Draw plugs under wires for CableWidgets in CableContainer.
5 years ago
Andrew Belt
de95175596
Since dragging a ModuleWidget can move all modules, push a ComplexAction of ModuleMove actions instead of a single action.
5 years ago
Andrew Belt
2c9644d80d
Rename WINDOW_ macros to RACK_. Require rack:: namespace for APP macro.
5 years ago
Andrew Belt
7bde284dbf
Fix RackWidget::setModulePosForce.
5 years ago
Andrew Belt
35eafaf8e7
Make RackWidget::setModulePosForce more straightforward and only affect modules on the same row.
5 years ago
Andrew Belt
faa96068af
Remove useless `e.consume(this)` from events that no longer need it. Fix bugs introduced by change of event system behavior.
5 years ago
Andrew Belt
6fd01b217a
Add ModuleWidget force movement.
5 years ago
Andrew Belt
8d270d23cd
Use more efficient algorithm to finding valid ModuleWidget position in RackWidget::requestModulePosNearest.
5 years ago
Andrew Belt
c5d011f1e8
Fix rack rail when resizing. Decrease size of rack rail framebuffer.
5 years ago
Andrew Belt
95eb5ec0b9
Add bus board to rack.
5 years ago
Andrew Belt
51c37936a9
Make RackRails positioned correctly to prevent blank frames.
5 years ago
Andrew Belt
7624c46f19
Add assertions for 0-width ModuleWidgets. Add warning if framebuffer cannot be created in FramebufferWidget.
5 years ago
Andrew Belt
a5d7a0b75b
Add middle-click-drag to ScrollWidget. Fix numerous bugs introduced by event system changes.
5 years ago
Andrew Belt
9d609fee2b
Rename `widget::*Event` to `event::*`.
5 years ago
Andrew Belt
13b3fabd8b
Replace `Event::consumed` with `target` and `propogating`.
5 years ago
Andrew Belt
8a58f704e6
Offset modules to origin of rack when saving patch.
5 years ago
Andrew Belt
49e48ba994
Fix bug where only one expander could be set.
5 years ago
Andrew Belt
bd65799a43
Assert ModuleWidget height when added to RackWidget. Round ModuleWidget width to nearest HP.
5 years ago
Andrew Belt
35a951690d
Fix RackWidget_updateAdjacent not disconnecting modules
5 years ago
Andrew Belt
16b42e8e4e
Rename RackWidget::rails
5 years ago
Andrew Belt
7e2d4a6bf9
Use larger canvas for RackScrollWidget.
5 years ago
Andrew Belt
9943d7b13a
Fix mistakes in assignment of adjacent module IDs. Swap message buffers at the end of each Engine step.
5 years ago
Andrew Belt
e9aacbed93
Add adjacent module IDs and pointers to Module.
5 years ago
Andrew Belt
2210287039
Move handling of RackWidget from Scene to RackScrollWidget.
5 years ago
Andrew Belt
b84e2f57fa
Merge event:: namespace with widget:: namespace. Rename event::* to widget::*Event.
5 years ago
Andrew Belt
e3097e2dac
Don't clear search box when ModuleBrowser is shown.
5 years ago
Andrew Belt
d6f5a84178
Draw FramebufferWidgets during step() instead of draw() so we can use the same NanoVG context.
5 years ago
Andrew Belt
a509fab1c1
Move and rename widget::DrawContext to widget::Widget::DrawArgs. Rename Module::ProcessContext to Module::ProcessArgs.
5 years ago
Andrew Belt
66aa746476
Replace ModuleHandle with ParamHandle. Move touchedParam from Engine to RackWidget. Fix param mapping bugs in MIDI-Map.
5 years ago