summaryrefslogtreecommitdiffstats
path: root/examples/multimedia/spectrum/app/wavfile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/multimedia/spectrum/app/wavfile.cpp')
-rw-r--r--examples/multimedia/spectrum/app/wavfile.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/examples/multimedia/spectrum/app/wavfile.cpp b/examples/multimedia/spectrum/app/wavfile.cpp
index bd545d701..609ec94f0 100644
--- a/examples/multimedia/spectrum/app/wavfile.cpp
+++ b/examples/multimedia/spectrum/app/wavfile.cpp
@@ -138,16 +138,28 @@ bool WavFile::readHeader()
return false;
// Establish format
- if (memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0)
- m_fileFormat.setByteOrder(QAudioFormat::LittleEndian);
- else
- m_fileFormat.setByteOrder(QAudioFormat::BigEndian);
+ // ### do byte swapping for RIFX
+// if (memcmp(&header.riff.descriptor.id, "RIFF", 4) == 0)
+// m_fileFormat.setByteOrder(QAudioFormat::LittleEndian);
+// else
+// m_fileFormat.setByteOrder(QAudioFormat::BigEndian);
- int bps = qFromLittleEndian<quint16>(header.wave.bitsPerSample);
m_fileFormat.setChannelCount(qFromLittleEndian<quint16>(header.wave.numChannels));
m_fileFormat.setSampleRate(qFromLittleEndian<quint32>(header.wave.sampleRate));
- m_fileFormat.setSampleSize(qFromLittleEndian<quint16>(header.wave.bitsPerSample));
- m_fileFormat.setSampleType(bps == 8 ? QAudioFormat::UnSignedInt : QAudioFormat::SignedInt);
+ switch(header.wave.bitsPerSample) {
+ case 8:
+ m_fileFormat.setSampleFormat(QAudioFormat::UInt8);
+ break;
+ case 16:
+ m_fileFormat.setSampleFormat(QAudioFormat::Int16);
+ break;
+ case 24:
+ m_fileFormat.setSampleFormat(QAudioFormat::Unknown);
+ break;
+ case 32:
+ m_fileFormat.setSampleFormat(QAudioFormat::Int32);
+ break;
+ }
} else {
result = false;
}