EHS
Loading...
Searching...
No Matches
AudioDevice_W32.h
Go to the documentation of this file.
1#pragma once
2
3#include "ehs/EHS.h"
4#include "BaseAudioDevice.h"
5
6#include <initguid.h>
7#include <mmdeviceapi.h>
8#include <functiondiscoverykeys_devpkey.h>
9#include <Audioclient.h>
10
11struct IMMDevice;
12
13namespace ehs
14{
15 class EHS_LIB_IO AudioDevice final : public BaseAudioDevice
16 {
17 private:
18 IMMDevice* hdl;
19 IAudioClient* client;
20 IAudioRenderClient* playbackClient;
21 IAudioCaptureClient* captureClient;
22
23 public:
24 ~AudioDevice() override;
25
27
28 AudioDevice(AudioDevice&& device) noexcept;
29
30 AudioDevice(const AudioDevice& device);
31
32 AudioDevice& operator=(AudioDevice&& device) noexcept;
33
35
36 void OpenStream() override;
37
38 void CloseStream() override;
39
40 UInt_64 SendStream(const void *data, UInt_64 outFrameSize) override;
41
42 UInt_64 ReceiveStream(void *data, UInt_64 inFrameSize) override;
43
45
47
49
50 Str_32 GetName_32() const;
51
52 Str_16 GetName_16() const;
53
54 Str_8 GetName_8() const;
55
56 bool IsStreaming() const override;
57
58 bool IsValid() const override;
59
61
63 };
64}
Definition Array.h:16
Definition AudioDevice_PW.h:15
static Array< AudioDevice > Get(AudioDeviceType type, AudioDeviceState state)
AudioDevice & operator=(const AudioDevice &device)
Str_16 GetName_16() const
Definition AudioDevice_W32.cpp:467
Str_32 GetInterfaceName_32() const
Definition AudioDevice_W32.cpp:429
Str_32 GetName_32() const
Definition AudioDevice_W32.cpp:462
void CloseStream() override
void OpenStream() override
AudioDevice(AudioDevice &&device) noexcept
Str_8 GetInterfaceName_8() const
Definition AudioDevice_W32.cpp:457
~AudioDevice() override
bool IsValid() const override
AudioDevice & operator=(AudioDevice &&device) noexcept
UInt_64 ReceiveStream(void *data, UInt_64 inFrameSize) override
static AudioDevice GetDefault(AudioDeviceType type)
Str_8 GetName_8() const
Definition AudioDevice_W32.cpp:490
bool IsStreaming() const override
UInt_64 SendStream(const void *data, UInt_64 outFrameSize) override
AudioDevice(const AudioDevice &device)
Str_16 GetInterfaceName_16() const
Definition AudioDevice_W32.cpp:434
Definition BaseAudioDevice.h:27
AudioDeviceType type
Definition BaseAudioDevice.h:29
Definition Anchor.h:6
AudioDeviceState
Definition BaseAudioDevice.h:19
AudioDeviceType
Definition BaseAudioDevice.h:12
Str< Char_16, UInt_64 > Str_16
Definition Str.h:1901
Str< Char_8, UInt_64 > Str_8
Definition Str.h:1902
Str< Char_32, UInt_64 > Str_32
Definition Str.h:1900