From 4dfb229566475f449f8968ab10593a9803ff8ed0 Mon Sep 17 00:00:00 2001 From: stephena Date: Tue, 6 Sep 2005 19:42:35 +0000 Subject: [PATCH] Removed some redundant code in FrameBufferGL. Made sure emulation screen height can always accommodate the menus placed in it. Added check when switching to PAL mode, so that the emulation height will be a default for PAL (250), not for NTSC (210). Added ability to switch between stereo and mono sound dynamically from the AudioDialog ('Stereo Mode') and the commandline ('-channels'). This setting is not saved to stellarc, so if you want it to be permanent for some game, save it to the properties file. Added 'Cartridge.Sound' property to the game properties, and have it default to 'Mono'. Setting it to 'Stereo' will give stereo sound (2 sound channels used). Related to this, update stella.pro 'Skeleton+' entry to use stereo sound. Correctly update the sound framerate when switching between NTSC/PAL, since the new sound core knows what to do in such a case. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@768 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba --- stella/src/common/FrameBufferGL.cxx | 9 +------ stella/src/common/SoundNull.hxx | 11 +++++++-- stella/src/common/SoundSDL.cxx | 19 ++++++++++++--- stella/src/common/SoundSDL.hxx | 14 +++++++++-- stella/src/emucore/Console.cxx | 22 +++++++++++++++-- stella/src/emucore/OSystem.cxx | 17 +------------ stella/src/emucore/PropsSet.cxx | 3 ++- stella/src/emucore/Settings.cxx | 3 ++- stella/src/emucore/Sound.hxx | 11 +++++++-- stella/src/emucore/TIA.cxx | 7 +++++- stella/src/emucore/stella.pro | 38 ++++++++++++++++++----------- stella/src/gui/AudioDialog.cxx | 29 +++++++++++++++------- stella/src/gui/AudioDialog.hxx | 8 +++++- stella/src/gui/GuiUtils.hxx | 12 +++------ stella/src/gui/OptionsDialog.cxx | 4 +-- stella/src/gui/VideoDialog.hxx | 9 ++++++- 16 files changed, 141 insertions(+), 75 deletions(-) diff --git a/stella/src/common/FrameBufferGL.cxx b/stella/src/common/FrameBufferGL.cxx index 1040b78f5..f1f629507 100644 --- a/stella/src/common/FrameBufferGL.cxx +++ b/stella/src/common/FrameBufferGL.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: FrameBufferGL.cxx,v 1.40 2005-08-11 19:12:37 stephena Exp $ +// $Id: FrameBufferGL.cxx,v 1.41 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #ifdef DISPLAY_OPENGL @@ -275,13 +275,6 @@ void FrameBufferGL::postFrameUpdate() // Now show all changes made to the textures SDL_GL_SwapBuffers(); - glBegin(GL_QUADS); - glTexCoord2f(myTexCoord[0], myTexCoord[1]); glVertex2i(0, 0); - glTexCoord2f(myTexCoord[2], myTexCoord[1]); glVertex2i(w, 0); - glTexCoord2f(myTexCoord[2], myTexCoord[3]); glVertex2i(w, h); - glTexCoord2f(myTexCoord[0], myTexCoord[3]); glVertex2i(0, h); - glEnd(); - myDirtyFlag = false; } } diff --git a/stella/src/common/SoundNull.hxx b/stella/src/common/SoundNull.hxx index 8a52dfbe3..ebf1bf134 100644 --- a/stella/src/common/SoundNull.hxx +++ b/stella/src/common/SoundNull.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: SoundNull.hxx,v 1.2 2005-06-16 00:55:56 stephena Exp $ +// $Id: SoundNull.hxx,v 1.3 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #ifndef SOUND_NULL_HXX @@ -31,7 +31,7 @@ class Deserializer; is completely disabled. @author Stephen Anthony - @version $Id: SoundNull.hxx,v 1.2 2005-06-16 00:55:56 stephena Exp $ + @version $Id: SoundNull.hxx,v 1.3 2005-09-06 19:42:35 stephena Exp $ */ class SoundNull : public Sound { @@ -64,6 +64,13 @@ class SoundNull : public Sound */ void adjustCycleCounter(Int32 amount) { } + /** + Sets the number of channels (mono or stereo sound). + + @param channels The number of channels + */ + void setChannels(uInt32 channels) { } + /** Sets the display framerate. Sound generation for NTSC and PAL games depends on the framerate, so we need to set it here. diff --git a/stella/src/common/SoundSDL.cxx b/stella/src/common/SoundSDL.cxx index 2d96c6d54..51f8a52e5 100644 --- a/stella/src/common/SoundSDL.cxx +++ b/stella/src/common/SoundSDL.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: SoundSDL.cxx,v 1.23 2005-09-05 01:12:56 stephena Exp $ +// $Id: SoundSDL.cxx,v 1.24 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #ifdef SOUND_SUPPORT @@ -41,11 +41,11 @@ SoundSDL::SoundSDL(OSystem* osystem) myIsInitializedFlag(false), myLastRegisterSetCycle(0), myDisplayFrameRate(60), + myNumChannels(1), myFragmentSizeLogBase2(0), myIsMuted(false), myVolume(100) { - initialize(true); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -106,7 +106,7 @@ void SoundSDL::initialize(bool forcerestart) desired.freq = 44100; desired.format = AUDIO_U16; #endif - desired.channels = 1; // Set to 2 for stereo TIA sound support + desired.channels = myNumChannels; desired.samples = fragsize; desired.callback = callback; desired.userdata = (void*)this; @@ -155,7 +155,8 @@ void SoundSDL::initialize(bool forcerestart) if(myOSystem->settings().getBool("showinfo")) cout << "Sound enabled:" << endl << " Volume : " << myVolume << endl - << " Frag size: " << fragsize << endl << endl; + << " Frag size: " << fragsize << endl + << " Channels : " << myNumChannels << endl << endl; } } @@ -251,6 +252,16 @@ void SoundSDL::adjustCycleCounter(Int32 amount) myLastRegisterSetCycle += amount; } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void SoundSDL::setChannels(uInt32 channels) +{ + if(channels == 1 || channels == 2) + { + myNumChannels = channels; + myOSystem->settings().setInt("channels", myNumChannels, false); + } +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void SoundSDL::setFrameRate(uInt32 framerate) { diff --git a/stella/src/common/SoundSDL.hxx b/stella/src/common/SoundSDL.hxx index 0c4f6ead2..7efac1da6 100644 --- a/stella/src/common/SoundSDL.hxx +++ b/stella/src/common/SoundSDL.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: SoundSDL.hxx,v 1.14 2005-09-04 23:59:30 bwmott Exp $ +// $Id: SoundSDL.hxx,v 1.15 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #ifndef SOUND_SDL_HXX @@ -34,7 +34,7 @@ class OSystem; This class implements the sound API for SDL. @author Stephen Anthony and Bradford W. Mott - @version $Id: SoundSDL.hxx,v 1.14 2005-09-04 23:59:30 bwmott Exp $ + @version $Id: SoundSDL.hxx,v 1.15 2005-09-06 19:42:35 stephena Exp $ */ class SoundSDL : public Sound { @@ -66,6 +66,13 @@ class SoundSDL : public Sound */ void adjustCycleCounter(Int32 amount); + /** + Sets the number of channels (mono or stereo sound). + + @param channels The number of channels + */ + void setChannels(uInt32 channels); + /** Sets the display framerate. Sound generation for NTSC and PAL games depends on the framerate, so we need to set it here. @@ -244,6 +251,9 @@ class SoundSDL : public Sound // Indicates the base framerate depending on if the ROM is NTSC or PAL uInt32 myDisplayFrameRate; + // Indicates the number of channels (mono or stereo) + uInt32 myNumChannels; + // Log base 2 of the selected fragment size double myFragmentSizeLogBase2; diff --git a/stella/src/emucore/Console.cxx b/stella/src/emucore/Console.cxx index 178f2e337..5d893b86f 100644 --- a/stella/src/emucore/Console.cxx +++ b/stella/src/emucore/Console.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Console.cxx,v 1.68 2005-08-30 17:51:26 stephena Exp $ +// $Id: Console.cxx,v 1.69 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #include @@ -83,6 +83,11 @@ Console::Console(const uInt8* image, uInt32 size, OSystem* osystem) // A developer can override properties from the commandline setDeveloperProperties(); + // Make sure height is set properly for PAL ROM + if(myProperties.get("Display.Format") == "PAL") + if(myProperties.get("Display.Height") == "210") + myProperties.set("Display.Height", "250"); + // Setup the controllers based on properties string left = myProperties.get("Controller.Left"); string right = myProperties.get("Controller.Right"); @@ -182,6 +187,19 @@ Console::Console(const uInt8* image, uInt32 size, OSystem* osystem) initializeVideo(); // Initialize the sound interface. + // The # of channels can be overridden in the AudioDialog box or on + // the commandline, but it can't be saved. + uInt32 channels = myOSystem->settings().getInt("channels"); + if(channels == 0) + { + if(myProperties.get("Cartridge.Sound") == "Stereo") + channels = 2; + else if(myProperties.get("Cartridge.Sound") == "Mono") + channels = 1; + else + channels = 1; + } + myOSystem->sound().setChannels(channels); myOSystem->sound().setFrameRate(framerate); myOSystem->sound().initialize(); @@ -254,7 +272,7 @@ void Console::toggleFormat() setPalette(); myOSystem->setFramerate(framerate); -//FIXME - should be change sound rate as well?? + myOSystem->sound().setFrameRate(framerate); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/emucore/OSystem.cxx b/stella/src/emucore/OSystem.cxx index 4fbbca3c8..58744ff69 100644 --- a/stella/src/emucore/OSystem.cxx +++ b/stella/src/emucore/OSystem.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: OSystem.cxx,v 1.35 2005-08-30 01:10:54 stephena Exp $ +// $Id: OSystem.cxx,v 1.36 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #include @@ -171,21 +171,6 @@ void OSystem::setConfigFiles(const string& userconfig, // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bool OSystem::createFrameBuffer(bool showmessage) { -/* FIXME - this will probably be discontinued for 2.0 - // Set the SDL_VIDEODRIVER environment variable, if possible - string videodriver = mySettings->getString("video_driver"); - if(videodriver != "") - { - string buf = "SDL_VIDEODRIVER=" + videodriver; - putenv((char*) buf.c_str()); - - if(mySettings->getBool("showinfo")) - { - buf = "Video driver: " + videodriver; - cout << buf << endl << endl; - } - } -*/ // Delete the old framebuffer delete myFrameBuffer; myFrameBuffer = NULL; diff --git a/stella/src/emucore/PropsSet.cxx b/stella/src/emucore/PropsSet.cxx index 5d9b061c7..005f3d006 100644 --- a/stella/src/emucore/PropsSet.cxx +++ b/stella/src/emucore/PropsSet.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: PropsSet.cxx,v 1.10 2005-06-16 01:11:28 stephena Exp $ +// $Id: PropsSet.cxx,v 1.11 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #include @@ -271,6 +271,7 @@ const Properties& PropertiesSet::defaultProperties() ourDefaultProperties.set("Cartridge.Name", "Untitled"); ourDefaultProperties.set("Cartridge.Note", ""); ourDefaultProperties.set("Cartridge.Rarity", ""); + ourDefaultProperties.set("Cartridge.Sound", "Mono"); ourDefaultProperties.set("Cartridge.Type", "Auto-detect"); ourDefaultProperties.set("Console.LeftDifficulty", "B"); diff --git a/stella/src/emucore/Settings.cxx b/stella/src/emucore/Settings.cxx index 637557a78..082d5f6e9 100644 --- a/stella/src/emucore/Settings.cxx +++ b/stella/src/emucore/Settings.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Settings.cxx,v 1.57 2005-08-30 17:51:26 stephena Exp $ +// $Id: Settings.cxx,v 1.58 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #include @@ -279,6 +279,7 @@ void Settings::usage() << " -holdbutton0 Start the emulator with the left joystick button held down\n" #ifdef SOUND_SUPPORT << " -sound <1|0> Enable sound generation\n" + << " -channels <1|2> Enable mono or stereo sound\n" << " -fragsize The size of sound fragments (must be a power of two)\n" << " -volume Set the volume (0 - 100)\n" #endif diff --git a/stella/src/emucore/Sound.hxx b/stella/src/emucore/Sound.hxx index e625a6721..c13d5b06e 100644 --- a/stella/src/emucore/Sound.hxx +++ b/stella/src/emucore/Sound.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: Sound.hxx,v 1.19 2005-06-16 00:55:58 stephena Exp $ +// $Id: Sound.hxx,v 1.20 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #ifndef SOUND_HXX @@ -30,7 +30,7 @@ class Deserializer; It has no functionality whatsoever. @author Stephen Anthony - @version $Id: Sound.hxx,v 1.19 2005-06-16 00:55:58 stephena Exp $ + @version $Id: Sound.hxx,v 1.20 2005-09-06 19:42:35 stephena Exp $ */ class Sound { @@ -62,6 +62,13 @@ class Sound */ virtual void adjustCycleCounter(Int32 amount) = 0; + /** + Sets the number of channels (mono or stereo sound). + + @param channels The number of channels + */ + virtual void setChannels(uInt32 channels) = 0; + /** Sets the display framerate. Sound generation for NTSC and PAL games depends on the framerate, so we need to set it here. diff --git a/stella/src/emucore/TIA.cxx b/stella/src/emucore/TIA.cxx index 2e81e84d3..0f3e06c0c 100644 --- a/stella/src/emucore/TIA.cxx +++ b/stella/src/emucore/TIA.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: TIA.cxx,v 1.56 2005-07-21 04:10:15 urchlay Exp $ +// $Id: TIA.cxx,v 1.57 2005-09-06 19:42:35 stephena Exp $ //============================================================================ #include @@ -30,6 +30,7 @@ #include "Deserializer.hxx" #include "Settings.hxx" #include "Sound.hxx" +#include "GuiUtils.hxx" #define HBLANK 68 @@ -223,6 +224,10 @@ void TIA::reset() myFrameYStart = atoi(myConsole.properties().get("Display.YStart").c_str()); myFrameHeight = atoi(myConsole.properties().get("Display.Height").c_str()); + // Make sure frameHeight is no less than 190 pixels + // This is a hack for the onscreen menus + myFrameHeight = MAX((int)myFrameHeight, 190); + // Make sure the starting x and width values are reasonable if((myFrameXStart + myFrameWidth) > 160) { diff --git a/stella/src/emucore/stella.pro b/stella/src/emucore/stella.pro index 76e09e556..d52b1d155 100644 --- a/stella/src/emucore/stella.pro +++ b/stella/src/emucore/stella.pro @@ -2967,6 +2967,7 @@ "Cartridge.MD5" "22b22c4ce240303012e8a9596ae8d189" "Cartridge.Name" "Skeleton+ (03-05-2003) (Eric Ball) (PAL)" +"Cartridge.Sound" "Stereo" "Display.Format" "PAL" "Display.Height" "256" "" @@ -5706,10 +5707,25 @@ "Cartridge.Name" "Star Fire (17-02-2003) (MP)" "" -"Cartridge.MD5" "43f8459d39fb4eddf9186d62722ff795" -"Cartridge.Name" "Skeleton+ (17-04-2003) (Eric Ball) (PAL)" -"Display.Format" "PAL" -"Display.Height" "256" +"Cartridge.MD5" "eafe8b40313a65792e88ff9f2fe2655c" +"Cartridge.Name" "Skeleton+ (NTSC)" +"Cartridge.Manufacturer" "Eric Ball" +"Cartridge.ModelNo" "ELB004" +"Cartridge.Note" "Stereo sound" +"Cartridge.Rarity" "Homebrew" +"Cartridge.Type" "4K" +"Cartridge.Sound" "Stereo" +"" + +"Cartridge.MD5" "63c7395d412a3cd095ccdd9b5711f387" +"Cartridge.Name" "Skeleton+ (PAL)" +"Cartridge.Manufacturer" "Eric Ball" +"Cartridge.ModelNo" "ELB005" +"Cartridge.Note" "Stereo sound" +"Cartridge.Rarity" "Homebrew" +"Cartridge.Type" "4K" +"Cartridge.Sound" "Stereo" +"Display.Format" "PAL" "" "Cartridge.MD5" "458883f1d952cd772cf0057abca57497" @@ -8089,12 +8105,6 @@ "Display.YStart" "27" "" -"Cartridge.MD5" "63c7395d412a3cd095ccdd9b5711f387" -"Cartridge.Name" "Skeleton+ (14-05-2003) (Eric Ball) (PAL)" -"Display.Format" "PAL" -"Display.Height" "256" -"" - "Cartridge.MD5" "640a08e9ca019172d612df22a9190afb" "Cartridge.Name" "Joust (1982) (Atari) (PAL) [!]" "Cartridge.Manufacturer" "Atari" @@ -9641,6 +9651,7 @@ "Cartridge.MD5" "75b22fdf632d76e246433db1ebccd3c4" "Cartridge.Name" "Skeleton+ (05-05-2003) (Eric Ball) (PAL)" +"Cartridge.Sound" "Stereo" "Display.Format" "PAL" "Display.Height" "256" "" @@ -16612,6 +16623,7 @@ "Cartridge.MD5" "cfef1a2d1f6a5ee7a5e1f43f3056f112" "Cartridge.Name" "Skeleton+ (05-05-2003) (Eric Ball) (NTSC)" +"Cartridge.Sound" "Stereo" "" "Cartridge.MD5" "cfee10bd7119f10b136921ced2ee8972" @@ -18791,10 +18803,6 @@ "Controller.Right" "Paddles" "" -"Cartridge.MD5" "eafe8b40313a65792e88ff9f2fe2655c" -"Cartridge.Name" "Skeleton+ (14-05-2003) (Eric Ball) (NTSC)" -"" - "Cartridge.MD5" "eaf744185d5e8def899950ba7c6e7bb5" "Cartridge.Name" "Xenophobe (1990) (Atari) (PAL) [a1]" "Cartridge.Manufacturer" "Atari" @@ -19470,6 +19478,7 @@ "Cartridge.MD5" "f20bd756f3990e06c492f53cd0168e68" "Cartridge.Name" "Skeleton+ (03-05-2003) (Eric Ball) (NTSC)" +"Cartridge.Sound" "Stereo" "" "Cartridge.MD5" "f1eeeccc4bba6999345a2575ae96508e" @@ -20124,6 +20133,7 @@ "Cartridge.MD5" "f98d869f287d2ce4f8fb36e0686929d9" "Cartridge.Name" "Skeleton+ (17-04-2003) (Eric Ball) (NTSC)" +"Cartridge.Sound" "Stereo" "" "Cartridge.MD5" "f992a39b46aa48188fab12ad3809ae4a" diff --git a/stella/src/gui/AudioDialog.cxx b/stella/src/gui/AudioDialog.cxx index 9a898572f..446a7f472 100644 --- a/stella/src/gui/AudioDialog.cxx +++ b/stella/src/gui/AudioDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: AudioDialog.cxx,v 1.13 2005-08-16 18:34:12 stephena Exp $ +// $Id: AudioDialog.cxx,v 1.14 2005-09-06 19:42:35 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -70,19 +70,16 @@ AudioDialog::AudioDialog(OSystem* osystem, DialogContainer* parent, myFragsizePopup->appendEntry("4096", 5); yoff += kAudioRowHeight + 4; + // Stereo sound + mySoundTypeCheckbox = new CheckboxWidget(this, font, xoff+28, yoff, + "Stereo mode", 0); + yoff += kAudioRowHeight + 4; + // Enable sound - new StaticTextWidget(this, xoff+8, yoff+3, 20, kLineHeight, "", kTextAlignLeft); mySoundEnableCheckbox = new CheckboxWidget(this, font, xoff+28, yoff, "Enable sound", kSoundEnableChanged); yoff += kAudioRowHeight + 12; - // Add a short message about options that need a restart -// new StaticTextWidget(this, xoff+30, yoff, 170, kLineHeight, -// "* Note that these options take effect", kTextAlignLeft); -// yoff += kAudioRowHeight; -// new StaticTextWidget(this, xoff+30, yoff, 170, kLineHeight, -// "the next time you restart Stella.", kTextAlignLeft); - // Add Defaults, OK and Cancel buttons addButton( 10, _h - 24, "Defaults", kDefaultsCmd, 0); #ifndef MAC_OSX @@ -118,6 +115,10 @@ void AudioDialog::loadConfig() else if(i == 4096) i = 5; myFragsizePopup->setSelectedTag(i); + // Stereo mode + i = instance()->settings().getInt("channels"); + mySoundTypeCheckbox->setState(i == 2); + // Enable sound b = instance()->settings().getBool("sound"); mySoundEnableCheckbox->setState(b); @@ -146,6 +147,14 @@ void AudioDialog::saveConfig() restart = true; } + // Enable/disable stereo sound (requires a restart to take effect) + b = mySoundTypeCheckbox->getState(); + if((instance()->settings().getInt("channels") == 2) != b) + { + instance()->sound().setChannels(b ? 2 : 1); + restart = true; + } + // Enable/disable sound (requires a restart to take effect) b = mySoundEnableCheckbox->getState(); if(instance()->settings().getBool("sound") != b) @@ -175,6 +184,7 @@ void AudioDialog::setDefaults() myFragsizePopup->setSelectedTag(2); #endif + mySoundTypeCheckbox->setState(false); mySoundEnableCheckbox->setState(true); // Make sure that mutually-exclusive items are not enabled at the same time @@ -189,6 +199,7 @@ void AudioDialog::handleSoundEnableChange(bool active) myVolumeSlider->setEnabled(active); myVolumeLabel->setEnabled(active); myFragsizePopup->setEnabled(active); + mySoundTypeCheckbox->setEnabled(active); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/stella/src/gui/AudioDialog.hxx b/stella/src/gui/AudioDialog.hxx index 3b134f1a9..679afc32c 100644 --- a/stella/src/gui/AudioDialog.hxx +++ b/stella/src/gui/AudioDialog.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: AudioDialog.hxx,v 1.5 2005-07-05 15:25:44 stephena Exp $ +// $Id: AudioDialog.hxx,v 1.6 2005-09-06 19:42:35 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -33,6 +33,11 @@ class CheckboxWidget; #include "OSystem.hxx" #include "bspf.hxx" +enum { + kVolumeChanged = 'ADvc', + kSoundEnableChanged = 'ADse' +}; + class AudioDialog : public Dialog { public: @@ -44,6 +49,7 @@ class AudioDialog : public Dialog SliderWidget* myVolumeSlider; StaticTextWidget* myVolumeLabel; PopUpWidget* myFragsizePopup; + CheckboxWidget* mySoundTypeCheckbox; CheckboxWidget* mySoundEnableCheckbox; private: diff --git a/stella/src/gui/GuiUtils.hxx b/stella/src/gui/GuiUtils.hxx index 84a87c0c7..8d2bad955 100644 --- a/stella/src/gui/GuiUtils.hxx +++ b/stella/src/gui/GuiUtils.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: GuiUtils.hxx,v 1.18 2005-08-11 19:12:39 stephena Exp $ +// $Id: GuiUtils.hxx,v 1.19 2005-09-06 19:42:35 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -29,7 +29,7 @@ Probably not very neat, but at least it works ... @author Stephen Anthony - @version $Id: GuiUtils.hxx,v 1.18 2005-08-11 19:12:39 stephena Exp $ + @version $Id: GuiUtils.hxx,v 1.19 2005-09-06 19:42:35 stephena Exp $ */ #define kFontHeight 10 @@ -59,13 +59,7 @@ enum { kSetPositionCmd = 'SETP', kTabChangedCmd = 'TBCH', kCheckActionCmd = 'CBAC', - kRefreshAllCmd = 'REFA', - kRendererChanged, - kAspectRatioChanged, - kFrameRateChanged, - kZoomChanged, - kVolumeChanged, - kSoundEnableChanged + kRefreshAllCmd = 'REFA' }; // Indicates a three-way possibility when changing the size of some quantity diff --git a/stella/src/gui/OptionsDialog.cxx b/stella/src/gui/OptionsDialog.cxx index b0fedf8c9..1210160f8 100644 --- a/stella/src/gui/OptionsDialog.cxx +++ b/stella/src/gui/OptionsDialog.cxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: OptionsDialog.cxx,v 1.24 2005-08-11 19:12:39 stephena Exp $ +// $Id: OptionsDialog.cxx,v 1.25 2005-09-06 19:42:35 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -96,7 +96,7 @@ OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent) checkBounds(fbWidth, fbHeight, &x, &y, &w, &h); myVideoDialog = new VideoDialog(myOSystem, parent, x, y, w, h); - w = 200; h = 100; + w = 200; h = 110; checkBounds(fbWidth, fbHeight, &x, &y, &w, &h); myAudioDialog = new AudioDialog(myOSystem, parent, x, y, w, h); diff --git a/stella/src/gui/VideoDialog.hxx b/stella/src/gui/VideoDialog.hxx index 0ba19e9ac..0587b2324 100644 --- a/stella/src/gui/VideoDialog.hxx +++ b/stella/src/gui/VideoDialog.hxx @@ -13,7 +13,7 @@ // See the file "license" for information on usage and redistribution of // this file, and for a DISCLAIMER OF ALL WARRANTIES. // -// $Id: VideoDialog.hxx,v 1.8 2005-07-05 15:25:44 stephena Exp $ +// $Id: VideoDialog.hxx,v 1.9 2005-09-06 19:42:35 stephena Exp $ // // Based on code from ScummVM - Scumm Interpreter // Copyright (C) 2002-2004 The ScummVM project @@ -33,6 +33,13 @@ class CheckboxWidget; #include "Dialog.hxx" #include "bspf.hxx" +enum { + kRendererChanged = 'VDrd', + kAspectRatioChanged = 'VDar', + kFrameRateChanged = 'VDfr', + kZoomChanged = 'VDzm' +}; + class VideoDialog : public Dialog { public: