]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - snd_win.c
revised commandline option comments for better categorization when sorted
[xonotic/darkplaces.git] / snd_win.c
index 9806adaa0b485d595d25b6a44bd29e060bc26967..a66bae5cc935379d0631fe0c6291869bed0df6c1 100644 (file)
--- a/snd_win.c
+++ b/snd_win.c
@@ -194,19 +194,20 @@ sndinitstat SNDDMA_InitDirect (void)
        int i;
 
        memset((void *)shm, 0, sizeof(*shm));
-       shm->channels = 2;
-       shm->samplebits = 16;
-       i = COM_CheckParm ("-sndspeed"); // LordHavoc: -sndspeed option
+       shm->format.channels = 2;
+       shm->format.width = 2;
+// COMMANDLINEOPTION: Windows Sound: -sndspeed <hz> chooses 44100 hz, 22100 hz, or 11025 hz sound output rate
+       i = COM_CheckParm ("-sndspeed");
        if (i && i != (com_argc - 1))
-               shm->speed = atoi(com_argv[i+1]);
+               shm->format.speed = atoi(com_argv[i+1]);
        else
-               shm->speed = 44100;
+               shm->format.speed = 44100;
 
        memset (&format, 0, sizeof(format));
        format.wFormatTag = WAVE_FORMAT_PCM;
-    format.nChannels = shm->channels;
-    format.wBitsPerSample = shm->samplebits;
-    format.nSamplesPerSec = shm->speed;
+    format.nChannels = shm->format.channels;
+    format.wBitsPerSample = shm->format.width * 8;
+    format.nSamplesPerSec = shm->format.speed;
     format.nBlockAlign = format.nChannels * format.wBitsPerSample / 8;
     format.cbSize = 0;
     format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign;
@@ -282,6 +283,7 @@ sndinitstat SNDDMA_InitDirect (void)
        dsbcaps.dwSize = sizeof(dsbcaps);
        primary_format_set = false;
 
+// COMMANDLINEOPTION: Windows DirectSound: -snoforceformat uses the format that DirectSound returns, rather than forcing it
        if (!COM_CheckParm ("-snoforceformat"))
        {
                if (DS_OK == pDS->lpVtbl->CreateSoundBuffer(pDS, &dsbuf, &pDSPBuf, NULL))
@@ -303,6 +305,7 @@ sndinitstat SNDDMA_InitDirect (void)
                }
        }
 
+// COMMANDLINEOPTION: Windows DirectSound: -primarysound locks the sound hardware for exclusive use
        if (!primary_format_set || !COM_CheckParm ("-primarysound"))
        {
        // create the secondary buffer we'll actually work with
@@ -322,9 +325,9 @@ sndinitstat SNDDMA_InitDirect (void)
                        return SIS_FAILURE;
                }
 
-               shm->channels = format.nChannels;
-               shm->samplebits = format.wBitsPerSample;
-               shm->speed = format.nSamplesPerSec;
+               shm->format.channels = format.nChannels;
+               shm->format.width = format.wBitsPerSample / 8;
+               shm->format.speed = format.nSamplesPerSec;
 
                if (DS_OK != pDSBuf->lpVtbl->GetCaps (pDSBuf, &dsbcaps))
                {
@@ -362,7 +365,7 @@ sndinitstat SNDDMA_InitDirect (void)
                Con_SafePrintf("   %d channel(s)\n"
                               "   %d bits/sample\n"
                                           "   %d samples/sec\n",
-                                          shm->channels, shm->samplebits, shm->speed);
+                                          shm->format.channels, shm->format.width * 8, shm->format.speed);
 
        gSndBufSize = dsbcaps.dwBufferBytes;
 
@@ -398,10 +401,10 @@ sndinitstat SNDDMA_InitDirect (void)
        pDSBuf->lpVtbl->GetCurrentPosition(pDSBuf, &mmstarttime.u.sample, &dwWrite);
        pDSBuf->lpVtbl->Play(pDSBuf, 0, 0, DSBPLAY_LOOPING);
 
-       shm->samples = gSndBufSize/(shm->samplebits/8);
+       shm->samples = gSndBufSize / shm->format.width;
        shm->samplepos = 0;
        shm->buffer = (unsigned char *) lpData;
-       sample16 = (shm->samplebits/8) - 1;
+       sample16 = shm->format.width - 1;
 
        dsound_init = true;
 
@@ -426,19 +429,20 @@ qboolean SNDDMA_InitWav (void)
        snd_completed = 0;
 
        memset((void *)shm, 0, sizeof(*shm));
-       shm->channels = 2;
-       shm->samplebits = 16;
+       shm->format.channels = 2;
+       shm->format.width = 2;
+// COMMANDLINEOPTION: Windows Sound: -sndspeed <hz> chooses 44100 hz, 22100 hz, or 11025 hz sound output rate
        i = COM_CheckParm ("-sndspeed"); // LordHavoc: -sndspeed option
        if (i && i != (com_argc - 1))
-               shm->speed = atoi(com_argv[i+1]);
+               shm->format.speed = atoi(com_argv[i+1]);
        else
-               shm->speed = 44100;
+               shm->format.speed = 44100;
 
        memset (&format, 0, sizeof(format));
        format.wFormatTag = WAVE_FORMAT_PCM;
-       format.nChannels = shm->channels;
-       format.wBitsPerSample = shm->samplebits;
-       format.nSamplesPerSec = shm->speed;
+       format.nChannels = shm->format.channels;
+       format.wBitsPerSample = shm->format.width * 8;
+       format.nSamplesPerSec = shm->format.speed;
        format.nBlockAlign = format.nChannels
                *format.wBitsPerSample / 8;
        format.cbSize = 0;
@@ -531,10 +535,10 @@ qboolean SNDDMA_InitWav (void)
                }
        }
 
-       shm->samples = gSndBufSize/(shm->samplebits/8);
+       shm->samples = gSndBufSize / shm->format.width;
        shm->samplepos = 0;
        shm->buffer = (unsigned char *) lpData;
-       sample16 = (shm->samplebits/8) - 1;
+       sample16 = shm->format.width - 1;
 
        wav_init = true;
 
@@ -554,6 +558,7 @@ qboolean SNDDMA_Init(void)
 {
        sndinitstat     stat;
 
+// COMMANDLINEOPTION: Windows Sound: -wavonly uses wave sound instead of DirectSound
        if (COM_CheckParm ("-wavonly"))
                wavonly = true;
 
@@ -566,7 +571,7 @@ qboolean SNDDMA_Init(void)
        {
                if (snd_firsttime || snd_isdirect)
                {
-                       stat = SNDDMA_InitDirect ();;
+                       stat = SNDDMA_InitDirect ();
 
                        if (stat == SIS_SUCCESS)
                        {