Thanks for the detailed answer! I was able to hack around the no-export issue. Might I request in future releases that GetNumDeviceChannels be proper exported? Would make this more uhm sane.
Current approach:
#define private public
#define protected public
#include "AudioDeviceManager.h"
#include "AudioMixer.h"
#include "AudioMixerDevice.h"
#undef private
#undef protected
static int GetNumSpeakers() {
FAudioDevice *dev = FAudioDevice::GetMainAudioDevice();
if (dev && dev->IsAudioMixerEnabled()) {
Audio::FMixerDevice *mix = static_cast<Audio::FMixerDevice*>(dev);
if (mix) {
//return mix->GetNumDeviceChannels(); // Not exported...
return mix->PlatformInfo.NumChannels;
}
}
return 2; // default case... unknown just assume 2 speakers stereo setup.
}