// freed at level change by S_ServerSounds.
unsigned int flags; // cf SFXFLAG_* defines
- int loopstart; // in sample frames. -1 if not looped
+ unsigned int loopstart; // in sample frames. equals total_length if not looped
unsigned int total_length; // in sample frames
const snd_fetcher_t *fetcher;
void *fetcher_data; // Per-sfx data for the sound fetching functions
int master_vol; // 0-255 master volume
sfx_t *sfx; // sfx number
unsigned int flags; // cf CHANNELFLAG_* defines
- unsigned int end; // end time in global paintsamples
- unsigned int lastptime; // last time this channel was painted
- unsigned int pos; // sample position in sfx
+ int pos; // sample position in sfx, negative values delay the start of the sound playback
int entnum; // to allow overriding a specific sound
int entchannel;
vec3_t origin; // origin of sound effect
// 0 to NUM_AMBIENTS - 1 = water, etc
// NUM_AMBIENTS to NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS - 1 = normal entity sounds
// NUM_AMBIENTS + MAX_DYNAMIC_CHANNELS to total_channels = static sounds
-#define MAX_DYNAMIC_CHANNELS 128
-#define MAX_CHANNELS 516
+#define MAX_DYNAMIC_CHANNELS 512
+#define MAX_CHANNELS 1028
extern unsigned int total_channels;
extern channel_t channels[MAX_CHANNELS];
extern cvar_t snd_swapstereo;
extern cvar_t snd_streaming;
+#define SND_CHANNELLAYOUT_AUTO 0
+#define SND_CHANNELLAYOUT_STANDARD 1
+#define SND_CHANNELLAYOUT_ALSA 2
+extern cvar_t snd_channellayout;
+
+
extern int snd_blocked; // counter. When > 0, we stop submitting sound to the audio device
extern mempool_t *snd_mempool;
// Used for isolating performance in the renderer.
extern qboolean simsound;
-extern qboolean alsaspeakerlayout;
-
// ====================================================================
// Architecture-independent functions