Commit Graph

29555 Commits

Author SHA1 Message Date
Johannes Mueller
3a2f0e40cf Fix crash when adding tracks from a5 route templates
Ardour5 route templates seem not to have a in the root node playlist
property. Ardour generally relies on that Track::playlist() always returns a
valid playlist. Thus we need to create a playlist even if we don't have a
playlist property in the route template's root node.
2020-04-05 19:07:28 +02:00
Johannes Mueller
605b3d83a8 Fix #7971: Adjust paths of template archive entries exported on MacOS
... on Ardour5.

On MacOS g_dir_make_tmp() does not return the canonical path. Thus, exported
template archives end up with wrong entry paths. This has been fixed by
e52bdc55ad for exporting templates. However, template archives that have been
exported on Ardour5 are not affected by the fix. Therefor we need a workaround
for the case we are importing legacy template archives from Ardour5.
2020-04-05 16:34:48 +02:00
Johannes Mueller
c74cc2675e Extend FileArchive to import archive entries individually
This is needed primarily for a workaround for #7971. When importing a template
that has been exported on Ardour5 on MacOS we need to fix the paths of the
archive entries.

Later we can use this functionality also to handle imported templates if
templates with the same name already exist.

This commit only adds methods and members to FileArchive, it does not modify
anything to make regressions unlikely. This, however, leads to some duplicated
code. Eventually we should consolidate this a bit.
2020-04-05 16:34:48 +02:00
Robin Gareus
419af82645 Revert "replace use of gdk_pixmap_unref() with g_object_unref"
This reverts commit fdf0db02a0.

Even though `gdk_pixmap_unref` is deprecated, it is the correct way
to free `gdk_pixmap_new` objects.
This fixes a memory leak and glib warning:
GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

PS. Eventually this pixmap should be replaced by a cairo surface.
2020-04-05 00:59:54 +02:00
Robin Gareus
e52bdc55ad Fix template export on MacOS
By default Apple uses a private TMP folder.

g_dir_make_tmp() returns `/var/folders/...` while the real
absolute path is `/private/var/folders/...`.
This caused a problem when the tmp-prefix is chopped off when building
the archive.
2020-04-05 00:10:41 +02:00
Ben Loftis
bb925ea151 Editor-mixer-strip: fix intermittent crash if we try to set up gui before set_route() is called (amends d2032d) 2020-04-04 12:03:45 -05:00
Ben Loftis
d2032df2e5 Fix for Editor-mixer-strip: polarity buttons were not updating with route selection changes. 2020-04-04 10:54:33 -05:00
Paul Davis
0ecf1e40ea add Editor-level action to toggle track layer display 2020-04-03 18:54:51 -06:00
Paul Davis
c2b026831c yes, RouteTimeAxisView::set_layer_display() really never applies to the selection 2020-04-03 18:54:51 -06:00
Paul Davis
743fbaf7bf change implementation of layer display menu items and handlers
The menu items no longer ever apply to the selection, because there will be an Editor-level
action to change things "globally"
2020-04-03 18:54:51 -06:00
Paul Davis
d1e55ff5b7 add RouteTimeAxis::toggle_layer_display() 2020-04-03 18:54:51 -06:00
Paul Davis
1c53e73599 add two new ptr-to-menu-item, and remove an unused one, for RouteTimeAxis 2020-04-03 18:54:51 -06:00
Paul Davis
ac6bd95e3a move automation menu to under View in main menu 2020-04-03 18:54:51 -06:00
Robin Gareus
a6d1890168 NO-OP: whitespace 2020-04-04 01:48:31 +02:00
Robin Gareus
4e005540c6 Update PatchChange when instrument/midnam changes 2020-04-04 01:48:30 +02:00
Robin Gareus
d0a116b2ae Forward instrument MIDNAM changed signal 2020-04-04 01:48:30 +02:00
Paul Davis
096d23fcc2 change text describing relayout after UI scaling change 2020-04-03 14:31:51 -06:00
Paul Davis
8a1f1a3005 remove border around ATAV controls table (looks better with new theme) 2020-04-03 14:25:32 -06:00
Paul Davis
626d97b13a a better solution for automation axis name labels 2020-04-03 14:25:13 -06:00
Paul Davis
be2322ef2b set size request for automation lane name label, to prevent it from changing tracker header width 2020-04-03 14:11:14 -06:00
Paul Davis
f26dd1f13d add automation item to top level edit menu 2020-04-03 13:28:58 -06:00
Paul Davis
9ca9aa8ae1 add new Editor method to toggle all existing automation
Applies to selected tracks if non-empty; all tracks otherwise
2020-04-03 13:28:58 -06:00
Paul Davis
97d1ee9822 move templated foreach methods from TrackSelection into parent (TrackViewList)
This allows the same methods to be used on e.g. Editor::track_views
2020-04-03 13:28:58 -06:00
Paul Davis
e954303fec move automation show/hide methods into public access
Note that they are still intended to be called via a specific mechanism from Editor, not
directly.

Also remove unnecessary duplicate virtual decls
2020-04-03 13:28:58 -06:00
Robin Gareus
71ab4614f8 Fix fan-out port connection race-condition
This directly creates tracks without auto-connect.
2020-04-03 15:37:49 +02:00
Robin Gareus
c16ab3a248 Allow to disable input auto-connect when creating tracks
Auto-connect is handled in a background thread, so newly created
tracks are not immediately connected.

This causes a race-condition when fan-out directly disconnects
and re-connects ports after track/bus creation.
2020-04-03 15:36:19 +02:00
Robin Gareus
80f3b54be4 NO-OP: indent & whitespace 2020-04-03 14:56:57 +02:00
Robin Gareus
3d98d13760 Add missing include 2020-04-03 14:52:05 +02:00
Robin Gareus
11f28a4b1d NO-OP: cleanup and remove debug messages 2020-04-03 14:49:03 +02:00
Robin Gareus
35aab65d59 Consistent processor labels "Meter"
Track name is implicit, so instead of "meter-<name>", showing a
translatable label "Meter" is sufficient and consistent with "Fader".

Under the hood, for introspection, the processor name remains as is.
2020-04-03 14:49:03 +02:00
John Emmas
fb186aaaa0 2 x new backend/port classes need to be exportable 2020-04-03 10:09:22 +01:00
John Emmas
03f52e622a Add/remove source(s) in our MSVC project (libardour) 2020-04-03 07:15:42 +01:00
Paul Davis
6a6b3f2703 fix another iterator type 2020-04-02 19:45:31 -06:00
Paul Davis
cb4997f4a4 fix iterator type 2020-04-02 19:45:31 -06:00
Paul Davis
af69ac1285 use clear_ports() 2020-04-02 19:45:31 -06:00
Paul Davis
6cdc245967 fix header name 2020-04-02 19:45:31 -06:00
Paul Davis
7fc5a6c971 initial try (not compiled) of PortAudio backend using PortEngineSharedImpl 2020-04-02 19:45:31 -06:00
Paul Davis
72925e4453 use _instance_name in all messages from PortEngineSharedImpl 2020-04-02 19:45:31 -06:00
Paul Davis
e5507f7072 use PortEngineSharedImpl with PulseAudio backend 2020-04-02 19:45:31 -06:00
Paul Davis
04551c39f6 use PortEngineSharedImpl with DummyAudioBackend 2020-04-02 19:45:31 -06:00
Paul Davis
30766c75e8 buildable version of CoreAudio backend using PortEngineSharedImpl 2020-04-02 19:45:31 -06:00
Paul Davis
a31d3689bf tentative changes to extend port engine shared impl to coreaudio 2020-04-02 19:45:31 -06:00
Paul Davis
6c2e30b790 use new PortEngineSharedImpl in AlsaAudioBackend 2020-04-02 19:45:31 -06:00
Paul Davis
9ea6f598bd add new file to wscript 2020-04-02 19:45:31 -06:00
Paul Davis
9461a30a97 refactor shared PortEngine implementation from AlsaAudioBackend 2020-04-02 19:45:31 -06:00
Paul Davis
9ac0d5b60f add RCU to manage _ports and _portmap in AlsaAudioBackend
This is intended to prevent crashes when unregister_port() modifies the contents of these
two members at the same time that something else is iterating over them.
2020-04-02 19:45:31 -06:00
Robin Gareus
714e2f1736 Optimize MTAV creation, speed up new MIDI track
This removes various duplicate code-paths leading to midi-model
updates, and expensive context-menu rebuilds. This significantly
speeds up MIDI track creation.
2020-04-03 03:42:56 +02:00
Robin Gareus
21c9505652 Allow to query current effective instrument model/mode
This exposes custom plugin model/mode. It can be useful for
the GUI to detect if effective settings have changed, and
context-menus have to be re-build.
2020-04-03 03:29:32 +02:00
Robin Gareus
dabd5715e9 Revert "move the point of adding a new MIDI track until *after* the instrument is added"
This reverts commit fac8d84786.

This fixes fan-out. The track should be created before any tracks or
busses are created that are fed by the MIDI track.

The apparent motivation for fac8d847 was MIDNAM related
(there was code in the GUI that needed the instrument, which was
called from within ::add_routes).

This should no longer be the case, the GUI needs to pick up
instrument changes after track creation via processors changed;
besides MIDI busses were still created before the instrument.
2020-04-02 21:43:16 +02:00
Robin Gareus
14f15ca1e9 Move RouteUI::fan_out to Mixer_UI
The previous version had various issues, in particular
when creating Tracks with an instrument, the RouteUI was not
available when the signal was emitted (likely caused by recent
ee-work of Audio+MIDI and Tape track removal).

However as side-effect fanned-out tracks/busses may now
be ordered before the new instrument route.

This also fixes an edge case of multiple fan-out in case
there is more than one RouteUI instance (mixer, editor-mixer,
meter-bridge).
2020-04-02 20:27:51 +02:00