13
0
Commit Graph

25202 Commits

Author SHA1 Message Date
Johannes Mueller
0da2d7bf8a 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.
2017-07-15 11:37:15 +02:00
46501da220 Add johmue to authors list 2017-07-14 20:01:45 +02:00
7e4f261853 Turn Summary into a horizontal scrollbar (drop y-axis sensitivity) 2017-07-14 20:01:45 +02:00
3b1a6a350e 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.
2017-07-14 15:16:33 +02:00
812cbdaca9 Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour) 2017-07-14 10:48:26 +01:00
542d021fbc Fix total number of process threads 2017-07-13 17:16:31 +02:00
Johannes Mueller
96a9437289 Switch to g_dir_make_tmp() to make the tmpdir. 2017-07-12 16:15:03 +02:00
Johannes Mueller
a73a5e9215 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
2017-07-12 16:15:03 +02:00
Johannes Mueller
a933cd58bc Some more error handling
Try to undo the renaming of the template dir in case the writing of the new
template file fails.
2017-07-12 16:15:03 +02:00
Johannes Mueller
13ddbfc0d7 Remove template dirs using PBD::remove_directory()
This makes sure that all state directories of the template are erased properly.
2017-07-12 16:15:03 +02:00
Johannes Mueller
b3407f1665 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.
2017-07-12 16:15:03 +02:00
Johannes Mueller
a5ba520f75 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.
2017-07-12 16:15:03 +02:00
Johannes Mueller
6a973d5c42 Some cosmetics 2017-07-12 16:15:03 +02:00
Johannes Mueller
610d9fd3b9 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.
2017-07-12 16:15:03 +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
23bb15dcf1 Honor groups for mixer selection 2017-07-12 06:55:44 +02:00
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
9a0ab26fbf Add select-all-tracks mixer-shortcut (following editor) 2017-07-08 16:07:42 +02:00
b7dc469515 Remove old API (unused, incorrect for grouped tracks) 2017-07-08 15:43:55 +02:00
5fc037cbe9 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.
2017-07-08 15:43:32 +02:00
82278af424 Add API to expand/flatten AC groups 2017-07-08 15:35:30 +02:00
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
75dea5bdc0 Drop region references when hiding the TimeFX dialog. 2017-07-07 17:30:37 +02:00
68c106eab5 Fix VCA Automation Lane selection
This moves child-selection API up into TAV (Superclass of StripableTAV
which actually owns the children)
2017-07-07 14:47:36 +02:00
f2c7f2fdcb Czech translation update by pfri #7190 2017-07-07 02:43:15 +02:00
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
b732aa2ca1 fix void return with value (amend d5d297c4) 2017-07-06 18:01:49 +02:00
d5d297c407 Fix FP8 shutdown sequence (amend d421e56fc) 2017-07-06 16:55:02 +02:00
7bb48aaa3f Remove cruft, steps cannot be 0. 2017-07-06 16:39:28 +02:00
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
f66b863a2d Make an info string translatable 2017-07-05 18:54:02 +02:00
2a809dcf70 OSC: add delta controls to master, monitor and select as well 2017-07-05 08:08:57 -07:00
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
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
135ffdcf6b Work-around for plugins with log-scale parameter 0..SR/2 2017-07-04 20:09:11 +02:00
608f99ad1c 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.
2017-07-04 18:08:36 +02:00
2fdeb54b78 Always add plugins in the order given by the Manager UI. 2017-07-04 18:08:36 +02:00
e2d19d1668 Retain plugins order for copy/cut/paste + DnD #7416 2017-07-04 18:08:36 +02:00
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
28faa0de0f OSC: Add system osc preset directory 2017-07-03 14:31:27 -07:00
b11c64ea5b OSC: GUI tweaking 2017-07-03 13:22:56 -07:00
b87bec3200 FP8: "Link" mode works with AutomationControl only. 2017-07-03 19:56:16 +02:00
c1eee02e1b Make VCA mute+solo buttons bindable 2017-07-03 19:55:17 +02:00
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
54aa82cd4b 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).
2017-07-03 16:19:10 +02:00
ddf55c0d88 PBD::init() failing is fatal in main(), don't silently exit. 2017-07-03 14:45:41 +02:00
417283d9be Don't just silently exit if initialization fails. 2017-07-03 14:44:03 +02:00
d9767b10ac 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()
2017-07-03 14:03:10 +02:00
e9ee454ced Prefer Stereo-Balance Panner for stereo tracks 2017-07-03 02:24:53 +02:00