# HG changeset patch # User Hasan Yavuz ÖZDERYA # Date 2018-04-19 17:28:57 # Node ID 8a491cad75a749c96053fde22634791e571d3d46 # Parent 0d10ab7043e57c71a70ed7d128d5962d7507b01a reworked recordpanel for stream diff --git a/src/recordpanel.cpp b/src/recordpanel.cpp --- a/src/recordpanel.cpp +++ b/src/recordpanel.cpp @@ -1,5 +1,5 @@ /* - Copyright © 2017 Hasan Yavuz Özderya + Copyright © 2018 Hasan Yavuz Özderya This file is part of serialplot. @@ -29,15 +29,15 @@ #include "ui_recordpanel.h" #include "setting_defines.h" -RecordPanel::RecordPanel(DataRecorder* recorder, ChannelManager* channelMan, QWidget *parent) : +RecordPanel::RecordPanel(Stream* stream, QWidget *parent) : QWidget(parent), ui(new Ui::RecordPanel), recordToolBar(tr("Record Toolbar")), - recordAction(QIcon::fromTheme("media-record"), tr("Record"), this) + recordAction(QIcon::fromTheme("media-record"), tr("Record"), this), + recorder(this) { overwriteSelected = false; - _recorder = recorder; - _channelMan = channelMan; + _stream = stream; ui->setupUi(this); @@ -58,13 +58,13 @@ RecordPanel::RecordPanel(DataRecorder* r connect(ui->cbDisableBuffering, &QCheckBox::toggled, [this](bool enabled) { - _recorder->disableBuffering = enabled; + recorder.disableBuffering = enabled; }); connect(ui->cbWindowsLE, &QCheckBox::toggled, [this](bool enabled) { - _recorder->windowsLE = enabled; + recorder.windowsLE = enabled; }); connect(&recordAction, &QAction::toggled, ui->cbWindowsLE, &QWidget::setDisabled); @@ -231,16 +231,17 @@ void RecordPanel::startRecording(void) QStringList channelNames; if (ui->cbHeader->isChecked()) { - channelNames = _channelMan->infoModel()->channelNames(); + channelNames = _stream->infoModel()->channelNames(); } - _recorder->startRecording(selectedFile, getSeparator(), channelNames); - emit recordStarted(); + if (recorder.startRecording(selectedFile, getSeparator(), channelNames)) + { + stream->connectFollower(&recorder); + } } void RecordPanel::stopRecording(void) { - emit recordStopped(); - _recorder->stopRecording(); + recorder.stopRecording(); } void RecordPanel::onPortClose() diff --git a/src/recordpanel.h b/src/recordpanel.h --- a/src/recordpanel.h +++ b/src/recordpanel.h @@ -1,5 +1,5 @@ /* - Copyright © 2017 Hasan Yavuz Özderya + Copyright © 2018 Hasan Yavuz Özderya This file is part of serialplot. @@ -26,7 +26,7 @@ #include #include "datarecorder.h" -#include "channelmanager.h" +#include "stream.h" namespace Ui { class RecordPanel; @@ -37,8 +37,7 @@ class RecordPanel : public QWidget Q_OBJECT public: - explicit RecordPanel(DataRecorder* recorder, ChannelManager* channelMan, - QWidget* parent = 0); + explicit RecordPanel(Stream* stream, QWidget* parent = 0); ~RecordPanel(); QToolBar* toolbar(); @@ -65,8 +64,8 @@ private: QAction recordAction; QString selectedFile; bool overwriteSelected; - DataRecorder* _recorder; - ChannelManager* _channelMan; + DataRecorder recorder; + Stream* _stream; /** * @brief Increments the file name.