Program Listing for File manualAudioTest.cpp
↰ Return to documentation for file (include\tests\manualAudioTest.cpp
)
#include "ManualMix.hpp"
#include "EFFECTS.hpp"
#include "miniaudio.h"
auto idx = 0;
FXControlPannel *fxcp;
std::vector<float> Lvec(480);
std::vector<float> Rvec(480);
void
idle_callback(ma_device *pDevice,
void *pOutput,
const void *pInput,
ma_uint32 frameCount)
{
// auto dvec = reinterpret_cast<std::vector<float>*>(pDevice->pUserData);
auto dP = static_cast<ma_decoder *>(pDevice->pUserData); // dvec->data();
ma_decoder_read_pcm_frames(dP, pOutput, frameCount, NULL);
float *lp = Lvec.data();
float *rp = Rvec.data();
float *op = (float *)pOutput;
for (int i = 0; i < frameCount; ++i) {
*(lp++) = *(op++);
*(rp++) = *(op++);
}
float *Fpcm[2] = { Lvec.data(), Rvec.data() };
fxcp->addFX(Fpcm, frameCount);
lp = Lvec.data();
rp = Rvec.data();
op = (float *)pOutput;
for (int i = 0; i < frameCount; ++i) {
*(op++) = *(lp++);
*(op++) = *(rp++);
}
}
#include <iostream>
int
main(int argc, char *argv[])
{
for (int i = 0; i < 10; i += 3) {
std::cout << i << std::endl;
}
return 0;
ma_device dev;
fxcp = new FXControlPannel(48000);
ma_decoder_config decconf = ma_decoder_config_init(ma_format_f32, 2, 48000);
ma_decoder dec;
ma_decoder_init_file(
"../../../../music/Over Time [bv7xMhvXJjc].wav", &decconf, &dec);
ma_device_config devconf = ma_device_config_init(ma_device_type_playback);
devconf.playback.format = ma_format_f32;
devconf.playback.channels = 2;
devconf.sampleRate = 48000;
devconf.periodSizeInFrames = 480;
devconf.dataCallback = idle_callback;
devconf.performanceProfile = ma_performance_profile_low_latency;
devconf.pUserData = (&dec);
ma_device_init(NULL, &devconf, &dev);
ma_device_start(&dev);
getchar();
fxcp->FX_ON_OFF(FXList::EQ, true);
auto args = fxcp->GetArgSetter(FXList::EQ);
for (auto i : args) {
std::cout << i.first << std::endl;
}
args["EQPower"](-25);
args["EQSelect"](2);
getchar();
for (int i = 0; i < 10; ++i) {
args["EQPower"](25);
getchar();
args["EQPower"](0);
getchar();
args["EQPower"](-25);
getchar();
}
getchar();
delete fxcp;
return 0;
}