Fixed triggering mode change when acquiring

This commit is contained in:
Martino Ferrari committed 2026-10-01 17:54:17 +02:00
1 parent 3d4085898e
commit 0d741c401b
10 files changed
+504 -106

No files matched your search

+6 -4
View File
@@ -98,11 +98,13 @@ ExportTable collect_export(ScopeModel& model, RowSet& rows) {
: std::string("ch") + std::to_string(c);
};
// What the rows bind to is what gets exported, which is the same branch `RowSet::bind()`
// takes: the frozen event in trigger mode, the live ring otherwise. Reading the ring
// while an event is on screen would export data the user cannot see.
// What the rows bind to is what gets exported, so the split is the same `DisplayMode`
// `RowSet::bind()` switches on: the frozen event only while one is held, the live ring
// otherwise -- including mid-capture, where the rows follow the live ring too. Reading
// the ring while an event is on screen would export data the user cannot see, and
// reading the stale snapshot mid-capture would export the *previous* event.
std::shared_ptr<const EventSnapshot> snap = model.event();
if (model.trigger_enabled() && snap != nullptr) {
if (model.display_mode() == DisplayMode::Held && snap != nullptr) {
// The snapshot is immutable and already index-aligned, so the visible window is two
// binary searches over its stamps and the same index range for every channel.
const std::vector<f32>& st = snap->stamps;