13
0
Commit Graph

34710 Commits

Author SHA1 Message Date
06eb154db2 derive TriggerUI from sigc::trackable so that it can be automically disconnected from signals
Note: this still seems suspicious: we explicitly disconnected from signals in the destructor. However,
it is better form to be able to use invalidator() in the connection call
2022-02-21 13:28:17 -07:00
28db0c1d2b triggerbox: fix logic error in handling of locate-while-playing-triggers 2022-02-21 12:45:13 -07:00
92d82866e0 temporal: add some basic BBT time tests
Some of the subtraction tests may need revising because it is not immediately clear that the
current answers are correct.
2022-02-21 11:55:44 -07:00
47bf18101b triggerbox: don't set transition times when we are not transitioning
At some point during code refactoring, we ended up setting up the 3 transition times, intedned
to define when the *previous* transition occured, as we checked to see if a transition
would occur during this ::run() call. This led to (in particular) MIDI clips ending early,
because the transition_beats value was set to the *next* (upcoming) transition, and we used
this to define the timeline position of MIDI events
2022-02-20 11:00:01 -07:00
685a3ebc7e do not use a write copy of the tempo map when not planning to modify the map 2022-02-20 09:31:23 -07:00
b9de15d285 triggerbox: split apart semantics of WaitingToStop
This allows for a different quantization to be used when WaitingToSwitch,
used when we explicitly start a different Trigger. When "just stopping"
we continue to use 1 bar quantization; when switching to a different
Trigger we use the quantization of the next Trigger
2022-02-20 09:20:47 -07:00
61b728bdcc more avoidance of double initialization 2022-02-19 16:42:03 -07:00
08768e8185 draw the Stop All Cues marker as a square 2022-02-19 13:39:59 -06:00
c7dbfb9961 trigger_ui: add a hint re: randomness of selections in the Multi-Jump dialog 2022-02-19 12:34:45 -06:00
ee9e7589ee trigger_ui: add more tooltips 2022-02-19 12:12:43 -06:00
ab44c9a750 trigger_ui: add some tooltips 2022-02-19 11:49:01 -06:00
5f0c7fe3d6 move cue-behavior to session config (gtk part) 2022-02-19 11:49:01 -06:00
b506a243a2 move cue-behavior from rc_configuration to per-session config 2022-02-19 11:48:56 -06:00
dcdfd3ff0f no need to repeat initialization 2022-02-19 09:03:48 -07:00
4ae5c04fd7 remove duplicate sync_mark member in AudioRegionView (decl'd in RegionView) 2022-02-19 09:03:36 -07:00
3bfcfe178d triggerbox: some work towards keeping GUI state in sync with "Play Cues"
This still needs some mechanism to request a fast-forward when "Play Cues" is enabled
in a (G)UI thread
2022-02-19 08:53:30 -07:00
a01325c693 triggerbox: NOOP: whitespace cleanup 2022-02-18 18:02:56 -07:00
1e7ca734d6 triggerbox: reapply change in 9abc4642 with more explanatory comments 2022-02-18 18:01:52 -07:00
00185aadcf triggerbox: leave a possibly helpful comment 2022-02-18 12:57:14 -07:00
f5ef5f44a3 triggerbox: include change intended to be in cb815bf8d
This properly splits the condition into "before final beat" and
"after final beat"
2022-02-18 12:57:14 -07:00
66b9bc5c40 triggerbox: alter several DEBUG_TRACE statements 2022-02-18 12:57:14 -07:00
fe76432061 triggerbox: help MIDITriggers find their ends consistently 2022-02-18 12:57:14 -07:00
19f6a6a739 triggerbox: during fast-forward, if there's nothing to do, set_currently_playing to null
if left non-null, the next TriggerBox::run() method will start the transport
rolling.
2022-02-18 12:57:14 -07:00
8a36f9fce8 triggerbox: reset _loop_cnt to zero on shutdown
This helps with preventing _loop_cnt incrementing to unintended values.
2022-02-18 12:57:14 -07:00
0762ef4f35 triggerbox: remove Playout enum from enums registation 2022-02-18 12:57:14 -07:00
401e5a572c triggerbox: clean up comments for Trigger state decls 2022-02-18 12:57:14 -07:00
4b7c0448e4 triggerbox: remove Playout as a possible state and use a separate bool
A trigger can be in a playout state when we decide to change its
state to WaitingToStop (e.g. due to a cue marker). This design
leaves the playout condition "in effect" despite the state changing.
2022-02-18 12:57:14 -07:00
fbbe74a530 triggerbox: revert gain() as a queued UISTate value
It's impractical/impossible to set the gain if you have to wait for a retrigger
2022-02-18 11:15:43 -06:00
c09ffd4fcd triggerbox: consolidate ::start_and_roll_to() across Audio & MIDI triggers
This uses a mild trick to pass both the object and ptr-to-member-function from the child class
to the parent class.

Note: before this commit, both instances of ::start_and_roll_to() were identical.
2022-02-15 16:24:01 -07:00
e75a8ab77c triggerbox: clarify handling of end-of-clip conditions
This doesn't enter Playout state, when the final event matches the predicted
final beat, but also returns the correct number of frames covered
2022-02-15 15:28:01 -07:00
9abc4642ed triggerbox: fix midi timing in the case where a note-off arrives exactly at the end of the clip (amends cbbe5) 2022-02-14 21:30:23 -06:00
5a19a4fb4a tempo ruler: remove unused _name_flag for tempo markers 2022-02-14 21:22:36 -06:00
1ce0641172 trigger_ui: Stop All Cues can be queued just like the Cues can. So color it like a timeline marker(?) 2022-02-14 21:22:36 -06:00
8c41fc7dd0 meter ruler: match look of meter markers to tempo markers 2022-02-14 21:22:36 -06:00
49e792868f cue ruler: potential crash fix 2022-02-14 21:22:36 -06:00
f5142fb19a tempo ruler: increase the size of tempo markers. 6pix is too small a target 2022-02-14 21:22:36 -06:00
daf56ccf0a tempo ruler: do not resize marker (a grabbable object) due to tempo changes 2022-02-14 21:22:36 -06:00
111054812a mini-timeline: yet another tweak to draw Stop Cues nicely 2022-02-14 21:22:36 -06:00
8741c4cc5d triggerbox: NOOP - rename template parameter for *_run<bool> to be more clear about its purpose 2022-02-14 18:13:06 -07:00
cb815bf8dd triggerbox: drop useless computation 2022-02-14 18:09:03 -07:00
cbbe595162 triggerbox: fix end-handling of MIDI triggers (again)
If we reach the last event in a MIDI file, the test to enter Playout
is whether the last event is *before* not at or later to our computed
final beat.
2022-02-14 18:07:54 -07:00
91e7361e08 triggerbox: ensure _currently_playing reflects fast_forward logic
If we decide after fast forwarding that this TriggerBox has no triggers
active at the transport position, we must mark _currently_playing as null,
because otherwise the TB can still start the transport (in error) during
run()
2022-02-14 12:59:24 -07:00
511b09b3d6 triggerbox: avoid double-accounting for buffer offset in MIDI triggers
Because MIDI triggers compute buffer-relative timestamps using
timeline_samples - start_sample, this already takes into account
any offset to the start of the trigger. We still need to use dest_offset
if a non-zero value was passed into ::midi_run(), but we do NOT
want to have it contain the "offset to start of trigger in process
cycle" as well. Instead of trying to special case
::maybe_compute_next_transition(), we just pass a dummy pframes_t
to that method, leaving dest_offset as it was passed into ::midi_run()
2022-02-14 12:56:18 -07:00
374fa48fad triggerbox: consolidate position-as-fraction code
Both trigger types now use a process_index and final_processed_sample value
to compute their current position-as-fraction
2022-02-14 09:53:00 -07:00
John Emmas
5af43793d3 Modify 'ARDOUR::cue_marker_name()' to be accessible outside of libardour 2022-02-14 10:19:47 +00:00
c5d7883538 temporal: add skeleton for Timeline (timepos_t/timecnt_t) tests 2022-02-12 22:25:17 -07:00
baaf332a94 temporal: add skeleton for TempoMap tests 2022-02-12 22:25:17 -07:00
897798ed68 remove cue-behavior toggle from ruler context menu 2022-02-12 21:49:57 -06:00
54d794e242 rough-in global Cue functions (rec-enable and play-enable i.e. cue-ffwd) 2022-02-12 21:46:30 -06:00
bb67041938 public_editor: expose toggle_cue_behavior for access from ArdourUI 2022-02-12 21:46:30 -06:00