mirror of
https://github.com/1dot13/source.git
synced 2026-07-22 13:40:22 +02:00
Delete Win Util.cpp & .h
Not used anywhere in the code.
This commit is contained in:
@@ -1,344 +0,0 @@
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <windowsx.h>
|
||||
#include <mmsystem.h>
|
||||
#include <dsound.h>
|
||||
#include "dsutil.h"
|
||||
#include "debug.h"
|
||||
|
||||
#include "sgp.h"
|
||||
|
||||
#include "Sound Control.h"
|
||||
|
||||
// THIS MODULE IS TEMPORARY - USED FOR OUR SOUND SYSTEM INTIL IT IS IMPLEMENTED FOR THE SGP
|
||||
extern HWND ghWindow;
|
||||
typedef UINT32 EFFECT;
|
||||
|
||||
BOOL DSEnable( HWND hwnd );
|
||||
BOOL DSDisable( void );
|
||||
BOOL SoundLoadEffect( EFFECT sfx );
|
||||
BOOL SoundDestroyEffect( EFFECT sfx );
|
||||
BOOL InitSound( HWND hwndOwner );
|
||||
BOOL SoundPlayEffect( EFFECT sfx );
|
||||
|
||||
|
||||
void EnableQuickSound( )
|
||||
{
|
||||
DSEnable( ghWindow );
|
||||
InitSound( ghWindow );
|
||||
}
|
||||
|
||||
void DisableQuickSound( )
|
||||
{
|
||||
DSDisable( );
|
||||
}
|
||||
|
||||
void PlayQuickSound( INT16 sSound )
|
||||
{
|
||||
SoundPlayEffect( (EFFECT)sSound );
|
||||
}
|
||||
|
||||
#define NUM_SOUND_EFFECTS NUM_SAMPLES
|
||||
|
||||
LPDIRECTSOUND lpDS = NULL;
|
||||
LPDIRECTSOUNDBUFFER lpSoundEffects[NUM_SOUND_EFFECTS];
|
||||
|
||||
|
||||
extern char szSoundEffects[MAX_SAMPLES][255];
|
||||
//char szSoundEffects[NUM_SOUND_EFFECTS][255] =
|
||||
//char szSoundEffects[MAX_SAMPLES][255] =
|
||||
//{
|
||||
// "SHOOT1",
|
||||
// "MISS1",
|
||||
// "FALL1",
|
||||
// "HIT1",
|
||||
// "HIT2",
|
||||
// "DOOROPEN1",
|
||||
// "DOORCLOSE1",
|
||||
// "BURST1",
|
||||
// "ENDTURN"
|
||||
//};
|
||||
|
||||
/*
|
||||
* DSEnable
|
||||
*
|
||||
* Figures out whether or not to use DirectSound, based on an entry
|
||||
* in WIN.INI. Sets a module-level flag and goes about creating the
|
||||
* DirectSound object if necessary. Returns TRUE if successful.
|
||||
*/
|
||||
BOOL DSEnable( HWND hwnd )
|
||||
{
|
||||
HRESULT dsrval;
|
||||
//BOOL bUseDSound;
|
||||
|
||||
if (lpDS != NULL)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
dsrval = DirectSoundCreate(NULL, &lpDS, NULL);
|
||||
|
||||
switch( dsrval )
|
||||
{
|
||||
case DSERR_ALLOCATED:
|
||||
|
||||
break;
|
||||
|
||||
case DSERR_NOAGGREGATION:
|
||||
|
||||
break;
|
||||
|
||||
case DSERR_OUTOFMEMORY:
|
||||
|
||||
break;
|
||||
|
||||
case DSERR_INVALIDPARAM:
|
||||
|
||||
break;
|
||||
|
||||
|
||||
case DSERR_NODRIVER:
|
||||
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
if (dsrval != DS_OK)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
dsrval = IDirectSound_SetCooperativeLevel(lpDS, hwnd, DSSCL_NORMAL);
|
||||
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, "Sound INIT OK");
|
||||
|
||||
if (dsrval != DS_OK)
|
||||
{
|
||||
DSDisable();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
} /* DSEnable */
|
||||
|
||||
|
||||
/*
|
||||
* DSDisable
|
||||
*
|
||||
* Turn off DirectSound
|
||||
*/
|
||||
BOOL DSDisable( void )
|
||||
{
|
||||
if (lpDS == NULL)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
IDirectSound_Release(lpDS);
|
||||
lpDS = NULL;
|
||||
|
||||
return TRUE;
|
||||
|
||||
} /* DSDisable */
|
||||
|
||||
/*
|
||||
* InitSound
|
||||
*
|
||||
* Sets up the DirectSound object and loads all sounds into secondary
|
||||
* DirectSound buffers. Returns FALSE on error, or TRUE if successful
|
||||
*/
|
||||
BOOL InitSound( HWND hwndOwner )
|
||||
{
|
||||
int idx;
|
||||
DSBUFFERDESC dsBD;
|
||||
IDirectSoundBuffer *lpPrimary;
|
||||
|
||||
DSEnable(hwndOwner);
|
||||
|
||||
if (lpDS == NULL)
|
||||
return TRUE;
|
||||
|
||||
/*
|
||||
* Load all sounds -- any that can't load for some reason will have NULL
|
||||
* pointers instead of valid SOUNDEFFECT data, and we will know not to
|
||||
* play them later on.
|
||||
*/
|
||||
for( idx = 0; idx < NUM_SOUND_EFFECTS; idx++ )
|
||||
{
|
||||
if (SoundLoadEffect((EFFECT)idx))
|
||||
{
|
||||
DSBCAPS caps;
|
||||
|
||||
caps.dwSize = sizeof(caps);
|
||||
IDirectSoundBuffer_GetCaps(lpSoundEffects[idx], &caps);
|
||||
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, String("_______SOUND(%d) OK", idx));
|
||||
|
||||
//if (caps.dwFlags & DSBCAPS_LOCHARDWARE)
|
||||
//Msg( "Sound effect %s in hardware", szSoundEffects[idx]);
|
||||
}
|
||||
else
|
||||
{
|
||||
DebugMsg( TOPIC_JA2, DBG_LEVEL_3, String("_______SOUND(%d) BAD", idx));
|
||||
|
||||
//Msg( "cant load sound effect %s", szSoundEffects[idx]);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* get the primary buffer and start it playing
|
||||
*
|
||||
* by playing the primary buffer, DirectSound knows to keep the
|
||||
* mixer active, even though we are not making any noise.
|
||||
*/
|
||||
|
||||
ZeroMemory( &dsBD, sizeof(DSBUFFERDESC) );
|
||||
dsBD.dwSize = sizeof(dsBD);
|
||||
dsBD.dwFlags = DSBCAPS_PRIMARYBUFFER;
|
||||
|
||||
if (SUCCEEDED(IDirectSound_CreateSoundBuffer(lpDS, &dsBD, &lpPrimary, NULL)))
|
||||
{
|
||||
if (!SUCCEEDED(IDirectSoundBuffer_Play(lpPrimary, 0, 0, DSBPLAY_LOOPING)))
|
||||
{
|
||||
//Msg("Unable to play Primary sound buffer");
|
||||
}
|
||||
|
||||
IDirectSoundBuffer_Release(lpPrimary);
|
||||
}
|
||||
else
|
||||
{
|
||||
//Msg("Unable to create Primary sound buffer");
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
} /* InitSound */
|
||||
|
||||
/*
|
||||
* DestroySound
|
||||
*
|
||||
* Undoes everything that was done in a InitSound call
|
||||
*/
|
||||
BOOL DestroySound( void )
|
||||
{
|
||||
DWORD idxKill;
|
||||
|
||||
for( idxKill = 0; idxKill < NUM_SOUND_EFFECTS; idxKill++ )
|
||||
{
|
||||
SoundDestroyEffect( (EFFECT)idxKill );
|
||||
}
|
||||
|
||||
DSDisable();
|
||||
return TRUE;
|
||||
|
||||
} /* DestroySound */
|
||||
|
||||
/*
|
||||
* SoundDestroyEffect
|
||||
*
|
||||
* Frees up resources associated with a sound effect
|
||||
*/
|
||||
BOOL SoundDestroyEffect( EFFECT sfx )
|
||||
{
|
||||
if(lpSoundEffects[sfx])
|
||||
{
|
||||
IDirectSoundBuffer_Release(lpSoundEffects[sfx]);
|
||||
lpSoundEffects[sfx] = NULL;
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
} /* SoundDestryEffect */
|
||||
|
||||
/*
|
||||
* SoundLoadEffect
|
||||
*
|
||||
* Initializes a sound effect by loading the WAV file from a resource
|
||||
*/
|
||||
BOOL SoundLoadEffect( EFFECT sfx )
|
||||
{
|
||||
if (lpDS && lpSoundEffects[sfx] == NULL && *szSoundEffects[sfx])
|
||||
{
|
||||
//
|
||||
// use DSLoadSoundBuffer (in ..\misc\dsutil.c) to load
|
||||
// a sound from a resource.
|
||||
//
|
||||
lpSoundEffects[sfx] = DSLoadSoundBuffer(lpDS, szSoundEffects[sfx]);
|
||||
}
|
||||
|
||||
return lpSoundEffects[sfx] != NULL;
|
||||
|
||||
} /* SoundLoadEffect */
|
||||
|
||||
/*
|
||||
* SoundPlayEffect
|
||||
*
|
||||
* Plays the sound effect specified.
|
||||
* Returns TRUE if succeeded.
|
||||
*/
|
||||
BOOL SoundPlayEffect( EFFECT sfx )
|
||||
{
|
||||
HRESULT dsrval;
|
||||
IDirectSoundBuffer *pdsb = lpSoundEffects[sfx];
|
||||
|
||||
if( !lpDS || !pdsb )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Rewind the play cursor to the start of the effect, and play
|
||||
*/
|
||||
IDirectSoundBuffer_SetCurrentPosition(pdsb, 0);
|
||||
dsrval = IDirectSoundBuffer_Play(pdsb, 0, 0, 0);
|
||||
|
||||
if( dsrval == DS_OK )
|
||||
|
||||
if (dsrval == DSERR_BUFFERLOST)
|
||||
{
|
||||
//Msg("** %s needs restored", szSoundEffects[sfx]);
|
||||
|
||||
dsrval = IDirectSoundBuffer_Restore(pdsb);
|
||||
|
||||
if (dsrval == DS_OK)
|
||||
{
|
||||
if (DSReloadSoundBuffer(pdsb, szSoundEffects[sfx]))
|
||||
{
|
||||
//Msg("** %s has been restored", szSoundEffects[sfx]);
|
||||
IDirectSoundBuffer_SetCurrentPosition(pdsb, 0);
|
||||
dsrval = IDirectSoundBuffer_Play(pdsb, 0, 0, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
dsrval = E_FAIL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return (dsrval == DS_OK);
|
||||
|
||||
} /* SoundPlayEffect */
|
||||
|
||||
/*
|
||||
* SoundStopEffect
|
||||
*
|
||||
* Stops the sound effect specified.
|
||||
* Returns TRUE if succeeded.
|
||||
*/
|
||||
BOOL SoundStopEffect( EFFECT sfx )
|
||||
{
|
||||
HRESULT dsrval;
|
||||
|
||||
if( !lpDS || !lpSoundEffects[sfx] )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
dsrval = IDirectSoundBuffer_Stop(lpSoundEffects[sfx]);
|
||||
|
||||
return SUCCEEDED(dsrval);
|
||||
|
||||
} /* SoundStopEffect */
|
||||
@@ -1,12 +0,0 @@
|
||||
#ifndef __WIN_UTIL_H
|
||||
#define __WIN_UTIL_H
|
||||
|
||||
|
||||
void SetThreadToHighestPriority( );
|
||||
|
||||
void EnableQuickSound( );
|
||||
void DisableQuickSound( );
|
||||
void PlayQuickSound( INT16 sSound );
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user