2525#include " griiofloatchannelsrc.h"
2626#include " grlog.h"
2727#include " grtopblock.h"
28+ #include " iiocpp/iiocontext.h"
29+
30+ #include < iioutil/iiocpp/iioattribute.h>
31+ #include < iioutil/iiocpp/iiodevice.h>
32+ #include < iioutil/iiocpp/iioresult.h>
33+ #include < iioutil/iiocpp/iiochannel.h>
2834
2935using namespace scopy ::grutil;
3036QString GRIIODeviceSource::findAttribute (QStringList possibleNames, iio_device *dev)
3137{
32-
38+ IIOResult< const iio_attr *> res;
3339 const char *attr = nullptr ;
3440 for (const QString &name : possibleNames) {
35- attr = iio_device_find_attr (dev, name.toStdString ().c_str ());
36- if (attr)
37- break ;
41+ res = IIODevice::find_attr (dev, name.toStdString ().c_str ());
42+ if (res.ok ()) {
43+ attr = IIOAttribute::get_name (res.data ());
44+ }
3845 }
3946 QString attributeName = QString (attr);
4047 return attributeName;
@@ -46,11 +53,14 @@ iio_context *GRIIODeviceSource::ctx() const { return m_ctx; }
4653
4754QString GRIIOChannel::findAttribute (QStringList possibleNames, iio_channel *ch)
4855{
56+ IIOResult<const iio_attr *> attrRes;
4957 const char *attr = nullptr ;
5058 for (const QString &name : possibleNames) {
51- attr = iio_channel_find_attr (ch, name.toStdString ().c_str ());
52- if (attr)
59+ attrRes = IIOChannel::find_attr (ch, name.toStdString ().c_str ());
60+ if (attrRes.ok ()) {
61+ attr = IIOAttribute::get_name (attrRes.data ());
5362 break ;
63+ }
5464 }
5565 QString attributeName = QString (attr);
5666 return attributeName;
@@ -65,7 +75,8 @@ GRIIODeviceSource::GRIIODeviceSource(iio_context *ctx, QString deviceName, QStri
6575 , m_buffersize(buffersize)
6676{
6777
68- m_iioDev = iio_context_find_device (m_ctx, m_deviceName.toStdString ().c_str ());
78+ m_iioDev = IIOContext::find_device (m_ctx, m_deviceName.toStdString ().c_str ())
79+ .expect (QString (" Expected device %1" ).arg (m_deviceName).toStdString ().c_str ());
6980 m_sampleRateAttribute = findAttribute (
7081 {
7182 " sample_rate" ,
@@ -79,8 +90,9 @@ GRIIODeviceSource::GRIIODeviceSource(iio_context *ctx, QString deviceName, QStri
7990void GRIIODeviceSource::addChannelAtIndex (iio_device *iio_dev, QString channelName)
8091{
8192 std::string channel_name = channelName.toStdString ();
82- iio_channel *iio_ch = iio_device_find_channel (iio_dev, channel_name.c_str (), false );
83- int idx = iio_channel_get_index (iio_ch);
93+ iio_channel *iio_ch = IIODevice::find_channel (iio_dev, channel_name.c_str (), false )
94+ .expect (QString (" Expected channel %1" ).arg (channelName).toStdString ().c_str ());
95+ int idx = IIOChannel::get_index (iio_ch);
8496
8597 while (idx < m_channelNames.size () && m_channelNames[idx] != " " &&
8698 QString::fromStdString (m_channelNames[idx]) != channelName) {
@@ -92,7 +104,7 @@ void GRIIODeviceSource::addChannelAtIndex(iio_device *iio_dev, QString channelNa
92104void GRIIODeviceSource::computeChannelNames ()
93105{
94106
95- int max_channels = iio_device_get_channels_count (m_iioDev);
107+ int max_channels = IIODevice::get_channels_count (m_iioDev);
96108
97109 for (int i = 0 ; i < max_channels; i++) {
98110 m_channelNames.push_back (std::string ());
@@ -146,7 +158,12 @@ double GRIIODeviceSource::readSampleRate()
146158 if (!sampleRateAvailable ())
147159 return -1 ;
148160
149- iio_device_attr_read (m_iioDev, m_sampleRateAttribute.toStdString ().c_str (), buffer, 20 );
161+ IIOResult<const iio_attr *> res = IIODevice::find_attr (m_iioDev, m_sampleRateAttribute.toStdString ().c_str ());
162+ if (!res.ok ()) {
163+ return -1 ;
164+ }
165+ const iio_attr *attr = res.data ();
166+ ssize_t ret = IIOAttribute::read_raw (attr, buffer, 20 );
150167 QString str (buffer);
151168 sr = str.toDouble (&ok);
152169 if (ok) {
0 commit comments