summaryrefslogtreecommitdiff
path: root/engine/audio/public/ivoicerecord.h
diff options
context:
space:
mode:
Diffstat (limited to 'engine/audio/public/ivoicerecord.h')
-rw-r--r--engine/audio/public/ivoicerecord.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/engine/audio/public/ivoicerecord.h b/engine/audio/public/ivoicerecord.h
new file mode 100644
index 0000000..9f830ff
--- /dev/null
+++ b/engine/audio/public/ivoicerecord.h
@@ -0,0 +1,40 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef IVOICERECORD_H
+#define IVOICERECORD_H
+#pragma once
+
+
+// This is the voice recording interface. It provides 16-bit signed mono data from
+// a mic at some sample rate.
+abstract_class IVoiceRecord
+{
+protected:
+
+ virtual ~IVoiceRecord() {}
+
+
+public:
+
+ // Use this to delete the object.
+ virtual void Release()=0;
+
+ // Start/stop capturing.
+ virtual bool RecordStart() = 0;
+ virtual void RecordStop() = 0;
+
+ // Idle processing.
+ virtual void Idle()=0;
+
+ // Get the most recent N samples. If nSamplesWanted is less than the number of
+ // available samples, it discards the first samples and gives you the last ones.
+ virtual int GetRecordedData(short *pOut, int nSamplesWanted)=0;
+};
+
+
+#endif // IVOICERECORD_H