43#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
47 m_finished.storeRelaxed(0);
48 m_index.storeRelaxed(index);
50 m_read_interval = 256;
52 m_read_timer.setInterval(m_read_interval);
60 virtual void pause(
void)
65 virtual void play(
void)
67#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
70 m_finished.storeRelaxed(0);
75 virtual void rewind(
void)
79 virtual void stop(
void)
81#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
84 m_finished.storeRelaxed(1);
89 void set_address(
const QString &address)
91 QWriteLocker locker(&m_address_mutex);
96 void set_data_extraction_script(
const QString &program)
98 m_program = program.trimmed();
101 void set_read_interval(
const int interval)
103 m_read_interval = qMax(1, interval);
104 m_read_timer.setInterval(m_read_interval);
107 void set_read_rate(
const QString &rate)
109 auto list(rate.split(
'/'));
111 set_read_interval(list.value(1).trimmed().toInt());
112 set_read_size(list.value(0).trimmed().toInt());
115 void set_read_size(
const int size)
117#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
118 m_read_size.store(qMax(1, size));
120 m_read_size.storeRelaxed(qMax(1, size));
124 void set_type(
const QString &type)
126 m_type = type.trimmed();
130 QAtomicInteger<short> m_finished;
131 QAtomicInteger<int> m_index;
132 QAtomicInteger<int> m_read_size;
133 QReadWriteLock m_address_mutex;
141 void data_ready(
const QVector<double> &vector,
const int index);