summaryrefslogtreecommitdiffstats
path: root/WhisperNet/Internal/sCaptureDevice.cs
diff options
context:
space:
mode:
authorKonstantin <const@const.me>2023-01-16 14:52:43 +0100
committerKonstantin <const@const.me>2023-01-16 14:52:43 +0100
commit8c4603c73675958efc960fbd4bb599a2909d106a (patch)
tree714dc6fc9a1672d5fd7f89676b97e10959662abc /WhisperNet/Internal/sCaptureDevice.cs
parent990a8d0dbaefc996244097397259e92758b15cce (diff)
Source codes
Diffstat (limited to 'WhisperNet/Internal/sCaptureDevice.cs')
-rw-r--r--WhisperNet/Internal/sCaptureDevice.cs22
1 files changed, 22 insertions, 0 deletions
diff --git a/WhisperNet/Internal/sCaptureDevice.cs b/WhisperNet/Internal/sCaptureDevice.cs
new file mode 100644
index 0000000..e2d524d
--- /dev/null
+++ b/WhisperNet/Internal/sCaptureDevice.cs
@@ -0,0 +1,22 @@
+#pragma warning disable CS0649 // Field is never assigned to
+using System.Runtime.InteropServices;
+
+namespace Whisper.Internal
+{
+ /// <summary>Identifiers for an audio capture device</summary>
+ public struct sCaptureDevice
+ {
+ readonly IntPtr m_displayName;
+ /// <summary>The display name is suitable for showing to the user, but might not be unique.</summary>
+ public string? displayName => Marshal.PtrToStringUni( m_displayName );
+
+ readonly IntPtr m_endpoint;
+ /// <summary>Endpoint ID for an audio capture device.<br/>
+ /// It uniquely identifies the device on the system, but is not a readable string.</summary>
+ public string? endpoint => Marshal.PtrToStringUni( m_endpoint );
+ }
+
+ /// <summary>Function pointer to consume a list of audio capture device IDs</summary>
+ [UnmanagedFunctionPointer( CallingConvention.StdCall )]
+ public delegate int pfnFoundCaptureDevices( int len, [In, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] sCaptureDevice[]? arr, IntPtr pv );
+} \ No newline at end of file