From 2b405405dcb38fee48f924cc54213a3bb3094c46 Mon Sep 17 00:00:00 2001 From: Yamagi Burmeister Date: Thu, 14 Oct 2010 06:08:10 +0000 Subject: [PATCH] - Formatiere neu - Vereinfache Code --- src/client/sound/snd_mem.c | 196 +++++++++++++++++++++---------------- 1 file changed, 111 insertions(+), 85 deletions(-) diff --git a/src/client/sound/snd_mem.c b/src/client/sound/snd_mem.c index 19832f30..9bcdb6b8 100644 --- a/src/client/sound/snd_mem.c +++ b/src/client/sound/snd_mem.c @@ -19,10 +19,8 @@ * * ======================================================================= * - * The sound caching. This files manages a double linked list (a circle - * buffer) which caches the sound samples and provides their memory - * adresses to the low level sound backend. It also implements the WAV - * fileformat and functions for loading the samples into the list. + * The sound caching. This file contains support functions for loading + * the sound samples into the memory. * * ======================================================================= */ @@ -30,141 +28,169 @@ #include "../header/client.h" #include "header/local.h" -void ResampleSfx (sfx_t *sfx, int inrate, int inwidth, byte *data) { - int outcount; - int srcsample; - float stepscale; - int i; - int sample; +void +ResampleSfx ( sfx_t *sfx, int inrate, int inwidth, byte *data ) +{ + int outcount; + int srcsample; + float stepscale; + int i; + int sample; unsigned int samplefrac, fracstep; - sfxcache_t *sc; + sfxcache_t *sc; sc = sfx->cache; - if (!sc) - return; - - stepscale = (float)inrate / dma.speed; /* this is usually 0.5, 1, or 2 */ - - outcount = (int)(sc->length / stepscale); - - if (outcount == 0) + if ( !sc ) { - Com_Printf ("ResampleSfx: Invalid sound file '%s' (zero length)\n", sfx->name); - Z_Free (sfx->cache); + return; + } + + stepscale = (float) inrate / dma.speed; /* this is usually 0.5, 1, or 2 */ + + outcount = (int) ( sc->length / stepscale ); + + if ( outcount == 0 ) + { + Com_Printf( "ResampleSfx: Invalid sound file '%s' (zero length)\n", sfx->name ); + Z_Free( sfx->cache ); sfx->cache = NULL; return; - } + } sc->length = outcount; - if (sc->loopstart != -1) - sc->loopstart = (int)(sc->loopstart / stepscale); + if ( sc->loopstart != -1 ) + { + sc->loopstart = (int) ( sc->loopstart / stepscale ); + } sc->speed = dma.speed; - if (s_loadas8bit->value) + if ( s_loadas8bit->value ) + { sc->width = 1; + } else + { sc->width = inwidth; + } sc->stereo = 0; /* resample / decimate to the current source rate */ - if (stepscale == 1 && inwidth == 1 && sc->width == 1) { - /* fast special case */ - for (i=0 ; idata)[i] - = (int)( (unsigned char)(data[i]) - 128); + samplefrac = 0; + fracstep = (int) ( stepscale * 256 ); - } else { - /* general case */ - samplefrac = 0; - fracstep = (int)(stepscale*256); + for ( i = 0; i < outcount; i++ ) + { + srcsample = samplefrac >> 8; + samplefrac += fracstep; - for (i=0 ; i> 8; - samplefrac += fracstep; + if ( inwidth == 2 ) + { + sample = LittleShort( ( (short *) data ) [ srcsample ] ); + } - if (inwidth == 2) - sample = LittleShort ( ((short *)data)[srcsample] ); + else + { + sample = (int) ( (unsigned char) ( data [ srcsample ] ) - 128 ) << 8; + } - else - sample = (int)( (unsigned char)(data[srcsample]) - 128) << 8; + if ( sc->width == 2 ) + { + ( (short *) sc->data ) [ i ] = sample; + } - if (sc->width == 2) - ((short *)sc->data)[i] = sample; - - else - ((signed char *)sc->data)[i] = sample >> 8; + else + { + ( (signed char *) sc->data ) [ i ] = sample >> 8; } } } -sfxcache_t *S_LoadSound (sfx_t *s) { - char namebuffer[MAX_QPATH]; - byte *data; - wavinfo_t info; - int len; - float stepscale; - sfxcache_t *sc; - int size; - char *name; +sfxcache_t * +S_LoadSound ( sfx_t *s ) +{ + char namebuffer [ MAX_QPATH ]; + byte *data; + wavinfo_t info; + int len; + float stepscale; + sfxcache_t *sc; + int size; + char *name; - if (s->name[0] == '*') - return NULL; + if ( s->name [ 0 ] == '*' ) + { + return ( NULL ); + } /* see if still in memory */ sc = s->cache; - if (sc) - return sc; + if ( sc ) + { + return ( sc ); + } /* load it in */ - if (s->truename) + if ( s->truename ) + { name = s->truename; + } else + { name = s->name; + } - if (name[0] == '#') - strcpy(namebuffer, &name[1]); + if ( name [ 0 ] == '#' ) + { + strcpy( namebuffer, &name [ 1 ] ); + } else - Com_sprintf (namebuffer, sizeof(namebuffer), "sound/%s", name); + { + Com_sprintf( namebuffer, sizeof ( namebuffer ), "sound/%s", name ); + } - size = FS_LoadFile (namebuffer, (void **)&data); + size = FS_LoadFile( namebuffer, (void **) &data ); - if (!data) { + if ( !data ) + { s->cache = NULL; - Com_DPrintf ("Couldn't load %s\n", namebuffer); - return NULL; + Com_DPrintf( "Couldn't load %s\n", namebuffer ); + return ( NULL ); } - info = GetWavinfo (s->name, data, size); + info = GetWavinfo( s->name, data, size ); - if (info.channels != 1) { - Com_Printf ("%s is a stereo sample\n",s->name); - FS_FreeFile (data); - return NULL; + if ( info.channels != 1 ) + { + Com_Printf( "%s is a stereo sample\n", s->name ); + FS_FreeFile( data ); + return ( NULL ); } - stepscale = (float)info.rate / dma.speed; - len = (int)(info.samples / stepscale); + stepscale = (float) info.rate / dma.speed; + len = (int) ( info.samples / stepscale ); - if (info.samples == 0 || len == 0) { - Com_Printf ("WARNING: Zero length sound encountered: %s\n", s->name); - FS_FreeFile (data); - return NULL; + if ( ( info.samples == 0 ) || ( len == 0 ) ) + { + Com_Printf( "WARNING: Zero length sound encountered: %s\n", s->name ); + FS_FreeFile( data ); + return ( NULL ); } len = len * info.width * info.channels; - sc = s->cache = Z_Malloc (len + sizeof(sfxcache_t)); + sc = s->cache = Z_Malloc( len + sizeof ( sfxcache_t ) ); - if (!sc) { - FS_FreeFile (data); - return NULL; + if ( !sc ) + { + FS_FreeFile( data ); + return ( NULL ); } sc->length = info.samples; @@ -173,10 +199,10 @@ sfxcache_t *S_LoadSound (sfx_t *s) { sc->width = info.width; sc->stereo = info.channels; - ResampleSfx (s, sc->speed, sc->width, data + info.dataofs); + ResampleSfx( s, sc->speed, sc->width, data + info.dataofs ); - FS_FreeFile (data); + FS_FreeFile( data ); - return sc; + return ( sc ); }