summaryrefslogtreecommitdiff
path: root/engine/audio/private/voice_mixer_controls.h
diff options
context:
space:
mode:
Diffstat (limited to 'engine/audio/private/voice_mixer_controls.h')
-rw-r--r--engine/audio/private/voice_mixer_controls.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/engine/audio/private/voice_mixer_controls.h b/engine/audio/private/voice_mixer_controls.h
new file mode 100644
index 0000000..295ac88
--- /dev/null
+++ b/engine/audio/private/voice_mixer_controls.h
@@ -0,0 +1,47 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef MIXER_CONTROLS_H
+#define MIXER_CONTROLS_H
+#pragma once
+
+
+abstract_class IMixerControls
+{
+
+public:
+ virtual ~IMixerControls() {}
+ enum Control
+ {
+ // Microphone boost is a boolean switch that sound cards support which boosts the input signal by about +20dB.
+ // If this isn't on, the mic is usually way too quiet.
+ MicBoost=0,
+
+ // Volume values are 0-1.
+ MicVolume,
+
+ // Mic playback muting. You usually want this set to false, otherwise the sound card echoes whatever you say into the mic.
+ MicMute,
+
+ NumControls
+ };
+
+ virtual bool GetValue_Float(Control iControl, float &value) = 0;
+ virtual bool SetValue_Float(Control iControl, float value) = 0;
+
+ // Apps like RealJukebox will switch the waveIn input to use CD audio
+ // rather than the microphone. This should be called at startup to set it back.
+ virtual bool SelectMicrophoneForWaveInput() = 0;
+};
+
+extern IMixerControls *g_pMixerControls;
+// Allocates a set of mixer controls.
+void InitMixerControls();
+void ShutdownMixerControls();
+
+
+#endif // MIXER_CONTROLS_H