using std::unique_lock;
#endif
using std::unique_ptr;
-using std::unordered_set;
using std::vector;
using sigrok::Analog;
int view_id = 0;
i = 0;
- for (const shared_ptr<views::ViewBase> vb : views_) {
+ for (const shared_ptr<views::ViewBase>& vb : views_) {
shared_ptr<views::trace::View> tv = dynamic_pointer_cast<views::trace::View>(vb);
if (tv) {
for (const shared_ptr<views::trace::TimeItem>& time_item : tv->time_items()) {
update_signals();
// Add all other signals
- unordered_set< shared_ptr<data::SignalBase> > view_signalbases = view->signalbases();
+ vector< shared_ptr<data::SignalBase> > view_signalbases = view->signalbases();
for (const shared_ptr<data::SignalBase>& signalbase : signalbases_) {
const int sb_exists = count_if(
void Session::deregister_view(shared_ptr<views::ViewBase> view)
{
-
- std::remove_if(views_.begin(), views_.end(), [&](shared_ptr<views::ViewBase> v) { return v == view; });
+ views_.erase(std::remove_if(views_.begin(), views_.end(),
+ [&](shared_ptr<views::ViewBase> v) { return v == view; }),
+ views_.end());
if (views_.empty()) {
main_view_.reset();
return result;
}
-const unordered_set< shared_ptr<data::SignalBase> > Session::signalbases() const
+const vector< shared_ptr<data::SignalBase> > Session::signalbases() const
{
return signalbases_;
}
// Create the decode signal
signal = make_shared<data::DecodeSignal>(*this);
- signalbases_.insert(signal);
+ signalbases_.push_back(signal);
// Add the decode signal to all views
for (shared_ptr<views::ViewBase>& view : views_)
void Session::remove_decode_signal(shared_ptr<data::DecodeSignal> signal)
{
- signalbases_.erase(signal);
+ signalbases_.erase(std::remove_if(signalbases_.begin(), signalbases_.end(),
+ [&](shared_ptr<data::SignalBase> s) { return s == signal; }),
+ signalbases_.end());
for (shared_ptr<views::ViewBase>& view : views_)
view->remove_decode_signal(signal);
qobject_cast<views::trace::View*>(viewbase.get());
if (trace_view) {
- unordered_set< shared_ptr<Signal> > prev_sigs(trace_view->signals());
+ vector< shared_ptr<Signal> > prev_sigs(trace_view->signals());
trace_view->clear_signals();
for (auto channel : sr_dev->channels()) {
if (!signalbase) {
signalbase = make_shared<data::SignalBase>(channel,
data::SignalBase::LogicChannel);
- signalbases_.insert(signalbase);
+ signalbases_.push_back(signalbase);
all_signal_data_.insert(logic_data_);
signalbase->set_data(logic_data_);
if (!signalbase) {
signalbase = make_shared<data::SignalBase>(channel,
data::SignalBase::AnalogChannel);
- signalbases_.insert(signalbase);
+ signalbases_.push_back(signalbase);
shared_ptr<data::Analog> data(new data::Analog());
all_signal_data_.insert(data);