Commit graph

14155 commits

Author SHA1 Message Date
Robin Gareus
adc2c756e6 Allow adding tracks w/o running backend 2017-07-20 16:45:24 +02:00
Robin Gareus
9992ea10b3 Allow listening to channels being exported (w/ realtime export)
It would be nice to change get_audio_buffer() to not set
AudioBuffer::_written to false (all but one other user of this API also
only get read-only data), but that requires chaning the rationale of the
underlying ::set_data() API.
2017-07-19 22:15:22 +02:00
John Emmas
951404475c MSVC changes needed to implement the new 'waveview' library 2017-07-19 08:20:18 +01:00
John Emmas
bf150f049f MSVC changes needed to implement the new 'widgets' library 2017-07-19 08:16:30 +01:00
Robin Gareus
b1c73b11fc FP8: use separate bank offsets per MixMode 2017-07-19 03:04:58 +02:00
Robin Gareus
7893cac718 Fix well-known send API for mixbusses. 2017-07-19 02:11:10 +02:00
Robin Gareus
601604972c FP8: Fix Mixbus solo-state and indicate implicit solo (blink) 2017-07-19 01:52:14 +02:00
Robin Gareus
9a0a2a29b5 Fix NSGLView invalidation 2017-07-18 21:34:03 +02:00
Léo Andrès
81eb619dc2 Fix french translation mistake 2017-07-18 18:59:50 +02:00
Robin Gareus
5f485f964e Fix OSX builds in the wake of the source-tree layout changes 2017-07-18 18:29:22 +02:00
Paul Davis
8c6d78c188 add required stdint.h 2017-07-17 18:15:42 -04:00
Robin Gareus
ac37c9b7b8 PluginInsert::silence is used after all (fix 07aeb12d3) 2017-07-17 23:52:45 +02:00
Robin Gareus
4922d9f941 FP8: save/restore "two line text" option 2017-07-17 22:59:12 +02:00
Robin Gareus
521e4f676b Remove unused clearlooks-older 2017-07-17 21:06:04 +02:00
Robin Gareus
beb73edf55 Purify libcanvas, remove libardour dependency
A canvas is just a canvas. Move WaveView into its own library.
2017-07-17 21:06:04 +02:00
Robin Gareus
601c317d70 Clean up library inheritance (colors.h, utils.h)
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
Robin Gareus
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
Robin Gareus
f9e5e4360e Move more Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
Robin Gareus
b5e9451bc7 Remove unused sources & includes 2017-07-17 21:06:04 +02:00
Robin Gareus
f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
Robin Gareus
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
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
Jelle van der Waa
b1cf27bed4 Fix duplicate ‘const’ declaration specifier 2017-07-12 12:09:59 +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
b732aa2ca1 fix void return with value (amend d5d297c4) 2017-07-06 18:01:49 +02:00
Robin Gareus
d5d297c407 Fix FP8 shutdown sequence (amend d421e56fc) 2017-07-06 16:55:02 +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
Len Ovens
2a809dcf70 OSC: add delta controls to master, monitor and select as well 2017-07-05 08:08:57 -07: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
5292a8f4ae Allow DnDVbox to sort the selection, using original order
In preparation for Processors to be copy/pasted in the same order
as they appear on the strip -- not order in which they are selected.
2017-07-04 18:08:35 +02:00
Len Ovens
b11c64ea5b OSC: GUI tweaking 2017-07-03 13:22:56 -07:00
Robin Gareus
b87bec3200 FP8: "Link" mode works with AutomationControl only. 2017-07-03 19:56:16 +02:00
Robin Gareus
d76885e9ef Revert "Prefer Stereo-Balance Panner for stereo tracks"
This reverts commit e9ee454ced.

This needs more work to preserve non-customized panners in existing
sessions. "user-panner" is only set if a user explicitly selects a
panner.
2017-07-03 16:21:35 +02:00
Robin Gareus
ddf55c0d88 PBD::init() failing is fatal in main(), don't silently exit. 2017-07-03 14:45:41 +02:00
Robin Gareus
e9ee454ced Prefer Stereo-Balance Panner for stereo tracks 2017-07-03 02:24:53 +02:00
Robin Gareus
ebc8e352bf FP8: toggle editor/mixer (now that "link" button is used)
..and some TODO notes.
2017-07-03 01:42:36 +02:00