##// END OF EJS Templates
Audio example now takes every other value from mic input
Marek Rosa -
r2159:5fd29ccd7e15
parent child
Show More
@@ -23,11 +23,12 Widget::Widget(QWidget *parent)
23 m_series = new QLineSeries;
23 m_series = new QLineSeries;
24 m_chart->addSeries(m_series);
24 m_chart->addSeries(m_series);
25 QValueAxis *axisX = new QValueAxis;
25 QValueAxis *axisX = new QValueAxis;
26 axisX->setRange(0, 8000);
26 axisX->setRange(0, 4000);
27 QValueAxis *axisY = new QValueAxis;
27 QValueAxis *axisY = new QValueAxis;
28 axisY->setRange(0, 256);
28 axisY->setRange(0, 256);
29 m_chart->setAxisX(axisX, m_series);
29 m_chart->setAxisX(axisX, m_series);
30 m_chart->setAxisY(axisY, m_series);
30 m_chart->setAxisY(axisY, m_series);
31 m_chart->legend()->hide();
31 m_chart->setTitle("Data from microphone");
32 m_chart->setTitle("Data from microphone");
32
33
33 QVBoxLayout *mainLayout = new QVBoxLayout;
34 QVBoxLayout *mainLayout = new QVBoxLayout;
@@ -48,7 +49,6 Widget::Widget(QWidget *parent)
48 m_device = new XYSeriesIODevice(m_series, this);
49 m_device = new XYSeriesIODevice(m_series, this);
49 m_device->open(QIODevice::WriteOnly);
50 m_device->open(QIODevice::WriteOnly);
50
51
51 m_audioInput->setBufferSize(10);
52 m_audioInput->start(m_device);
52 m_audioInput->start(m_device);
53 }
53 }
54
54
@@ -16,20 +16,20 qint64 XYSeriesIODevice::readData(char * data, qint64 maxSize)
16
16
17 qint64 XYSeriesIODevice::writeData(const char * data, qint64 maxSize)
17 qint64 XYSeriesIODevice::writeData(const char * data, qint64 maxSize)
18 {
18 {
19 qint64 range = 8000;
19 qint64 range = 4000;
20 QList<QPointF> oldPoints = m_series->points();
20 QList<QPointF> oldPoints = m_series->points();
21 QList<QPointF> points;
21 QList<QPointF> points;
22
22
23 if (oldPoints.count() < range) {
23 if (oldPoints.count() < range) {
24 points = m_series->points();
24 points = m_series->points();
25 } else {
25 } else {
26 for (int i = maxSize; i < oldPoints.count(); i++)
26 for (int i = maxSize/2; i < oldPoints.count(); i++)
27 points.append(QPointF(i - maxSize, oldPoints.at(i).y()));
27 points.append(QPointF(i - maxSize/2, oldPoints.at(i).y()));
28 }
28 }
29
29
30 qint64 size = points.count();
30 qint64 size = points.count();
31 for (int k = 0; k < maxSize; k++)
31 for (int k = 0; k < maxSize/2; k++)
32 points.append(QPointF(k + size, (quint8)data[k]));
32 points.append(QPointF(k + size, (quint8)data[2 * k]));
33
33
34 m_series->replace(points);
34 m_series->replace(points);
35 return maxSize;
35 return maxSize;
General Comments 0
You need to be logged in to leave comments. Login now