From a34de2cb06e1adcadf25591c020f11dfd34beb0c Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Wed, 20 Sep 2006 18:06:34 +0000 Subject: Add sound config dialog. Convert some of the mouse settings to use spin controls. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 636 --- setup/Makefile.am | 1 + setup/mainmenu.c | 5 ++++ setup/mouse.c | 6 ++--- setup/sound.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 setup/sound.c diff --git a/setup/Makefile.am b/setup/Makefile.am index cb01df69..b3af951f 100644 --- a/setup/Makefile.am +++ b/setup/Makefile.am @@ -11,6 +11,7 @@ chocolate_setup_SOURCES = \ display.c \ mouse.c \ multiplayer.c \ + sound.c \ txt_keyinput.c txt_keyinput.h \ txt_mouseinput.c txt_mouseinput.h diff --git a/setup/mainmenu.c b/setup/mainmenu.c index e73a8eb2..0d02a19b 100644 --- a/setup/mainmenu.c +++ b/setup/mainmenu.c @@ -68,6 +68,7 @@ void QuitConfirm(void *unused1, void *unused2) extern void ConfigDisplay(); extern void ConfigKeyboard(); extern void ConfigMouse(); +extern void ConfigSound(); extern void StartMultiGame(); extern void MultiplayerConfig(); @@ -91,6 +92,10 @@ void MainMenu(void) TXT_AddWidget(window, button); TXT_SignalConnect(button, "pressed", ConfigMouse, NULL); + button = TXT_NewButton("Configure sound"); + TXT_AddWidget(window, button); + TXT_SignalConnect(button, "pressed", ConfigSound, NULL); + TXT_AddWidget(window, TXT_NewButton("Save parameters and launch DOOM")); TXT_AddWidget(window, TXT_NewStrut(0, 1)); diff --git a/setup/mouse.c b/setup/mouse.c index 86a5ad74..b8eeaff6 100644 --- a/setup/mouse.c +++ b/setup/mouse.c @@ -90,11 +90,11 @@ void ConfigMouse(void) TXT_SetColumnWidths(table, 25, 10); TXT_AddWidget(table, TXT_NewLabel("Speed")); - TXT_AddWidget(table, TXT_NewIntInputBox(&speed, 8)); + TXT_AddWidget(table, TXT_NewSpinControl(&speed, 1, 256)); TXT_AddWidget(table, TXT_NewLabel("Acceleration")); - TXT_AddWidget(table, TXT_NewIntInputBox(&accel, 8)); + TXT_AddWidget(table, TXT_NewSpinControl(&accel, 1, 5)); TXT_AddWidget(table, TXT_NewLabel("Acceleration threshold")); - TXT_AddWidget(table, TXT_NewIntInputBox(&threshold, 8)); + TXT_AddWidget(table, TXT_NewSpinControl(&threshold, 0, 32)); TXT_AddWidget(window, table); diff --git a/setup/sound.c b/setup/sound.c new file mode 100644 index 00000000..0e8869d4 --- /dev/null +++ b/setup/sound.c @@ -0,0 +1,79 @@ +// Emacs style mode select -*- C++ -*- +//----------------------------------------------------------------------------- +// +// Copyright(C) 2006 Simon Howard +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. +// + +// Sound control menu + +#include + +#include "textscreen.h" + +int snd_sfxenabled; +int snd_channels = 8; +int sfx_volume = 15; + +int snd_musicenabled; +int music_volume = 15; + +void ConfigSound(void) +{ + txt_window_t *window; + txt_table_t *table; + txt_checkbox_t *checkbox; + txt_spincontrol_t *spincontrol; + + window = TXT_NewWindow("Sound configuration"); + + TXT_AddWidget(window, TXT_NewSeparator("Sound effects")); + + checkbox = TXT_NewCheckBox("Sound effects enabled", &snd_sfxenabled); + TXT_AddWidget(window, checkbox); + + table = TXT_NewTable(2); + TXT_SetColumnWidths(table, 20, 5); + + TXT_AddWidget(table, TXT_NewLabel("Sound channels")); + + spincontrol = TXT_NewSpinControl(&snd_channels, 1, 8); + TXT_AddWidget(table, spincontrol); + + TXT_AddWidget(table, TXT_NewLabel("SFX volume")); + + spincontrol = TXT_NewSpinControl(&sfx_volume, 0, 15); + TXT_AddWidget(table, spincontrol); + + TXT_AddWidget(window, table); + + TXT_AddWidget(window, TXT_NewSeparator("Music")); + + checkbox = TXT_NewCheckBox("Music enabled", &snd_musicenabled); + TXT_AddWidget(window, checkbox); + + table = TXT_NewTable(2); + TXT_SetColumnWidths(table, 20, 5); + + TXT_AddWidget(table, TXT_NewLabel("Music volume")); + + spincontrol = TXT_NewSpinControl(&music_volume, 0, 15); + TXT_AddWidget(table, spincontrol); + + TXT_AddWidget(window, table); +} + -- cgit v1.2.3