13
0
Commit Graph

260 Commits

Author SHA1 Message Date
a5946ba2e2
Fix heap-use-after-free at exit
Deleting _track_canvas_viewport automatically destroys
any child Items. The LocationMarker's group was already destroyed
when ~ArdourMarker() runs and calls `delete group`.

So first delete the marker, then the canvas
2023-06-08 22:50:15 +02:00
3ef5b0881f
Expose Cut/Copy Section in Edit Menu
Also remove it from the context menu, since it fails
with edit-point = Mouse.
2023-05-18 03:45:14 +02:00
dbebc0b7e0
Make Markers properly themable, use color-names
This simplifies code, and also immediately changes marker
colors when the theme is changed.
2023-05-18 01:26:35 +02:00
cb78043adc
Indicate selection extents in time ruler 2023-05-17 01:53:40 +02:00
38bb89c110 more functional tempo mapping
TempoMarker drag modifies tempo (and thus beat-time positions
and durations).

BBTRuler drag modifies the map but not positions/durations
2023-03-24 14:19:16 -06:00
b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
c44b40afd7
Indicate UTF8 literals - fixes glyph rendering with MSVC (2/2) 2023-01-16 21:41:22 +01:00
08c1b97e06 Rename some right-click menu items on rulers for clarity and consistency 2022-11-07 00:34:15 +03:00
5d5c1ee9fc use TempoMapChange for editor tempo marker edits 2022-10-27 12:12:52 -06:00
39b85bd2d4 Commit TempoChange undo operation after map update
Tempo Map updates can change a region's position/length, in which case
region-automation may follow the region, and DiskReader:: playlist_ranges_moved
will save additional undo information.

These MementoCommand(s) need to be included in the undo operation.
2022-10-27 08:40:09 -06:00
5d7b421a0b remove debug output 2022-10-21 07:55:24 -06:00
45e21de209 implement and adopt new conventions for AudioClock use
The class now has two separate methods for setting a duration or a point
value. They MUST be used appropriately, because their behavior is different.

When ::set_duration() is used in timecode mode, an extent (inclusive-end
length) is shown rather than a length.

Some objects, such as the TimeInfoBox, now deliberately shown an inclusive end
for their "end" clock, but this not universally followed, pending more feedback
from users and investigating of conventions in other DAWs.
2022-10-07 16:24:56 -06:00
0c2176dd71 move default_triggers_per_box into a namespace ; change value for Ardour to 16 (GUI edition) 2022-10-04 19:55:15 -06:00
888d91d599 Add action to locate to loop start/end 2022-09-07 19:15:36 +02:00
a5b7290e3a fix fatal error/logic error in marker remove code introduced with BBT markers 2022-09-02 10:41:58 -06:00
fc6ad8ebd9 bbt markers: all the basics of dragging, editing, removing 2022-08-17 16:40:35 -06:00
85f640c31a ripple: prevent session/punch/loop markers moving during ripple-all
Locations::ripple() skips these markers when the ripple action is committed.

...but the editor moves the marker-items as a visual aid, before actually
  committing the changes to Locations()

...so the editor needs the same logic, to avoid visually inconsistent behavior
2022-07-19 12:33:33 -05:00
65956407bb
Fix initial display of markers that are glued to BeatTime 2022-06-28 02:55:53 +02:00
e2e6274956 libardour: change API of Session::request_locate() to include "force" argument (GUI edition) 2022-05-27 18:49:23 -06:00
399a5b3f25 convert use of operator* for tim::line types with ::scale(ratio_t) (GUI edition) 2022-05-27 12:47:44 -06:00
bd3fdaeb67 clean up editor's set_ramped() and set_continuing() code
Now that the libardour methods return bool, we can identify whether or not any
change actually took place, and act appropriately.
2022-05-24 17:10:25 -06:00
d8ba73f542 temporal: change "clamped" terminology to "continuing" (since that's what the GUI calls it) (GUI edition) 2022-05-23 08:07:08 -06:00
7293904e53 use new TempoCommand when putting tempo map ops into undo/redo history 2022-04-08 11:58:04 -06:00
883a44e6a4 temporal: TempoMap::use() returns a const ptr to enforce semantics (GUI version)
This commit leaves two issues outstanding:

1. unclear/ugly semantics for drag operations that reset the GUI thread's tempo map to the writable copy
2. undo/redo for the tempo map

These will be addressed in future commits
2022-04-08 11:58:04 -06:00
5f0c7fe3d6 move cue-behavior to session config (gtk part) 2022-02-19 11:49:01 -06:00
17e5667216 triggerbox: use translatable marker name function in GUI 2022-02-11 11:33:43 -07:00
luz paz
364f2f0788 Fix typos in gtk2_ardour/ directory
Found via `codespell -q 3 -S *.po,./share/patchfiles,./libs -L ba,buss,busses,doubleclick,hsi,ontop,ro,seh,siz,sur,te,trough,ue`
2022-01-26 12:35:38 -05:00
f6813e0749 Ruler Markers: customize the menus for Cue Marks, including a way to change the Cue-ID 2022-01-21 10:13:11 -06:00
48c5974b2b Ruler Marker: watch for -my- location cue-id to change 2022-01-21 10:07:48 -06:00
85f05eaca5 Ruler Markers: only listen to -this- marker (NameChanged), not all of them (name_change) 2022-01-21 10:04:04 -06:00
60cbe57a6e Marker Rulers: changes to match mini-timeline aesthetic
Highlight ruler lanes when you enter, instead of showing many lines
2022-01-20 18:59:21 -06:00
41ade3b024 add a distinct Marker type enum for cue markers
Plan is to change the shape before this is considered done; for now
it uses the same shape as a regular marker
2022-01-19 09:06:38 -07:00
c916d3d952 Substantial overhaul of tempo display code
Major changes: do not delete and recreate markers and curves for every tempo map
change, attach tempo curves directly to their (preceding) tempo marker, notable
cleanup of TempoCurve class to remove unnecessary members.

More tweaks expected since algorithm for matching markers and tempo map
points is not correct yet.
2022-01-18 19:47:20 -07:00
0baf0d859d GUI side of cue behavior (makes it available in the ruler context menu) 2022-01-06 12:00:18 -07:00
7c35783d63 various fixes for cue marker creation, dragging, naming 2022-01-05 13:27:47 -07:00
73ca08933d fix default naming of cue markers 2022-01-05 13:27:47 -07:00
b1f73d25bf actual GUI interaction for cue marker ruler 2022-01-04 15:23:51 -07:00
77d83540b1 copy-n-paste addition of cue marker ruler (based on cd marker ruler) 2022-01-04 15:23:51 -07:00
3c03e4951e
Use updated temporal API 2/2 2021-12-11 15:51:31 +01:00
fd5594f831 use Editor::reassociate_metric_markers() before performing edits on tempo map
The objects referenced by markers point to the copy of the map held by the per-thread ptr. But
the edits must be done on a writable copy of the map. ::reassociate_metric_markers() fixes
the references to use the writable copy, so that when we pass references to the objects in the map
to the writable copy, it will find them and modify them (rather then ones in the previous
generation of the tempo map)
2021-11-17 12:16:39 -07:00
2bad9e0a85 do not create timepos_t from timepos_t unnecessarily 2021-08-13 12:51:36 -06:00
40c29640f5 fix crash when dragging markers 2021-08-13 12:51:36 -06:00
b6f290add2 timeline type changes for new ripple code and post-conflict-resolution fixups 2021-08-13 12:51:36 -06:00
7938d8de4f fix (some) editing based on tempo & meter marks
After beginning an edit operation with TempoMap::write_copy(), the tempoPoint and meterPoint objects
referenced by markers are incorrect, since they refer to the original map, not the copy we are working
on. Fix this with Editor::reassociate_metric_markers()

Some instances requiring this fix may still remain
2021-08-13 12:51:35 -06:00
ce3fb0507c change return type of Tempo::set_{ramped,clamped} and fix call sites 2021-08-13 12:51:35 -06:00
5153124664 change (GUI) Marker objects to accept any Canvas::Item as parent, and use this to draw BBT position markers in the BBT ruler 2021-08-13 12:51:34 -06:00
9d4d3908e6 remove some nutempo #warnings and fix up Location time domain API 2021-08-13 12:51:33 -06:00
87dfef28f6 allow new locations creation from playhead to use default time domain 2021-08-13 12:51:33 -06:00
9c1e88e675 remove NUTEMPO #warning (dealt with in caller) 2021-08-13 12:51:33 -06:00
7e6f0ea2bb remove NUTEMPO warning 2021-08-13 12:51:33 -06:00