- // TODO Won't work for multiple segments
- rows_.emplace_back(map<const decode::Row, decode::RowData>());
- current_rows_ = &(rows_.back());
+ // Create logic mux segment if we're recreating the muxed data
+ if (logic_mux_data_invalid_) {
+ const double samplerate =
+ (current_segment_) ? current_segment_->samplerate : 0;
+
+ logic_mux_segment_ = make_shared<LogicSegment>(*logic_mux_data_,
+ logic_unit_size_, samplerate);
+ logic_mux_data_->push_segment(logic_mux_segment_);
+ }
+
+ // Create annotation segment
+ segments_.emplace_back(DecodeSegment());
+ current_segment_ = &(segments_.back());
+
+ // TODO Currently we assume there's only one sample rate
+ current_segment_->samplerate = segments_.front().samplerate;