From f4b22b839a6de472030f29c68c01b5adb3dad77f Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sun, 13 Oct 2019 15:25:05 +0200 Subject: [PATCH] [AFV] Ref T730, utility functions to log QAudioFromat --- src/blacksound/audioutilities.cpp | 45 ++++++++++++++++++++++++++++++- src/blacksound/audioutilities.h | 9 ++++--- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/src/blacksound/audioutilities.cpp b/src/blacksound/audioutilities.cpp index ec42a575f..e503fed09 100644 --- a/src/blacksound/audioutilities.cpp +++ b/src/blacksound/audioutilities.cpp @@ -7,6 +7,7 @@ */ #include "audioutilities.h" +#include #include #include @@ -30,7 +31,7 @@ namespace BlackSound QVector convertBytesTo16BitPCM(const QByteArray input) { - int inputSamples = input.size() / 2; // 16 bit input, so 2 bytes per sample + const int inputSamples = input.size() / 2; // 16 bit input, so 2 bytes per sample QVector output; output.fill(0, inputSamples); for (int n = 0; n < inputSamples; n++) @@ -184,4 +185,46 @@ namespace BlackSound return usedDevice; } + QString toQString(const QAudioFormat &format) + { + return QStringLiteral("Sample rate: %1 channels: %2 sample size: %3 codec: %4 order: %5 type: %6 bytes/frame: %7") + .arg(format.sampleRate()) + .arg(format.channelCount()) + .arg(format.sampleSize()) + .arg(format.codec()) + .arg(toQString(format.byteOrder())) + .arg(toQString(format.sampleType())) + .arg(format.bytesPerFrame()); + } + + const QString &toQString(QAudioFormat::Endian s) + { + static const QString l("little"); + static const QString b("big"); + switch (s) + { + case QAudioFormat::BigEndian: return b; + case QAudioFormat::LittleEndian: return l; + default: break; + } + static const QString u("??"); + return u; + } + + const QString &toQString(QAudioFormat::SampleType e) + { + static const QString s("signed int"); + static const QString u("unsigned int"); + static const QString f("float"); + switch (e) + { + case QAudioFormat::SignedInt: return s; + case QAudioFormat::UnSignedInt: return u; + case QAudioFormat::Float: return f; + case QAudioFormat::Unknown: + default: break; + } + static const QString unknown("unknown"); + return unknown; + } } // ns diff --git a/src/blacksound/audioutilities.h b/src/blacksound/audioutilities.h index e0dc4c36d..c21fa6b81 100644 --- a/src/blacksound/audioutilities.h +++ b/src/blacksound/audioutilities.h @@ -21,16 +21,19 @@ namespace BlackSound { //! Conversion functions @{ - BLACKSOUND_EXPORT QVector convertBytesTo32BitFloatPCM(const QByteArray input); + BLACKSOUND_EXPORT QVector convertBytesTo32BitFloatPCM(const QByteArray input); BLACKSOUND_EXPORT QVector convertBytesTo16BitPCM(const QByteArray input); BLACKSOUND_EXPORT QVector convertFloatBytesTo16BitPCM(const QByteArray input); - BLACKSOUND_EXPORT QVector convertFromMonoToStereo(const QVector &mono); + BLACKSOUND_EXPORT QVector convertFromMonoToStereo(const QVector &mono); BLACKSOUND_EXPORT QVector convertFromStereoToMono(const QVector &stereo); - BLACKSOUND_EXPORT QVector convertFromShortToFloat(const QVector &input); + BLACKSOUND_EXPORT QVector convertFromShortToFloat(const QVector &input); BLACKSOUND_EXPORT QAudioDeviceInfo getLowestLatencyDevice(const BlackMisc::Audio::CAudioDeviceInfo &device, QAudioFormat &format); BLACKSOUND_EXPORT QAudioDeviceInfo getHighestCompatibleOutputDevice(const BlackMisc::Audio::CAudioDeviceInfo &device, QAudioFormat &format); + BLACKSOUND_EXPORT QString toQString(const QAudioFormat &format); + BLACKSOUND_EXPORT const QString &toQString(QAudioFormat::Endian e); + BLACKSOUND_EXPORT const QString &toQString(QAudioFormat::SampleType s); //! @} } // ns