+extern unsigned int total_channels;
+extern channel_t channels[MAX_CHANNELS];
+
+extern snd_ringbuffer_t *snd_renderbuffer;
+extern qboolean snd_threaded; // enables use of snd_usethreadedmixing, provided that no sound hacks are in effect (like timedemo)
+extern qboolean snd_usethreadedmixing; // if true, the main thread does not mix sound, soundtime does not advance, and neither does snd_renderbuffer->endframe, instead the audio thread will call S_MixToBuffer as needed
+
+extern cvar_t _snd_mixahead;
+extern cvar_t snd_swapstereo;
+extern cvar_t snd_streaming;
+extern cvar_t snd_streaming_length;
+
+#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