]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - snd_3dras.c
fix screenshot prefix updates on gamedir change
[xonotic/darkplaces.git] / snd_3dras.c
index 30b3c4df9b595d1cc4bbc0ea83fa0785bf495d7a..8b71d2798082b59b00829a0d0632024ff376edca 100644 (file)
@@ -5,11 +5,11 @@
 #include "snd_3dras.h"
 
 cvar_t bgmvolume = {CVAR_SAVE, "bgmvolume", "1", "volume of background music (such as CD music or replacement files such as sound/cdtracks/track002.ogg)"};
+cvar_t mastervolume = {CVAR_SAVE, "mastervolume", "1", "master volume"};
 cvar_t volume = {CVAR_SAVE, "volume", "0.7", "volume of sound effects"};
 cvar_t snd_staticvolume = {CVAR_SAVE, "snd_staticvolume", "1", "volume of ambient sound effects (such as swampy sounds at the start of e1m2)"};
 cvar_t snd_initialized = { CVAR_READONLY, "snd_initialized", "0", "indicates the sound subsystem is active"};
 cvar_t snd_mutewhenidle = {CVAR_SAVE, "snd_mutewhenidle", "1", "whether to disable sound output when game window is inactive"};
-cvar_t snd_streaming = { CVAR_SAVE, "snd_streaming", "1", "enables keeping compressed ogg sound files compressed, decompressing them only as needed, otherwise they will be decompressed completely at load (may use a lot of memory)"};
 static cvar_t snd_precache = {0, "snd_precache", "1", "loads sounds before they are used"};
 
 static dllhandle_t   ras_dll = NULL;
@@ -115,15 +115,13 @@ static dllfunction_t ras_funcs[] =
 };
 static const char* ras_dllname [] =
 {
-       #if defined(WIN64)
-               "3dras64.dll",
-       #elif defined(WIN32)
+#if defined(WIN32)
                "3dras32.dll",
-       #elif defined(MACOSX)
+#elif defined(MACOSX)
                "3dras.dylib",
-       #else
+#else
                "3dras.so",
-       #endif
+#endif
                NULL
 };
 
@@ -268,7 +266,7 @@ static void S_Play_Common (float fvol, float attenuation){
                                i++;
                        }
 
-                       sfx = S_PrecacheSound (name, true, false);
+                       sfx = S_PrecacheSound (name, true, true);
                        if (sfx)
                                S_StartSound (-1, 0, sfx, listener_location, fvol, attenuation);
                }
@@ -370,6 +368,7 @@ void S_Init (void){
                        Con_Printf ("Version %i found\n",ras_version);
                        Cvar_RegisterVariable(&volume);
                        Cvar_RegisterVariable(&bgmvolume);
+                       Cvar_RegisterVariable(&mastervolume);
                        Cvar_RegisterVariable(&snd_staticvolume);
                        Cvar_RegisterVariable(&snd_precache);
 
@@ -686,11 +685,11 @@ int S_LoadSound(sfx_t *sfx, int complain){
        }
        return false;
 }
-sfx_t *S_PrecacheSound (const char *name, qboolean complain, qboolean lock){
+sfx_t *S_PrecacheSound (const char *name, qboolean complain, qboolean serversound){
        sfx_t *sfx;
        if(ras_version>0 && ras_dll){
                #ifdef RAS_PRINT
-               Con_Printf("Called S_PrecacheSound %s, %i, %i\n",name,complain,lock);
+               Con_Printf("Called S_PrecacheSound %s, %i, %i\n",name,complain,serversound);
                #endif
                if (name == NULL || name[0] == 0)
                        return NULL;
@@ -702,12 +701,12 @@ sfx_t *S_PrecacheSound (const char *name, qboolean complain, qboolean lock){
        }
        return NULL;
 }
-void S_ServerSounds (char serversound [][MAX_QPATH], unsigned int numsounds){
+void S_ClearUsed (void){
        sfx_t *prev_s, *now_s;
        unsigned int i;
 
        if(ras_version>0 && ras_dll){
-               Con_Printf("Called S_ServerSounds\n");
+               Con_Printf("Called S_ClearUsed\n");
                for(i=0;i<numsounds;++i){
                        Con_Printf("Loading :'%s'\n",serversound[i]);
                        // Load the ambient sounds
@@ -720,18 +719,12 @@ void S_ServerSounds (char serversound [][MAX_QPATH], unsigned int numsounds){
                                if (now_s->flags & SFXFLAG_SERVERSOUND) now_s->flags &= ~SFXFLAG_SERVERSOUND;
                                sfx_next(&prev_s,&now_s);
                        }
-                       
-                       // Add 1 lock and the SFXFLAG_SERVERSOUND flag to each sfx in "serversound"
-                       for (i = 1; i < numsounds; i++){
-                               now_s = S_FindName (serversound[i]);
-                               if (now_s != NULL)
-                                       now_s->flags |= SFXFLAG_SERVERSOUND;
-                       }
-                       
-                       Free_Unlocked_Sfx();
                }
        }
 }
+void S_PurgeUnused(void){
+       Free_Unlocked_Sfx();
+}
 qboolean S_IsSoundPrecached (const sfx_t *sfx){
        if(ras_version>0 && ras_dll){
                return !sfx->rasptr;
@@ -905,7 +898,7 @@ qboolean S_LocalSound (const char *s){
                Con_Printf("Called S_LocalSound %s\n",s);
                #endif
 
-               sfx = S_PrecacheSound (s, true, false);
+               sfx = S_PrecacheSound (s, true, true);
                if (!sfx)
                {
                        Con_Printf("S_LocalSound: can't precache %s\n", s);
@@ -1008,6 +1001,12 @@ void S_SetChannelVolume (unsigned int ch_ind, float fvol){
        }
 }
 
+float S_GetChannelPosition (unsigned int ch_ind)
+{
+       // FIXME unsupported
+       return -1;
+}
+
 void S_BlockSound (void){
        soundblocked++;
 }
@@ -1029,3 +1028,15 @@ int S_GetSoundChannels (void){
        Con_Printf("So let's assume 2.\n");
        return 2;
 }
+
+/*
+====================
+SndSys_SendKeyEvents
+
+Send keyboard events originating from the sound system (e.g. MIDI)
+====================
+*/
+void SndSys_SendKeyEvents(void)
+{
+       // not supported
+}