#include "sound.h"
-typedef struct
+typedef struct sfxbuffer_s
{
unsigned int length;
unsigned int offset;
- qbyte data[4]; // variable sized
+ unsigned char data[4]; // variable sized
} sfxbuffer_t;
-typedef struct
+typedef struct snd_format_s
{
unsigned int speed;
unsigned int width;
void *fetcher_data; // Per-sfx data for the sound fetching functions
};
-typedef struct
+typedef struct dma_s
{
snd_format_t format;
+ int sampleframes; // frames in buffer (frame = samples for all speakers)
int samples; // mono samples in buffer
int samplepos; // in mono samples
unsigned char *buffer;
int bufferlength; // used only by certain drivers
} dma_t;
-typedef struct
+// maximum supported speakers constant
+#define SND_LISTENERS 8
+
+typedef struct channel_s
{
+ int pad[8];
sfx_t *sfx; // sfx number
+ int pad2[8];
unsigned int flags; // cf CHANNELFLAG_* defines
int master_vol; // 0-255 master volume
- int leftvol; // 0-255 volume
- int rightvol; // 0-255 volume
+ short listener_volume[SND_LISTENERS]; // 0-255 volume per speaker
int end; // end time in global paintsamples
int lastptime; // last time this channel was painted
int pos; // sample position in sfx
void *S_LockBuffer(void);
void S_UnlockBuffer(void);
-extern size_t ResampleSfx (const qbyte *in_data, size_t in_length, const snd_format_t* in_format, qbyte *out_data, const char* sfxname);
+extern size_t ResampleSfx (const unsigned char *in_data, size_t in_length, const snd_format_t* in_format, unsigned char *out_data, const char* sfxname);
// ====================================================================