#include "quakedef.h"
#ifdef _WIN32
-#include "winquake.h"
+#include <windows.h>
+#include <dsound.h>
+extern DWORD gSndBufSize;
+extern LPDIRECTSOUND pDS;
+extern LPDIRECTSOUNDBUFFER pDSBuf;
#endif
#include "ogg.h"
/*
=========
-S_IsCached
+S_GetCached
=========
*/
void S_TouchSound (char *name)
{
S_FindName(name);
+ // TODO: set the "used" flag for this sound
}
+
+/*
+==================
+S_ClearUsed
+
+==================
+*/
+void S_ClearUsed (void)
+{
+ // TODO: reset the "used" flag of all precached sounds
+}
+
+
+/*
+==================
+S_PurgeUnused
+
+==================
+*/
+void S_PurgeUnused (void)
+{
+ // TODO: free all precached sounds without the "used" flag
+}
+
+
/*
==================
S_PrecacheSound
// it is possible to miscount buffers if it has wrapped twice between
// calls to S_Update. Oh well.
-#ifdef __sun__
- soundtime = SNDDMA_GetSamples();
-#else
samplepos = SNDDMA_GetDMAPos();
-
if (samplepos < oldsamplepos)
{
buffers++; // buffer wrapped
oldsamplepos = samplepos;
soundtime = buffers*fullsamples + samplepos/shm->channels;
-#endif
}
void IN_Accumulate (void);
if (pDSBuf)
{
- if (pDSBuf->lpVtbl->GetStatus (pDSBuf, &dwStatus) != DD_OK)
+ if (pDSBuf->lpVtbl->GetStatus (pDSBuf, &dwStatus) != DS_OK)
Con_Printf ("Couldn't get sound buffer status\n");
if (dwStatus & DSBSTATUS_BUFFERLOST)
}
-void S_ClearPrecache (void)
-{
-}
-
-
-void S_BeginPrecaching (void)
-{
-}
-
-
-void S_EndPrecaching (void)
-{
-}
-
-
#define RAWSAMPLESBUFFER 32768
short s_rawsamplesbuffer[RAWSAMPLESBUFFER * 2];
int s_rawsamplesbuffer_start;