Commit graph

8242 commits

Author SHA1 Message Date
Robin Gareus
e0b4767d2e Fix loading bundles #7426 2017-07-16 21:44:00 +02:00
Robin Gareus
157d4b2c57 Data less than or equal to zero should be considered "off" 2017-07-16 21:01:08 +02:00
Robin Gareus
5b9822ab98 Fix merging boolean automation + mute disconnect. 2017-07-16 21:01:03 +02:00
Robin Gareus
07aeb12d3a Some notes for later. 2017-07-16 17:09:22 +02:00
Robin Gareus
69ecb0db70 Remove unused API and a never used execution-branch 2017-07-16 16:54:32 +02:00
Robin Gareus
dee990103a Consistent Automation evaluation:
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-16 16:53:39 +02:00
Robin Gareus
06ca52d5a5 Add API to run automation only (emit Changed signal).
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-16 16:52:12 +02:00
Robin Gareus
906cf85982 Rename private method
The same name (automation_run) is used in different context (mute) for
only processing automation.
2017-07-16 16:49:30 +02:00
Robin Gareus
542d021fbc Fix total number of process threads 2017-07-13 17:16:31 +02:00
Johannes Mueller
eb79ae7d41 Don't try to chop of the file name extension from a template dir
Template files reside in
.config/ardour5/templates/$(template_name)/$(template_name).template

We run through .config/ardour5/templates/ and find there the names of the
directories the .template-files are located in. These directory names don't
have a .template extension. So we shouldn't try to chop the non existing
extension of, because then we only modify template names with a '.' in them.
2017-07-12 16:15:03 +02:00
Robin Gareus
fd8053da9e Don't use VST ->user points, prefer host-reserved ptr
Apparently "user" is for plugins (not hosts) to use.
2017-07-08 18:13:42 +02:00
Robin Gareus
82278af424 Add API to expand/flatten AC groups 2017-07-08 15:35:30 +02:00
Robin Gareus
60df2a342c Don't drop processor references with process-lock
_processors = new_list; may drop the last shared-ptr reference.
This may deadlock in ~IO() for I/O processors or plugins with sidechain
inputs. It's been mostly a non-issues since the GUI usually holds a last
shared-ptr reference for a processor to be deleted, but that is
not always the case.
2017-07-07 23:05:59 +02:00
Robin Gareus
deba170d6c Consistent ControlList freezing -- fixes #7419
AudioRegion::set_fade_in() freezes the original ControlList, then
assigns a new one and thaws that.
Frozen state needs to be retained during assignment.

Related: The overloaded assignment operator in AutomationList
performed duplicate signal emission and didn't freeze the list.
2017-07-07 02:35:00 +02:00
Robin Gareus
73ad5c97f2 Consistently set parameter steps.
And it's actually mostly moot. interface_to_internal maps
any range to 0..1.
The GUI could just hardcode min/max 0, 1 and steps 1/30, 1/300.
Except for controls that have explicit range-steps & ctrl surfaces.
2017-07-06 16:32:27 +02:00
Robin Gareus
cd30a29691 Fix session-event queue (multiple writer, single reader)
The reading is done in rt-process thread, but multiple UIs (surfaces,
GUI) can produce events to be queued.
2017-07-04 20:44:33 +02:00
Robin Gareus
c4578db595 Compatibility with old out-of-range automation-lane data
Ardour may have ignored log-scale for parameters 0..N and allowed
writing '0'. Force those values into the valid range on session load.
Also mark the list as "needs sorting" which removes potential duplicates.
2017-07-04 20:12:51 +02:00
Robin Gareus
135ffdcf6b Work-around for plugins with log-scale parameter 0..SR/2 2017-07-04 20:09:11 +02:00
Robin Gareus
7ed775a716 Add API to step though parameter enumerations 2017-07-02 21:04:22 +02:00
Robin Gareus
15b6b29112 Prepare x-thread signals plugin-GUI visibility 2017-07-02 01:58:16 +02:00
Robin Gareus
b2f3523ab6 Remove old libardour API for plugin UIs 2017-07-01 23:42:28 +02:00
Robin Gareus
f413b83cb9 Fix thinko in dd3f922788 2017-07-01 18:31:55 +02:00
Robin Gareus
1cbc91788f Don't invert azimuth & elevation display value 2017-06-30 20:01:53 +02:00
Robin Gareus
1682368052 NO-OP: whitespace 2017-06-30 19:56:40 +02:00
Robin Gareus
17bcb67af5 Remove cruft (ParameterDescriptor sets this) 2017-06-30 19:56:01 +02:00
Robin Gareus
dd3f922788 Tweak LV2 float parameter printing 2017-06-30 01:56:49 +02:00
Robin Gareus
d4928e0765 Fix multi-channel delaylines #7409 part 2/2 2017-06-29 04:40:54 +02:00
Robin Gareus
8e4eb42833 Fix send mono to stereo (or N to M; M > N) sends #7409 part 1/2 2017-06-29 04:40:00 +02:00
Robin Gareus
1f5013b4a8 Distinguish error-messages.
The vast majority of errors reported by users as
  "Cannot configure audio/midi engine with session parameters"
have nothing to do with engine-parameters.
2017-06-27 20:28:45 +02:00
Robin Gareus
007f3cdbba Add convenience fn to compute a file's sha1sum 2017-06-26 19:39:40 +02:00
Robin Gareus
de99d7c528 Allow saving state w/o backend
Connections are remembered by ARDOUR::Port to re-establish at load.
2017-06-25 22:03:42 +02:00
Robin Gareus
cc7ff53e1f Create a deep-copy of MIDI sources when saving snapshots 2017-06-25 01:57:19 +02:00
Robin Gareus
a1c5d1be43 Extend API to allow calling new_midi_source_path() with source_lock held
This is in preparation for cloning MIDI-sources during snapshot save.
2017-06-25 01:57:19 +02:00
Robin Gareus
64a091ea4b Fix metronome + capture alignment for Mixbus 2017-06-24 01:22:17 +02:00
Robin Gareus
104a4c2030 leave a hint for clang's static analyzer 2017-06-23 17:39:20 +02:00
Robin Gareus
e765d0b3bb Remove Automation Types that should never have existed. 2017-06-23 17:39:20 +02:00
Robin Gareus
de73194050 Implement undo for merging VCA-master automation/value on disconnect. 2017-06-23 17:39:20 +02:00
Robin Gareus
d34fdb98e3 Improve default parameter display 2017-06-23 17:39:20 +02:00
Tim Mayberry
d972fa431c Remove unnecessary LocaleGuard header include 2017-06-23 09:12:53 +10:00
Robin Gareus
9334c99b35 Update Slavable API
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-22 22:04:10 +02:00
Robin Gareus
faa52a3349 NO-OP: whitespace 2017-06-22 22:04:10 +02:00
Tim Mayberry
a5836e2922 Remove LocaleGuard from Plugin::get_state
Let the plugin implementation of Plugin::add_state use a LocaleGuard if it is
necessary (VST/LV2). This puts the LocaleGuards where they are required but the
LocaleGuards in Session::set/get_state will mean these LocaleGuards are a noop.
They are still useful for documentation purposes and in case the code is called
from a non-Session context at some point.
2017-06-22 10:48:38 +10:00
Tim Mayberry
8b10ed2478 Remove LocaleGuards from LadspaPlugin::set/add_state
String <-> type conversion is being performed by the pbd/string_convert.h API
via PBD::XMLNode so LocaleGuards are not necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
a65c3ef28f Remove unnecessary LocaleGuards from VSTPlugin derived classes
VSTPlugin::set_state and VSTPlugin::add_state methods both already contain
LocaleGuard instances.
2017-06-22 10:48:38 +10:00
Tim Mayberry
6d35b3c4e4 Remove locale_guard.h from ardour/ardour.h header
Add to source files that use LocaleGuard

Results in far less recompiling when pbd/locale_guard.h changes
2017-06-22 10:48:38 +10:00
Tim Mayberry
5103663f13 Remove LocaleGuard from ARDOUR::PannerShell
All Panner implementations using PBD::to_string/string_to for float <=> string
conversion and no longer require a LocaleGuard.
2017-06-22 10:48:38 +10:00
Tim Mayberry
e4b5a84211 Remove LocaleGuard from ARDOUR::Pannable class
string <=> float conversions are using PBD::to_string/string_to and no longer
require a LocaleGuard
2017-06-22 10:48:38 +10:00
Tim Mayberry
00803ca69b Remove LocaleGuards from ARDOUR::Tempo class
All float <=> string conversions are done for PBD::string_to/to_string and no
longer require a LocaleGuard.
2017-06-22 10:48:38 +10:00
Tim Mayberry
8d039d3211 Remove LocaleGuards from ARDOUR::Speakers class
float <=> string conversions are now using PBD::to_string/string_to via XMLNode
for locale independent conversion and these guards are not necessary.
2017-06-22 10:48:38 +10:00
Tim Mayberry
f597711428 Remove LocaleGuards from ARDOUR::Session transport related methods
ARDOUR::AutomationList is no longer using LocaleGuards as float <=> string
conversion is using PBD::to_string/string_to so the reason for adding these
guards as per comment no longer applies.
2017-06-22 10:48:38 +10:00