+ // Enqueue the remaining logic channels in a group
+ vector< shared_ptr<Channel> > logic_channels;
+ copy_if(channels.begin(), channels.end(), back_inserter(logic_channels),
+ [](const shared_ptr<Channel>& c) {
+ return c->type() == sigrok::ChannelType::LOGIC; });
+ const vector< shared_ptr<Trace> > non_grouped_logic_signals =
+ extract_new_traces_for_channels(logic_channels,
+ signal_map, add_traces);
+ const shared_ptr<TraceGroup> non_grouped_trace_group(
+ make_shared<TraceGroup>());
+ for (shared_ptr<Trace> trace : non_grouped_logic_signals)
+ non_grouped_trace_group->add_child_item(trace);
+ new_top_level_items.push_back(non_grouped_trace_group);
+