Andrew Belt
e67be6b3dd
Make Engine::fromJson() lock in entire method, so modules and cables aren't added on different engine frames. Make Cable::fromJson() call non-locking Engine methods.
1 year ago
Andrew Belt
d70372535a
Add Engine::addModule_NoLock() and addCable_NoLock().
1 year ago
Andrew Belt
d62adc6226
Don't zero port values when disconnected. Refactor Engine by removing Engine_updateConnected().
1 year ago
Andrew Belt
613f926c35
Change `side` argument from bool to uint8_t in Module::getExpander() and Module::ExpanderChangeEvent.
1 year ago
Andrew Belt
4a904d4950
Rename ParamQuantity::set/getDirectValue() to set/getImmediateValue().
Use setImmediateValue() when appropriate in ParamQuantity and SwitchQuantity, such as in reset(), randomize(), and setDisplayValue().
Add doc comments to ParamQuantity.
2 years ago
Andrew Belt
cdaea345d3
Make ParamQuantity::set/getValue() set/get the target value of engine smoothing instead of the value directly. Add ParamQuantity::set/getDirectValue(). Deprecate ParamQuantity::set/getSmoothValue().
2 years ago
Andrew Belt
4905496eed
Fix all memory leaks caused by json_array_append() and json_object_set().
2 years ago
Andrew Belt
6eaf11ed7a
Remove Engine::setFrame(). Guarantee that Engine frame only increases by 1 with no jumps.
2 years ago
Andrew Belt
c12f690786
Remove "v" from all version messages.
2 years ago
Andrew Belt
08cd572d51
Allow building on ARM64. Only Mac tested, and deps not tested.
2 years ago
Andrew Belt
8e7acf9b74
Log all calls to Model::createModule() and createModuleWidget().
3 years ago
Andrew Belt
e0a78e0a27
Use odd prime number for port frame divider so plug lights get a more diverse statistical sample of voltages.
3 years ago
Andrew Belt
e88c39c426
Rename ReadWriteMutex to SharedMutex. Use shared/exclusive terminology instead of read/write.
3 years ago
Andrew Belt
eb9a476105
Move ReadWriteMutex from Engine.cpp to new mutex.hpp header.
3 years ago
Andrew Belt
ffe340f4b2
Use %lld with long long type instead of PRId64 for printf.
3 years ago
Andrew Belt
a98256c6f4
Dispatch Module::SampleRateChange event when the Module is added to the engine.
3 years ago
Andrew Belt
0bdebebfae
Make Engine_updateExpander() non-locking.
3 years ago
Andrew Belt
d7aa204bc7
Copy patch storage dir when cloning individual module.
3 years ago
Andrew Belt
7bd26deefc
Don't display negative meter measurements.
3 years ago
Andrew Belt
d017010925
Subtract call time of system::getTime() itself when measuring Module::process() for meter.
3 years ago
Andrew Belt
985b996d76
Use much faster system::getTime() implementation on Mac.
3 years ago
Andrew Belt
0fd6d8a858
Fix deadlock in MIDI Map dataFromJson() and onReset() by creating a few Engine::*_NoLock() methods and calling them. Make Engine::updateParamHandle() write-lock instead of read-lock.
3 years ago
Andrew Belt
08e1f9a954
Add port name and "Duplicate/create new cable" to port context menu.
3 years ago
Andrew Belt
1f0e27749e
Allow SwitchQuantity first index to start at value other than 0.
3 years ago
Andrew Belt
4567cc4220
Master audio module (the module that clocks Engine) makes more sense.
3 years ago
Andrew Belt
95ed0bb5c5
Fix module paste key command. Fix crash when deleting module selection.
3 years ago
Andrew Belt
f1635cd96b
Add Module::jsonStripIds().
3 years ago
Andrew Belt
90d395ae8b
Add Quantity::toScaled() and fromScaled(). Clean up Quantity and ParamQuantity.
3 years ago
Andrew Belt
c08c6e365a
Add ParamQuantity::smoothEnabled.
3 years ago
Andrew Belt
de3f42edc1
Rename Engine::setParam() etc to Engine::setParamValue() etc.
3 years ago
Andrew Belt
b9d91b85af
Add ParamQuantity::getScaledValue().
3 years ago
Andrew Belt
4f98870e88
Add ParamQuantity::setSmoothScaledValue().
3 years ago
Andrew Belt
e249f82564
Redesign module CPU meter based on Pyer design.
3 years ago
Andrew Belt
b17f6ee3fe
Add fallback thread to Engine to step blocks if no primary module is set.
3 years ago
Andrew Belt
b0018e5ec6
Remove MXCSR debugging in Engine::stepBlock().
3 years ago
Andrew Belt
908878e45d
Save and restore MXCSR back to original value in Engine::stepBlock().
3 years ago
Andrew Belt
c8109e3759
Reorder cleanup routines in Engine::removeModule_NoLock().
3 years ago
Andrew Belt
90cf9af4a2
Don't dispatch Module::onUnsetPrimary() and Module::onSetPrimary() in setPrimaryModule() if module is already primary.
3 years ago
Andrew Belt
deacbb50dc
Throw Exception when Module::getPatchStorageDirectory() is called when Module is not added to Engine.
3 years ago
Andrew Belt
4734f13ba8
Silently fail is user enters a NAN expression in parameter field.
3 years ago
Andrew Belt
aaf98bb16d
Implement RackWidget::copyClipboardSelectedModules(). Clean up RackWidget API.
3 years ago
Andrew Belt
99c96c1e05
Implement RackWidget::bypassSelectedModulesAction() so bypassing the module selection works.
3 years ago
Andrew Belt
09ff13a4f0
Rewrite barriers in Engine to be 2-phase and hopefully less CPU.
3 years ago
Andrew Belt
c3ff43b6de
Rename *Dir() functions to *Directory(), backtracking on a previous commit.
3 years ago
Andrew Belt
d7e1dae42c
Use PlugPort SVG and MediumLight from Component Library for plug (WIP).
3 years ago
Andrew Belt
00eb16189b
Use "directory/dir" terminology instead of "folder" except for UI text.
3 years ago
Andrew Belt
697571648d
Set default component ID to -1 in all classes.
4 years ago
Andrew Belt
39f5a2f710
Reword Trigger -> Dispatch in comments.
4 years ago
Andrew Belt
0c9598ba8f
Add SetPrimaryEvent and UnsetPrimaryEvent to Module.
4 years ago
Andrew Belt
6e8cb42e7b
Serialize primaryModule in Engine instead of relying on modules to do it themselves.
4 years ago