Ben Loftis
5f0c7fe3d6
move cue-behavior to session config (gtk part)
2022-02-19 11:49:01 -06:00
Ben Loftis
b506a243a2
move cue-behavior from rc_configuration to per-session config
2022-02-19 11:48:56 -06:00
Paul Davis
dcdfd3ff0f
no need to repeat initialization
2022-02-19 09:03:48 -07:00
Paul Davis
4ae5c04fd7
remove duplicate sync_mark member in AudioRegionView (decl'd in RegionView)
2022-02-19 09:03:36 -07:00
Paul Davis
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
Paul Davis
a01325c693
triggerbox: NOOP: whitespace cleanup
2022-02-18 18:02:56 -07:00
Paul Davis
1e7ca734d6
triggerbox: reapply change in 9abc4642 with more explanatory comments
2022-02-18 18:01:52 -07:00
Paul Davis
00185aadcf
triggerbox: leave a possibly helpful comment
2022-02-18 12:57:14 -07:00
Paul Davis
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
Paul Davis
66b9bc5c40
triggerbox: alter several DEBUG_TRACE statements
2022-02-18 12:57:14 -07:00
Paul Davis
fe76432061
triggerbox: help MIDITriggers find their ends consistently
2022-02-18 12:57:14 -07:00
Paul Davis
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
Paul Davis
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
Paul Davis
0762ef4f35
triggerbox: remove Playout enum from enums registation
2022-02-18 12:57:14 -07:00
Paul Davis
401e5a572c
triggerbox: clean up comments for Trigger state decls
2022-02-18 12:57:14 -07:00
Paul Davis
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
Ben Loftis
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
Paul Davis
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
Paul Davis
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
Ben Loftis
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
Ben Loftis
5a19a4fb4a
tempo ruler: remove unused _name_flag for tempo markers
2022-02-14 21:22:36 -06:00
Ben Loftis
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
Ben Loftis
8c41fc7dd0
meter ruler: match look of meter markers to tempo markers
2022-02-14 21:22:36 -06:00
Ben Loftis
49e792868f
cue ruler: potential crash fix
2022-02-14 21:22:36 -06:00
Ben Loftis
f5142fb19a
tempo ruler: increase the size of tempo markers. 6pix is too small a target
2022-02-14 21:22:36 -06:00
Ben Loftis
daf56ccf0a
tempo ruler: do not resize marker (a grabbable object) due to tempo changes
2022-02-14 21:22:36 -06:00
Ben Loftis
111054812a
mini-timeline: yet another tweak to draw Stop Cues nicely
2022-02-14 21:22:36 -06:00
Paul Davis
8741c4cc5d
triggerbox: NOOP - rename template parameter for *_run<bool> to be more clear about its purpose
2022-02-14 18:13:06 -07:00
Paul Davis
cb815bf8dd
triggerbox: drop useless computation
2022-02-14 18:09:03 -07:00
Paul Davis
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
Paul Davis
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
Paul Davis
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
Paul Davis
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
Paul Davis
c5d7883538
temporal: add skeleton for Timeline (timepos_t/timecnt_t) tests
2022-02-12 22:25:17 -07:00
Paul Davis
baaf332a94
temporal: add skeleton for TempoMap tests
2022-02-12 22:25:17 -07:00
Ben Loftis
897798ed68
remove cue-behavior toggle from ruler context menu
2022-02-12 21:49:57 -06:00
Ben Loftis
54d794e242
rough-in global Cue functions (rec-enable and play-enable i.e. cue-ffwd)
2022-02-12 21:46:30 -06:00
Ben Loftis
bb67041938
public_editor: expose toggle_cue_behavior for access from ArdourUI
2022-02-12 21:46:30 -06:00
Ben Loftis
de9f73c040
cue page: remove the unmarked rec-enable button from the cues column
2022-02-12 21:46:30 -06:00
Ben Loftis
bfd698bef8
mini-timeline: rough-in Stop Cue markers
2022-02-12 21:46:30 -06:00
Paul Davis
14ac8fd36b
skeleton for temporal/BBT testing (empty for now)
2022-02-12 17:51:30 -07:00
Paul Davis
f641a0559f
temporal: missing test source
2022-02-12 15:18:19 -07:00
Paul Davis
04bd9187e4
temporal: add (back) first set of unit tests
...
This just uses the old Evoral BeatTest. Some of the tests needed amending
because temporal uses rint() to convert between float and int, not just
a cast.
2022-02-12 15:12:35 -07:00
Ben Loftis
9cea6b7359
trigger_ui: don't allow Stretch options to be edited on an active clip
2022-02-12 11:14:40 -06:00
Ben Loftis
e41729d10c
triggerbox: remove excess debug printouts
2022-02-12 11:14:12 -06:00
Ben Loftis
8a3b5751fb
triggerbox: initialize follow-count more reliably. this way queues a UIState
2022-02-12 11:13:30 -06:00
Ben Loftis
ad7db33666
triggerbox: remove redundant code; set_segment_tempo takes care of this later
2022-02-12 11:12:33 -06:00
Ben Loftis
563dc9ae21
triggerbox: setup_stretcher must be called for stretch_mode to have any effect
2022-02-12 11:12:08 -06:00
Ben Loftis
d20dfe8f88
clip_picker: fix logic to show MIDI file properties
2022-02-12 09:35:24 -06:00