fix: insert onto selected track(s) at edit cursor, not a new track

Wire both insert actions to CurrentTrack (InsertMedia base 0). Per selected
track: SetOnlyTrackSelected, reset cursor to snapshot, InsertMedia; then restore
original selection + cursor. No-op when no track selected. Corrected stale
extraflags / new-track / preservePitch comments.
This commit is contained in:
2026-07-23 05:56:25 -04:00
parent 59e3c5907f
commit 2536b4bedb
5 changed files with 142 additions and 66 deletions
+5 -5
View File
@@ -46,15 +46,15 @@ enum class TempoConform {
RatioDouble,// &32: try to match tempo 2x
};
// Options that shape one InsertMedia call. Defaults encode the safe path:
// new track, no conform, pitch preserved.
// Options that shape one InsertMedia call. Defaults encode the intended path:
// current track (user's selection), no conform, pitch preserved.
struct InsertOptions {
InsertTarget target = InsertTarget::NewTrack;
InsertTarget target = InsertTarget::CurrentTrack;
TempoConform conform = TempoConform::None;
// Only meaningful when conform != None. When true, adds &64 ("don't preserve
// Only meaningful when conform != None. When false, adds &64 ("don't preserve
// pitch when matching tempo") so a tempo match also shifts pitch (classic
// varispeed). Default false = preserve pitch across the tempo match. Ignored
// varispeed). Default true = preserve pitch across the tempo match. Ignored
// when conform == None (no tempo bits set, so pitch is moot).
bool preservePitch = true;
};