#include "quakedef.h"
-#include "ogg.h"
+#include "snd_ogg.h"
/*
((signed char *)sc->data)[i] = ((unsigned char *)data)[i] - 128;
else //if (sc->width == 2) // 16bit
for (i = 0;i < srclength;i++)
- ((short *)sc->data)[i] = LittleShort (((short *)data)[i]);
+ ((short *)sc->data)[i] = ((short *)data)[i];
}
else
{
fracstep <<= 1;
for (i=0 ; i<outcount ; i++)
{
- *out++ = LittleShort (in[srcsample ]);
- *out++ = LittleShort (in[srcsample+1]);
+ *out++ = in[srcsample ];
+ *out++ = in[srcsample+1];
srcsample += fracstep;
}
}
{
for (i=0 ; i<outcount ; i++)
{
- *out++ = LittleShort (in[srcsample ]);
+ *out++ = in[srcsample];
srcsample += fracstep;
}
}
sfxcache_t *sc;
// Load the file
- data = FS_LoadFile(filename, false);
+ data = FS_LoadFile(filename, tempmempool, false);
if (!data)
return NULL;
sc->width = info.width;
sc->stereo = info.channels == 2;
+#if BYTE_ORDER != LITTLE_ENDIAN
+ // We must convert the WAV data from little endian
+ // to the machine endianess before resampling it
+ if (info.width == 2)
+ {
+ int i;
+ short* ptr;
+
+ len = info.samples * info.channels;
+ ptr = (short*)(data + info.dataofs);
+ for (i = 0; i < len; i++)
+ ptr[i] = LittleShort (ptr[i]);
+ }
+#endif
+
ResampleSfx(sc, data + info.dataofs, s->name);
Mem_Free(data);
{
if (modified_name)
strcpy (namebuffer + len - 3, "wav");
- Con_Printf ("Couldn't load %s\n", namebuffer);
+ Con_Printf("Couldn't load %s\n", namebuffer);
}
return NULL;
}
*/
-qbyte *data_p;
-qbyte *iff_end;
-qbyte *last_chunk;
-qbyte *iff_data;
-int iff_chunk_len;
+static qbyte *data_p;
+static qbyte *iff_end;
+static qbyte *last_chunk;
+static qbyte *iff_data;
+static int iff_chunk_len;
short GetLittleShort(void)
{
- short val = 0;
- val = *data_p;
- val = val + (*(data_p+1)<<8);
+ short val;
+
+ val = BuffLittleShort (data_p);
data_p += 2;
+
return val;
}
int GetLittleLong(void)
{
int val = 0;
- val = *data_p;
- val = val + (*(data_p+1)<<8);
- val = val + (*(data_p+2)<<16);
- val = val + (*(data_p+3)<<24);
+
+ val = BuffLittleLong (data_p);
data_p += 4;
+
return val;
}
memcpy (str, data_p, 4);
data_p += 4;
iff_chunk_len = GetLittleLong();
- Con_Printf ("0x%x : %s (%d)\n", (int)(data_p - 4), str, iff_chunk_len);
+ Con_Printf("0x%x : %s (%d)\n", (int)(data_p - 4), str, iff_chunk_len);
data_p += (iff_chunk_len + 1) & ~1;
} while (data_p < iff_end);
}
FindChunk("RIFF");
if (!(data_p && !strncmp(data_p+8, "WAVE", 4)))
{
- Con_Printf("Missing RIFF/WAVE chunks\n");
+ Con_Print("Missing RIFF/WAVE chunks\n");
return info;
}
FindChunk("fmt ");
if (!data_p)
{
- Con_Printf("Missing fmt chunk\n");
+ Con_Print("Missing fmt chunk\n");
return info;
}
data_p += 8;
format = GetLittleShort();
if (format != 1)
{
- Con_Printf("Microsoft PCM format only\n");
+ Con_Print("Microsoft PCM format only\n");
return info;
}
FindChunk("data");
if (!data_p)
{
- Con_Printf("Missing data chunk\n");
+ Con_Print("Missing data chunk\n");
return info;
}