tBasic libtool support added for sound plugins; the plugins themselves have bee… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 904d7522898cbfcba2d77d450d1bfa16b89f36f7 | |
parent 217c1fe260a46fda3f4ed57b8402bcc753aa9c24 | |
Author: Ben Webb <[email protected]> | |
Date: Mon, 13 May 2002 15:51:20 +0000 | |
Basic libtool support added for sound plugins; the plugins themselves | |
have been moved to the plugins/ subdirectory. | |
Diffstat: | |
A src/plugins/Makefile.am | 6 ++++++ | |
A src/plugins/sound_esd.c | 102 +++++++++++++++++++++++++++++… | |
R src/sound_esd.h -> src/plugins/sou… | 0 | |
A src/plugins/sound_sdl.c | 121 +++++++++++++++++++++++++++++… | |
R src/sound_sdl.h -> src/plugins/sou… | 0 | |
R src/sound_winmm.c -> src/plugins/s… | 0 | |
R src/sound_winmm.h -> src/plugins/s… | 0 | |
D src/sound_esd.c | 102 -----------------------------… | |
D src/sound_sdl.c | 121 -----------------------------… | |
9 files changed, 229 insertions(+), 223 deletions(-) | |
--- | |
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am | |
t@@ -0,0 +1,6 @@ | |
+lib_LTLIBRARIES = libsound_esd.la libsound_sdl.la libsound_winmm.la | |
+libsound_esd_la_SOURCES = sound_esd.c sound_esd.h | |
+libsound_sdl_la_SOURCES = sound_sdl.c sound_sdl.h | |
+libsound_winmm_la_SOURCES = sound_winmm.c sound_winmm.h | |
+LIBS = @SOUND_LIBS@ @GLIB_CFLAGS@ | |
+INCLUDES = @SOUND_CFLAGS@ @GLIB_CFLAGS@ | |
diff --git a/src/plugins/sound_esd.c b/src/plugins/sound_esd.c | |
t@@ -0,0 +1,102 @@ | |
+/************************************************************************ | |
+ * sound_esd.c dopewars sound system (ESD/esound driver) * | |
+ * Copyright (C) 1998-2002 Ben Webb * | |
+ * Email: [email protected] * | |
+ * WWW: http://dopewars.sourceforge.net/ * | |
+ * * | |
+ * 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. * | |
+ ************************************************************************/ | |
+ | |
+#ifdef HAVE_CONFIG_H | |
+#include <config.h> | |
+#endif | |
+ | |
+#ifdef HAVE_ESD | |
+#include <stdio.h> | |
+#include <string.h> | |
+#include <esd.h> | |
+#include <glib.h> | |
+#include "../sound.h" | |
+ | |
+#define MAXCACHE 6 | |
+ | |
+struct SoundCache { | |
+ int esdid; | |
+ gchar *name; | |
+} cache[MAXCACHE]; | |
+ | |
+ | |
+static int sock, nextcache; | |
+ | |
+static gboolean SoundOpen_ESD(void) | |
+{ | |
+ int i; | |
+ | |
+ sock = esd_open_sound(NULL); | |
+ for (i = 0; i < MAXCACHE; i++) { | |
+ cache[i].esdid = -1; | |
+ cache[i].name = NULL; | |
+ } | |
+ nextcache = 0; | |
+ return TRUE; | |
+} | |
+ | |
+static void SoundClose_ESD(void) | |
+{ | |
+ int i; | |
+ | |
+ for (i = 0; i < MAXCACHE; i++) { | |
+ g_free(cache[i].name); | |
+ if (cache[i].esdid != -1) { | |
+ esd_sample_free(sock, cache[i].esdid); | |
+ } | |
+ } | |
+ esd_close(sock); | |
+} | |
+ | |
+static void SoundPlay_ESD(const gchar *snd) | |
+{ | |
+ int i; | |
+ | |
+ for (i = 0; i < MAXCACHE; i++) { | |
+ if (cache[i].name && strcmp(cache[i].name, snd) == 0) { | |
+ esd_sample_play(sock, cache[i].esdid); | |
+ return; | |
+ } | |
+ } | |
+ | |
+ if (cache[nextcache].esdid != -1) { | |
+ esd_sample_free(sock, cache[nextcache].esdid); | |
+ g_free(cache[nextcache].name); | |
+ } | |
+ cache[nextcache].esdid = esd_file_cache(sock, "", snd); | |
+ cache[nextcache].name = g_strdup(snd); | |
+ esd_sample_play(sock, cache[nextcache].esdid); | |
+ nextcache = (nextcache + 1) % MAXCACHE; | |
+} | |
+ | |
+SoundDriver *init(void) | |
+{ | |
+ static SoundDriver driver; | |
+ | |
+ driver.name = "esd"; | |
+ driver.open = SoundOpen_ESD; | |
+ driver.close = SoundClose_ESD; | |
+ driver.play = SoundPlay_ESD; | |
+ return &driver; | |
+} | |
+ | |
+#endif /* HAVE_ESD */ | |
diff --git a/src/sound_esd.h b/src/plugins/sound_esd.h | |
diff --git a/src/plugins/sound_sdl.c b/src/plugins/sound_sdl.c | |
t@@ -0,0 +1,121 @@ | |
+/************************************************************************ | |
+ * sound_sdl.c dopewars sound system (SDL driver) * | |
+ * Copyright (C) 1998-2002 Ben Webb * | |
+ * Email: [email protected] * | |
+ * WWW: http://dopewars.sourceforge.net/ * | |
+ * * | |
+ * 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. * | |
+ ************************************************************************/ | |
+ | |
+#ifdef HAVE_CONFIG_H | |
+#include <config.h> | |
+#endif | |
+ | |
+#ifdef HAVE_SDL_MIXER | |
+#include <stdio.h> | |
+#include <string.h> | |
+#include <SDL.h> | |
+#include <SDL_mixer.h> | |
+#include <glib.h> | |
+#include "../sound.h" | |
+ | |
+struct ChannelStruct { | |
+ Mix_Chunk *chunk; | |
+ gchar *name; | |
+} channel[MIX_CHANNELS]; | |
+ | |
+static gboolean SoundOpen_SDL(void) | |
+{ | |
+ const int audio_rate = MIX_DEFAULT_FREQUENCY; | |
+ const int audio_format = MIX_DEFAULT_FORMAT; | |
+ const int audio_channels = 2; | |
+ int i; | |
+ | |
+ if (SDL_Init(SDL_INIT_AUDIO) < 0) { | |
+ return FALSE; | |
+ } | |
+ | |
+ if (Mix_OpenAudio(audio_rate, audio_format, audio_channels, 4096) < 0) { | |
+ SDL_Quit(); | |
+ return FALSE; | |
+ } | |
+ Mix_AllocateChannels(MIX_CHANNELS); | |
+ | |
+ for (i = 0; i < MIX_CHANNELS; i++) { | |
+ channel[i].chunk = NULL; | |
+ channel[i].name = NULL; | |
+ } | |
+ return TRUE; | |
+} | |
+ | |
+static void SoundClose_SDL(void) | |
+{ | |
+ int i; | |
+ | |
+ for (i = 0; i < MIX_CHANNELS; i++) { | |
+ g_free(channel[i].name); | |
+ if (channel[i].chunk) { | |
+ Mix_FreeChunk(channel[i].chunk); | |
+ } | |
+ } | |
+ Mix_CloseAudio(); | |
+ SDL_Quit(); | |
+} | |
+ | |
+static void SoundPlay_SDL(const gchar *snd) | |
+{ | |
+ int i, chan_num; | |
+ Mix_Chunk *chunk; | |
+ | |
+ for (i = 0; i < MIX_CHANNELS; i++) { | |
+ if (channel[i].name && strcmp(channel[i].name, snd) == 0) { | |
+ Mix_PlayChannel(-1, channel[i].chunk, 0); | |
+ return; | |
+ } | |
+ } | |
+ | |
+ chunk = Mix_LoadWAV(snd); | |
+ if (!chunk) { | |
+ return; | |
+ } | |
+ | |
+ chan_num = Mix_PlayChannel(-1, chunk, 0); | |
+ if (chan_num < 0) { | |
+ Mix_FreeChunk(chunk); | |
+ return; | |
+ } | |
+ | |
+ if (channel[chan_num].chunk) { | |
+ Mix_FreeChunk(channel[chan_num].chunk); | |
+ g_free(channel[chan_num].name); | |
+ } | |
+ | |
+ channel[chan_num].chunk = chunk; | |
+ channel[chan_num].name = g_strdup(snd); | |
+} | |
+ | |
+SoundDriver *init(void) | |
+{ | |
+ static SoundDriver driver; | |
+ | |
+ driver.name = "sdl"; | |
+ driver.open = SoundOpen_SDL; | |
+ driver.close = SoundClose_SDL; | |
+ driver.play = SoundPlay_SDL; | |
+ return &driver; | |
+} | |
+ | |
+#endif /* HAVE_SDL_MIXER */ | |
diff --git a/src/sound_sdl.h b/src/plugins/sound_sdl.h | |
diff --git a/src/sound_winmm.c b/src/plugins/sound_winmm.c | |
diff --git a/src/sound_winmm.h b/src/plugins/sound_winmm.h | |
diff --git a/src/sound_esd.c b/src/sound_esd.c | |
t@@ -1,102 +0,0 @@ | |
-/************************************************************************ | |
- * sound_esd.c dopewars sound system (ESD/esound driver) * | |
- * Copyright (C) 1998-2002 Ben Webb * | |
- * Email: [email protected] * | |
- * WWW: http://dopewars.sourceforge.net/ * | |
- * * | |
- * 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. * | |
- ************************************************************************/ | |
- | |
-#ifdef HAVE_CONFIG_H | |
-#include <config.h> | |
-#endif | |
- | |
-#ifdef HAVE_ESD | |
-#include <stdio.h> | |
-#include <string.h> | |
-#include <esd.h> | |
-#include <glib.h> | |
-#include "sound.h" | |
- | |
-#define MAXCACHE 6 | |
- | |
-struct SoundCache { | |
- int esdid; | |
- gchar *name; | |
-} cache[MAXCACHE]; | |
- | |
- | |
-static int sock, nextcache; | |
- | |
-static gboolean SoundOpen_ESD(void) | |
-{ | |
- int i; | |
- | |
- sock = esd_open_sound(NULL); | |
- for (i = 0; i < MAXCACHE; i++) { | |
- cache[i].esdid = -1; | |
- cache[i].name = NULL; | |
- } | |
- nextcache = 0; | |
- return TRUE; | |
-} | |
- | |
-static void SoundClose_ESD(void) | |
-{ | |
- int i; | |
- | |
- for (i = 0; i < MAXCACHE; i++) { | |
- g_free(cache[i].name); | |
- if (cache[i].esdid != -1) { | |
- esd_sample_free(sock, cache[i].esdid); | |
- } | |
- } | |
- esd_close(sock); | |
-} | |
- | |
-static void SoundPlay_ESD(const gchar *snd) | |
-{ | |
- int i; | |
- | |
- for (i = 0; i < MAXCACHE; i++) { | |
- if (cache[i].name && strcmp(cache[i].name, snd) == 0) { | |
- esd_sample_play(sock, cache[i].esdid); | |
- return; | |
- } | |
- } | |
- | |
- if (cache[nextcache].esdid != -1) { | |
- esd_sample_free(sock, cache[nextcache].esdid); | |
- g_free(cache[nextcache].name); | |
- } | |
- cache[nextcache].esdid = esd_file_cache(sock, "", snd); | |
- cache[nextcache].name = g_strdup(snd); | |
- esd_sample_play(sock, cache[nextcache].esdid); | |
- nextcache = (nextcache + 1) % MAXCACHE; | |
-} | |
- | |
-SoundDriver *init(void) | |
-{ | |
- static SoundDriver driver; | |
- | |
- driver.name = "esd"; | |
- driver.open = SoundOpen_ESD; | |
- driver.close = SoundClose_ESD; | |
- driver.play = SoundPlay_ESD; | |
- return &driver; | |
-} | |
- | |
-#endif /* HAVE_ESD */ | |
diff --git a/src/sound_sdl.c b/src/sound_sdl.c | |
t@@ -1,121 +0,0 @@ | |
-/************************************************************************ | |
- * sound_sdl.c dopewars sound system (SDL driver) * | |
- * Copyright (C) 1998-2002 Ben Webb * | |
- * Email: [email protected] * | |
- * WWW: http://dopewars.sourceforge.net/ * | |
- * * | |
- * 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. * | |
- ************************************************************************/ | |
- | |
-#ifdef HAVE_CONFIG_H | |
-#include <config.h> | |
-#endif | |
- | |
-#ifdef HAVE_SDL_MIXER | |
-#include <stdio.h> | |
-#include <string.h> | |
-#include <SDL.h> | |
-#include <SDL_mixer.h> | |
-#include <glib.h> | |
-#include "sound.h" | |
- | |
-struct ChannelStruct { | |
- Mix_Chunk *chunk; | |
- gchar *name; | |
-} channel[MIX_CHANNELS]; | |
- | |
-static gboolean SoundOpen_SDL(void) | |
-{ | |
- const int audio_rate = MIX_DEFAULT_FREQUENCY; | |
- const int audio_format = MIX_DEFAULT_FORMAT; | |
- const int audio_channels = 2; | |
- int i; | |
- | |
- if (SDL_Init(SDL_INIT_AUDIO) < 0) { | |
- return FALSE; | |
- } | |
- | |
- if (Mix_OpenAudio(audio_rate, audio_format, audio_channels, 4096) < 0) { | |
- SDL_Quit(); | |
- return FALSE; | |
- } | |
- Mix_AllocateChannels(MIX_CHANNELS); | |
- | |
- for (i = 0; i < MIX_CHANNELS; i++) { | |
- channel[i].chunk = NULL; | |
- channel[i].name = NULL; | |
- } | |
- return TRUE; | |
-} | |
- | |
-static void SoundClose_SDL(void) | |
-{ | |
- int i; | |
- | |
- for (i = 0; i < MIX_CHANNELS; i++) { | |
- g_free(channel[i].name); | |
- if (channel[i].chunk) { | |
- Mix_FreeChunk(channel[i].chunk); | |
- } | |
- } | |
- Mix_CloseAudio(); | |
- SDL_Quit(); | |
-} | |
- | |
-static void SoundPlay_SDL(const gchar *snd) | |
-{ | |
- int i, chan_num; | |
- Mix_Chunk *chunk; | |
- | |
- for (i = 0; i < MIX_CHANNELS; i++) { | |
- if (channel[i].name && strcmp(channel[i].name, snd) == 0) { | |
- Mix_PlayChannel(-1, channel[i].chunk, 0); | |
- return; | |
- } | |
- } | |
- | |
- chunk = Mix_LoadWAV(snd); | |
- if (!chunk) { | |
- return; | |
- } | |
- | |
- chan_num = Mix_PlayChannel(-1, chunk, 0); | |
- if (chan_num < 0) { | |
- Mix_FreeChunk(chunk); | |
- return; | |
- } | |
- | |
- if (channel[chan_num].chunk) { | |
- Mix_FreeChunk(channel[chan_num].chunk); | |
- g_free(channel[chan_num].name); | |
- } | |
- | |
- channel[chan_num].chunk = chunk; | |
- channel[chan_num].name = g_strdup(snd); | |
-} | |
- | |
-SoundDriver *init(void) | |
-{ | |
- static SoundDriver driver; | |
- | |
- driver.name = "sdl"; | |
- driver.open = SoundOpen_SDL; | |
- driver.close = SoundClose_SDL; | |
- driver.play = SoundPlay_SDL; | |
- return &driver; | |
-} | |
- | |
-#endif /* HAVE_SDL_MIXER */ |