diff --git a/src/dataformatpanel.cpp b/src/dataformatpanel.cpp --- a/src/dataformatpanel.cpp +++ b/src/dataformatpanel.cpp @@ -31,19 +31,21 @@ DataFormatPanel::DataFormatPanel(QSerialPort* port, ChannelManager* channelMan, + DataRecorder* recorder, QWidget *parent) : QWidget(parent), ui(new Ui::DataFormatPanel), - bsReader(port, channelMan, this), - asciiReader(port, channelMan, this), - framedReader(port, channelMan, this), - demoReader(port, channelMan, this) + bsReader(port, channelMan, recorder, this), + asciiReader(port, channelMan, recorder, this), + framedReader(port, channelMan, recorder, this), + demoReader(port, channelMan, recorder, this) { ui->setupUi(this); serialPort = port; _channelMan = channelMan; paused = false; + demoEnabled = false; // initalize default reader currentReader = &bsReader; @@ -98,6 +100,7 @@ void DataFormatPanel::enableDemo(bool en if (enabled) { demoReader.enable(); + demoReader.recording = currentReader->recording; connect(&demoReader, &DemoReader::samplesPerSecondChanged, this, &DataFormatPanel::samplesPerSecondChanged); } @@ -106,6 +109,19 @@ void DataFormatPanel::enableDemo(bool en demoReader.enable(false); disconnect(&demoReader, 0, this, 0); } + demoEnabled = enabled; +} + +void DataFormatPanel::startRecording() +{ + currentReader->recording = true; + if (demoEnabled) demoReader.recording = true; +} + +void DataFormatPanel::stopRecording() +{ + currentReader->recording = false; + if (demoEnabled) demoReader.recording = false; } void DataFormatPanel::selectReader(AbstractReader* reader) @@ -132,8 +148,8 @@ void DataFormatPanel::selectReader(Abstr emit numOfChannelsChanged(reader->numOfChannels()); } - // pause reader->pause(paused); + reader->recording = currentReader->recording; currentReader = reader; }