#include "rtaudiodriver.h" extern "C" { //Ron: added int api as param IMaxModAudioDriver* CreateAudioDriver_RtAudio( int api, int showWarnings ) {return new RtAudioDriver(api, showWarnings);} //Ron: added showWarnings void RtAudio_showWarnings(IMaxModAudioDriver* Driver, int onoff) {return static_cast(Driver)->audio->showWarnings(onoff);} void CloseAudioDriver_RtAudio(IMaxModAudioDriver* Driver) {delete static_cast(Driver);} } int RtCallback( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames,double streamTime, RtAudioStreamStatus status, void *data ) { MaxMod_ProcessChannels(outputBuffer,nBufferFrames); return 0; } // ______________________________________________________________________________________________________________ //Ron: added int api and int showWarnings so warnings could be disabled // before initialization RtAudioDriver::RtAudioDriver(int api, int showWarnings){ //std::cout<<"api:"<showWarnings(showWarnings); mmPrint("RtAudioDriver::RtAudioDriver"); Terminate = 0; Active = 0; //unsigned int devices = dac.getDeviceCount(); unsigned int devices = audio->getDeviceCount(); if ( devices<1 ) {mmPrint("No audio output device found!"); return;} else {mmPrint("Audio drivers found=",(int)devices);} //parameters.deviceId = dac.getDefaultOutputDevice(); parameters.deviceId = audio->getDefaultOutputDevice(); parameters.nChannels = 2; parameters.firstChannel = 0; bufferFrames = 1024; } RtAudioDriver::~RtAudioDriver(){ mmPrint("~RtAudioStream"); if (!Terminate) Shutdown(); } //Ron: make used API configurable int RtAudioDriver::SetAPI( int api) { //std::cout<<"SetAPI:"<openStream( ¶meters, NULL, RTAUDIO_FLOAT32, 44100, &bufferFrames, &RtCallback, this, &options ); audio->startStream(); } catch( RtError& e ) { //e.printMessage(); return 0; } Active=1; return 1; } int RtAudioDriver::Shutdown(){ mmPrint("RtAudioDriver::Shutdown"); Terminate=1; audio->closeStream(); return 1; } IMaxModSound* RtAudioDriver::CreateSound( int samplerate, int channels, int bits, int flags, void* data, int size ){ }