projects
/
rocksndiamonds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
19db00f
)
rnd-20020428-2-src
author
Holger Schemel
<info@artsoft.org>
Sun, 28 Apr 2002 16:37:24 +0000
(18:37 +0200)
committer
Holger Schemel
<info@artsoft.org>
Sat, 30 Aug 2014 08:37:12 +0000
(10:37 +0200)
src/libgame/sound.c
patch
|
blob
|
history
diff --git
a/src/libgame/sound.c
b/src/libgame/sound.c
index 20a1978ee4465d7e108d96c84a90a2cc8bacb9ec..0e90a582ea86c9229d8f34629d3be45bf0caba6a 100644
(file)
--- a/
src/libgame/sound.c
+++ b/
src/libgame/sound.c
@@
-357,8
+357,6
@@
void SoundServer(void)
select(audio.soundserver_pipe[0] + 1,
&sound_fdset, NULL, NULL, &delay) < 1)
{
select(audio.soundserver_pipe[0] + 1,
&sound_fdset, NULL, NULL, &delay) < 1)
{
- void *sample_ptr;
- int sample_size;
int max_sample_size;
int fragment_size = afmt.fragment_size;
int sample_bytes = (afmt.format & AUDIO_FORMAT_U8 ? 1 : 2);
int max_sample_size;
int fragment_size = afmt.fragment_size;
int sample_bytes = (afmt.format & AUDIO_FORMAT_U8 ? 1 : 2);
@@
-374,66
+372,52
@@
void SoundServer(void)
for(i=0; i<MAX_SOUNDS_PLAYING; i++)
{
for(i=0; i<MAX_SOUNDS_PLAYING; i++)
{
+ void *sample_ptr;
+ int sample_len;
+ int sample_pos;
+ int sample_size;
int j;
if (!playlist[i].active)
continue;
int j;
if (!playlist[i].active)
continue;
- /* get pointer and size of the actual sound sample */
- if (playlist[i].format == AUDIO_FORMAT_U8)
- sample_ptr =
- (byte *)playlist[i].data_ptr + playlist[i].playingpos;
- else
- sample_ptr =
- (short *)playlist[i].data_ptr + playlist[i].playingpos;
-
- sample_size = MIN(max_sample_size,
- playlist[i].data_len - playlist[i].playingpos);
+ /* pointer, lenght and actual playing position of sound sample */
+ sample_ptr = playlist[i].data_ptr;
+ sample_len = playlist[i].data_len;
+ sample_pos = playlist[i].playingpos;
+ sample_size = MIN(max_sample_size, sample_len - sample_pos);
playlist[i].playingpos += sample_size;
playlist[i].playingpos += sample_size;
- /* fill the first mixing buffer with original sample */
-#if 1
+ /* copy original sample to first mixing buffer */
if (playlist[i].format == AUDIO_FORMAT_U8)
for (j=0; j<sample_size; j++)
premix_first_buffer[j] =
if (playlist[i].format == AUDIO_FORMAT_U8)
for (j=0; j<sample_size; j++)
premix_first_buffer[j] =
- ((short)(((byte *)sample_ptr)[j] ^ 0x80)) << 8;
- else
+ ((short)(((byte *)sample_ptr)[
sample_pos +
j] ^ 0x80)) << 8;
+ else
/* AUDIO_FORMAT_S16 */
for (j=0; j<sample_size; j++)
for (j=0; j<sample_size; j++)
- premix_first_buffer[j] = ((short *)sample_ptr)[j];
-#else
- memcpy(premix_first_buffer, sample_ptr,
- sample_size * (playlist[i].format == AUDIO_FORMAT_U8 ?
- sizeof(byte) : sizeof(short)));
-#endif
+ premix_first_buffer[j] =
+ ((short *)sample_ptr)[sample_pos + j];
/* are we about to restart a looping sound? */
if (playlist[i].loop && sample_size < max_sample_size)
{
/* are we about to restart a looping sound? */
if (playlist[i].loop && sample_size < max_sample_size)
{
-#if 1
while (sample_size < max_sample_size)
{
int restarted_sample_size =
while (sample_size < max_sample_size)
{
int restarted_sample_size =
- MIN(max_sample_size - sample_size,
playlist[i].data
_len);
+ MIN(max_sample_size - sample_size,
sample
_len);
if (playlist[i].format == AUDIO_FORMAT_U8)
for (j=0; j<restarted_sample_size; j++)
premix_first_buffer[sample_size + j] =
if (playlist[i].format == AUDIO_FORMAT_U8)
for (j=0; j<restarted_sample_size; j++)
premix_first_buffer[sample_size + j] =
- ((short)(((byte *)
playlist[i].data
_ptr)[j] ^ 0x80)) << 8;
+ ((short)(((byte *)
sample
_ptr)[j] ^ 0x80)) << 8;
else
for (j=0; j<restarted_sample_size; j++)
premix_first_buffer[sample_size + j] =
else
for (j=0; j<restarted_sample_size; j++)
premix_first_buffer[sample_size + j] =
- ((short *)
playlist[i].data
_ptr)[j];
+ ((short *)
sample
_ptr)[j];
playlist[i].playingpos = restarted_sample_size;
sample_size += restarted_sample_size;
}
playlist[i].playingpos = restarted_sample_size;
sample_size += restarted_sample_size;
}
-#else
- playlist[i].playingpos = max_sample_size - sample_size;
- memcpy(premix_first_buffer + sample_size * sizeof(short),
- playlist[i].data_ptr,
- (max_sample_size - sample_size) * sizeof(short));
- sample_size = max_sample_size;
-#endif
}
/* decrease volume if sound is fading out */
}
/* decrease volume if sound is fading out */
@@
-1109,7
+1093,6
@@
static SoundInfo *Load_WAV(char *filename)
byte sound_header_buffer[WAV_HEADER_SIZE];
char chunk_name[CHUNK_ID_LEN + 1];
int chunk_size;
byte sound_header_buffer[WAV_HEADER_SIZE];
char chunk_name[CHUNK_ID_LEN + 1];
int chunk_size;
- short *data_ptr;
FILE *file;
int i;
#endif
FILE *file;
int i;
#endif
@@
-1210,24
+1193,7
@@
static SoundInfo *Load_WAV(char *filename)
return NULL;
}
return NULL;
}
- if (0)
- {
- /* convert unsigned 8 bit sample data to signed 16 bit sample data */
-
- data_ptr = checked_malloc(snd_info->data_len * sizeof(short));
-
- for (i=0; i<snd_info->data_len; i++)
- data_ptr[i] = ((short)(((byte *)snd_info->data_ptr)[i] ^ 0x80)) << 8;
-
- free(snd_info->data_ptr);
- snd_info->data_ptr = data_ptr;
-
- snd_info->format = AUDIO_FORMAT_S16;
- }
- else
- {
- snd_info->format = AUDIO_FORMAT_U8;
- }
+ snd_info->format = AUDIO_FORMAT_U8;
#endif /* PLATFORM_UNIX */
#endif /* PLATFORM_UNIX */