diff --git a/scripts/release-win32.sh b/scripts/release-win32.sh index 1d3dcda3b..b0c1c2ff6 100755 --- a/scripts/release-win32.sh +++ b/scripts/release-win32.sh @@ -15,7 +15,7 @@ fi cd win32build # TODO: potential Arch-ism? -i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS="-O2" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=OFF -DWITH_RENDER_DX11=ON .. || exit 1 +i686-w64-mingw32-cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_FLAGS="-O2 -march=i686" -DCMAKE_CXX_FLAGS="-O2 -Wall -Wextra -Wno-unused-parameter -Wno-cast-function-type -march=i686" -DBUILD_SHARED_LIBS=OFF -DSUPPORT_XP=OFF -DWITH_RENDER_DX11=ON .. || exit 1 make -j8 || exit 1 cd .. diff --git a/src/audio/sdlAudio.cpp b/src/audio/sdlAudio.cpp index 5d07921e9..ddbe85947 100644 --- a/src/audio/sdlAudio.cpp +++ b/src/audio/sdlAudio.cpp @@ -127,6 +127,7 @@ bool TAAudioSDL::init(TAAudioDesc& request, TAAudioDesc& response) { ac.callback=taSDLProcess; ac.userdata=this; + logV("opening audio device..."); ai=SDL_OpenAudioDevice(request.deviceName.empty()?NULL:request.deviceName.c_str(),0,&ac,&ar,0); if (ai==0) { logE("could not open audio device: %s",SDL_GetError()); @@ -147,6 +148,8 @@ bool TAAudioSDL::init(TAAudioDesc& request, TAAudioDesc& response) { desc.bufsize=ar.samples; desc.fragments=1; + logV("got info: %d channels, %d bufsize",desc.outChans,desc.bufsize); + if (desc.outChans>0) { outBufs=new float*[desc.outChans]; for (int i=0; ilistAudioDevices(); want.deviceName=getConfString("audioDevice",""); @@ -3352,8 +3355,10 @@ bool DivEngine::initAudioBackend() { if (want.outChans<1) want.outChans=1; if (want.outChans>16) want.outChans=16; + logV("setting callback"); output->setCallback(process,this); + logV("calling init"); if (!output->init(want,got)) { logE("error while initializing audio!"); delete output; @@ -3362,6 +3367,7 @@ bool DivEngine::initAudioBackend() { return false; } + logV("allocating oscBuf..."); for (int i=0; iinitMidi(false)) { midiIns=output->midiIn->listDevices(); midiOuts=output->midiOut->listDevices(); @@ -3400,6 +3407,7 @@ bool DivEngine::initAudioBackend() { } } + logV("initAudioBackend done"); return true; } @@ -3443,6 +3451,13 @@ void DivEngine::preInit() { logI("Furnace version " DIV_VERSION "."); loadConf(); + +#ifdef HAVE_SDL2 + String audioDriver=getConfString("sdlAudioDriver",""); + if (!audioDriver.empty()) { + SDL_SetHint("SDL_HINT_AUDIODRIVER",audioDriver.c_str()); + } +#endif } bool DivEngine::init() { @@ -3480,6 +3495,8 @@ bool DivEngine::init() { haveAudio=true; } + logV("creating blip_buf"); + samp_bb=blip_new(32768); if (samp_bb==NULL) { logE("not enough memory!"); @@ -3493,6 +3510,8 @@ bool DivEngine::init() { metroBuf=new float[8192]; metroBufLen=8192; + + logV("setting blip rate of samp_bb (%f)",got.rate); blip_set_rates(samp_bb,44100,got.rate);