From 5b25b889a024e01b85270fbb28e063927bbb3f5f Mon Sep 17 00:00:00 2001 From: mbellew Date: Wed, 16 Jan 2019 20:07:30 +0000 Subject: [PATCH] handle 2ch floating point PCM data (#150) separate stereo channels when using PA_SAMPLE_FLOAT32LE --- src/libprojectM/PCM.cpp | 25 ++++++++++++++++++++++++ src/libprojectM/PCM.hpp | 1 + src/projectM-qt/qprojectm_mainwindow.cpp | 2 +- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/libprojectM/PCM.cpp b/src/libprojectM/PCM.cpp index fbe63619b..c88be2cc0 100755 --- a/src/libprojectM/PCM.cpp +++ b/src/libprojectM/PCM.cpp @@ -138,6 +138,31 @@ void PCM::addPCMfloat(const float *PCMdata, int samples) getPCM(vdataR,512,1,1,0,0); } + +void PCM::addPCMfloat_2ch(const float *PCMdata, int samples) +{ + int i,j; + + for(i=0;imaxsamples) + newsamples=maxsamples; + numsamples = getPCMnew(pcmdataR,1,0,waveSmoothing,0,0); + getPCMnew(pcmdataL,0,0,waveSmoothing,0,1); + getPCM(vdataL,512,0,1,0,0); + getPCM(vdataR,512,1,1,0,0); +} + + void PCM::addPCM16Data(const short* pcm_data, short samples) { int i, j; diff --git a/src/libprojectM/PCM.hpp b/src/libprojectM/PCM.hpp index 705ddef39..c8f18e7f3 100755 --- a/src/libprojectM/PCM.hpp +++ b/src/libprojectM/PCM.hpp @@ -59,6 +59,7 @@ public: PCM(); ~PCM(); void addPCMfloat(const float *PCMdata, int samples); + void addPCMfloat_2ch(const float *PCMdata, int samples); void addPCM16(short [2][512]); void addPCM16Data(const short* pcm_data, short samples); void addPCM8( unsigned char [2][1024]); diff --git a/src/projectM-qt/qprojectm_mainwindow.cpp b/src/projectM-qt/qprojectm_mainwindow.cpp index 407776164..142159bb1 100644 --- a/src/projectM-qt/qprojectm_mainwindow.cpp +++ b/src/projectM-qt/qprojectm_mainwindow.cpp @@ -242,7 +242,7 @@ projectM * QProjectM_MainWindow::GetProjectM() void QProjectM_MainWindow::addPCM(float * buffer, unsigned int bufferSize) { - qprojectM()->pcm()->addPCMfloat(buffer, bufferSize); + qprojectM()->pcm()->addPCMfloat_2ch(buffer, bufferSize); } void QProjectM_MainWindow::updatePlaylistSelection ( bool hardCut, unsigned int index )