EHS
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
44 Str_32 GetInterfaceName_32() const;
45
46 Str_16 GetInterfaceName_16() const;
47
48 Str_8 GetInterfaceName_8() const;
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)
void CloseStream() override
void OpenStream() override
AudioDevice(AudioDevice &&device) noexcept
~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)
bool IsStreaming() const override
UInt_64 SendStream(const void *data, UInt_64 outFrameSize) override
AudioDevice(const AudioDevice &device)
Definition: Str.h:29
Definition: Anchor.h:6
EHS_LIB_IO const Char_16 * GetName_16()
Definition: EHS.cpp:97
EHS_LIB_IO const Char_32 * GetName_32()
Definition: EHS.cpp:92
AudioDeviceState
Definition: BaseAudioDevice.h:19
AudioDeviceType
Definition: BaseAudioDevice.h:12
EHS_LIB_IO const Char_8 * GetName_8()
Definition: EHS.cpp:102