diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /engine/audio/public/sound.h | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'engine/audio/public/sound.h')
| -rw-r--r-- | engine/audio/public/sound.h | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/engine/audio/public/sound.h b/engine/audio/public/sound.h new file mode 100644 index 0000000..64b4f9d --- /dev/null +++ b/engine/audio/public/sound.h @@ -0,0 +1,150 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: client sound i/o functions +// +//===========================================================================// +#ifndef SOUND_H +#define SOUND_H +#ifdef _WIN32 +#pragma once +#endif + +#include "basetypes.h" +#include "datamap.h" +#include "mathlib/vector.h" +#include "mathlib/mathlib.h" +#include "tier1/strtools.h" +#include "soundflags.h" +#include "utlvector.h" +#include "engine/SndInfo.h" + +#define MAX_SFX 2048 + +#define AUDIOSOURCE_CACHE_ROOTDIR "maps/soundcache" + +class CSfxTable; +enum soundlevel_t; +struct SoundInfo_t; +struct AudioState_t; +class IFileList; + +void S_Init (void); +void S_Shutdown (void); +bool S_IsInitted(); + +void S_StopAllSounds(bool clear); +void S_Update( const AudioState_t *pAudioState ); +void S_ExtraUpdate (void); +void S_ClearBuffer (void); +void S_BlockSound (void); +void S_UnblockSound (void); +float S_GetMasterVolume( void ); +void S_SoundFade( float percent, float holdtime, float intime, float outtime ); +void S_OnLoadScreen(bool value); +void S_EnableThreadedMixing( bool bEnable ); +void S_EnableMusic( bool bEnable ); + +struct StartSoundParams_t +{ + StartSoundParams_t() : + staticsound( false ), + userdata( 0 ), + soundsource( 0 ), + entchannel( CHAN_AUTO ), + pSfx( 0 ), + bUpdatePositions( true ), + fvol( 1.0f ), + soundlevel( SNDLVL_NORM ), + flags( SND_NOFLAGS ), + pitch( PITCH_NORM ), + specialdsp( 0 ), + fromserver( false ), + delay( 0.0f ), + speakerentity( -1 ), + suppressrecording( false ), + initialStreamPosition( 0 ) + { + origin.Init(); + direction.Init(); + } + + bool staticsound; + int userdata; + int soundsource; + int entchannel; + CSfxTable *pSfx; + Vector origin; + Vector direction; + bool bUpdatePositions; + float fvol; + soundlevel_t soundlevel; + int flags; + int pitch; + int specialdsp; + bool fromserver; + float delay; + int speakerentity; + bool suppressrecording; + int initialStreamPosition; +}; + +int S_StartSound( StartSoundParams_t& params ); +void S_StopSound ( int entnum, int entchannel ); +enum clocksync_index_t +{ + CLOCK_SYNC_CLIENT = 0, + CLOCK_SYNC_SERVER, + NUM_CLOCK_SYNCS +}; + +extern float S_ComputeDelayForSoundtime( float soundtime, clocksync_index_t syncIndex ); + +void S_StopSoundByGuid( int guid ); +float S_SoundDurationByGuid( int guid ); +int S_GetGuidForLastSoundEmitted(); +bool S_IsSoundStillPlaying( int guid ); +void S_GetActiveSounds( CUtlVector< SndInfo_t >& sndlist ); +void S_SetVolumeByGuid( int guid, float fvol ); +float S_GetElapsedTimeByGuid( int guid ); +bool S_IsLoopingSoundByGuid( int guid ); +void S_ReloadSound( const char *pSample ); +float S_GetMono16Samples( const char *pszName, CUtlVector< short >& sampleList ); + +CSfxTable *S_DummySfx( const char *name ); +CSfxTable *S_PrecacheSound (const char *sample ); +void S_PrefetchSound( char const *name, bool bPlayOnce ); +void S_MarkUISound( CSfxTable *pSfx ); +void S_ReloadFilesInList( IFileList *pFilesToReload ); + +vec_t S_GetNominalClipDist(); + +extern bool TestSoundChar(const char *pch, char c); +extern char *PSkipSoundChars(const char *pch); + +#include "soundchars.h" + +// for recording movies +void SND_MovieStart( void ); +void SND_MovieEnd( void ); + +//------------------------------------- + +int S_GetCurrentStaticSounds( SoundInfo_t *pResult, int nSizeResult, int entchannel ); + +//----------------------------------------------------------------------------- + +float S_GetGainFromSoundLevel( soundlevel_t soundlevel, vec_t dist ); + +struct musicsave_t +{ + DECLARE_SIMPLE_DATADESC(); + + char songname[ 128 ]; + int sampleposition; + short master_volume; +}; + +void S_GetCurrentlyPlayingMusic( CUtlVector< musicsave_t >& list ); +void S_RestartSong( const musicsave_t *song ); + +#endif // SOUND_H |