216 Commits (e67be6b3dddcabadd0afc02d21a0df8e9b4e5fa9)

Author SHA1 Message Date
  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(). 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