From 3e98bed606371d2dc613314dc1a16e80bc819ab9 Mon Sep 17 00:00:00 2001 From: punkrockguy318 Date: Wed, 3 Mar 2010 06:10:40 +0000 Subject: [PATCH] GTK: set individual mixers on slider change instead of restarting sound * runs much nicer off of a live cd --- src/drivers/sdl/gui.cpp | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/drivers/sdl/gui.cpp b/src/drivers/sdl/gui.cpp index f444e53d..607047db 100644 --- a/src/drivers/sdl/gui.cpp +++ b/src/drivers/sdl/gui.cpp @@ -695,21 +695,36 @@ int mixerChanged(GtkWidget* w, gpointer p) GtkWidget* parent = gtk_widget_get_parent(w); char* lbl = (char*)gtk_frame_get_label(GTK_FRAME(parent)); if(strcmp(lbl, "Volume") == 0) + { g_config->setOption("SDL.SoundVolume", v); + FCEUI_SetSoundVolume(v); + } if(strcmp(lbl, "Triangle") == 0) + { g_config->setOption("SDL.TriangleVolume", v); + FCEUI_SetTriangleVolume(v); + } if(strcmp(lbl, "Square1") == 0) + { g_config->setOption("SDL.Square1Volume", v); + FCEUI_SetSquare1Volume(v); + } if(strcmp(lbl, "Square2") == 0) + { g_config->setOption("SDL.Square2Volume", v); + FCEUI_SetSquare2Volume(v); + } if(strcmp(lbl, "Noise") == 0) + { g_config->setOption("SDL.NoiseVolume", v); + FCEUI_SetNoiseVolume(v); + } if(strcmp(lbl, "PCM") == 0) + { g_config->setOption("SDL.PCMVolume", v); - - g_config->save(); - KillSound(); - InitSound(); + FCEUI_SetPCMVolume(v); + } + return 0; }