Andrew Belt
|
840e184d7e
|
Rename system::initCpuFlags() to system::resetFpuFlags(). Implement it on ARM64.
|
1 year ago |
Andrew Belt
|
20eafc98ff
|
No need to save/restore CPU flags in Engine::stepBlock() anymore.
|
1 year ago |
Andrew Belt
|
e2a4a6209d
|
Add system::initCpuFlags(). Call it by all new threads.
|
1 year ago |
Andrew Belt
|
123da6cd83
|
Initialize CPU flags for Engine on ARM64.
|
1 year ago |
Andrew Belt
|
bb8f70c04e
|
When loading a patch or autosave, if modules are unavailable, prompt user to close Rack and view them on the VCV Library.
|
1 year ago |
Andrew Belt
|
ac92bacd55
|
Zero input port values when disconnected, but not outputs.
|
1 year ago |
Andrew Belt
|
e6744e5c3e
|
Don't lock inside Engine::fromJson() until all modules are instantiated. Fix recursive lock when calling getModule().
|
1 year ago |
Andrew Belt
|
fb531c5a66
|
Make engine step modules first, then step cables in Engine::stepFrame().
|
1 year ago |
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.
|
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
|
6eaf11ed7a
|
Remove Engine::setFrame(). Guarantee that Engine frame only increases by 1 with no jumps.
|
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
|
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
|
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
|
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
|
4567cc4220
|
Master audio module (the module that clocks Engine) makes more sense.
|
3 years ago |
Andrew Belt
|
de3f42edc1
|
Rename Engine::setParam() etc to Engine::setParamValue() etc.
|
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
|
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
|
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 |
Andrew Belt
|
661fd3863d
|
Add Module Save event.
|
4 years ago |
Andrew Belt
|
ea431882a7
|
Add Engine meter to menu bar.
|
4 years ago |
Andrew Belt
|
5043d0e10a
|
Use Engine frame instead of seconds timestamp for midi::Message.
|
4 years ago |
Andrew Belt
|
c4cc1c4368
|
Clean up fromJson Engine and RackWidget methods. Fix v0.6 patch loading.
|
4 years ago |
Andrew Belt
|
5f8f9b8e35
|
Change `bypass` variable name to `bypassed` when appropriate.
|
4 years ago |
Andrew Belt
|
317b9125b6
|
Make ReadWriteLock non-recursive and add *_NoLock() methods to Engine as needed.
Split Module::bypass() into isBypass/setBypass().
Add more documentation to Engine methods.
|
4 years ago |
Andrew Belt
|
2f5ce16ce8
|
No longer require that a primary Module belongs to the Engine.
|
4 years ago |
Andrew Belt
|
9f04e56106
|
AudioInterface: Set primary module after instead of before adding to the Engine (WIP).
|
4 years ago |
Andrew Belt
|
4e44157d27
|
Don't write-lock Engine::fromJson() because it only needs it when adding modules and cables, which already has a write-lock.
|
4 years ago |
Andrew Belt
|
90ada5c532
|
Add Engine::setSuggestedSampleRate(). Make ReadWriteLock support recursive writes.
|
4 years ago |
Andrew Belt
|
4c7c5b1694
|
Add auto engine sample rate setting.
|
4 years ago |
Andrew Belt
|
f0753792b8
|
Rename "step" terminology of Engine to "block". Tweak ModuleWidget meter appearance.
|
4 years ago |
Andrew Belt
|
7003adffe2
|
Move module stepping code from Engine to Module. Change meter to a time plot.
|
4 years ago |
Andrew Belt
|
2a1bbf4ae3
|
Rename system::getRuntime() to getTime().
|
4 years ago |
Andrew Belt
|
790e1053cc
|
Rename system::getTime() to getRuntime(). Add system::getUnixTime().
|
4 years ago |