ardour.git
6 years agoRationalize Editor Zooming: make it harder for user to step into ridiculous zoom...
Ben Loftis [Wed, 19 Jul 2017 20:10:20 +0000 (15:10 -0500)]
Rationalize Editor Zooming: make it harder for user to step into ridiculous zoom-out scales.

6 years agoAllow listening to channels being exported (w/ realtime export)
Robin Gareus [Wed, 19 Jul 2017 20:05:32 +0000 (22:05 +0200)]
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.

6 years agotweak "visible track count", take automation lanes into account.
Robin Gareus [Wed, 19 Jul 2017 18:37:57 +0000 (20:37 +0200)]
tweak "visible track count", take automation lanes into account.

6 years agoConst'ness where const'ness is due
Robin Gareus [Wed, 19 Jul 2017 18:35:17 +0000 (20:35 +0200)]
Const'ness where const'ness is due

6 years agoExpose editor-vertical zoom lua bindings
Robin Gareus [Wed, 19 Jul 2017 18:08:01 +0000 (20:08 +0200)]
Expose editor-vertical zoom lua bindings

6 years agoEditor Summary: fix yet another thinko in zoom direction.
Ben Loftis [Wed, 19 Jul 2017 19:13:18 +0000 (14:13 -0500)]
Editor Summary: fix yet another thinko in zoom direction.

6 years agoEditor Summary: The view rectangle should never exceed the bounds of the scroll area.
Ben Loftis [Wed, 19 Jul 2017 18:58:56 +0000 (13:58 -0500)]
Editor Summary: The view rectangle should never exceed the bounds of the scroll area.

6 years agoEditor Summary: fix thinko in mouse cursors (trim cursor).
Ben Loftis [Wed, 19 Jul 2017 13:20:25 +0000 (08:20 -0500)]
Editor Summary: fix thinko in mouse cursors (trim cursor).

6 years agoEditor Summary: implement summary_zoom_step() to lessen redundant code.
Ben Loftis [Wed, 19 Jul 2017 13:12:25 +0000 (08:12 -0500)]
Editor Summary:  implement summary_zoom_step() to lessen redundant code.

6 years agoEditor Summary: fix direction of scroll zoom to match other conventions
Ben Loftis [Wed, 19 Jul 2017 11:58:16 +0000 (06:58 -0500)]
Editor Summary: fix direction of scroll zoom to match other conventions

6 years agoMSVC changes needed to implement the new 'waveview' library
John Emmas [Wed, 19 Jul 2017 07:20:18 +0000 (08:20 +0100)]
MSVC changes needed to implement the new 'waveview' library

6 years agoMSVC changes needed to implement the new 'widgets' library
John Emmas [Wed, 19 Jul 2017 07:16:30 +0000 (08:16 +0100)]
MSVC changes needed to implement the new 'widgets' library

6 years agoFP8: use separate bank offsets per MixMode
Robin Gareus [Wed, 19 Jul 2017 01:04:58 +0000 (03:04 +0200)]
FP8: use separate bank offsets per MixMode

6 years agoFix well-known send API for mixbusses.
Robin Gareus [Wed, 19 Jul 2017 00:11:10 +0000 (02:11 +0200)]
Fix well-known send API for mixbusses.

6 years agoFP8: Fix Mixbus solo-state and indicate implicit solo (blink)
Robin Gareus [Tue, 18 Jul 2017 23:52:14 +0000 (01:52 +0200)]
FP8: Fix Mixbus solo-state and indicate implicit solo (blink)

6 years agoFix NSGLView invalidation
Robin Gareus [Tue, 18 Jul 2017 19:34:03 +0000 (21:34 +0200)]
Fix NSGLView invalidation

6 years agoFix LD_LIBRARY_PATH in GNU/Linux startup script
nickolas360 [Fri, 23 Jun 2017 21:03:59 +0000 (14:03 -0700)]
Fix LD_LIBRARY_PATH in GNU/Linux startup script

Currently, the startup script for GNU/Linux adds the current working directory
to LD_LIBRARY_PATH if LD_LIBRARY_PATH is not empty or unset.

For example, if LD_LIBRARY_PATH is set to "/lib" when the current script is
run, it will be set to "<install-dir>/lib::/lib", which includes the current
working directory as one of the paths.

This commit removes the extra colon added to LD_LIBRARY_PATH (without changing
the script's behavior of setting LD_LIBRARY_PATH to an empty string when it is
unset).

6 years agoFix french translation mistake
Léo Andrès [Fri, 2 Dec 2016 19:20:20 +0000 (20:20 +0100)]
Fix french translation mistake

6 years agoFix OSX builds in the wake of the source-tree layout changes
Robin Gareus [Tue, 18 Jul 2017 16:29:22 +0000 (18:29 +0200)]
Fix OSX builds in the wake of the source-tree layout changes

6 years agoEditor Summary: Changes to behavior
Ben Loftis [Tue, 18 Jul 2017 15:37:35 +0000 (10:37 -0500)]
Editor Summary: Changes to behavior
* Remove up/down buttons.
* Allow the summary to shrink smaller.
* Vertical drag results in zoom.
* Scroll-wheel results in zoom.
* Tweak mouse cursor to better indicate behaviors.
* ToDo:  refactor the zooming code.

6 years agoadd required stdint.h
Paul Davis [Mon, 17 Jul 2017 22:15:37 +0000 (18:15 -0400)]
add required stdint.h

6 years agoPluginInsert::silence is used after all (fix 07aeb12d3)
Robin Gareus [Mon, 17 Jul 2017 21:52:45 +0000 (23:52 +0200)]
PluginInsert::silence is used after all (fix 07aeb12d3)

6 years agoFP8: save/restore "two line text" option
Robin Gareus [Mon, 17 Jul 2017 20:59:12 +0000 (22:59 +0200)]
FP8: save/restore "two line text" option

6 years agoRemove unused clearlooks-older
Robin Gareus [Mon, 17 Jul 2017 19:03:02 +0000 (21:03 +0200)]
Remove unused clearlooks-older

6 years agoUpdate tools for new source-tree layout
Robin Gareus [Mon, 17 Jul 2017 19:02:38 +0000 (21:02 +0200)]
Update tools for new source-tree layout

6 years agoPurify libcanvas, remove libardour dependency
Robin Gareus [Mon, 17 Jul 2017 18:12:33 +0000 (20:12 +0200)]
Purify libcanvas, remove libardour dependency

A canvas is just a canvas. Move WaveView into its own library.

6 years agoClean up library inheritance (colors.h, utils.h)
Robin Gareus [Mon, 17 Jul 2017 16:34:35 +0000 (18:34 +0200)]
Clean up library inheritance (colors.h, utils.h)

make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.

6 years agoRemove ArdourPrompter wrapper
Robin Gareus [Mon, 17 Jul 2017 03:18:48 +0000 (05:18 +0200)]
Remove ArdourPrompter wrapper

6 years agoRemove <gtkmm.h> include from header files.
Robin Gareus [Mon, 17 Jul 2017 01:48:18 +0000 (03:48 +0200)]
Remove <gtkmm.h> include from header files.

6 years agoMove more Gtkmm2ext widgets into libwidget
Robin Gareus [Mon, 17 Jul 2017 02:55:52 +0000 (04:55 +0200)]
Move more Gtkmm2ext widgets into libwidget

6 years agoRemove unused sources & includes
Robin Gareus [Sun, 16 Jul 2017 22:00:11 +0000 (00:00 +0200)]
Remove unused sources & includes

6 years agoMove Gtkmm2ext widgets into libwidget
Robin Gareus [Sun, 16 Jul 2017 20:13:46 +0000 (22:13 +0200)]
Move Gtkmm2ext widgets into libwidget

6 years agoremove cruft (no more ButtonJoiner)
Robin Gareus [Sat, 15 Jul 2017 21:23:16 +0000 (23:23 +0200)]
remove cruft (no more ButtonJoiner)

6 years agoSeparate Ardour UI widgets into dedicated library
Robin Gareus [Sat, 15 Jul 2017 15:38:28 +0000 (17:38 +0200)]
Separate Ardour UI widgets into dedicated library

6 years agofix behaviour of AddRouteDialog "Add" button
Paul Davis [Mon, 17 Jul 2017 15:51:58 +0000 (11:51 -0400)]
fix behaviour of AddRouteDialog "Add" button

6 years agoif user has edited name entry in add route dialog, type changes should not reset it.
Paul Davis [Mon, 17 Jul 2017 15:49:00 +0000 (11:49 -0400)]
if user has edited name entry in add route dialog, type changes should not reset it.

But using a response button should

6 years agoFix a typo in recent commit
Julien "_FrnchFrgg_" RIVAUD [Mon, 17 Jul 2017 10:08:42 +0000 (12:08 +0200)]
Fix a typo in recent commit

6 years agoFix loading bundles #7426
Robin Gareus [Sun, 16 Jul 2017 19:44:00 +0000 (21:44 +0200)]
Fix loading bundles #7426

6 years agoData less than or equal to zero should be considered "off"
Robin Gareus [Sun, 16 Jul 2017 17:00:33 +0000 (19:00 +0200)]
Data less than or equal to zero should be considered "off"

6 years agoFix merging boolean automation + mute disconnect.
Robin Gareus [Sun, 16 Jul 2017 16:59:35 +0000 (18:59 +0200)]
Fix merging boolean automation + mute disconnect.

6 years agoSome notes for later.
Robin Gareus [Sun, 16 Jul 2017 14:47:09 +0000 (16:47 +0200)]
Some notes for later.

6 years agoRemove Timers to watch Controllable values
Robin Gareus [Sat, 15 Jul 2017 18:50:26 +0000 (20:50 +0200)]
Remove Timers to watch Controllable values

Depend on Changed() signals alone, which are usually much less frequent
than rapid-timer events.

As side-effect we now need to make the widgets insensitive when
playing automation. Previously the user could not change the value because
the Timer periodically reset it.

6 years agoRemove unused API and a never used execution-branch
Robin Gareus [Sat, 15 Jul 2017 21:24:14 +0000 (23:24 +0200)]
Remove unused API and a never used execution-branch

6 years agoConsistent Automation evaluation:
Robin Gareus [Sat, 15 Jul 2017 18:45:49 +0000 (20:45 +0200)]
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.

6 years agoAdd API to run automation only (emit Changed signal).
Robin Gareus [Sat, 15 Jul 2017 18:52:50 +0000 (20:52 +0200)]
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.

6 years agoRename private method
Robin Gareus [Sun, 16 Jul 2017 13:13:04 +0000 (15:13 +0200)]
Rename private method

The same name (automation_run) is used in different context (mute) for
only processing automation.

6 years agorequired #include for earlier gcc
Paul Davis [Sat, 15 Jul 2017 17:43:39 +0000 (13:43 -0400)]
required #include for earlier gcc

6 years agonew script to globally switch from "audio frames" to "audio samples"
Paul Davis [Sat, 15 Jul 2017 16:21:50 +0000 (12:21 -0400)]
new script to globally switch from "audio frames" to "audio samples"

To be run at some point in the near future after various PRs and development branches
have been merged into master.

6 years agoForce filename suffix and ask confirmation before overwriting ...
Johannes Mueller [Wed, 12 Jul 2017 17:57:53 +0000 (19:57 +0200)]
Force filename suffix and ask confirmation before overwriting ...

... existing files, when exporting template archives.

6 years agoOnly make the export button sensitive if there's something to export
Johannes Mueller [Wed, 12 Jul 2017 15:44:35 +0000 (17:44 +0200)]
Only make the export button sensitive if there's something to export

6 years agoInflate template archives rather in `.config/ardour5/` than in ...
Johannes Mueller [Wed, 12 Jul 2017 15:34:22 +0000 (17:34 +0200)]
Inflate template archives rather in `.config/ardour5/` than in ...

`.config/ardour5/(templates|route_templates)`.

We put as toplevel directory of the archive `templates` or
`route_templates`. Then no matter if the user imports a session template or a
route template archives, we always put them into the correct folder.

As now the user can also import route templates while the
SessionTemplateManager is visible and vice versa, we need to signal the
successful import to the corresponding template manager. Therfor we introduce
the signal TemplatesImported.

6 years agoAdd johmue to authors list
Robin Gareus [Fri, 14 Jul 2017 18:01:34 +0000 (20:01 +0200)]
Add johmue to authors list

6 years agoTurn Summary into a horizontal scrollbar (drop y-axis sensitivity)
Robin Gareus [Fri, 14 Jul 2017 18:00:41 +0000 (20:00 +0200)]
Turn Summary into a horizontal scrollbar (drop y-axis sensitivity)

6 years agoSimplify _midifilter.lua example
Julien "_FrnchFrgg_" RIVAUD [Fri, 14 Jul 2017 13:16:33 +0000 (15:16 +0200)]
Simplify _midifilter.lua example

Instead of and-ing the first byte to extract the event type, it is
simpler and easier to understand to bitwise-shift it, so that we don't
get the result as a multiple of 2^4, but as values corresponding to the
MIDI specification.

Currently, a guard is put against events with completely empty data,
though maybe ardour discards those earlier on since that would not be
valid MIDI.

6 years agoAccommodate newly introduced source(s) in our MSVC project (gtk2_ardour)
John Emmas [Fri, 14 Jul 2017 09:48:26 +0000 (10:48 +0100)]
Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour)

6 years agoFix total number of process threads
Robin Gareus [Thu, 13 Jul 2017 15:16:31 +0000 (17:16 +0200)]
Fix total number of process threads

6 years agoSwitch to g_dir_make_tmp() to make the tmpdir.
Johannes Mueller [Fri, 7 Jul 2017 20:01:01 +0000 (22:01 +0200)]
Switch to g_dir_make_tmp() to make the tmpdir.

6 years agoFirst draft of import and export templates
Johannes Mueller [Fri, 7 Jul 2017 17:53:45 +0000 (19:53 +0200)]
First draft of import and export templates

Don't use this now, except for testing as the archive format will change.

TBD:

* error handling
* check template would be overwritten by import
* dinstinguish between session and track templates

6 years agoSome more error handling
Johannes Mueller [Thu, 6 Jul 2017 08:04:07 +0000 (10:04 +0200)]
Some more error handling

Try to undo the renaming of the template dir in case the writing of the new
template file fails.

6 years agoRemove template dirs using PBD::remove_directory()
Johannes Mueller [Thu, 6 Jul 2017 06:07:55 +0000 (08:07 +0200)]
Remove template dirs using PBD::remove_directory()

This makes sure that all state directories of the template are erased properly.

6 years agoAdjust template names inside template files
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.

6 years agoAlso handle Route templates
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.

6 years agoSome cosmetics
Johannes Mueller [Mon, 3 Jul 2017 11:05:21 +0000 (13:05 +0200)]
Some cosmetics

6 years agoFirst draft of a template management dialog
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.

6 years agoDon't try to chop of the file name extension from a template dir
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.

6 years agoFix duplicate ‘const’ declaration specifier
Jelle van der Waa [Wed, 12 Jul 2017 10:09:59 +0000 (12:09 +0200)]
Fix duplicate ‘const’ declaration specifier

6 years agoHonor groups for mixer selection
Robin Gareus [Wed, 12 Jul 2017 04:55:44 +0000 (06:55 +0200)]
Honor groups for mixer selection

6 years agoDon't use VST ->user points, prefer host-reserved ptr
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.

6 years agoAdd select-all-tracks mixer-shortcut (following editor)
Robin Gareus [Sat, 8 Jul 2017 14:07:42 +0000 (16:07 +0200)]
Add select-all-tracks mixer-shortcut (following editor)

6 years agoRemove old API (unused, incorrect for grouped tracks)
Robin Gareus [Sat, 8 Jul 2017 13:43:55 +0000 (15:43 +0200)]
Remove old API (unused, incorrect for grouped tracks)

6 years agoFix gain inc/dec with multiple-selection spanning groups
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.

6 years agoAdd API to expand/flatten AC groups
Robin Gareus [Sat, 8 Jul 2017 13:35:30 +0000 (15:35 +0200)]
Add API to expand/flatten AC groups

6 years agoDon't drop processor references with process-lock
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.

6 years agoDrop region references when hiding the TimeFX dialog.
Robin Gareus [Fri, 7 Jul 2017 15:30:37 +0000 (17:30 +0200)]
Drop region references when hiding the TimeFX dialog.

6 years agoFix VCA Automation Lane selection
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)

6 years agoCzech translation update by pfri #7190
Robin Gareus [Fri, 7 Jul 2017 00:43:15 +0000 (02:43 +0200)]
Czech translation update by pfri #7190

6 years agoConsistent ControlList freezing -- fixes #7419
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.

6 years agofix void return with value (amend d5d297c4)
Robin Gareus [Thu, 6 Jul 2017 16:01:49 +0000 (18:01 +0200)]
fix void return with value (amend d5d297c4)

6 years agoFix FP8 shutdown sequence (amend d421e56fc)
Robin Gareus [Thu, 6 Jul 2017 14:55:02 +0000 (16:55 +0200)]
Fix FP8 shutdown sequence (amend d421e56fc)

6 years agoRemove cruft, steps cannot be 0.
Robin Gareus [Thu, 6 Jul 2017 14:39:28 +0000 (16:39 +0200)]
Remove cruft, steps cannot be 0.

6 years agoConsistently set parameter steps.
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.

6 years agoMake an info string translatable
Robin Gareus [Wed, 5 Jul 2017 16:53:05 +0000 (18:53 +0200)]
Make an info string translatable

6 years agoOSC: add delta controls to master, monitor and select as well
Len Ovens [Wed, 5 Jul 2017 15:07:51 +0000 (08:07 -0700)]
OSC: add delta controls to master, monitor and select as well

6 years agoFix session-event queue (multiple writer, single reader)
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.

6 years agoCompatibility with old out-of-range automation-lane data
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.

6 years agoWork-around for plugins with log-scale parameter 0..SR/2
Robin Gareus [Tue, 4 Jul 2017 18:09:11 +0000 (20:09 +0200)]
Work-around for plugins with log-scale parameter 0..SR/2

6 years agoFix a plugin-insert position off-by-one and remove cruft.
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.

6 years agoAlways add plugins in the order given by the Manager UI.
Robin Gareus [Tue, 4 Jul 2017 15:54:17 +0000 (17:54 +0200)]
Always add plugins in the order given by the Manager UI.

6 years agoRetain plugins order for copy/cut/paste + DnD #7416
Robin Gareus [Tue, 4 Jul 2017 15:08:58 +0000 (17:08 +0200)]
Retain plugins order for copy/cut/paste + DnD  #7416

6 years agoAllow DnDVbox to sort the selection, using original order
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.

6 years agoOSC: Add system osc preset directory
Len Ovens [Mon, 3 Jul 2017 21:31:27 +0000 (14:31 -0700)]
OSC: Add system osc preset directory

6 years agoOSC: GUI tweaking
Len Ovens [Mon, 3 Jul 2017 20:22:12 +0000 (13:22 -0700)]
OSC: GUI tweaking

6 years agoFP8: "Link" mode works with AutomationControl only.
Robin Gareus [Mon, 3 Jul 2017 17:56:16 +0000 (19:56 +0200)]
FP8: "Link" mode works with AutomationControl only.

6 years agoMake VCA mute+solo buttons bindable
Robin Gareus [Mon, 3 Jul 2017 17:55:17 +0000 (19:55 +0200)]
Make VCA mute+solo buttons bindable

6 years agoRevert "Prefer Stereo-Balance Panner for stereo tracks"
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.

6 years agoAnother approach for stuck splash-screens:
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).

6 years agoPBD::init() failing is fatal in main(), don't silently exit.
Robin Gareus [Mon, 3 Jul 2017 12:45:41 +0000 (14:45 +0200)]
PBD::init() failing is fatal in main(), don't silently exit.

6 years agoDon't just silently exit if initialization fails.
Robin Gareus [Mon, 3 Jul 2017 12:44:03 +0000 (14:44 +0200)]
Don't just silently exit if initialization fails.

6 years agoFix another crash at exit.
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()

6 years agoPrefer Stereo-Balance Panner for stereo tracks
Robin Gareus [Mon, 3 Jul 2017 00:24:53 +0000 (02:24 +0200)]
Prefer Stereo-Balance Panner for stereo tracks