foxygit / doom Log in
commit a34de2cb06e1adcadf25591c020f11dfd34beb0c
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Wed Sep 20 18:06:34 2006 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Wed Sep 20 18:06:34 2006 +0000

    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(-)

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 <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);
+}
+