summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
AgeCommit message (Collapse)Author
2017-08-01Fix LTC encoder removalRobin Gareus
Fixed a crash if an x-run or graph-reorder happens after the LTC encoder has been destroyed (possible at session-close or after disabling the encoder). This also fixes duplicate callbacks in case the encoder was re-enabled times in an active session.
2017-07-31Signal wish to show inline display in gui by lv2:optionalFeatureJohannes Mueller
... in .ttl file rather than by extension_data() in code. That's more in the spirit of LV2.
2017-07-31Indicate whether to show plugin's inline display in GUIJohannes Mueller
This is currently done by an extension data similarly to LV2_INLINEDISPLAY__interface.
2017-07-30Turn AutomationCtrl into a SessionHandleRefRobin Gareus
This fixes a crash with GUI elements which are only deleted during GUI Idle and hold a Reference to a Controllable, The session is already destroyed at that point: ARDOUR::CoreSelection::remove_control_by_id(PBD::ID const&) ARDOUR::AutomationControl::~AutomationControl() ARDOUR::SlavableAutomationControl::~SlavableAutomationControl() ARDOUR::MonitorControl::~MonitorControl() boost::detail::sp_counted_base::destroy() boost::detail::sp_counted_impl_p<AudioGrapher::Interleaver<float>::Input>::dispose() boost::detail::sp_counted_base::release() boost::detail::shared_count::~shared_count() boost::shared_ptr<PBD::Controllable>::~shared_ptr() boost::shared_ptr<PBD::Connection>::~shared_ptr() ArdourWidgets::BindingProxy::~BindingProxy() ArdourWidgets::ArdourButton::~ArdourButton() VCAMasterStrip::~VCAMasterStrip() int idle_delete<VCAMasterStrip>(VCAMasterStrip*)
2017-07-26Fix initial sync to LTC with small buffersizesRobin Gareus
Ardour follow_slave() does nothing (not even seek) if the slave is not locked. The LTC-slave assumes it's locked if LTC is stable for 5 continuous process-calls. If the difference of Ardour's transport-position to the LTC-timecode is large (> 2sec), the slave reset itself (assuming drift, seek don't vari- speed). A LTC-slave does reset does reset the locked counter. Hence: If initially Ardour's transport differs > 2 sec and the buffersize is small (many process-callbacks), the slave kept resetting itself never informing Ardour that it locked to the external TC, and Ardour never issued a seek.
2017-07-24Update WritePass logic + AutomationList UndoRobin Gareus
Fixes various issues when changing AutomationState while rolling.
2017-07-24Remove unused "mark" parameter from stop_touch() APIRobin Gareus
2017-07-22NO-OP: whitespaceRobin Gareus
2017-07-22AutomationWatch: single DropReferences connection per ACRobin Gareus
2017-07-22NO-OP: consistent [internal] API name for AutomatablesRobin Gareus
2017-07-22NO-OP: Consistent API nameRobin Gareus
2017-07-22Rework tempo marker editing menu functionsnick_m
Setting a tempo to 'Continue' via right click puts it in a permanent state of continuing the previous section's end tempo (basically what 'Lock Continue' should have been). This can be disabled (unlocked) by selecting 'Don't Continue'. Remove the previous temporary 'Continue' function. Reorganise menu to separate position lock style from more commonly used functions.
2017-07-22Calculate clamped tempo stretch ratios using the correct (musical) domainnick_m
2017-07-22Remove redundant beat arg from TempoMap::add_meternick_m
BBT time should be enough to determine the beat.
2017-07-16Data less than or equal to zero should be considered "off"Robin Gareus
2017-07-16Remove unused API and a never used execution-branchRobin Gareus
2017-07-16Consistent Automation evaluation:Robin Gareus
Rule #89: The *owner* of each automation-control is responsible to evaluate automation of automated automation-controls (and emit Changed() signals to notify the GUI and slaved controls). This can happen during run(), when the Processor evaluates automation (eg. PluginInsert does that), but needs to regardless, every cycle. Emit Changed signal for GainControl This follow the same concept as PluginInsert: The Changed signal is called on demand when evaluating automation.
2017-07-16Add API to run automation only (emit Changed signal).Robin Gareus
Note: MuteControl already implemented this, This removes the special case of boolean_automation_run(). Likewise this removes special-cases for actually_set_value() during automation playback.
2017-07-16Rename private methodRobin Gareus
The same name (automation_run) is used in different context (mute) for only processing automation.
2017-07-08Add API to expand/flatten AC groupsRobin Gareus
2017-07-04Fix session-event queue (multiple writer, single reader)Robin Gareus
The reading is done in rt-process thread, but multiple UIs (surfaces, GUI) can produce events to be queued.
2017-07-02Add API to step though parameter enumerationsRobin Gareus
2017-07-02Prepare x-thread signals plugin-GUI visibilityRobin Gareus
2017-07-01Remove old libardour API for plugin UIsRobin Gareus
2017-06-30Remove cruft (ParameterDescriptor sets this)Robin Gareus
2017-06-29Fix multi-channel delaylines #7409 part 2/2Robin Gareus
2017-06-26Add convenience fn to compute a file's sha1sumRobin Gareus
2017-06-25Create a deep-copy of MIDI sources when saving snapshotsRobin Gareus
2017-06-25Extend API to allow calling new_midi_source_path() with source_lock heldRobin Gareus
This is in preparation for cloning MIDI-sources during snapshot save.
2017-06-23Remove Automation Types that should never have existed.Robin Gareus
2017-06-23Improve default parameter displayRobin Gareus
2017-06-22Update Slavable APIRobin Gareus
Do not use AutomationType to identify parameters, use complete Evoral::Parameter and Automatable. For "batch connections", a Slavables needs to implement an API to return the relevant controls. This is only a first step towards a more generic Master/Slave framework.
2017-06-22NO-OP: whitespaceRobin Gareus
2017-06-22Remove locale_guard.h from ardour/ardour.h headerTim Mayberry
Add to source files that use LocaleGuard Results in far less recompiling when pbd/locale_guard.h changes
2017-06-21Some ToDo notes about AutomationTypesRobin Gareus
2017-06-21Remove internal_to_user/user_to_internal APIRobin Gareus
Also GainControl can just use the AutomationControl's implementation of get_user_string()
2017-06-21Set default interpolation type (for new lanes)Robin Gareus
2017-06-21Add API to compute parameter delta, depending on AutomationTypeRobin Gareus
2017-06-21Centralize Parameter scalingRobin Gareus
This exposes an AutomationType dependent abstract version of inteface_to_internal(), internal_to_interface().
2017-06-21remove min/max unbound -- LADSPA special case.Robin Gareus
This explicit case should never have existed in the first place. Plugins can always implicitly exceed the range and are expected to cope with out-of-range values (e.g. meters when fed with a peaking signal may return an out-of-bounds value)
2017-06-21Move logarithmic property into Evoral, add rangestepsRobin Gareus
This allows complete mathematical description of a given parameter and parameter values. Semantic type abstraction is reserved for Ardour::ParameterDescriptor.
2017-06-21Remove old APIRobin Gareus
2017-06-21Format boolean parameter valuesRobin Gareus
2017-06-21Tweak value-as-string dB and float decimals printingRobin Gareus
2017-06-21Remove Cruft -- AutomationStyle never did anything.Robin Gareus
Trim automation is planned via SlavableAC as normal AutomationMode. Some of this code have a revival (a special "Trim+Preview" state before merging Automation but that has to be more general than Pan & Gain.
2017-06-18'ARDOUR::Stripable::Sorter()' needs to be exportable (since it gets used ↵John Emmas
outside of libardour)
2017-06-17Move implementation out of header fileRobin Gareus
2017-06-17Add Lua bindings to query all stripablesRobin Gareus
2017-06-17Fix stripable order for new strips & master-orderRobin Gareus
2017-06-17Add method to ensure Stripable sort constrains (for UI use)Robin Gareus