summaryrefslogtreecommitdiff
path: root/engine/audio/public/sound.h
diff options
context:
space:
mode:
Diffstat (limited to 'engine/audio/public/sound.h')
-rw-r--r--engine/audio/public/sound.h150
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