Johannes Mueller [Thu, 6 Jul 2017 05:31:12 +0000 (07:31 +0200)]
Adjust template names inside template files
This concernes:
* LV2 states:
LV2 states are stored in the template directories and their paths are stored
int the template files using absolute paths. Therefore we have to adjust the
template-dir property of every lv2 node referring to a state dir.
* Names of route templates.
The name of the route template is stored in the first child of the xml root
node in the property `name`. This needs to be adjusted when renaming the
template.
By now we rely on that only lv2 states and the route template name need to be
adjusted on renaming a template.
Johannes Mueller [Mon, 3 Jul 2017 12:30:05 +0000 (14:30 +0200)]
Also handle Route templates
Following measures:
* Split up into two classes
* TemplateDialog: the general dialog
* TemplateManager: A widget to rename and remove templates
* Make TemplateManager abstract and derive a class for session templates and
one for route templates. This is needed, as session templates and route
templates are stored in a different way. Thus we need different methods to
rename and remove them.
Johannes Mueller [Mon, 3 Jul 2017 11:05:21 +0000 (13:05 +0200)]
Some cosmetics
Johannes Mueller [Mon, 3 Jul 2017 10:27:25 +0000 (12:27 +0200)]
First draft of a template management dialog
Goal is to a simple dialog that can rename and remove templates. This is
helpful in order to keep the template list tidy.
So far it works for session templates. Track templates tbd.
Johannes Mueller [Sun, 2 Jul 2017 22:27:18 +0000 (00:27 +0200)]
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.
Jelle van der Waa [Wed, 12 Jul 2017 10:09:59 +0000 (12:09 +0200)]
Fix duplicate ‘const’ declaration specifier
Robin Gareus [Wed, 12 Jul 2017 04:55:44 +0000 (06:55 +0200)]
Honor groups for mixer selection
Robin Gareus [Sat, 8 Jul 2017 16:13:42 +0000 (18:13 +0200)]
Don't use VST ->user points, prefer host-reserved ptr
Apparently "user" is for plugins (not hosts) to use.
Robin Gareus [Sat, 8 Jul 2017 14:07:42 +0000 (16:07 +0200)]
Add select-all-tracks mixer-shortcut (following editor)
Robin Gareus [Sat, 8 Jul 2017 13:43:55 +0000 (15:43 +0200)]
Remove old API (unused, incorrect for grouped tracks)
Robin Gareus [Sat, 8 Jul 2017 13:43:32 +0000 (15:43 +0200)]
Fix gain inc/dec with multiple-selection spanning groups
When tracks in a gain-sharing group are selected, stepping gain
up/down affected the tracks N times:
for-each selected track inc/dec gain w/grouping.
When a mix of grouped and un-grouped tracks is selected, this lead to
inconsistent gain changes.
The new approach expands the groups first. Ignoring groups is not correct
either for single selection.
Robin Gareus [Sat, 8 Jul 2017 13:35:30 +0000 (15:35 +0200)]
Add API to expand/flatten AC groups
Robin Gareus [Fri, 7 Jul 2017 21:05:59 +0000 (23:05 +0200)]
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.
Robin Gareus [Fri, 7 Jul 2017 15:30:37 +0000 (17:30 +0200)]
Drop region references when hiding the TimeFX dialog.
Robin Gareus [Fri, 7 Jul 2017 12:47:36 +0000 (14:47 +0200)]
Fix VCA Automation Lane selection
This moves child-selection API up into TAV (Superclass of StripableTAV
which actually owns the children)
Robin Gareus [Fri, 7 Jul 2017 00:43:15 +0000 (02:43 +0200)]
Czech translation update by pfri #7190
Robin Gareus [Fri, 7 Jul 2017 00:34:09 +0000 (02:34 +0200)]
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.
Robin Gareus [Thu, 6 Jul 2017 16:01:49 +0000 (18:01 +0200)]
fix void return with value (amend
d5d297c4)
Robin Gareus [Thu, 6 Jul 2017 14:55:02 +0000 (16:55 +0200)]
Fix FP8 shutdown sequence (amend
d421e56fc)
Robin Gareus [Thu, 6 Jul 2017 14:39:28 +0000 (16:39 +0200)]
Remove cruft, steps cannot be 0.
Robin Gareus [Thu, 6 Jul 2017 14:15:34 +0000 (16:15 +0200)]
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.
Robin Gareus [Wed, 5 Jul 2017 16:53:05 +0000 (18:53 +0200)]
Make an info string translatable
Len Ovens [Wed, 5 Jul 2017 15:07:51 +0000 (08:07 -0700)]
OSC: add delta controls to master, monitor and select as well
Robin Gareus [Tue, 4 Jul 2017 18:44:33 +0000 (20:44 +0200)]
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.
Robin Gareus [Tue, 4 Jul 2017 18:12:51 +0000 (20:12 +0200)]
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.
Robin Gareus [Tue, 4 Jul 2017 18:09:11 +0000 (20:09 +0200)]
Work-around for plugins with log-scale parameter 0..SR/2
Robin Gareus [Tue, 4 Jul 2017 16:06:54 +0000 (18:06 +0200)]
Fix a plugin-insert position off-by-one and remove cruft.
Route::before_processor_for_index() uses display_to_user() which
includes the Amp.
Insert position is still be wrong with the debug mode
ProcessorBox::show_all_processors == true, but that's not a regression.
Robin Gareus [Tue, 4 Jul 2017 15:54:17 +0000 (17:54 +0200)]
Always add plugins in the order given by the Manager UI.
Robin Gareus [Tue, 4 Jul 2017 15:08:58 +0000 (17:08 +0200)]
Retain plugins order for copy/cut/paste + DnD #7416
Robin Gareus [Tue, 4 Jul 2017 15:07:47 +0000 (17:07 +0200)]
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.
Len Ovens [Mon, 3 Jul 2017 21:31:27 +0000 (14:31 -0700)]
OSC: Add system osc preset directory
Len Ovens [Mon, 3 Jul 2017 20:22:12 +0000 (13:22 -0700)]
OSC: GUI tweaking
Robin Gareus [Mon, 3 Jul 2017 17:56:16 +0000 (19:56 +0200)]
FP8: "Link" mode works with AutomationControl only.
Robin Gareus [Mon, 3 Jul 2017 17:55:17 +0000 (19:55 +0200)]
Make VCA mute+solo buttons bindable
Robin Gareus [Mon, 3 Jul 2017 14:20:01 +0000 (16:20 +0200)]
Revert "Prefer Stereo-Balance Panner for stereo tracks"
This reverts commit
e9ee454cedda06403a57d1e17239fa2fbfb36638.
This needs more work to preserve non-customized panners in existing
sessions. "user-panner" is only set if a user explicitly selects a
panner.
Robin Gareus [Mon, 3 Jul 2017 14:19:10 +0000 (16:19 +0200)]
Another approach for stuck splash-screens:
Use Editor::first_idle() which is invoked every time when a session
is loaded (via set_session). This will catch ALL successful
session loads.
Failed session-loads explicitly pop down the splash in
ARDOUR_UI::load_session.
This only leaves "abort session open" which returns to the
session-open dialog (which pops back the splash).
Robin Gareus [Mon, 3 Jul 2017 12:45:41 +0000 (14:45 +0200)]
PBD::init() failing is fatal in main(), don't silently exit.
Robin Gareus [Mon, 3 Jul 2017 12:44:03 +0000 (14:44 +0200)]
Don't just silently exit if initialization fails.
Robin Gareus [Mon, 3 Jul 2017 12:03:10 +0000 (14:03 +0200)]
Fix another crash at exit.
During ARDOUR_UI::finish(), after destroying various instances:
close_all_dialogs() -> ArdourDialog::on_response() -> GUIIdle()
The event loop recurses and may execute a previously scheduled
Editor::idle_visual_changer()
Robin Gareus [Mon, 3 Jul 2017 00:24:53 +0000 (02:24 +0200)]
Prefer Stereo-Balance Panner for stereo tracks
Robin Gareus [Sun, 2 Jul 2017 23:42:36 +0000 (01:42 +0200)]
FP8: toggle editor/mixer (now that "link" button is used)
..and some TODO notes.
Robin Gareus [Sun, 2 Jul 2017 23:41:35 +0000 (01:41 +0200)]
Re-introduce toggle-editor-and-mixer (for ctrl-surfaces)
6af51b52 moved to dedicated show-editor/show-mixer actions for
keybindings because the Mixer has a dedicated handler.
For Control-surfaces a common action is still practical.
Note: This is still broken for detached windows. it currently only
toggles tabs correctly.
Robin Gareus [Sun, 2 Jul 2017 20:53:28 +0000 (22:53 +0200)]
Allow to bind generic plugin-ui dropdown + clickboxes
Robin Gareus [Sun, 2 Jul 2017 20:48:39 +0000 (22:48 +0200)]
Add binding-proxy to ClickBox
Robin Gareus [Sun, 2 Jul 2017 19:05:42 +0000 (21:05 +0200)]
FP8: properly control enum+integer parameters.
Robin Gareus [Sun, 2 Jul 2017 19:04:22 +0000 (21:04 +0200)]
Add API to step though parameter enumerations
Robin Gareus [Sun, 2 Jul 2017 16:16:54 +0000 (18:16 +0200)]
FP8: Implement "Control-Link"
Robin Gareus [Sun, 2 Jul 2017 13:29:57 +0000 (15:29 +0200)]
Add control-focus notifications from bindable GUI widgets.
Robin Gareus [Sun, 2 Jul 2017 16:18:22 +0000 (18:18 +0200)]
Add control-focus notifications from bindable widgets.
Robin Gareus [Sun, 2 Jul 2017 13:28:51 +0000 (15:28 +0200)]
Controllable focus notification API
This allows to inform control-surfaces about the current GUI
control-element. "Link" control-surface interaction to GUI focus.
Len Ovens [Sun, 2 Jul 2017 15:27:50 +0000 (08:27 -0700)]
OSC: GUI indicate invalid port and set to old port on defocus if not valid
Robin Gareus [Sun, 2 Jul 2017 00:06:48 +0000 (02:06 +0200)]
FP8: plugin GUI display options
Robin Gareus [Sat, 1 Jul 2017 23:59:24 +0000 (01:59 +0200)]
Allow ctrl-surfaces to show/hide plugin UIs.
Robin Gareus [Sat, 1 Jul 2017 23:58:16 +0000 (01:58 +0200)]
Prepare x-thread signals plugin-GUI visibility
Robin Gareus [Sat, 1 Jul 2017 23:57:21 +0000 (01:57 +0200)]
FP8: fix 2-line text
Robin Gareus [Sat, 1 Jul 2017 21:42:28 +0000 (23:42 +0200)]
Remove old libardour API for plugin UIs
Robin Gareus [Sat, 1 Jul 2017 21:41:25 +0000 (23:41 +0200)]
Remove old API to keep track of plugin GUI widgets
This was superseded by WindowProxy and the ARDOUR::Processor
[set_]window_proxy() API
Robin Gareus [Sat, 1 Jul 2017 21:39:48 +0000 (23:39 +0200)]
Remove unused variable (amend
79384339e)
Thomas Brand [Sat, 1 Jul 2017 20:53:40 +0000 (22:53 +0200)]
Correctly display region name in context menu
Len Ovens [Sat, 1 Jul 2017 19:27:48 +0000 (12:27 -0700)]
OSC: issue 7176 patch applied. shows plugin descriptors.
Thomas Brand [Sat, 1 Jul 2017 19:29:46 +0000 (21:29 +0200)]
Fix some typos (closes GH PR #356)
Robin Gareus [Sat, 1 Jul 2017 19:25:01 +0000 (21:25 +0200)]
Use Stripable::Sorter in meterbridge
Robin Gareus [Sat, 1 Jul 2017 19:19:28 +0000 (21:19 +0200)]
Remove old gnome-canvas src code.
Robin Gareus [Sat, 1 Jul 2017 19:11:14 +0000 (21:11 +0200)]
NO-OP whitespace & foratting of header files
Len Ovens [Sat, 1 Jul 2017 18:49:08 +0000 (11:49 -0700)]
OSC: add feedback for solo isolate and solo safe to strips (issue 7161)
Len Ovens [Sat, 1 Jul 2017 18:12:42 +0000 (11:12 -0700)]
OSC: add strip type flag for master and monitor to strip list
Thomas Brand [Sat, 1 Jul 2017 16:42:24 +0000 (18:42 +0200)]
NO-OP whitespace (updated GH PR #357)
Robin Gareus [Sat, 1 Jul 2017 16:31:55 +0000 (18:31 +0200)]
Robin Gareus [Sat, 1 Jul 2017 15:11:55 +0000 (17:11 +0200)]
FP8: Use Mixer-Order
Len Ovens [Sat, 1 Jul 2017 03:47:42 +0000 (20:47 -0700)]
OSC: include all of select in feedback[13]
Len Ovens [Sat, 1 Jul 2017 03:13:18 +0000 (20:13 -0700)]
OSC: try to prevent race when clearing devices
Len Ovens [Sat, 1 Jul 2017 02:04:09 +0000 (19:04 -0700)]
OSC: test param type in a way that works when optimized too.
Robin Gareus [Sat, 1 Jul 2017 01:10:50 +0000 (03:10 +0200)]
Fix crash when rapidly switching snapshots
ARDOUR_UI::load_session() calls flush_pending() which runs
gtk_main_iteration()s until idle.
If a user selects another snapshot from the sidebar, load_session()
is called again (from a call to load session)
Robin Gareus [Sat, 1 Jul 2017 00:22:44 +0000 (02:22 +0200)]
FP8: Clear input port on close. Fixes crash when switching snapshots
The midi_input_handler for the AsyncMIDIPort is connected to the
main event-loop. Events may still be delivered after the surface was
destroyed.
That by itself is not harmful, unless a given message produces a reply:
The _output_port is already gone, FaderPort8::tx_midi crashes.
Johannes Mueller [Sun, 25 Jun 2017 19:21:56 +0000 (21:21 +0200)]
Addressing #7371: don't trigger session->undo() from non-GUI-thread
When triggering Session::undo() or Session::redo() from a
non-GUI-thread (e.g. from a surface protocol) Ardour crashes if setting a
CairoWidget dirty due to a ENSURE_GUI_THREAD assertion. (see #7371)
By triggering undo by BasicUI::access_action() rather than by Session::undo()
we ensure that the GUI thread will finally call Session::undo().
So more like a workaround ... but better than crashing :)
Robin Gareus [Fri, 30 Jun 2017 18:02:45 +0000 (20:02 +0200)]
Fix a typo
Robin Gareus [Fri, 30 Jun 2017 18:01:53 +0000 (20:01 +0200)]
Don't invert azimuth & elevation display value
Robin Gareus [Fri, 30 Jun 2017 17:56:40 +0000 (19:56 +0200)]
NO-OP: whitespace
Robin Gareus [Fri, 30 Jun 2017 17:56:01 +0000 (19:56 +0200)]
Remove cruft (ParameterDescriptor sets this)
Robin Gareus [Fri, 30 Jun 2017 17:55:03 +0000 (19:55 +0200)]
FP8: Scribble-strip display preferences
Robin Gareus [Fri, 30 Jun 2017 10:13:21 +0000 (12:13 +0200)]
FP8: Allow to select Plugin Presets
Robin Gareus [Fri, 30 Jun 2017 00:31:36 +0000 (02:31 +0200)]
FP8: don't allow to toggle Channelstrip bypass/enable
Robin Gareus [Thu, 29 Jun 2017 23:59:12 +0000 (01:59 +0200)]
FaderPort8 updates
* use 2 lines for Plugin Parameter Names
* Expose Plugin Bypass/Enable per plugin
- Shift + Select in Plugin Select Mode
- Bypass Button in Plugin Parameter Edit Mode
Robin Gareus [Thu, 29 Jun 2017 23:56:49 +0000 (01:56 +0200)]
Tweak LV2 float parameter printing
Robin Gareus [Thu, 29 Jun 2017 16:40:51 +0000 (18:40 +0200)]
Don't interpolate&smooth playhead pos during export.
John Emmas [Thu, 29 Jun 2017 09:11:05 +0000 (10:11 +0100)]
Accommodate newly introduced source(s) in our MSVC project (gtkmm2ext)
John Emmas [Thu, 29 Jun 2017 09:10:26 +0000 (10:10 +0100)]
Accommodate newly introduced source(s) in our MSVC project (cairocanvas)
John Emmas [Thu, 29 Jun 2017 09:08:32 +0000 (10:08 +0100)]
Remove ambiguity ('CheckMenuItem' conflicts with an item already existing in MSVC)
Robin Gareus [Thu, 29 Jun 2017 02:40:54 +0000 (04:40 +0200)]
Fix multi-channel delaylines #7409 part 2/2
Robin Gareus [Thu, 29 Jun 2017 02:40:00 +0000 (04:40 +0200)]
Fix send mono to stereo (or N to M; M > N) sends #7409 part 1/2
Robin Gareus [Wed, 28 Jun 2017 22:21:13 +0000 (00:21 +0200)]
Use quotes for bundled library includes
Robin Gareus [Wed, 28 Jun 2017 22:20:55 +0000 (00:20 +0200)]
Use mnemonic-save API for menu-element texts
Robin Gareus [Wed, 28 Jun 2017 21:24:06 +0000 (23:24 +0200)]
Add a convenience MenuHelper c'tor
This is pretty much Gtkmm's
* CheckMenuElem::CheckMenuElem
* MenuElem::MenuElem
except MenuItems are created with bool mnemonic = false;
Robin Gareus [Wed, 28 Jun 2017 16:46:07 +0000 (18:46 +0200)]
Add explicit VideoTimeline change-type, follow up on
f73ce2d
Robin Gareus [Wed, 28 Jun 2017 16:42:10 +0000 (18:42 +0200)]
Reset idle_handler_id (fixes idle zoom -- bug in
265f52535a7)
If pending_visual_change.pending was zero when calling idle_visual_changer
the handler_id was never reset. and the idle-handler was never called
again.
Robin Gareus [Wed, 28 Jun 2017 01:03:05 +0000 (03:03 +0200)]
fix OSX builds (llmath compat)
Robin Gareus [Tue, 27 Jun 2017 18:28:45 +0000 (20:28 +0200)]
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.
Robin Gareus [Tue, 27 Jun 2017 18:12:03 +0000 (20:12 +0200)]
Update fluidsynth
Fix potential crashes in case fluid-synth runs into an OOM error,
and address a const-cast compiler warning.
Switch to track github repo (instead of sf.net git)
Robin Gareus [Mon, 26 Jun 2017 17:40:05 +0000 (19:40 +0200)]
Include file's sha1 in export-report image
Robin Gareus [Mon, 26 Jun 2017 17:39:40 +0000 (19:39 +0200)]
Add convenience fn to compute a file's sha1sum