ref: a34de2cb06e1adcadf25591c020f11dfd34beb0c
parent: 7768cfde84316dc1181a30eabce731d6089e3cfd
author: Simon Howard <fraggle@gmail.com>
date: Wed Sep 20 14:06:34 EDT 2006
Add sound config dialog. Convert some of the mouse settings to use spin controls. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 636
--- a/setup/Makefile.am
+++ b/setup/Makefile.am
@@ -11,6 +11,7 @@
display.c \
mouse.c \
multiplayer.c \
+ sound.c \
txt_keyinput.c txt_keyinput.h \
txt_mouseinput.c txt_mouseinput.h
--- a/setup/mainmenu.c
+++ b/setup/mainmenu.c
@@ -68,6 +68,7 @@
extern void ConfigDisplay();
extern void ConfigKeyboard();
extern void ConfigMouse();
+extern void ConfigSound();
extern void StartMultiGame();
extern void MultiplayerConfig();
@@ -90,6 +91,10 @@
button = TXT_NewButton("Configure mouse");
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));
--- a/setup/mouse.c
+++ b/setup/mouse.c
@@ -90,11 +90,11 @@
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);
--- /dev/null
+++ b/setup/sound.c
@@ -1,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 <stdlib.h>
+
+#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);
+}
+