static qboolean wavonly;
static qboolean dsound_init;
static qboolean wav_init;
-static qboolean snd_firsttime = true, snd_isdirect, snd_iswave;
static qboolean primary_format_set;
static int snd_sent, snd_completed;
void S_BlockSound (void)
{
// DirectSound takes care of blocking itself
- if (snd_iswave)
+ if (wav_init)
{
snd_blocked++;
void S_UnblockSound (void)
{
// DirectSound takes care of blocking itself
- if (snd_iswave)
+ if (wav_init)
snd_blocked--;
}
if (hInstDS == NULL)
{
- Con_SafePrint("Couldn't load dsound.dll\n");
+ Con_Print("Couldn't load dsound.dll\n");
return SIS_FAILURE;
}
if (!pDirectSoundCreate)
{
- Con_SafePrint("Couldn't get DS proc addr\n");
+ Con_Print("Couldn't get DS proc addr\n");
return SIS_FAILURE;
}
}
{
if (hresult != DSERR_ALLOCATED)
{
- Con_SafePrint("DirectSound create failed\n");
+ Con_Print("DirectSound create failed\n");
return SIS_FAILURE;
}
"Sound not available",
MB_RETRYCANCEL | MB_SETFOREGROUND | MB_ICONEXCLAMATION) != IDRETRY)
{
- Con_SafePrint("DirectSoundCreate failure\n hardware already in use\n");
+ Con_Print("DirectSoundCreate failure\n hardware already in use\n");
return SIS_NOTAVAIL;
}
}
if (DS_OK != pDS->lpVtbl->GetCaps (pDS, &dscaps))
{
- Con_SafePrint("Couldn't get DS caps\n");
+ Con_Print("Couldn't get DS caps\n");
}
if (dscaps.dwFlags & DSCAPS_EMULDRIVER)
{
- Con_SafePrint("No DirectSound driver installed\n");
+ Con_Print("No DirectSound driver installed\n");
FreeSound ();
return SIS_FAILURE;
}
if (DS_OK != pDS->lpVtbl->SetCooperativeLevel (pDS, mainwindow, DSSCL_EXCLUSIVE))
{
- Con_SafePrint("Set coop level failed\n");
+ Con_Print("Set coop level failed\n");
FreeSound ();
return SIS_FAILURE;
}
if (DS_OK != pDSPBuf->lpVtbl->SetFormat (pDSPBuf, &pformat))
{
- if (snd_firsttime)
- Con_SafePrint("Set primary sound buffer format: no\n");
+ Con_Print("Set primary sound buffer format: no\n");
}
else
{
- if (snd_firsttime)
- Con_SafePrint("Set primary sound buffer format: yes\n");
+ Con_Print("Set primary sound buffer format: yes\n");
primary_format_set = true;
}
if (DS_OK != pDS->lpVtbl->CreateSoundBuffer(pDS, &dsbuf, &pDSBuf, NULL))
{
- Con_SafePrint("DS:CreateSoundBuffer Failed\n");
+ Con_Print("DS:CreateSoundBuffer Failed\n");
FreeSound ();
return SIS_FAILURE;
}
if (DS_OK != pDSBuf->lpVtbl->GetCaps (pDSBuf, &dsbcaps))
{
- Con_SafePrint("DS:GetCaps failed\n");
+ Con_Print("DS:GetCaps failed\n");
FreeSound ();
return SIS_FAILURE;
}
- if (snd_firsttime)
- Con_SafePrint("Using secondary sound buffer\n");
+ Con_Print("Using secondary sound buffer\n");
}
else
{
if (DS_OK != pDS->lpVtbl->SetCooperativeLevel (pDS, mainwindow, DSSCL_WRITEPRIMARY))
{
- Con_SafePrint("Set coop level failed\n");
+ Con_Print("Set coop level failed\n");
FreeSound ();
return SIS_FAILURE;
}
}
pDSBuf = pDSPBuf;
- Con_SafePrint("Using primary sound buffer\n");
+ Con_Print("Using primary sound buffer\n");
}
// Make sure mixer is active
pDSBuf->lpVtbl->Play(pDSBuf, 0, 0, DSBPLAY_LOOPING);
- if (snd_firsttime)
- Con_SafePrintf(" %d channel(s)\n"
- " %d bits/sample\n"
- " %d samples/sec\n",
- shm->format.channels, shm->format.width * 8, shm->format.speed);
+ Con_Printf(" %d channel(s)\n"
+ " %d bits/sample\n"
+ " %d samples/sec\n",
+ shm->format.channels, shm->format.width * 8, shm->format.speed);
gSndBufSize = dsbcaps.dwBufferBytes;
{
if (hresult != DSERR_BUFFERLOST)
{
- Con_SafePrint("SNDDMA_InitDirect: DS::Lock Sound Buffer Failed\n");
+ Con_Print("SNDDMA_InitDirect: DS::Lock Sound Buffer Failed\n");
FreeSound ();
return SIS_FAILURE;
}
if (++reps > 10000)
{
- Con_SafePrint("SNDDMA_InitDirect: DS: couldn't restore buffer\n");
+ Con_Print("SNDDMA_InitDirect: DS: couldn't restore buffer\n");
FreeSound ();
return SIS_FAILURE;
}
{
if (hr != MMSYSERR_ALLOCATED)
{
- Con_SafePrint("waveOutOpen failed\n");
+ Con_Print("waveOutOpen failed\n");
return false;
}
"Sound not available",
MB_RETRYCANCEL | MB_SETFOREGROUND | MB_ICONEXCLAMATION) != IDRETRY)
{
- Con_SafePrint("waveOutOpen failure;\n hardware already in use\n");
+ Con_Print("waveOutOpen failure;\n hardware already in use\n");
return false;
}
}
hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, gSndBufSize);
if (!hData)
{
- Con_SafePrint("Sound: Out of memory.\n");
+ Con_Print("Sound: Out of memory.\n");
FreeSound ();
return false;
}
lpData = GlobalLock(hData);
if (!lpData)
{
- Con_SafePrint("Sound: Failed to lock.\n");
+ Con_Print("Sound: Failed to lock.\n");
FreeSound ();
return false;
}
if (hWaveHdr == NULL)
{
- Con_SafePrint("Sound: Failed to Alloc header.\n");
+ Con_Print("Sound: Failed to Alloc header.\n");
FreeSound ();
return false;
}
if (lpWaveHdr == NULL)
{
- Con_SafePrint("Sound: Failed to lock header.\n");
+ Con_Print("Sound: Failed to lock header.\n");
FreeSound ();
return false;
}
if (waveOutPrepareHeader(hWaveOut, lpWaveHdr+i, sizeof(WAVEHDR)) !=
MMSYSERR_NOERROR)
{
- Con_SafePrint("Sound: failed to prepare wave headers\n");
+ Con_Print("Sound: failed to prepare wave headers\n");
FreeSound ();
return false;
}
if (COM_CheckParm ("-wavonly"))
wavonly = true;
- dsound_init = wav_init = 0;
+ dsound_init = false;
+ wav_init = false;
stat = SIS_FAILURE; // assume DirectSound won't initialize
// Init DirectSound
if (!wavonly)
{
- if (snd_firsttime || snd_isdirect)
- {
- stat = SNDDMA_InitDirect ();
+ stat = SNDDMA_InitDirect ();
- if (stat == SIS_SUCCESS)
- {
- snd_isdirect = true;
-
- if (snd_firsttime)
- Con_SafePrint("DirectSound initialized\n");
- }
- else
- {
- snd_isdirect = false;
- Con_SafePrint("DirectSound failed to init\n");
- }
- }
+ if (stat == SIS_SUCCESS)
+ Con_Print("DirectSound initialized\n");
+ else
+ Con_Print("DirectSound failed to init\n");
}
// if DirectSound didn't succeed in initializing, try to initialize
// to have sound)
if (!dsound_init && (stat != SIS_NOTAVAIL))
{
- if (snd_firsttime || snd_iswave)
- {
-
- snd_iswave = SNDDMA_InitWav ();
-
- if (snd_iswave)
- {
- if (snd_firsttime)
- Con_SafePrint("Wave sound initialized\n");
- }
- else
- {
- Con_SafePrint("Wave sound failed to init\n");
- }
- }
+ if (SNDDMA_InitWav ())
+ Con_Print("Wave sound initialized\n");
+ else
+ Con_Print("Wave sound failed to init\n");
}
- snd_firsttime = false;
-
if (!dsound_init && !wav_init)
- return 0;
+ return false;
- return 1;
+ return true;
}
/*
return;
paintpot += (paintedtime - prev_painted) * shm->format.channels * shm->format.width;
+ if (paintpot > WAV_BUFFERS * WAV_BUFFER_SIZE)
+ paintpot = WAV_BUFFERS * WAV_BUFFER_SIZE;
prev_painted = paintedtime;
// submit new sound blocks
if (wResult != MMSYSERR_NOERROR)
{
- Con_SafePrint("Failed to write block to device\n");
+ Con_Print("Failed to write block to device\n");
FreeSound ();
return;
}
FreeSound ();
}
-DWORD dsound_dwSize;
-DWORD dsound_dwSize2;
-DWORD *dsound_pbuf;
-DWORD *dsound_pbuf2;
+
+static DWORD dsound_dwSize;
+static DWORD dsound_dwSize2;
+static DWORD *dsound_pbuf;
+static DWORD *dsound_pbuf2;
+
void *S_LockBuffer(void)
{
int reps;
}
return dsound_pbuf;
}
- else
+ else if (wav_init)
return shm->buffer;
+ else
+ return NULL;
}
void S_UnlockBuffer(void)