From fcc00c4d9d3c4e00a3e15bff666e0ceedfa9d0ea Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Mon, 23 Nov 2015 19:07:59 +0100 Subject: [PATCH 1/1] LogicSignal: Put all trigger matches into a single trigger stage. Previously each trigger match was assigned its own trigger stage, which is problematic because devices may not support more than one stage. Ideally we would want the user to decide which matches go into which stages, but that's a long way off and this change makes things work just a little bit better for more devices. Fixes bug #683. --- pv/view/logicsignal.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pv/view/logicsignal.cpp b/pv/view/logicsignal.cpp index 717360b8..c23f0922 100644 --- a/pv/view/logicsignal.cpp +++ b/pv/view/logicsignal.cpp @@ -447,8 +447,15 @@ void LogicSignal::modify_trigger() } } - if (trigger_match_) - new_trigger->add_stage()->add_match(channel_, trigger_match_); + if (trigger_match_) { + // Until we can let the user decide how to group trigger matches + // into stages, put all of the matches into a single stage -- + // most devices only support a single trigger stage. + if (new_trigger->stages().empty()) + new_trigger->add_stage(); + + new_trigger->stages().back()->add_match(channel_, trigger_match_); + } session_.session()->set_trigger( new_trigger->stages().empty() ? nullptr : new_trigger); -- 2.30.2