summaryrefslogtreecommitdiff
path: root/engine/audio/private/snd_dev_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'engine/audio/private/snd_dev_common.h')
-rw-r--r--engine/audio/private/snd_dev_common.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/engine/audio/private/snd_dev_common.h b/engine/audio/private/snd_dev_common.h
new file mode 100644
index 0000000..45c2ee3
--- /dev/null
+++ b/engine/audio/private/snd_dev_common.h
@@ -0,0 +1,59 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Device Common Routines
+//
+//=====================================================================================//
+
+#ifndef SND_DEV_COMMON_H
+#define SND_DEV_COMMON_H
+#pragma once
+
+class CAudioDeviceBase : public IAudioDevice
+{
+public:
+ virtual bool IsActive( void ) { return false; }
+ virtual bool Init( void ) { return false; }
+ virtual void Shutdown( void ) {}
+ virtual void Pause( void ) {}
+ virtual void UnPause( void ) {}
+ virtual float MixDryVolume( void ) { return 0; }
+ virtual bool Should3DMix( void ) { return m_bSurround; }
+ virtual void StopAllSounds( void ) {}
+
+ virtual int PaintBegin( float, int soundtime, int paintedtime ) { return 0; }
+ virtual void PaintEnd( void ) {}
+
+ virtual void SpatializeChannel( int volume[CCHANVOLUMES/2], int master_vol, const Vector& sourceDir, float gain, float mono );
+ virtual void ApplyDSPEffects( int idsp, portable_samplepair_t *pbuffront, portable_samplepair_t *pbufrear, portable_samplepair_t *pbufcenter, int samplecount );
+ virtual int GetOutputPosition( void ) { return 0; }
+ virtual void ClearBuffer( void ) {}
+ virtual void UpdateListener( const Vector& position, const Vector& forward, const Vector& right, const Vector& up ) {}
+
+ virtual void MixBegin( int sampleCount );
+ virtual void MixUpsample( int sampleCount, int filtertype );
+
+ virtual void Mix8Mono( channel_t *pChannel, char *pData, int outputOffset, int inputOffset, fixedint rateScaleFix, int outCount, int timecompress );
+ virtual void Mix8Stereo( channel_t *pChannel, char *pData, int outputOffset, int inputOffset, fixedint rateScaleFix, int outCount, int timecompress );
+ virtual void Mix16Mono( channel_t *pChannel, short *pData, int outputOffset, int inputOffset, fixedint rateScaleFix, int outCount, int timecompress );
+ virtual void Mix16Stereo( channel_t *pChannel, short *pData, int outputOffset, int inputOffset, fixedint rateScaleFix, int outCount, int timecompress );
+
+ virtual void ChannelReset( int entnum, int channelIndex, float distanceMod ) {}
+ virtual void TransferSamples( int end ) {}
+
+ virtual const char *DeviceName( void ) { return NULL; }
+ virtual int DeviceChannels( void ) { return 0; }
+ virtual int DeviceSampleBits( void ) { return 0; }
+ virtual int DeviceSampleBytes( void ) { return 0; }
+ virtual int DeviceDmaSpeed( void ) { return 1; }
+ virtual int DeviceSampleCount( void ) { return 0; }
+
+ virtual bool IsSurround( void ) { return m_bSurround; }
+ virtual bool IsSurroundCenter( void ) { return m_bSurroundCenter; }
+ virtual bool IsHeadphone( void ) { return m_bHeadphone; }
+
+ bool m_bSurround;
+ bool m_bSurroundCenter;
+ bool m_bHeadphone;
+};
+
+#endif // SND_DEV_COMMON_H