[AFV] Handle stereo in- and output devices

This commit is contained in:
Roland Rossgotterer
2019-09-25 21:37:48 +02:00
committed by Mat Sutcliffe
parent a06205efbd
commit 9f497c1b60
5 changed files with 52 additions and 24 deletions

View File

@@ -8,7 +8,7 @@ QVector<qint16> convertBytesTo16BitPCM(const QByteArray input)
for (int n = 0; n < inputSamples; n++)
{
output[n] = *reinterpret_cast<const qint16*>(input.data() + n * 2);
output[n] = *reinterpret_cast<const qint16 *>(input.data() + n * 2);
}
return output;
}
@@ -19,3 +19,26 @@ QVector<qint16> convertFloatBytesTo16BitPCM(const QByteArray input)
qFatal("Not implemented");
return {};
}
QVector<qint16> convertFromMonoToStereo(const QVector<qint16> &mono)
{
QVector<qint16> stereo;
stereo.reserve(mono.size() * 2);
for (qint16 sample : mono)
{
stereo << sample;
stereo << sample;
}
return stereo;
}
QVector<qint16> convertFromStereoToMono(const QVector<qint16> &stereo)
{
QVector<qint16> mono;
mono.reserve(stereo.size() / 2);
for (int i = 0; i < stereo.size(); i = i + 2)
{
mono.append(stereo.at(i));
}
return mono;
}

View File

@@ -7,5 +7,7 @@
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);
#endif // guard