13
0
Commit Graph

14260 Commits

Author SHA1 Message Date
Edgar Aichinger
a103a89f4f
also install desktop icon files 2021-05-08 00:27:33 +02:00
Edgar Aichinger
433d7dc8a0
freedesktop: install (not only build) desktop, mimeinfo and appdata files 2021-05-08 00:27:33 +02:00
e2a28ec776 avoid playhead jumping while we locate from a control surface 2021-05-07 16:24:53 -06:00
b0d4f77d92
Optimize RegionList redisplay for batch changes 2021-05-07 23:29:25 +02:00
283cade057
Update GUI Region[s]PropertyChanged signal handlers (2/3) 2021-05-07 23:29:25 +02:00
5af480083c
MIDI List Editor, subscribe to region's signal (not all regions) 2021-05-07 23:29:25 +02:00
3e47057609 import process now allows optional import of MIDI markers/cues 2021-05-07 14:58:16 -06:00
4db1c02bd1
Fix crashes when rippling many regions
Region positions were updated in the GUI, before the playlist
was catching up.

The butler thread reads a region using the region's new position,
but the playlist's old range.


Thread 1 (GUI)
```
#22 ARDOUR::Playlist::notify_layering_changed()
#26 ARDOUR::AudioPlaylist::region_changed
#27 ARDOUR::Playlist::region_changed_proxy
#35 ARDOUR::Region::send_change
#36 ARDOUR::Region::set_position
#37 RegionRippleDrag::remove_unselected_from_views
#38 RegionRippleDrag::finished
```

LayeringChanged() also triggers DiskIOProcessor::playlist_modified
which schedules a pending-override and summons the butler.
Note that when moving only a few regions the butler starts after all
updates have been completed.

Butler thread:
```
#4  ARDOUR::AudioRegion::read_at
#5  ARDOUR::AudioPlaylist::read
#6  ARDOUR::DiskReader::audio_read
#7  ARDOUR::DiskReader::overwrite_existing_audio
#8  ARDOUR::DiskReader::overwrite_existing_buffers
#9  ARDOUR::Track::overwrite_existing_buffers
#10 ARDOUR::Session::non_realtime_overwrite
```

Region read fails:
```
 libs/ardour/audioregion.cc:503  assert (position >= _position);
(gdb) p position
$1 = 1312000
(gdb) p _position
$2 = {<PBD::PropertyTemplate<long>> = {_have_old = true,
    _current = 1336000, _old = 1312000} }
```
2021-05-07 21:56:09 +02:00
a18d9b9cb4
Update Russian translation 2021-05-07 05:38:57 +02:00
97167ed927
Fix harvid bind address on BigSur 2021-05-07 01:45:00 +02:00
e570a290c4 add a few casts to avoid compiler warnings regarding size_type vs int
The class members are int because they need to hold negative (out-of-bound) values as sentinels
2021-05-06 12:03:27 -06:00
29c89cf362 fix tiny typo in a tooltip 2021-05-06 11:42:50 -06:00
05d8545655 preference item for auto-return-after-rewind-ffwd 2021-05-06 11:40:20 -06:00
b75118ee13 a more robust value check for 8cb09ab2cf modification 2021-05-05 18:48:53 -06:00
8cb09ab2cf fix for region-drag to the dropzone (#8672)
The DraggingView's time_axis_view (index) is set to the size of _time_axis_views
in ::motion() near line 1149. This makes it invalid as index into the vector.
2021-05-05 18:33:44 -06:00
5c579ed52d
Remove unused #include<> (1/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:43:28 +02:00
f72c2b93c5
Fix video-monitor display when seeking
see also 25c0bd9274

play, locate, play resulted in the video-monitor showing
the target frame shortly, and play a few frames from the old
location.

This was due to locate happening async. Click to locate
directly sends the new location:

```
VideoTimeLine::manual_seek_video_monitor
ARDOUR_UI::update_transport_clocks
CursorDrag::fake_locate
CursorDrag::start_grab
DragManager::start_grab

```

CursorDrag::finished unset _dragging_playhead before the
call to resuest_locate(). Meanwhile playback continues.
2021-05-05 17:11:24 +02:00
9f4189c031 copy over changes to BasicUI::button_varispeed() to ARDOUR_UI::button_varispeed() 2021-05-04 23:14:48 -06:00
f792735672 remove double-tooltip setting (copy-paste error) for a preferences item 2021-05-04 20:54:38 -06:00
7fef16af6f add rewind/ffwd option to transport section of Preferences 2021-05-04 20:52:21 -06:00
9905f6e0a9 copy BasicUI::button_varispeed() into ARDOUR_UI, and use in all the right places
We really must find a way to share code between BasicUI and ARDOUR_UI
2021-05-04 16:56:19 -06:00
b01632356d fix cast warning 2021-05-04 16:55:33 -06:00
981fc6b3cd transition-to-roll should work whether rolling or stopped 2021-05-04 15:57:03 -06:00
8c427279d9 transition-to-roll should not set the default transport speed 2021-05-04 15:37:04 -06:00
1f18b4905d remove assert() that is triggered via multiple selection in region list (now possible for some time) 2021-05-04 11:55:48 -06:00
0aef128207 fix assumption that during dragging, a DraggingView's time_axis_view field is always a positive integer within range 2021-05-04 11:55:23 -06:00
5bfc507cb3 fix out-of-bounds access to a vector.
If the time axis view is not found, i will equal N, and _views[i] is out of bounds
2021-05-04 11:54:50 -06:00
ac53a9bbf8 remove unnecessary 2nd argument from Session::request_locate() calls (default value is identical) 2021-05-03 17:40:41 -06:00
e82b2b48fb
Avoid ambiguity with C++17 enum class std::byte 2021-05-02 16:36:57 +02:00
61885f0284
Explicitly set announce=false when creating regions (2/2)
This is in preparation for to improve consistency of
RegionFactory::create() default parameters (change
default to true).
2021-04-30 18:40:51 +02:00
6a82aa392c
Fix deadlock when duplicating regions w/ripple
This is an initial work-around for signal emission with
Playlist:region_lock held:

Playlist::duplicate() takes RegionWriteLock() and then calls
RegionFactory::create(). The newly created region does NOT have
property-changes suspended, and the RegionFactory can change
region-properties which results in signal-emission.

This in turn can lead to a call Editor::session_gui_extents()
-> ARDOUR::Playlist::get_extent() -> Playlist::RegionReadLock

which deadlocks: https://pastebin.com/84rSbsA3

Eventually we need a mechanism to create regions with
->suspend_property_changes() and add it to the playlist's
thawlist (pass a thawlist to the region-factory).
2021-04-30 03:40:32 +02:00
7a89d56009
Fix insert + ripple undo/redo
Playlist changes do not include region-property changes.
When inserting a region, position(s) of other Regions may
change and those changes have to be recorded explicitly (for now).

see also RegionRippleDrag.
2021-04-29 22:56:09 +02:00
2c64736604
Fix crash when consolidating range with automation
The undo command needs to be started before calling
playlist->add_region() because that may move automation
or include ripple changes. see the following backtrace:

```
UndoTransaction::add_command
ARDOUR::DiskReader::move_processor_automation
ARDOUR::Route::foreach_processor
ARDOUR::DiskReader::playlist_ranges_moved
ARDOUR::Playlist::flush_notifications
ARDOUR::Playlist::RegionWriteLock::~RegionWriteLock
ARDOUR::Playlist::add_region
Editor::bounce_range_selection
```

Except. it seems automation is moved incorrectly in this case..
2021-04-29 21:17:22 +02:00
5014b20c5f
Inform user if there have been dropouts during export 2021-04-29 17:50:46 +02:00
2e7b193988
Support MacVST2 plugins with multiple child views (e.g. UAD) 2021-04-28 00:57:41 +02:00
b6c75ef42a
Fix Mac Plugin re/sizing
Some plugin UIs, particularly those that cannot be resized
unset `autoresizesSubviews`. Since the plugin-view is re-parented,
the host has to directly set the view's size.

However some plugins have multiple child views, apparently
for off-screen pixmaps (e.g. UAD plugins). Those additional
should not be resized (or re-stacked).

e.g.

Reason-Rack
  view 0x7fe27e44e570 @ 0, 33 834 x 804
    view 0x7fe288aa3770 @ 278, 268 278 x 268

UAD Tube-tech
  view 0x7fe270a9cbf0 @ 0, 33 1160 x 374
    view 0x7fe28883d030 @ 0, 0 1160 x 374
    view 0x7fe2888546e0 @ 0, 0 1160 x 24


see also aef366c156
https://discourse.ardour.org/t/uad-plugin-will-not-load-shows-as-expired-when-its-not/105756/5?u=x42
2021-04-27 23:50:59 +02:00
d627e00ff6
NO-OP: whitespace 2021-04-27 23:40:45 +02:00
fc9a4754bc allow <PRIMARY>-w to close the preferences window, just other dialogs
Preferences is a tabbable, a leftover artifact of when it was, in fact, intended to be a tabbable. Rather than
re-engineer this right now, add a key event handler so that Primary-w works for this just like other dialogs
2021-04-26 10:50:30 -06:00
cce41ee15b no need for 2nd argument in OptionEditorContainer constructor call 2021-04-26 10:49:23 -06:00
3f1e4ceaaa remove unused argument to OptionEditorContainer constructor 2021-04-26 10:48:53 -06:00
54c135c8b9 fix "trim to loop" region edit operation so that it applies to any region that intersects the loop, not just those spanning it 2021-04-25 09:42:06 -06:00
4abfcca8b6 rewind/ffwd from GUI needs to start transport, not just set speed 2021-04-23 11:02:54 -06:00
4c1a82a153 fix URL for VST3 plugin locations specs (#8659) 2021-04-21 18:00:41 -06:00
eeadf5087d
Shuttle wheel context-menu: max speed only applies to percentage 2021-04-20 14:26:30 +02:00
80405e41b0
Fix shuttle wheel unit granularity
When switching to Semitones, round speed to nearest semitone.

This fixes an issue when rolling forward at < 25% which is
less that -24st and then scrolling right (increase pitch).
The result may still be < -24st and playback reverses.

When changing max-speed, directly constrain speed.
2021-04-20 14:14:45 +02:00
2c8746eda9
Fix shuttle wheel semi-tone mode
Previously it was not possible to return from reverse playback
since left-scroll decreased pitch, even during reverse playback.

This also fixes an edge-case when quickly scrolling through
zero. use_shuttle_fract() ignores rapid events, map_transport_state()
can round speed to zero and next scroll-event set the default +1st
speed (really should have been 0st).This is solved by starting at
-24st, similar to how percentage does not start at 100%.
2021-04-20 13:53:35 +02:00
81c08b6efb restore sprung shuttle behavior (mistakenly altered in a recent commit 2021-04-19 16:14:08 -06:00
48e5607f7c use Session::request_roll() instead of request_transport_speed (1.0, ...) 2021-04-19 16:14:08 -06:00
52b7e68102 use new Session transport API calls in GUI 2021-04-19 16:14:08 -06:00
0bccc4bffd fix mispelling of actual in shuttle control code 2021-04-19 16:14:08 -06:00
1d97220cff use Session::request_transport_roll() in main GUI call site 2021-04-19 16:13:38 -06:00
7cbecaedff improve GUI behavior of the tempo dialog by preselecting the start bpm text field
most common user action will be: show dialog, type keys, press return. This works now.
2021-04-19 16:13:38 -06:00
905ea49f05
Prevent libXML read error in case file does not exist 2021-04-19 04:55:17 +02:00
dd060b04dc
RecorderUI: Fix monitoring when hot-plugging devices
When there are no input ports at the time the engine starts
running, MonitorInputChanged signal was not subscribed to.
This breaks AFL solo. This happens e.g. when re-starting the
engine with ALSA slave devices.
2021-04-18 19:03:35 +02:00
271860f630
Consistent port-matrix channel name display
Previously the columns always displayed port-names unconditionally,
while rows only showed them if there was one more port per bundle.
2021-04-17 00:27:38 +02:00
209536a967
Option to hide "-none-" from instrument dropdown
This is useful for the audition instrument selector.
2021-04-16 22:25:41 +02:00
32acfbd52c
Fix blurry text in connection manager
Text that that is not on extract pixels will be anti-aliased
leading to blurry rendering.
2021-04-16 21:42:49 +02:00
4abde9972d
Yet another fix for asymetric I/O latencies 2021-04-15 03:44:33 +02:00
37243ce61b
Further tweaks for UTF8 font-issues on Windows 2021-04-13 23:38:54 +02:00
03f63d4463
Fix BPM button text display on Windows 2021-04-13 19:46:47 +02:00
fc4e42662d
UTF8 compatibility with default windows font 2021-04-13 19:46:20 +02:00
ec64112fb9
Fix another C++11ism 2021-04-13 06:16:01 +02:00
f8c4b70b8e
Overhaul LAN dialog
* Add Loudness Graph
* Consolidate loudness settings
* Update Layout, always show conformity analysis
2021-04-13 00:10:41 +02:00
39334279b5
LAN for ranges 2021-04-13 00:10:38 +02:00
b52c6b5c47
Include confomity analysis in export-report 2021-04-12 23:16:17 +02:00
735a8f7175
Unify loudness settings, prepare for custom user config 2021-04-12 23:16:11 +02:00
4324efa7f0
Always show short/momentary loudness in report 2021-04-12 23:15:31 +02:00
2eaf19a10b
Tweak loudness graph
* plot short on top of momentary data
* limit range to 65dB
2021-04-12 23:15:31 +02:00
d3d4a8664f
Plot export-limiter redux on analysis-report 2021-04-12 23:15:31 +02:00
68326f5017
Export: GUI option to disable limiter 2021-04-12 23:15:30 +02:00
08b169f17b
NO-OP: clang-indent 2021-04-12 23:15:30 +02:00
Edgar Aichinger
5d12aa15f5
update german translation 2021-04-11 17:44:17 +02:00
ced5918e22
Fix path to ctrl-surface map path when running from src-tree
This bug was introduced in 54c4d3adc5
2021-04-11 16:07:02 +02:00
4cbf642bfd
Add missing header guards 2021-04-11 15:15:04 +02:00
b095cb8e75
Prepare for 6.7 2021-04-07 01:50:34 +02:00
15c2077cdf
Include loudness plot on export-report 2021-04-07 01:50:30 +02:00
3bc4dcf36f
Add method to plot loudness analysis graph 2021-04-07 01:48:01 +02:00
babf319cea
NO-OP: separate export-report image rendering 2021-04-07 01:47:00 +02:00
1890cc234f
Tweak export-report time-axis labels 2021-04-05 03:32:48 +02:00
2ed8fd2723
Pixel-pushing: vertically align special busses
The mixer's track area has a border with shadow (again).
This breaks vertical alignment with monitor-section,
master, foldback busses.
2021-04-03 22:27:05 +02:00
4c228c2eab
Remove cruft 2021-04-03 14:56:15 +02:00
c48c09c080 Recover waveform-gradient-depth slider for ardour, and timeline-item-gradient-depth for mixbus
These items were likely a casualty of a merge when re-laying out the preferences panel
2021-03-30 17:04:13 -05:00
b7c030b347
Indicate ambiguous latency, capture alignment issues
Previously this was only displayed when the latency
toolbar widget was added (off by default).
2021-03-30 21:19:55 +02:00
98c55abdfe
Foldback: fix removing last fb bus
This also reverts a RouteUI change to handle set_route(NULL)
from ce28065421.

The RouteUI already calls self_delete() when DropReferences
is emitted.
2021-03-30 01:48:46 +02:00
1bffdfc334
Open add-route dialog on double-click or context-click 2021-03-28 20:39:34 +02:00
e4f59d9a4d
Foldback: update button sensitivity when sends or fb's change 2021-03-28 20:11:34 +02:00
8fbde5860d
Make group tabs insensitive when spilling sends
* Mixer layout does not change when spilling sends
* Tabs don't automatically show after spill_nothing()
  even if `show-group-tabs` is off
2021-03-28 17:46:01 +02:00
88ed770bce
Implement group-tab sensitivity 2021-03-28 17:43:17 +02:00
bfc72ac379
Fix 32bit builds (missing size_t string convert)
../libs/pbd/pbd/string_convert.h: In function 'std::string PBD::to_string(T) [with T = long unsigned int]':
../gtk2_ardour/foldback_strip.cc:581:   instantiated from here
../libs/pbd/pbd/string_convert.h:238: error: 'long unsigned int' is not a class, struc
2021-03-28 05:45:20 +02:00
09d9938ecd
Remove duplicate symbol ColumnInfo from global namespace #8637 2021-03-28 04:31:11 +02:00
9c4a8ba528
Foldback: GUI consistency
* Insensitive route-ops menu when track disabled
* Re-order route-ops to match mixer-strip
* Add number Label to foldbacks
* Set spacing for consistent look/feel
2021-03-27 23:14:19 +01:00
8402dd4888
Spill only direct feeds
When using chained sends, only show the direct parent:
    track A -> bus 1 -> bus 2
Showing sends feeding "bus 2", previously also displayed
"track A". However only "bus 1"' mixer-strip changed to show
the send controls.

We should not propagate displayed deliveries upstream, since
there may be ambiguities. There could be an additional send:
     track A -> bus 2
2021-03-27 21:30:56 +01:00
bf8f0efbf9
Foldback: Cont'd tweaks and fixes
* Follow track order changes
* Show send context menu on right-click
* use "route_connections" for route signals
2021-03-27 19:33:46 +01:00
294b550584
Trap click signals of inline-controls
RouteUI::show_sends_press() is re-used used to show
the send context menu. However other button actions
need to be ignored.
2021-03-27 18:47:01 +01:00
c91080e950
NO-OP: cosmetic changes
* Prefix private member variable with underscores.
* use C-style comment blocks
* Inline single-use method
2021-03-27 18:31:10 +01:00
602135ad66
Foldback: Remove shadowed session-variable, RouteUI is-a SessionHandlePtr 2021-03-27 18:24:39 +01:00
5be04a4920
NO-OP: clang-format 2021-03-27 17:58:45 +01:00
ac5bca4a92
Clean up RouteUI header
* Consolidate access modifiers
* Remove all public member variables
* Only expose required functions, use private
  whenever possible
* Rename private members, prefix underscore
* Remove cruft
2021-03-27 17:44:34 +01:00
003be3d87e
Localize private variable (only used by RouteUI) 2021-03-27 16:25:30 +01:00
24499fa7da
Foldback: use RouteUI send-spill functions
This resolves ambiguities of overloaded non-virtual methods
that used shared protected variables (send_blink_connection).

It fixes "show sends" of foldback busses (spilling the send
controls) and allows for showing showing other sends directly
without first disabling it.

This fixes some related issues with inheritance and
signal propagation.
2021-03-27 15:52:14 +01:00
212b08b422
Foldback: remove unused processor actions
Also since foldback-busses are not selectable AxisViews,
various keyboard-shortcut operations cannot be performed
from the mixer-context. However the processox-box itself
provides these actions for the fold-back bus.
2021-03-26 23:52:12 +01:00
a94c0d62a6
Foldback: Con't work to remove unused mixer-strip code 2021-03-26 23:49:36 +01:00
0edb6083f1
Foldback strip: remove cruft
Remove unused code that was copy/pasted from mixer_strip.cc
which is not needed for foldback strips. Notably alternative
delivery display mode (aux-sends).
2021-03-26 16:39:40 +01:00
cf7aad8a8a
Fix typo in previous commit 2021-03-26 15:04:21 +01:00
ada1b9bce5
Show shaded plus icon on scroller-base background (rec, mixer) 2021-03-26 14:36:50 +01:00
04a40140dc
Remove "add route" button from recorder and mixer
This GTK button style is out of place in both contexts.
Furthermore it is inconsistent to not have the same button
in the editor (there is a dropzone).
2021-03-26 14:35:17 +01:00
05f6550e2c
Foldback: NO-OP clang-format 2021-03-26 02:48:04 +01:00
01bc039f9b
Foldback: use IObutton
This follows 3e7b2bb3f5, common shared implementation
of IOButtons. This also uses RouteUI provided IOSelectorWindows.
2021-03-26 02:33:56 +01:00
b12cad80bc
Foldback: consistent mouse handling part 1
* un-hardcode button numbers, use portable modifier API
* allow to toggle Send bypass with middle-click
* add support for delete-operator
* Only act on single-click press
2021-03-26 02:17:09 +01:00
ce28065421
Foldback: refactor spill logic
Prefer to reuse spill logic from the mixer-ui.
This allows to spill routes directly after spilling
foldbacks. Previously that resulted in FB "show sends"
to keep flashing even then no foldbacks were spilled anymore.

It also simplifies various aspects of foldback prev/next
logic.
2021-03-25 21:38:10 +01:00
fe99dd4ec2
Fix solo button handler (amend aab296be48)
Exclusive solo is possible for both listen and in-place.
2021-03-25 14:47:24 +01:00
c3fb344f44
Foldback: spill follows selection 2021-03-25 14:39:46 +01:00
ff1083128b
Include Tracks and Busses in connection dropdown #8636 2021-03-25 01:54:48 +01:00
812dc2ec28 fix arguments for fmt-bindings now that argument formats have changed slightly 2021-03-24 16:42:33 -06:00
af0413b400 fix some errors in the keybindings template/input file 2021-03-24 16:33:31 -06:00
830f76bdce
Change Solo button tooltip when using A/PFL 2021-03-24 18:16:43 +01:00
aacfc0704d
Add A/PFL button to foldback strip 2021-03-24 17:48:22 +01:00
aab296be48
Exclusive P/AFL is possible since f2d2ea4baa 2021-03-24 17:04:44 +01:00
cooltehno
49301785d6
Update cubasish-ardour.colors 2021-03-23 23:25:00 +01:00
cooltehno
4ec0f0b7ea
Update recbox-ardour.colors 2021-03-23 23:24:05 +01:00
cooltehno
305bfb02e6
Update clear_gray-ardour.colors 2021-03-23 23:22:32 +01:00
41c52882af
Fix region-peak display for trimmed regions 2021-03-23 20:37:57 +01:00
46d9a8d819
Increase contrast of insensitive faders (automation play) 2021-03-22 21:54:25 +01:00
59b3b02dea
Indicate gain-entry focus/selection
The mixer gain-entry selects all when the entry is focused
(see ArdourWidgets::FocusEntry). Due to the selection there is
no visible cursor, and it was not obvious that the entry
has focus. Also moving the mouse outside of the strip drops focus
without any indication.
2021-03-22 21:24:33 +01:00
8b4edaa950
gcc-11 compat, volatile atomic variables (2/2)
GUI part of previous commit.
2021-03-22 15:30:16 +01:00
bf64852fc2
Remove volatile/atomic re-display flags in GUI thread
Atomic operations are not needed here, since the GUI
is single threaded.
2021-03-22 13:45:29 +01:00
8fcbe789b4
Ignore pinout when copy/pasting plugins using Ctrl+c/v
This can lead to invalid configuration and crashes in
case plugin-replication changes.

see also 9ab84a95f1
2021-03-22 04:10:03 +01:00
86a594fe90
Mitigate batch gain-changes #8576
This combines SessionEvent per playlist. Now per change
there are "only" two SessionEvent::Overwrite events
queued per playlist in the GUI thread for later processing
the Butler.

These are triggered by Playlist::ContentsChanged()
and Playlist::LayeringChanged(), both of which trigger
DiskIOProcessor::playlist_modified.

(Previously there used to be two per region)
2021-03-22 02:14:30 +01:00
d13eb84fa3
Fix BPM button overflow
"T: " prefix isn't very useful. in music-notation the note
symbol is established: ♩ = <bpm> or ♪ = <bpm>.

This fixes an issue on Windows, where those note symbols are
not available in the default unicode font. There "1/4" is used
which adds two extra monospace chars leading to cropped text.
2021-03-20 19:07:31 +01:00
745b194241
Get sample-rate from session-archive
This correctly sets the engine sample-rate when opening
a session-archive.
2021-03-19 22:52:27 +01:00
2111c3531f Return (Enter) should behave the same in all windows 2021-03-19 16:00:30 -05:00
5a4ef850ce better fix for same issue as 985eb93674
Copy region selection so that when it is invalidated, iteration doesn't break
2021-03-18 13:17:02 -06:00
985eb93674 avoid possible iterator corruption in MIDI region selection handling 2021-03-18 12:50:06 -06:00
3bda6020b9
Remove excess parentheses 2021-03-18 04:09:04 +01:00
d4c3e43b03
Address another -Wunused-private-field
TrackSelection is just a different name for TrackViewList
the private _editor is no longer needed nor used.
2021-03-18 04:06:46 +01:00
Olivier Humbert
df260ccea9
Update fr.po 2021-03-17 23:16:19 +01:00
Olivier Humbert
d3cfbbabd1
Update fr.po 2021-03-17 23:15:33 +01:00
fddecc11ec
Remove unrelated enum cases (-Wenum-compare-switch) 2021-03-17 17:44:11 +01:00
4abe3ade28 do not commit reversible commands when clearing locations if nothing was changed 2021-03-16 17:40:25 -06:00
bcb3e75cec GUI to remove xrun markers 2021-03-16 16:49:49 -06:00
dfa9f92e53
Fix tab-button state and cycling through tabs
The initial calls in `we_have_dependents()` was redundantly setting
all widows to "Hidden", before the actual state was known.

tabbable_state_change() is initially called for all Tabs:
ARDOUR_UI::setup_windows -> add_to_notebook() -> attach(),
or for detached windows Tabbable::set_state() -> hide_tab().

Step_up/down_through_tabs used window visibility to determine
candidates. This incorrectly considered detached visible tabs.
Detached windows cannot be cycled to.

This also addressed an issue where tab-buttons state was
incorrectly unset what unrelated tab state changed.
ImplicitActive of the currently active tab is now retained
when some other window is attached/detached.
2021-03-16 00:36:22 +01:00
6627d28983
Fix typo in comment 2021-03-15 22:12:31 +01:00
1d106c88ca
NO-OP: comment for later 2021-03-15 20:58:43 +01:00
e267c1e129
Also show route owned controls on touch
This add support for special-cased automation controls
(Fader, Trim, Panner, Mute) and spills their automation-lane
on touch.

It also features a small internal API update directly mapping
CheckMenuItem. See also bd8c26a059
2021-03-15 20:58:42 +01:00
c9241a5e71
Fix label, remove underscores (amend e81794d87) 2021-03-13 18:36:35 +01:00
77d88233a5
Update path label after rename or save-as 2021-03-13 16:53:09 +01:00
93121e8aa3
Revert "Show error when session-archive loading fails"
This reverts commit 48225c10bd.

We need to allow this to fail and fall-through to test normal sessions.
2021-03-11 19:37:10 +01:00
9ee2a46b7a
Allow re-try when session-parameters mismatch
Previously Ardour kept running but no interaction was possible
since the session-dialog was hidden.
2021-03-11 19:20:29 +01:00
48225c10bd
Show error when session-archive loading fails 2021-03-11 18:25:22 +01:00
9f3fba6988
VST3: Prevent recursive endless resizing
Skip call to onSize() when the plugin's size already matches.

https://github.com/Ardour/ardour/pull/599
https://github.com/juce-framework/JUCE/pull/867
https://discourse.ardour.org/t/sonobus-vst3-gui-hogs-cpu-only-when-ran-inside-ardour-on-linux-but-not-windows/105573
2021-03-11 18:19:21 +01:00
e07b3104bb
Expose VST Micro Edit display option. 2021-03-10 17:57:42 +01:00
33de08e9e7
Do not commit empty split undo transactions
When no region(s) are selected and none are under the edit-point,
only a selection change was committed as undo action.
2021-03-10 14:20:24 +01:00
bdc1cdc15f
Fix crash when separating ranges with automation
playlist->partition() calls DiskReader::playlist_ranges_moved()
which may add Panner and Fader automation state changes.

The reversible command has to be started before calling
playlist->partition(). Simply collecting playlist->rdiff() after
the fact is not sufficient.
2021-03-10 13:55:32 +01:00
1ef4fc1140
Show splash-screen content
Since switching to StartupFSM, the GUIIdle signal isn't available
connected at application start. The splash-screen was blank until
the main UI was up.
"Ardour is ready for use" was the only visible message.
2021-03-09 18:29:00 +01:00
bdd362ee24 Apply a name to eventboxen in the menu bar, so the theme can be applied 2021-03-08 18:37:54 -06:00
cb6ad45e9d
Fix crash when CatchDeletion signal from self_delete arrives late
This is rather an unusual edge-case, seen on macOS when the UI
never continues past the first idle stage.
2021-03-08 17:15:03 +01:00
e236c2ab0f
s/Plugin Manager/Plugin Selector/
The GUI allows to select and add plugins.
Managing plugins will be something different.
2021-03-04 22:09:17 +01:00
e81794d878
Add preference to keep spilled automation-lanes visible 2021-03-02 19:00:23 +01:00
e3c3109618
Unsubscribe from signals when clearing references
This fixes crashes with plugins calling setDirty() when the
UI is closed. `plugin` has already been reset before
the actual window is closed:

`PluginUIWindow::~PluginUIWindow()` runs, and destroys the window,
here `~VST3NSViewPluginUI ()`. This closes the VST3 view, which
triggers a `VST3PI::setDirty`.
At this point in time `~PlugUIBase()` has not yet run, so all
signals are still connected.

setDirty() ends up calling PlugUIBase::update_preset_modified()
which access `plugin` pointer, which is NULL.
2021-03-01 22:11:15 +01:00
0d838355c3
RecorderUI: handle meter lineup level config changes 2021-02-28 20:57:22 +01:00
f8c75914c4
RecorderUI: handle meter-theme changes 2021-02-28 20:03:12 +01:00
b553b67407
Fix curl free() ambiguity - fixes windows issues
curl_free() is to be used for data allocated by
curl_easy_escape() or curl_easy_unescape() in libcurl.

This is unrelated to realloc/free in WriteMemoryCallback().
2021-02-28 15:17:30 +01:00
f8ba27f417
Work around crash #8586
MidiRegionView::select_notes() may call MRV::add_to_selection
which may call editor().get_selection().clear ();
This in turn clears the pending_midi_note_selection, invalidating
iterator.

This bug was introduced in 7cf435a876 (6.5.148)
2021-02-28 14:58:18 +01:00
0f63cba3c7
Fix audition-tool
* Don't set default speed when using audition
* Use actual engine speed, since v6
  Session::transport_speed is {-1, 0, 1}
2021-02-27 23:12:15 +01:00
51cba19eaf
Fix big clock window record-state info
When showing the clock window after starting to record,
the record-state was not correctly indicated.
2021-02-27 19:25:45 +01:00
003245654a
Allow auto-start if there is no backend information for the session 2021-02-27 16:41:09 +01:00
835f30e5f5
Consistency: replace "x-run" with "xrun" (2/2) 2021-02-26 22:22:57 +01:00
355528781d
Fix Bundle Editor: show connected ports
PortGroupList::gather() first adds UserBundle ports to
`system->add_bundle (*i, allow_dups);`

That can include ports that are already associated with the
current bundle. The port in this case has the Bundle's name.
Those ports are later removed in BundleEditorMatrix::setup_ports
`_ports[OTHER].remove_bundle (_bundle);`

However we do need to show physical ports by their name, even
if they're identical to the already associated bundle to allow
disassociating them.
2021-02-26 19:14:57 +01:00
4716f34c28
UserBundle: Allow adding/removing ports
Clean up internal API confusion
- can_add_channels_proxy () -- checks presence of io
- can_add_channel_proxy () -- checks io->can_add_port()

UserBundle don't have a PortGroup::_bundle reference
that can be used to lookup the IO via io_from_bundle().

While BundleEditorMatrix::can_add_channels_proxy() was overriden
to allow adding I/Os, can_add_channel_proxy() later prevented that.

This further prevents removing the last port, preventing empty bundles.
2021-02-26 15:49:07 +01:00
017b272864
Update I/O Button when bundles change
This fixes an issue with the connection button still showing
the name of a Bundle even after deleting it, or displaying an
old name after renaming a bundle.
2021-02-26 15:49:04 +01:00
Cameron
c075d3a026
prevent registering multiple identical file descriptors
fix indentation

fix more indentation
2021-02-26 15:47:40 +01:00
John Emmas
74670d2789 Derive some functions from RecInfoBox::update() (in the derived classes)
For whatever reason, MSVC doesn't like us connecting so many signals to 'RecInfoBox::update()' (crashes the Debug build)
2021-02-26 13:07:35 +00:00
739ee688bf
Fix Bundle I/O direction
With bundles `ports_are_inputs()` indicates inputs that Ardour
can write to (data sinks, for playback).

BundleEditor::input_or_output_changed () set this correctly.
2021-02-26 13:44:04 +01:00
61b29c5810
Fix track-record-axis cleanup, duplicate self delete
Also hide/delete IOSelector dialogues early on when closing
the session.
2021-02-26 03:08:35 +01:00
ad9e44e92a
RecorderUI: consistent rec-arm button size
The rec-arm circle diameter is given by 0.5 * min (width, height).
For mono tracks the diameter is limited with the height of the
track. When more channel meters are visible the height increases and
the rec-arm circle grows.

The solution here is to constrain the rec-arm button width to its
minimum and not grow to have the same width as other buttons.

This also changes the default meter-height so mono and stereo tracks
have the same height (with default scaling).
2021-02-26 00:02:50 +01:00
a7ce58b995
Fix rec-ruler time display
The calculation to round the distance to seconds has to be performed
using floating point maths, not just the result being cast to double.
The time-granularity must not be zero.
2021-02-25 17:59:53 +01:00
John Emmas
53b90dc0dc Add a cast when using 'ceil' (to keep MSVC happy) 2021-02-25 16:46:19 +00:00
07d04be98d
Potential fix for MSVC builds
The set is defined with custom compare fn:
  std::set<T, cmp> x;
but later iterators used a default constructor:
  std::set<T>::iterator i = x.begin();
2021-02-25 15:55:10 +01:00
d124b3600b
Add a separator between script and window buttons 2021-02-25 14:29:12 +01:00
4521bf9158
Re-arrange Rec/Edit/Mix buttons
* Arrange Edit & Mix to reach the right-edge, stacking
 them the same way, as previous versions for muscle memory.
* Hide preferences window button
2021-02-25 14:00:59 +01:00
8985e50672
Use verbs for the toolbar tab/window buttons 2021-02-25 13:58:27 +01:00
353e9b6843
Remove hardcoded file info box width
This addresses an issue with translations, where some labels
result the box to need a width > 300px.
This also scales the box with the rest of the UI.
2021-02-25 04:11:06 +01:00
49f5df69a1
Reduce Prefs Dialog min-width
* Shorten long labels
  Those increase the x-offset for the data table column on the right.
* Shorten some long ComboBox texts
* Reduce min. slider controller width
* Tag some long labels and dropdowns that are currently the bottleneck
2021-02-24 21:37:16 +01:00
24a4f37aaa
Cont'd Preferences pane re-ordering
* Split "Signal Flow" pages to reduce height requirement
  -> Signal Flow  & -> Solo/Monitoring
  The latter is just control logic, no signal flow changes.
* Group CPU/FPU performance Options
* Move Region-Analysis to Metering (it is not performance related)
2021-02-24 21:37:16 +01:00
6a7cc2a3e9
Work around over-sized ComboBoxes in the Prefs. dialog 2021-02-24 21:37:16 +01:00
68d26ffee9
Relax A5 style exclusive In/Disk monitoring
This allows "All In" and "All Disk" to be selected simultaneously.
2021-02-24 00:21:44 +01:00
7f9dae0078
RecorderUI: add a "+" add route button
This provides consistent look and feel with the mixer-window.
2021-02-23 23:07:22 +01:00
f31e8ede4c
Unconditionally switch Manual->Play when drawing automation 2021-02-23 22:00:27 +01:00
33c596e149
Warn user if the engine device changed
This prevents accidentally auto-starting the engine (most recently
used device) with a session that recently used different hardware.
2021-02-23 19:32:03 +01:00
73fb2ddfed
Remove deprecated tab_title (2/3) 2021-02-23 17:23:08 +01:00
3290fcbe34
Update remote calls to Prefs page to reflect new layout 2021-02-23 17:21:23 +01:00
e70c6560af
Provide action buttons to launch prefs-related windows 2021-02-23 17:21:18 +01:00
a59263707a
Massive reorganization of preferences tabs
* moved some wrongly-parented items into a more sensible location
  (import & export options for example)
* broke some busy pages into separate sub-tabs:  Size+Scale,
  MIDI Port configuration, Timecode Generators
* added "Performance" tab to consolidate some of the tweakier prefs
* moved the order of tabs around so the "indented" ones were not
  so intermixed with the non-indented ones
2021-02-23 17:21:11 +01:00
c2e4198c0d
RecorderUI: add option to disable waveforms 2021-02-23 16:25:01 +01:00
16cbec311a
RecorderUI: add some key-bindings 2021-02-23 16:24:58 +01:00
ece37d9ca0
RecorderUI: Implement track renaming 2021-02-23 16:24:55 +01:00
4412b8714b
RecorderUI: Capture info and transport ctrls 2021-02-23 16:24:30 +01:00
15361bca55
RecorderUI: Add input port monitoring 2021-02-23 16:24:27 +01:00
582c99a156
RecorderUI: initial implementation 2021-02-23 16:24:23 +01:00
f10d380d9a
RecorderUI: Tabbable Window Skeleton 2021-02-22 01:00:07 +01:00
ab07bfbffe
Remove optional global monitor toolbar item
The widget will find a permanent location in the Recorder page.
This partially reverts cf5a0de709
2021-02-22 01:00:07 +01:00
656d4308dd
Ask to discover VST2/3 when showing Plugin Manager 2021-02-22 01:00:04 +01:00
dca7cbc963
Allow to configure decimals of MinSec clock format 2021-02-22 01:00:02 +01:00
3b96c28310
Update RouteUI, use ARDOUR::SoloMuteRelease 2021-02-22 01:00:00 +01:00
fcf1f0fad4
Consistent --help text argument 2021-02-22 00:59:56 +01:00
e4e21f4d07 snap revisited: somewhat better choice of ruler scale for 3,5,7 2021-02-21 12:14:27 -06:00
129e654500 fix(?) rulers for 3,5,7 divisions 2021-02-21 08:18:14 -06:00
1fb5c443c7 and the 1/128 2021-02-21 07:14:49 -06:00
b146e45df5 make sure that the 1/64ths grid case is covered 2021-02-20 18:37:56 -07:00
efd0d65acb when window size technically, just the window containing the editor canvas, or the canvas itself) changes, recompute BBT ruler stuff 2021-02-20 17:41:32 -07:00
7e196e7559 snap-revisited: Fix occasional variance between the visible ruler and the snap grid
code changes:
  bbt_ variables don't need to be global to editor; we only use these in compute_bbt_ruler_scale now anyway
  drive the ruler with the same coarse-ified bbt_ruler_scale that we calculate for the snap grid
2021-02-20 10:35:36 -06:00
d644bb16f6 snap-revisited: Add finer (64ths and 128ths) Ruler scalings to match those Grid selections 2021-02-20 10:35:36 -06:00
aa9698ba58 snap-revisited: a less kludgy way to enforce the coarseness of the user's grid selection
should be a no-op
2021-02-20 10:35:28 -06:00
21a66c01ea snap-revisited: replace hardcoded ruler-density with a configgable value 2021-02-20 10:25:10 -06:00
c379a6f6b6 Update Russian translation 2021-02-18 03:38:08 +03:00
b44508c174
Fix renaming export timespans #8577
The location name is only pushed to the backend during
ExportTimespanSelector::add_range_to_selection() which in turn
is only called when timespans are updated.
2021-02-16 18:13:01 +01:00
3e9f142f1b
Do show per-region x-run markers by default 2021-02-14 19:45:36 +01:00
887f8a70bc
Show x-run count in source-list 2021-02-14 16:22:42 +01:00
f4f9d76e53
Option to how x-run markers in regions 2021-02-14 16:22:35 +01:00
YQ-YSY
c0ab2b3a51 New Chinese translation for Ardour 6.6 gtk2_ardour_po_zh.po 2021-02-12 09:47:29 -07:00
YQ-YSY
c1333071e8 Chinese translation Ardour for 6.6 gtk2_ardour_po
Chinese translation Ardour for 6.6 gtk2_ardour_po
2021-02-12 09:47:29 -07:00
YQ-YSY
4d9117e47c Chinese translation Ardour for 6.6 gtk2_ardour_appdata_po
Chinese translation Ardour for 6.6 gtk2_ardour_appdata_po
2021-02-12 09:47:29 -07:00
5bceb79a95 3 transport related UI methods now explicitly do not set the default speed (accessed via KP1, KP2, and the play button in the GUI) 2021-02-11 09:35:29 -07:00
0becbe7f4f
Auto-touch when adding automation events to a spilled control 2021-02-11 00:29:44 +01:00
Edgar Aichinger
8321e7d6a6 update german translation 2021-02-10 12:02:45 +01:00
24398f0df2 click in automation track in object/grab mode adds a new automation point 2021-02-09 22:44:35 -07:00
11e3bbc8cb GUI config editor for Configuration::reset_default_speed_on_stop 2021-02-09 16:01:08 -07:00
106f889f37
Fix automation context-menu state when reordering plugins
Previously displayed lanes (those with save "visibility" GUI
attributes) were always marked as visible in the context-menu.
2021-02-09 20:45:16 +01:00
4f605926c5
Tweak automation-lane auto-display
Hide lanes when touching a control when the editor is not
visible or if the option is disabled.
2021-02-09 17:41:53 +01:00
01bb38d99e
Add option to en/disable showing automation-lane on touch 2021-02-09 02:11:09 +01:00
bd8c26a059
Automatically show automation-lane when touching a control 2021-02-09 02:11:09 +01:00
e204095b71
Fix mixer initial group-tab display 2021-02-07 12:06:26 +01:00
2bf9014ba1
Fix crash when detaching Editor or Mixer w/o session
Mixer_UI::show_window(), Editor::use_own_window() use
`show_all()` and the fixup items that should be invisible.
This involves a call to `parameter_changed ("show-group-tabs");`
2021-02-07 00:09:20 +01:00
b916a14e26 GUI toggle roll method does not set default speed
This allows the user to leave varispeed setting in place
2021-02-05 22:24:02 -07:00
7d3d64512c
Hide hidden ports in port-matrix 2021-02-01 23:49:39 +01:00
e511ee968e
Yet another C++11ism 2021-01-30 23:23:35 +01:00
John Emmas
79c6f4a3ab Some older versions of std::map can be touchy about us trying to erase a const_iterator 2021-01-30 14:05:31 +00:00
24e0391679
Fix C++11'ism 2021-01-30 05:01:33 +01:00
518f307e00
Share IO selector window for a given route
Previously it was possible to open the multiple IOSelectorWindows
from multiple locations: editor-mixer, mixer, track/bus inspector,
track header context menu, etc. for the same port.
2021-01-30 02:38:44 +01:00
3e7b2bb3f5
Separate IO connection button into dedicated class 2021-01-30 02:38:39 +01:00
33088c728a
Clean up AudioClock font API
see also previous commit 2abf9c66a4
2021-01-30 02:23:59 +01:00
d42b09f1d3
Remove cruft, there are no more diskstreams 2021-01-29 03:23:57 +01:00
dcb27a844a
Remove yet another unused variable 2021-01-29 02:58:33 +01:00
a985a3d184
Remove a variable that is never read 2021-01-29 02:58:33 +01:00
9b4d330285
Remove unused variable
`ignore_toggle` is never set to true.
2021-01-29 02:58:25 +01:00
e73d20c5a4
Close and save is possible without running engine
Since de99d7c528, Ardour sessions can be saved and
Ardour can be closed without a running engine.
2021-01-27 04:13:26 +01:00
d23798276a
Use CairoTheme API 2021-01-26 23:37:57 +01:00
cf6e785ed3
Move Playlist GUI functions to RouteUI
This allows to re-use playlist editing in all RouteUI derivatives,
not just the main editor time axis header.

The change is mostly a NO-OP, simply moving methods from
RouteTimeAxisView (is-a RouteUI), to RouteUI.
2021-01-26 01:54:33 +01:00
98847b115e
VST3: Allow multiple identical timer-handlers (#8550)
Also prefer `const_iterator`, following
```
iterator boost::unordered_map::erase(const_iterator position);
```
2021-01-25 02:27:46 +01:00
e568434300
Remove cruft from previous commit 2021-01-25 02:18:33 +01:00