Commit graph

947 commits

Author SHA1 Message Date
Robin Gareus
4769c387f3
Expose EditorCursor via public editor API
This is in preparation to subscribe to playhead cursor position
changes in the recorder-UI.

This change also clean up the API, replacing a public variable
with a const access method and follows #12 of
https://ardour.org/styleguide.html
2021-01-08 18:39:56 +01:00
Paul Davis
b59e687f83 prevent addition mouse button press/release events while an existing drag is still underway from interfering (fixes #8529) 2021-01-07 22:55:44 -07:00
Johannes Mueller
9b2228d6fd Fix ripple moving automation points
When ripple moving a region all the subsequent regions will be moved, next
region in the playlist after the dragged one first, last region of the playlist
last.

Thus, when an automation point is ripple moved along a region past the starting
point of the next region, it will be moved again along with the next region as
the move of the next region occurs after moving the automation point.

This fix reverses the sequence of the ripple moves, last region in the playlist
will be moved first, the next after the dragged one, last. So no temporary
overlap of regions will occur.
2020-07-07 19:39:16 +02:00
Robin Gareus
d99dd1e3ec
Fix auto-play when locating via drag/click in the editor 2020-07-07 18:53:42 +02:00
Paul Davis
8dfb49f446 do not clear a MIDI region's note selection when drag-creating a note 2020-05-05 17:57:53 -06:00
Robin Gareus
51795d2e11
Fix contents-drag (ignore snap) #8073
The "new" snap-to-visual-grid mechanism is not useful for
Contents-trim. That would require a relative grid.
2020-05-01 22:12:39 +02:00
Paul Davis
cc32d42388 use new API to get selected MIDI regions and clear current note selection in a MIDI region 2020-04-16 17:48:12 -06:00
Robin Gareus
899d696a97
Fix another typo #8016 2020-04-16 22:09:01 +02:00
Johannes Mueller
6d75d40533 Quick and dirty dropping support for rippling across tracks
Ripple editing will be reworked some point after 6.0
2020-04-14 23:45:17 +02:00
Johannes Mueller
d2f5edf64f Fix #8012 to some extent.
As soon as we ripple drag the selected region out of the original track,
::remove_unselected_from_views() is called and the rippled regions on the
original track are not covered when ::remove_selected_from_views() is called
again in ::finished(). Therefore we need to shift the regions remaining on the
original track back and forth again, in order to have them properly in the undo
history.
2020-04-14 22:43:15 +02:00
Johannes Mueller
d5f25f998b Fix #7007: ::clear_owned_changes() on rippled Playlist before commit
RegionMoveDrag::finished_no_copy() calls ::clear_changes() on every selected
Region and then sets their positions again before committing the command to the
UndoHistory. By doing that no changes from the previous transaction spill over
into the current transaction.

This needs to be done in a similar way by in RegionRippleDrag::finished()
because otherwise a following undo action would also undo the changes of the
previous transaction for all the non selected rippled regions.

RegionRippleDrags across tracks are still borked, though.
2020-04-13 23:56:52 +02:00
Robin Gareus
fbc48bdf34
Fix end vs. length bug when creating regions - #7978
set_length() includes the end.
A Region starting at 0 and ending at 0, has a length of 1
(think counting fence-posts, or video-frames).
2020-04-05 20:24:11 +02:00
Robin Gareus
75adc33629
Remove unused variable 2020-04-01 22:55:06 +02:00
Paul Davis
6291433e27 set Editor::_pending_locate_request to true before sending locate request. 2020-03-25 18:39:59 -06:00
Paul Davis
4151ec1907 remove accumulated debug output 2020-03-25 15:12:30 -06:00
Paul Davis
1b05ebbafa more playhead-drag/click locate debugging 2020-03-25 12:33:46 -06:00
Paul Davis
77ab1a39b8 more playhead-drag/click locate debugging 2020-03-25 11:48:53 -06:00
Paul Davis
becfad91c2 more playhead-drag/click locate debugging 2020-03-25 11:48:18 -06:00
Paul Davis
41ff788a76 more playhead-drag/click locate debugging 2020-03-25 11:03:18 -06:00
Robin Gareus
ec345037b0
Suppress debug output in optimized builds 2020-03-25 16:43:24 +01:00
Paul Davis
777ac65831 debug output 2020-03-24 18:55:16 -06:00
Paul Davis
384ded905d debug output 2020-03-24 18:39:46 -06:00
Paul Davis
47767738b9 rename DoTheRightThing to RollIfAppropriate 2020-01-18 08:49:18 -07:00
Paul Davis
3c00048b0c Session::request_locate() takes a tri-valued second argument for "roll-after-locate"
This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it
can be cnentralized and is less ambiguous
2020-01-18 08:49:18 -07:00
Robin Gareus
edf9478fda
Fix endless loop when drag/copy locked region 2019-11-09 06:00:02 +01:00
Robin Gareus
a8f9ba4a5e
Preview video frame when dragging 2019-11-09 06:00:01 +01:00
Paul Davis
58595a839b remove two unused variables 2019-10-10 16:52:00 -06:00
Robin Gareus
f491d7ec71
Use Fixed-length when drawing percussive events
Previously adding percussive-hits created sustained notes
using the current grid as duration. This allowed to create
overlapping notes with the overlap not being visible.

Most hardware MIDI drumkits do send an immediate note-off event
after each hit (if they send note-offs at all).
Ardour now follows suit and does the same when using the draw/edit tool.
2019-09-05 00:42:29 +02:00
Robin Gareus
a1b0991d26
Fix uninitialized argument value
TrimDrag::aborted() -> TrimDrag::finished() -> TrimDrag::motion ()
uses event->button.state
2019-08-20 04:06:31 +02:00
Robin Gareus
4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Robin Gareus
31815b5f26
NO-OP: whitespace
This fixes mostly <tab> after <space> and similar <tab> not used
for indenting as well as some related code alignment issues.
2019-04-13 17:57:46 +02:00
Robin Gareus
56047a094c
AutomationRangeDrag tweaks for stacked layer view
Use y-pos and height of given TAV *layer* where the drag was initiated.
2019-03-30 01:19:47 +01:00
Robin Gareus
546d5d09b5
Remove unused variable 2019-03-30 01:15:17 +01:00
Robin Gareus
f40456a649
cont'd AutomationRangeDrag update
Properly adding guard-points for all lanes, not just the first found
for each range.
2019-03-30 00:14:26 +01:00
Robin Gareus
d8571e2572
cont'd AutomationRangeDrag updates -- safety commit
This is work in progress towards fixing stacked region's region-gain
and multiple discontinuous regions spanning multiple tracks.

AutomationRangeDrag::setup() still does not collect all AutomationLine
points for certain overlap scenarios. There's more to come...
2019-03-29 15:57:07 +01:00
Robin Gareus
0ee6b03144
Implement multi-region AutomationRange drag/drop 2019-03-27 23:25:28 +01:00
Robin Gareus
c09c7bab52
Update GUI, use Session::playlists() getter (2/2) 2019-03-19 05:14:40 +01:00
Ben Loftis
b24fef38b2 Fix for automation-line edits using the Range+Draw tool, when no line is already present. 2019-02-12 21:23:01 -06:00
Ben Loftis
3e442ae52b Session-range behavior (gtk2 part)
* Both the session-start and session-end point should follow the is-free option
  * Rename the end-is-free option to session-range-is-free, to reflect that change
  * This fixes the problem: recording before the start marker would move the Start,
    even if the user had already fixed the End marker.
2019-02-12 11:35:57 -06:00
Robin Gareus
245d48dbd0
NO-OP: Clarify function name 2018-11-28 15:16:25 +01:00
Robin Gareus
f150f6c074
Use central method to check for engine where required
These are generally places where tracks/busses are created or port
connections change.
2018-11-28 00:01:50 +01:00
Robin Gareus
57d7b5de65
GUI limitation: Require engine to add/remove tracks/busses 2018-11-27 13:18:39 +01:00
Ben Loftis
0883f02de9 new_grid: The Return of the snap_to_X functions.
We no longer assume that Snap always uses the visible ruler lines.
 If you want to snap to the grid, and ignore the users zoom scale, use SnapPref::SnapToGrid_Unscaled
 This fixes 2 (known) oversights: "snap region(s) to grid" and "regions whose start are left of the canvas edge".
2018-07-27 00:28:47 +02:00
Ben Loftis
fcabb27561 Remove some redundant calls to snap_to(). get_preferred_edit_position() already did it. 2018-02-27 08:55:17 -06:00
Ben Loftis
0299229e41 SoloSelection: gui part. 2018-02-11 09:39:45 -06:00
Ben Loftis
dc61256466 new_grid: Rewrite of Snap and Grid. (squashed commit)
Separate Snap from Grid.  Lots of naming changes.
Multiple simultaneous snap options allowed. Grid is one of the possible Snap options.
Grid uses the same data as the rulers.  Replace complicated tempo_lines with simple grid_lines.
The Grid is zoom-scale-sensitive along with the rulers.  If you are zoomed out, grid becomes coarser.
2018-02-09 09:59:39 -06:00
Ben Loftis
c6eab71435 new_snap: Snapped Cursor ( squashed commit )
Snapped Cursor is a line that follows the edit point, and indicates where the operation will occur.
This replaces and extends the line that appears with the Cut tool.
New associated preferences:  snap_threshold and show_snap_cursor.
2018-02-09 08:21:45 -06:00
Paul Davis
1a8ac58c1a remove unused variables 2017-10-26 15:41:11 -04:00
Paul Davis
7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00