diff options
Diffstat (limited to 'public/soundchars.h')
| -rw-r--r-- | public/soundchars.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/public/soundchars.h b/public/soundchars.h new file mode 100644 index 0000000..cca7779 --- /dev/null +++ b/public/soundchars.h @@ -0,0 +1,68 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef SOUNDCHARS_H +#define SOUNDCHARS_H +#ifdef _WIN32 +#pragma once +#endif + +#define CHAR_STREAM '*' // as one of 1st 2 chars in name, indicates streaming wav data +#define CHAR_USERVOX '?' // as one of 1st 2 chars in name, indicates user realtime voice data +#define CHAR_SENTENCE '!' // as one of 1st 2 chars in name, indicates sentence wav +#define CHAR_DRYMIX '#' // as one of 1st 2 chars in name, indicates wav bypasses dsp fx +#define CHAR_DOPPLER '>' // as one of 1st 2 chars in name, indicates doppler encoded stereo wav: left wav (incomming) and right wav (outgoing). +#define CHAR_DIRECTIONAL '<' // as one of 1st 2 chars in name, indicates stereo wav has direction cone: mix left wav (front facing) with right wav (rear facing) based on soundfacing direction +#define CHAR_DISTVARIANT '^' // as one of 1st 2 chars in name, indicates distance variant encoded stereo wav (left is close, right is far) +#define CHAR_OMNI '@' // as one of 1st 2 chars in name, indicates non-directional wav (default mono or stereo) +#define CHAR_SPATIALSTEREO ')' // as one of 1st 2 chars in name, indicates spatialized stereo wav +#define CHAR_FAST_PITCH '}' // as one of 1st 2 chars in name, forces low quality, non-interpolated pitch shift + +inline bool IsSoundChar(char c) +{ + bool b; + + b = (c == CHAR_STREAM || c == CHAR_USERVOX || c == CHAR_SENTENCE || c == CHAR_DRYMIX || c == CHAR_OMNI ); + b = b || (c == CHAR_DOPPLER || c == CHAR_DIRECTIONAL || c == CHAR_DISTVARIANT || c == CHAR_SPATIALSTEREO || c == CHAR_FAST_PITCH ); + + return b; +} + +// return pointer to first valid character in file name +// by skipping over CHAR_STREAM...CHAR_DRYMIX + +inline char *PSkipSoundChars(const char *pch) +{ + char *pcht = (char *)pch; + + while ( 1 ) + { + if (!IsSoundChar(*pcht)) + break; + pcht++; + } + + return pcht; +} + + +inline bool TestSoundChar(const char *pch, char c) +{ + char *pcht = (char *)pch; + + while ( 1 ) + { + if (!IsSoundChar(*pcht)) + break; + if (*pcht == c) + return true; + pcht++; + } + + return false; +} + +#endif // SOUNDCHARS_H |