Commit Graph

1114 Commits

Author SHA1 Message Date
Paul Davis 93e1e1c1f2 remove Cue, CD, Scene, Punch, Loop rulers, consolidate to just a pair (ranges, locations)
a menu allows choosing between all markers or 1 specific type, and all ranges or 1 specific type

more work required on menu structure and menu options/dialogs to specify the type of new location
and range marker creation
2024-05-16 22:58:55 -06:00
Robin Gareus 38adfdf79e
Add custom color for region effect automation 2024-04-23 21:56:26 +02:00
Robin Gareus b2d4280e0f
Add support for Region Fx Automation 2024-04-23 21:56:22 +02:00
Robin Gareus cbf38408c9
Fix crash when using Ripple with a RegionMoveDrag
See also 1a2fff932f
2024-01-07 14:15:36 +01:00
Robin Gareus 067a124fd1
Suspend signal emission of Locations during Drag
This significantly speeds up Location Drag/motion
2023-12-08 21:48:23 +01:00
Robin Gareus 71e049202c
Fix crash when clicking on region boundary box to start Drag
The box outlines a given region, the grab position may be earlier
than the region's position.

Previously this caused a crash (uncaught exception):

```gdb
__cxa_throw () at /lib/x86_64-linux-gnu/libstdc++.so.6
Temporal::timecnt_t::timecnt_t(Temporal::timecnt_t const&, Temporal::timepos_t const&) at ../libs/temporal/timeline.cc:79
RegionMoveDrag::setup_pointer_offset() at ../gtk2_ardour/editor_drag.cc:2226
```
2023-11-21 20:17:20 +01:00
Paul Davis cd29e03c05 selection dragging: use time domain given to drag, not editor default 2023-11-03 15:11:38 -06:00
Paul Davis ef0938a16d more improvements to velocity drawing (including straight line) 2023-10-27 11:50:15 -06:00
Paul Davis 91fbb1c65b first steps towards improving straight line drags for velocity 2023-10-27 11:50:15 -06:00
Paul Davis edc0e636e2 allow users to opt for "select only the last drawn note" when drawing notes 2023-10-17 22:03:47 -06:00
Paul Davis d6323a1686 GUI side of 122c9141 (API change for TempoMap::move_meter()) 2023-10-07 11:11:31 -06:00
Robin Gareus b87937a20e
Fix crash when double-clicking on TempoMap Ruler markers
heap-use-after-free. Marker is deleted (and re-created), when
the tempo-map edit is aborted:

```
    #0 0x7f77528ac017 in operator delete(void*) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:160
    #1 0x55f81062800d in TempoMarker::~TempoMarker() ../gtk2_ardour/marker.cc:794
    #2 0x55f80ffb2fc0 in Editor::reset_tempo_marks() ../gtk2_ardour/editor_tempodisplay.cc:205
    #3 0x55f80ffb2b19 in Editor::reset_metric_marks() ../gtk2_ardour/editor_tempodisplay.cc:185
    #4 0x55f80ffb49fb in Editor::tempo_map_changed() ../gtk2_ardour/editor_tempodisplay.cc:301
    #5 0x55f80ffbdf00 in Editor::abort_tempo_map_edit() ../gtk2_ardour/editor_tempodisplay.cc:850
    #6 0x55f80fcf967a in TempoMarkerDrag::finished(_GdkEvent*, bool) ../gtk2_ardour/editor_drag.cc:333
```

Since no movement occurred, the tempo-map was not changed.
however we need to drop the lock and writable thread-pointer...
2023-10-07 15:35:15 +02:00
Robin Gareus 4a8dc04f14
Remove ScrubDrag and vari-speed based fake-scrubbing 2023-10-05 21:53:39 +02:00
Paul Davis 364c892c68 remove debug output 2023-10-03 11:13:57 -06:00
Paul Davis 764ed125a4 region gain line freehand draw: ensure drawn line is above waveform 2023-10-02 12:04:57 -06:00
Paul Davis 18819a48a9 region gain and MIDI CC freehand line drawing
This involved a significant change in event handling for automation region views,
but it brings it into line with how it works for other things. On button press
we initiate a drag, then if no motion occurs, the Drag returns false during
finalization, and only then do we continue through Editor::button_release_handler()
to eventually end up in ::add_automation_event().

Although it is a substantial change, the fact that it now works the same
way for audio regions, automation regions and automation tracks seems
like a definite plus.
2023-09-30 11:09:58 -06:00
Paul Davis b2bb8e9bac move (empty) Drag destructor into source file and add DEBUG_TRACE 2023-09-30 11:09:58 -06:00
Paul Davis 944fcf251d initial refactoring of freehand line drawing
This sets the state to use it with MIDI CC and region gain.

class names LineMerger and MergeableLine need revisiting
2023-09-30 11:09:58 -06:00
Robin Gareus bed041cf96
Set DnD time's time-domain
Drag::_raw_grab_time is set to the correct time-domain. However
during ::motion() and other operations the adjusted time was
always AudioTime.

Most notably this caused editor->selection->time to have
different time-domains for start and end.
2023-09-28 00:41:17 +02:00
Ben Loftis 72761734e8 region groups: more fixes for drag-copy and range-paste operations 2023-09-27 11:06:40 -05:00
Paul Davis d892614742 fix DEBUG_TRACE message about a drag 2023-09-25 11:01:22 -06:00
Robin Gareus 36f8d48e93
Add editing mode to select marker click behavior
So far this only adds actions, not a GUI dropdown or
context menu. See also f9a121ce9c
2023-09-13 03:16:24 +02:00
Paul Davis 28af3c2024 i like nullptr 2023-09-11 10:26:54 -06:00
Paul Davis fa78fe1f33 fix incorrect design of abort-tempo-map-edit operation 2023-09-11 10:26:54 -06:00
Paul Davis 734a62101f remove use of Tempo::active() from GUI
This has not been accessible in the GUI since 7.0.
2023-09-11 10:26:54 -06:00
Paul Davis 250174b16e don't bother locating at end of no-motion marker drag if using external sync 2023-09-07 14:23:08 -06:00
Paul Davis f9a121ce9c click (no drag) on markers locates there, unless using marker as edit point 2023-09-07 14:23:08 -06:00
Ben Loftis e5e40c751f
if user moves selection markers, convert selection to a timeline section 2023-09-05 23:08:30 +02:00
Robin Gareus cf9f9db48b
Set length of new percussive hits to 1 tick
This prevents overlap of successive hits.

Ardour 7 added a new duration select drop-down menu,
which defaults to "Auto" (musical grid) and removed
the special case when drawing percussive notes.
It was possible to accidentally create overlapping notes,
without the user being aware of doing so.
2023-09-04 23:26:54 +02:00
Ben Loftis b66e12610b arrangement ruler: create Section marker type, so we can customize it a bit 2023-08-29 23:02:05 -05:00
Ben Loftis 32b18073e8 more enforcement of left->right freehand drawing (fixes velocity drawing) 2023-08-27 10:43:47 -05:00
Paul Davis b15fa57017 freehand draw; use ensure_snap to force non-magnetic snap during drag (if snapping) 2023-08-19 13:39:27 -06:00
Paul Davis c8819d73c8 freehand draw: require left-to-right drawing 2023-08-19 13:39:27 -06:00
Paul Davis 5c423d3dda freehand draw: slight logic improvement for first move 2023-08-19 13:39:27 -06:00
Paul Davis 7c029f5f6a next iteration of changes to handle time domain bounces as undoable (GUI) 2023-08-14 23:42:08 -06:00
John Emmas 35c04d0ee7 Add a missing namespace specifier 2023-07-15 12:55:30 +01:00
Paul Davis df52c39ce0 freehand line drawing: automation & velocity share the same basic code 2023-07-14 13:03:26 -06:00
Paul Davis ac68fcb880 automation drawing: fix right-to-left free drawing 2023-07-10 14:39:23 -06:00
Paul Davis f6f1f3393d automation drawing: fatter line 2023-07-10 14:38:58 -06:00
Paul Davis d12aa315fc automation drawn: ensure the right-to-left drawn lines are ordered correctly 2023-07-10 14:23:39 -06:00
Paul Davis 9d5b6a78d5 automation drawing: better line color 2023-07-10 14:16:59 -06:00
Paul Davis 25d17e857f when free-drawing straight lines, allow retrograde motion 2023-07-10 13:42:25 -06:00
Paul Davis 67d9fa885a use mid-drag key events to allow Alt to force a line break 2023-07-10 12:22:16 -06:00
Paul Davis a14c534d16 dragging: add possibility of handling key events mid-drag
Currently only called from a canvas automation track event handler.
2023-07-10 12:21:27 -06:00
Paul Davis 6453049c0a automation drawing: add point at grab start & use new ControlList API for speed 2023-07-10 11:20:47 -06:00
Paul Davis 7f653de3e2 automation drawing: don't draw staircases when there are no staircases 2023-07-09 22:14:38 -06:00
Paul Davis c584bfd374 automation drawing: thinning does not work well with snapped-drawn lines
Also, adding points to a ControlList can fail and that's OK
2023-07-09 22:10:18 -06:00
Paul Davis 0a0a882f5a snapping, straight lines, and merge drawn points to list for auto draw 2023-07-09 20:42:09 -06:00
Paul Davis e0c24f5bcf automation drawing: stay in your lane and keep moving in the same direction 2023-07-09 18:12:08 -06:00
Paul Davis 86d5e2472c automation drawing: we have the squiggly 2023-07-09 17:39:32 -06:00