Skip to content

Commit

Permalink
iio-widgets/DataStrategyInterface: Add signal for aboutToWrite
Browse files Browse the repository at this point in the history
The aboutToWrite signal from DataStrategyInterface will be emitted before any write operation and will contain the old data (aka the data from before the write op) and the new data that will be written

Signed-off-by: Andrei-Fabian-Pop <[email protected]>
  • Loading branch information
Andrei-Fabian-Pop committed Apr 9, 2024
1 parent 592b3e3 commit 715abce
Show file tree
Hide file tree
Showing 13 changed files with 19 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public Q_SLOTS:

Q_SIGNALS:
void sendData(QString data, QString dataOptions) override;
void aboutToWrite(QString oldData, QString newData) override;
void emitStatus(int status) override;

private:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public Q_SLOTS:

Q_SIGNALS:
void sendData(QString data, QString dataOptions) override;
void aboutToWrite(QString oldData, QString newData) override;
void emitStatus(int status) override;

private Q_SLOTS:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public Q_SLOTS:

Q_SIGNALS:
void sendData(QString data, QString dataOptions) override;
void aboutToWrite(QString oldData, QString newData) override;
void emitStatus(int status) override;

private Q_SLOTS:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public Q_SLOTS:

Q_SIGNALS:
void sendData(QString data, QString dataOptions) override;
void aboutToWrite(QString oldData, QString newData) override;
void emitStatus(int status) override;

private:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,13 @@ public Q_SLOTS:
* */
virtual void sendData(QString data, QString dataOptions) = 0;

/**
* @brief This signal is emitted before a write operation
* @param oldData String containing the data what is present before the write
* @param newData String containing the data that will be written
*/
virtual void aboutToWrite(QString oldData, QString newData) = 0;

/**
* @brief Emits the status of the operations (e.g. error code)
* */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public Q_SLOTS:

Q_SIGNALS:
void sendData(QString data, QString dataOptions) override;
void aboutToWrite(QString oldData, QString newData) override;
void emitStatus(int status) override;

private:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public Q_SLOTS:

Q_SIGNALS:
void sendData(QString data, QString dataOptions) override;
void aboutToWrite(QString oldData, QString newData) override;
void emitStatus(int status) override;

private:
Expand Down
1 change: 1 addition & 0 deletions iio-widgets/src/datastrategy/channelattrdatastrategy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ void ChannelAttrDataStrategy::save(QString data)
return;
}

Q_EMIT aboutToWrite(m_data, data);
ssize_t res = iio_channel_attr_write(m_recipe.channel, m_recipe.data.toStdString().c_str(),
data.toStdString().c_str());
if(res < 0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ void CmdQChannelAttrDataStrategy::save(QString data)
return;
}

Q_EMIT aboutToWrite(m_dataRead, data);
Command *writeCommand = new IioChannelAttributeWrite(m_recipe.channel, m_recipe.data.toStdString().c_str(),
data.toStdString().c_str(), nullptr);
QObject::connect(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ void CmdQDeviceAttrDataStrategy::save(QString data)
return;
}

Q_EMIT aboutToWrite(m_dataRead, data);
Command *writeCommand = new IioDeviceAttributeWrite(m_recipe.device, m_recipe.data.toStdString().c_str(),
data.toStdString().c_str(), nullptr);
QObject::connect(
Expand Down
2 changes: 1 addition & 1 deletion iio-widgets/src/datastrategy/contextattrdatastrategy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ QString ContextAttrDataStrategy::optionalData() { return m_optionalData; }

void ContextAttrDataStrategy::save(QString data)
{
qDebug(CAT_CONTEXT_ATTR_DATA_STRATEGY) << "ContextAttrDataStrategy::save called, but the attr is read only";
qInfo(CAT_CONTEXT_ATTR_DATA_STRATEGY) << "ContextAttrDataStrategy::save called, but the attr is read only";
requestData();
}

Expand Down
1 change: 1 addition & 0 deletions iio-widgets/src/datastrategy/deviceattrdatastrategy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ void DeviceAttrDataStrategy::save(QString data)
return;
}

Q_EMIT aboutToWrite(m_data, data);
ssize_t res =
iio_device_attr_write(m_recipe.device, m_recipe.data.toStdString().c_str(), data.toStdString().c_str());
if(res < 0) {
Expand Down
1 change: 1 addition & 0 deletions iio-widgets/src/datastrategy/triggerdatastrategy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ void TriggerDataStrategy::save(QString data)
qWarning(CAT_TRIGGER_DATA_STRATEGY) << "Invalid arguments, no trigger with name" << data << "was found";
}

Q_EMIT aboutToWrite(m_data, data);
int res;
if(data == "None") {
res = iio_device_set_trigger(m_recipe.device, nullptr);
Expand Down

0 comments on commit 715abce

Please sign in to comment.