X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fgui%2Fmainwin.cpp;h=71872b8cec0989106a92ec08adc0eac709b27fa2;hb=07d689da4cceee0c376861a1459c9e9c2289c6a2;hp=809b916eaa5c3f461dfc8e8ce4a3d6f2e50192bf;hpb=54f5867e394981dd72548990064238454a6e2395;p=virtualjaguar diff --git a/src/gui/mainwin.cpp b/src/gui/mainwin.cpp index 809b916..71872b8 100644 --- a/src/gui/mainwin.cpp +++ b/src/gui/mainwin.cpp @@ -41,6 +41,7 @@ #include "generaltab.h" #include "version.h" +#include "dac.h" #include "jaguar.h" #include "tom.h" #include "log.h" @@ -274,20 +275,20 @@ void MainWin::HandleKeys(QKeyEvent * e, bool state) || (e->key() == vjs.p1KeyBindings[BUTTON_D] && joypad_0_buttons[BUTTON_U])) return; #else - if (e->key() == vjs.p1KeyBindings[BUTTON_L] && joypad_0_buttons[BUTTON_R]) + if (e->key() == (int)vjs.p1KeyBindings[BUTTON_L] && joypad_0_buttons[BUTTON_R]) joypad_0_buttons[BUTTON_R] = 0; - if (e->key() == vjs.p1KeyBindings[BUTTON_R] && joypad_0_buttons[BUTTON_L]) + if (e->key() == (int)vjs.p1KeyBindings[BUTTON_R] && joypad_0_buttons[BUTTON_L]) joypad_0_buttons[BUTTON_L] = 0; - if (e->key() == vjs.p1KeyBindings[BUTTON_U] && joypad_0_buttons[BUTTON_D]) + if (e->key() == (int)vjs.p1KeyBindings[BUTTON_U] && joypad_0_buttons[BUTTON_D]) joypad_0_buttons[BUTTON_D] = 0; - if (e->key() == vjs.p1KeyBindings[BUTTON_D] && joypad_0_buttons[BUTTON_U]) + if (e->key() == (int)vjs.p1KeyBindings[BUTTON_D] && joypad_0_buttons[BUTTON_U]) joypad_0_buttons[BUTTON_U] = 0; #endif // No bad combos exist, let's stuff the emulator key buffers...! for(int i=BUTTON_FIRST; i<=BUTTON_LAST; i++) { - if (e->key() == vjs.p1KeyBindings[i]) + if (e->key() == (int)vjs.p1KeyBindings[i]) joypad_0_buttons[i] = (uint8)state; } } @@ -307,8 +308,10 @@ void MainWin::Configure(void) return; QString before = vjs.ROMPath; + bool audioBefore = vjs.audioEnabled; dlg.UpdateVJSettings(); QString after = vjs.ROMPath; + bool audioAfter = vjs.audioEnabled; bool allowOld = allowUnknownSoftware; //ick. @@ -319,6 +322,13 @@ void MainWin::Configure(void) if ((before != after) || (allowOld != allowUnknownSoftware)) filePickWin->ScanSoftwareFolder(allowUnknownSoftware); + // If the "Enable audio" checkbox changed, then we have to re-init the DAC... + if (audioBefore != audioAfter) + { + DACDone(); + DACInit(); + } + // Just in case we crash before a clean exit... WriteSettings(); } @@ -518,25 +528,15 @@ void MainWin::ToggleRunState(void) if (!running) { -#if 0 - for(uint32_t x=0; xrasterWidth; x++) - for(uint32_t y=0; yrasterHeight; y++) - videoWidget->buffer[(y * videoWidget->textureWidth) + x] = 0x00000000; -#else -// for(uint32_t i=0; itextureWidth * 256; i++) + for(uint32_t i=0; i<(uint32_t)(videoWidget->textureWidth * 256); i++) { uint32_t pixel = backbuffer[i]; -// uint8_t b = (pixel >> 16) & 0xFF, g = (pixel >> 8) & 0xFF, r = pixel & 0xFF; uint8_t r = (pixel >> 24) & 0xFF, g = (pixel >> 16) & 0xFF, b = (pixel >> 8) & 0xFF; pixel = ((r + g + b) / 3) & 0x00FF; -// backbuffer[i] = 0xFF000000 | (pixel << 16) | (pixel << 8); backbuffer[i] = 0x000000FF | (pixel << 16) | (pixel << 8); } -// memcpy(videoWidget->buffer, backbuffer, videoWidget->rasterHeight * videoWidget->rasterWidth); memcpy(videoWidget->buffer, backbuffer, videoWidget->rasterHeight * videoWidget->textureWidth * sizeof(uint32_t)); -#endif videoWidget->updateGL(); } @@ -651,6 +651,7 @@ void MainWin::ReadSettings(void) vjs.frameSkip = settings.value("frameSkip", 0).toInt(); vjs.useJaguarBIOS = settings.value("useJaguarBIOS", false).toBool(); vjs.DSPEnabled = settings.value("DSPEnabled", false).toBool(); + vjs.audioEnabled = settings.value("audioEnabled", true).toBool(); vjs.usePipelinedDSP = settings.value("usePipelinedDSP", false).toBool(); vjs.fullscreen = settings.value("fullscreen", false).toBool(); vjs.useOpenGL = settings.value("useOpenGL", true).toBool(); @@ -661,8 +662,8 @@ void MainWin::ReadSettings(void) strcpy(vjs.EEPROMPath, settings.value("EEPROMs", "./eeproms/").toString().toAscii().data()); strcpy(vjs.ROMPath, settings.value("ROMs", "./software/").toString().toAscii().data()); WriteLog("MainWin: Paths\n"); -WriteLog(" jagBootPath = \"%s\"\n", vjs.jagBootPath); -WriteLog(" CDBootPath = \"%s\"\n", vjs.CDBootPath); +//WriteLog(" jagBootPath = \"%s\"\n", vjs.jagBootPath); +//WriteLog(" CDBootPath = \"%s\"\n", vjs.CDBootPath); WriteLog(" EEPROMPath = \"%s\"\n", vjs.EEPROMPath); WriteLog(" ROMPath = \"%s\"\n", vjs.ROMPath); @@ -728,6 +729,7 @@ void MainWin::WriteSettings(void) settings.setValue("frameSkip", vjs.frameSkip); settings.setValue("useJaguarBIOS", vjs.useJaguarBIOS); settings.setValue("DSPEnabled", vjs.DSPEnabled); + settings.setValue("audioEnabled", vjs.audioEnabled); settings.setValue("usePipelinedDSP", vjs.usePipelinedDSP); settings.setValue("fullscreen", vjs.fullscreen); settings.setValue("useOpenGL", vjs.useOpenGL);