13
0
Commit Graph

9199 Commits

Author SHA1 Message Date
22a14a56f3 use new selection API to avoid double signal when a track or tracks are SET as the selection 2016-01-29 16:15:41 -05:00
fbe236999d modify Selection API to provide (default-valued) "with_signal" argument to all ::clear_*() methods
This allows the clear methods to be used before calling ::add(), to avoid the
emission of a signal saying "there are no <foo> selected right now".

There should be no side-effects from this commit.

Note that correct use of this new API is complex, and requires avoiding the use
of wrapper methods like clear_objects().
2016-01-29 16:15:41 -05:00
c0a843a905 fix device-list update concurrency issue.
It may happen that during push_state_to_backend() a device is
reconfigured in a way that triggers a "Device Changed" callback before
the engine is started. This callback can trigger a change to the
configuration that will be used when the engine is actually started.

This has been seen on OSX in conjunction with Aggregate Devices
(even if the aggregate is not used, but the device which is used
is also part of an aggregate) 

example: HW changed callback arrives, device-list is re-populated,
*A*irplay" is at the top of the list, Airplay supports only 44.1K,
Samplerate changes... later save also writes this new rate to the file.
2016-01-29 01:12:53 +01:00
3332633d19 Editing from a control surface must have the ability to ignore mouse location.
Add mark_in and mark_out actions that explicitly use the playhead as the edit location.
2016-01-28 13:46:33 -06:00
458a2b723c Use visible playhead location for editing during a jog-wheel event. 2016-01-28 13:46:33 -06:00
893b51bda2 Center the playhead for stationary_playhead playback.
This avoids a visual discontinuity when playback is initiated after a jog-event.
2016-01-28 13:46:33 -06:00
aedde11862 Initialize Editor::clicked_selection to prevent programming error dialog/exit
This was triggered when reloading session and immediately duplicating range with
keyboard shortcut. As clicked_selection was uninitialized it would try to use
an invalid index into the TimeSelection.
2016-01-28 13:42:37 +10:00
45e8bda65f Change duplicate range to use time range/s rather than a single region
This should fix bugs #4980, #4984, #4986 and #6579
2016-01-28 12:25:16 +10:00
d1c35636f0 satisfy some pedantic compilers, #6748 2016-01-26 15:14:55 +01:00
bfbf260eaf when using InverseGroup for rec-enable, do not collect group members and pass them to a session RT event method 2016-01-25 22:10:43 -05:00
c338057b7b NOOP: whitespace fixes 2016-01-25 22:08:47 -05:00
5fd07fe3af when using InverseGroup for solo, do not collect group members and pass them to a session RT event method 2016-01-25 22:08:23 -05:00
7b6142ed99 when using InverseGroup, do not collect group members and pass them to a session RT event method 2016-01-25 22:06:41 -05:00
dd32c05cda GainMeter(Base) now has an explicit gain control given to it 2016-01-25 11:47:44 -05:00
452e39f8a3 Make horizontal scroll increment consistent in ruler and track canvas areas
In response to a comment in #6722, as there is little delineation between the
ruler and track canvas areas it makes sense to keep the scrolling step the same
to avoid unintended jumps in scrolling if mouse cursor moves between areas.
2016-01-25 17:44:22 +10:00
570eb73ff3 no reason to have group edit dialog be modal 2016-01-22 11:58:31 -05:00
23794eca5b rename Controllable::WholeGroup => InverseGroup to reflect real intent.
Add logic to RouteGroupMember::use_group() to implement the real intent of InverseGroup
2016-01-22 11:58:31 -05:00
9e5b7db89f first compiling, mostly working version of group controls changes 2016-01-22 11:58:31 -05:00
eee07ac351 NOOP: whitespace fixup 2016-01-22 11:58:16 -05:00
0c9249604f when leaving an active automation state, update fader displays to show correct current value 2016-01-22 11:58:16 -05:00
f315c0910d Fix bug 6735, Take into account snap to when stretching regions in Editor 2016-01-21 14:07:49 +10:00
ab292183dd Bug #6722, Add UI config option to always use mouse position as zoom focus on scroll
This means that mouse zoom scrolling behaviour is consistent on the ruler
canvas area and track canvas area.

The config option defaults to true so this means the behaviour of Mixbus will
be unchanged but in Ardour the ruler area will now follow the option so by
default will use the mouse position as zoom focus when zooming rather than the
zoom focus setting.
2016-01-21 11:25:56 +10:00
6ba6cce799 Refactor code into Editor::temporal_zoom_step_mouse_focus method 2016-01-21 11:25:56 +10:00
72bdfc38a8 Fix/implement #6292, Shift + scroll wheel Scrolling in the ruler area
Keep the same scrolling distance per event as when scroll left/right is used.

Scrolling in the ruler area is different than the track canvas area which I'm
not sure is a great idea as there is not much delineation between the two areas
but as the ruler area has some other different behaviour it is probably
acceptable/useful.
2016-01-21 11:25:56 +10:00
2a13891970 Change scrolling in the Editor track canvas summary area
Keep scroll distance consistent when scrolling up and down with horizontal
modifier as when scrolling left to right.

Scroll horizonally by half a page so that no sections of the canvas are skipped
when scrolling.

Scroll by half a page rather than a step like when scrolling in the track
canvas area as it is a summary area so larger steps seem acceptable and having
it use the same scroll distance as when scrolling in the track canvas seems
pointless as you would then just scroll in the track canvas area.
2016-01-21 11:25:56 +10:00
08cbe0532c Refactor scrolling in Editor ruler canvas area into two utility methods 2016-01-21 11:25:56 +10:00
743e324c6a Remove goto in Editor::track_canvas_scroll 2016-01-21 11:25:56 +10:00
c6805c1454 Refactor scrolling track canvas in Editor class into two utility methods 2016-01-21 11:25:55 +10:00
Pavel Fric
cd377f1278 Czech translation update #6739 2016-01-21 00:49:10 +01:00
27d82af077 add some horz and vert zoom actions; remove some whitespace from the code of the ui-actions, so they are easier to see and maintain 2016-01-18 18:24:14 +01:00
16623b1cb3 add more remote transport toggles for touchOSC: midi_panic, toggle_roll, stop_forget, set_X_range, quick snapshots. also add boilerplate for monitor controls, but those are not implemented yet 2016-01-18 18:24:14 +01:00
64c9198d60 add group disposition argument to Route::set_gain() and use it in various UIs
Executive decisions were necessary in a couple of places about the correct group disposition
behaviour, notably faderport and OSC surfaces
2016-01-18 12:11:09 -05:00
1948b50a68 working version of new gain control design 2016-01-18 12:11:08 -05:00
d1033819bd change ownership of the AutomationControl used by Amp.
It used to be owned by Amp. Now it is owned by Amp's owner
2016-01-18 12:11:08 -05:00
ef7c6730cb Groups: Fix un/set hidden/show should reset RID for tracks involved. 2016-01-17 14:17:02 -08:00
d4aae03653 scrolling actions should not require that a track selection exists 2016-01-16 20:29:14 -06:00
aeaf0610d4 GUI for latency-measurement signal-level 2016-01-14 19:25:23 +01:00
f2b7d9af92 NO-OP: enums implicitly start at zero
this allows this file to be included to look up enums (bindings)
2016-01-14 19:10:27 +01:00
084af96bf4 Change handling of Midi note selection to eliminate signal emission/delays.
Each MidiRegionView(MRV) is connected to the Selection::ClearMidiNoteSelection
signal that is used to notify the all MRV instances to clear their note
selection.

The MRV class also has a private static SelectionCleared signal that is used to
signal other MRV instances when their selection has been cleared. When the
Selection::ClearMidiNoteSelection signal is emitted it causes each MRV to also
emit the SelectionCleared signal. So the emission takes quadratic time.

With 1500 MRV instances emission takes about 2.2 seconds on my machine, and
some operations like track selection cause it to be emitted 3 times(another
issue).

The Selection class in the Editor knows which MRV instances have note
selections, as it is notified by MidiRegionView whenever the selection count
becomes zero or becomes non-zero. Clearing the Note selection should then just
be O(N) and direct calls can be used rather than signals.

This change removes both the signals and uses the existing references between
Selection and MRV class to control note selection. There should be no
behavioural changes in Midi note selection with this change.
2016-01-14 20:41:44 +10:00
b93a9e2601 Add debug bit for selection debugging output 2016-01-14 20:41:43 +10:00
ed8c88d697 don't allow to delete AU presets in the UI
because the backend is not ready for this.
2016-01-13 18:01:39 +01:00
df5c5d338a space bar action (Transport/ToggleRoll) should still start transport if synced to Engine (JACK) 2016-01-12 08:28:54 -05:00
André Nusser
ef9713d5c6 Comment remaining unsolved bug. 2016-01-12 13:45:39 +01:00
André Nusser
f979d9c0a6 Don't show a ghost note when draw mode is entered over a note. 2016-01-12 13:45:39 +01:00
André Nusser
616c1aa0ce Clean enter_internal and leave_internal in MidiRegionView. 2016-01-12 13:45:39 +01:00
André Nusser
39bd216725 Fix two ghost note drawing problems.
A ghost note could appear:
1) above the region.
2) inside another note even though we haven't yet entered it.
2016-01-12 13:45:38 +01:00
André Nusser
76237a696c Hide MIDI ghost note when over existing note. 2016-01-12 13:45:38 +01:00
André Nusser
688fe8504b Hide ghost note when switching from draw to internal edit mode.
Before it was only hidden after moving the mouse.
2016-01-12 13:45:38 +01:00
André Nusser
2d786617bb Fix appearing ghost note after drag select in internal edit mode. 2016-01-12 13:45:38 +01:00
eea8d8e6c0 check sidebar re-order constrains early on. 2016-01-10 00:28:00 +01:00