summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/multimedia/audiooutput/audiooutput.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/examples/multimedia/audiooutput/audiooutput.cpp b/examples/multimedia/audiooutput/audiooutput.cpp
index fdb640dc2..daa7bfdf6 100644
--- a/examples/multimedia/audiooutput/audiooutput.cpp
+++ b/examples/multimedia/audiooutput/audiooutput.cpp
@@ -66,7 +66,8 @@ Generator::Generator(const QAudioFormat &format,
: QIODevice(parent)
, m_pos(0)
{
- generateData(format, durationUs, sampleRate);
+ if (format.isValid())
+ generateData(format, durationUs, sampleRate);
}
Generator::~Generator()
@@ -133,11 +134,13 @@ void Generator::generateData(const QAudioFormat &format, qint64 durationUs, int
qint64 Generator::readData(char *data, qint64 len)
{
qint64 total = 0;
- while (len - total > 0) {
- const qint64 chunk = qMin((m_buffer.size() - m_pos), len - total);
- memcpy(data + total, m_buffer.constData() + m_pos, chunk);
- m_pos = (m_pos + chunk) % m_buffer.size();
- total += chunk;
+ if (!m_buffer.isEmpty()) {
+ while (len - total > 0) {
+ const qint64 chunk = qMin((m_buffer.size() - m_pos), len - total);
+ memcpy(data + total, m_buffer.constData() + m_pos, chunk);
+ m_pos = (m_pos + chunk) % m_buffer.size();
+ total += chunk;
+ }
}
return total;
}