Ref T731, added namespace for utility functions

This commit is contained in:
Klaus Basan
2019-09-29 00:47:47 +02:00
committed by Mat Sutcliffe
parent 9a4fe0ea48
commit c3684a2f8c
3 changed files with 66 additions and 39 deletions

View File

@@ -18,6 +18,7 @@
#include <cmath> #include <cmath>
using namespace BlackMisc; using namespace BlackMisc;
using namespace BlackSound;
namespace BlackCore namespace BlackCore
{ {

View File

@@ -1,7 +1,17 @@
/* Copyright (C) 2019
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated,
* or distributed except according to the terms contained in the LICENSE file.
*/
#include "audioutilities.h" #include "audioutilities.h"
QVector<qint16> convertBytesTo16BitPCM(const QByteArray input) namespace BlackSound
{ {
QVector<qint16> convertBytesTo16BitPCM(const QByteArray input)
{
int inputSamples = input.size() / 2; // 16 bit input, so 2 bytes per sample int inputSamples = input.size() / 2; // 16 bit input, so 2 bytes per sample
QVector<qint16> output; QVector<qint16> output;
output.fill(0, inputSamples); output.fill(0, inputSamples);
@@ -11,17 +21,17 @@ QVector<qint16> convertBytesTo16BitPCM(const QByteArray input)
output[n] = *reinterpret_cast<const qint16 *>(input.data() + n * 2); output[n] = *reinterpret_cast<const qint16 *>(input.data() + n * 2);
} }
return output; return output;
} }
QVector<qint16> convertFloatBytesTo16BitPCM(const QByteArray input) QVector<qint16> convertFloatBytesTo16BitPCM(const QByteArray input)
{ {
Q_UNUSED(input); Q_UNUSED(input)
qFatal("Not implemented"); qFatal("Not implemented");
return {}; return {};
} }
QVector<qint16> convertFromMonoToStereo(const QVector<qint16> &mono) QVector<qint16> convertFromMonoToStereo(const QVector<qint16> &mono)
{ {
QVector<qint16> stereo; QVector<qint16> stereo;
stereo.reserve(mono.size() * 2); stereo.reserve(mono.size() * 2);
for (qint16 sample : mono) for (qint16 sample : mono)
@@ -30,10 +40,10 @@ QVector<qint16> convertFromMonoToStereo(const QVector<qint16> &mono)
stereo << sample; stereo << sample;
} }
return stereo; return stereo;
} }
QVector<qint16> convertFromStereoToMono(const QVector<qint16> &stereo) QVector<qint16> convertFromStereoToMono(const QVector<qint16> &stereo)
{ {
QVector<qint16> mono; QVector<qint16> mono;
mono.reserve(stereo.size() / 2); mono.reserve(stereo.size() / 2);
for (int i = 0; i < stereo.size(); i = i + 2) for (int i = 0; i < stereo.size(); i = i + 2)
@@ -41,4 +51,5 @@ QVector<qint16> convertFromStereoToMono(const QVector<qint16> &stereo)
mono.append(stereo.at(i)); mono.append(stereo.at(i));
} }
return mono; return mono;
} }
} // ns

View File

@@ -1,13 +1,28 @@
#ifndef AUDIOUTILITIES_H /* Copyright (C) 2019
#define AUDIOUTILITIES_H * swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution. No part of swift project, including this file, may be copied, modified, propagated,
* or distributed except according to the terms contained in the LICENSE file.
*/
//! \file
#ifndef BLACKSOUND_AUDIOUTILITIES_H
#define BLACKSOUND_AUDIOUTILITIES_H
#include "blacksound/blacksoundexport.h" #include "blacksound/blacksoundexport.h"
#include <QByteArray> #include <QByteArray>
#include <QVector> #include <QVector>
BLACKSOUND_EXPORT QVector<qint16> convertBytesTo16BitPCM(const QByteArray input); namespace BlackSound
BLACKSOUND_EXPORT QVector<qint16> convertFloatBytesTo16BitPCM(const QByteArray input); {
BLACKSOUND_EXPORT QVector<qint16> convertFromMonoToStereo(const QVector<qint16> &mono); //! Conversion functions @{
BLACKSOUND_EXPORT QVector<qint16> convertFromStereoToMono(const QVector<qint16> &stereo); BLACKSOUND_EXPORT QVector<qint16> convertBytesTo16BitPCM(const QByteArray input);
BLACKSOUND_EXPORT QVector<qint16> convertFloatBytesTo16BitPCM(const QByteArray input);
BLACKSOUND_EXPORT QVector<qint16> convertFromMonoToStereo(const QVector<qint16> &mono);
BLACKSOUND_EXPORT QVector<qint16> convertFromStereoToMono(const QVector<qint16> &stereo);
//! @}
} // ns
#endif // guard #endif // guard