projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added using callback function when sound channel is finished
[rocksndiamonds.git]
/
src
/
libgame
/
sound.c
diff --git
a/src/libgame/sound.c
b/src/libgame/sound.c
index 177992d74199a28c248609c20f14153570788f80..f911d2388bf854c9cc372d59d4e64debd6882aaa 100644
(file)
--- a/
src/libgame/sound.c
+++ b/
src/libgame/sound.c
@@
-141,6
+141,15
@@
static MusicInfo *getMusicInfoEntryFromMusicID(int);
// mixer functions
// ----------------------------------------------------------------------------
// mixer functions
// ----------------------------------------------------------------------------
+static void Mixer_ChannelFinished(int channel)
+{
+ if (!mixer[channel].active)
+ return;
+
+ mixer[channel].active = FALSE;
+ mixer_active_channels--;
+}
+
void Mixer_InitChannels(void)
{
int i;
void Mixer_InitChannels(void)
{
int i;
@@
-148,6
+157,8
@@
void Mixer_InitChannels(void)
for (i = 0; i < audio.num_channels; i++)
mixer[i].active = FALSE;
mixer_active_channels = 0;
for (i = 0; i < audio.num_channels; i++)
mixer[i].active = FALSE;
mixer_active_channels = 0;
+
+ Mix_ChannelFinished(Mixer_ChannelFinished);
}
static void Mixer_ResetChannelExpiration(int channel)
}
static void Mixer_ResetChannelExpiration(int channel)
@@
-247,13
+258,7
@@
static void Mixer_PlayMusicChannel(void)
static void Mixer_StopChannel(int channel)
{
static void Mixer_StopChannel(int channel)
{
- if (!mixer[channel].active)
- return;
-
Mix_HaltChannel(channel);
Mix_HaltChannel(channel);
-
- mixer[channel].active = FALSE;
- mixer_active_channels--;
}
static void Mixer_StopMusicChannel(void)
}
static void Mixer_StopMusicChannel(void)
@@
-690,6
+695,11
@@
int getMusicListSize(void)
music_info->num_dynamic_file_list_entries);
}
music_info->num_dynamic_file_list_entries);
}
+int getMusicListSize_NoConf(void)
+{
+ return num_music_noconf;
+}
+
struct FileInfo *getSoundListEntry(int pos)
{
int num_sounds = getSoundListSize();
struct FileInfo *getSoundListEntry(int pos)
{
int num_sounds = getSoundListSize();