EHS
Loading...
Searching...
No Matches
BaseAudioDevice.h
Go to the documentation of this file.
1#pragma once
2
3#include "ehs/EHS.h"
4#include "ehs/Str.h"
5#include "ehs/Vector.h"
6#include "ehs/Array.h"
7#include "ehs/DataType.h"
8
9namespace ehs
10{
11 enum class AudioDeviceType
12 {
13 INPUT = 0x1,
14 OUTPUT = 0x0,
15 ALL = 0x2
16 };
17
19 {
20 ACTIVE = 0x1,
21 DISABLED = 0x2,
24 };
25
26 class EHS_LIB_IO BaseAudioDevice
27 {
28 protected:
36 UInt_64 maxFrames;
37
38 public:
39 virtual ~BaseAudioDevice() = default;
40
42
43 BaseAudioDevice(const BaseAudioDevice& device);
44
46
47 virtual void OpenStream();
48
49 virtual void CloseStream();
50
51 virtual UInt_64 SendStream(const void *data, UInt_64 size);
52
53 virtual UInt_64 ReceiveStream(void *data, UInt_64 size);
54
55 void BridgeStreams(BaseAudioDevice *input, UInt_64 frameBufferSize);
56
57 void BridgeStreams(UInt_64 frameBufferSize);
58
60
61 void SetDataType(DataType newDataType);
62
63 DataType GetDataType() const;
64
65 UInt_8 GetByteDepth() const;
66
67 UInt_16 GetBitDepth() const;
68
69 void SetSampleRate(UInt_32 newSampleRate);
70
71 UInt_32 GetSampleRate() const;
72
73 void SetChannels(UInt_32 newChannels);
74
75 UInt_16 GetChannels() const;
76
77 UInt_32 GetFrameSize() const;
78
79 void SetPeriod(UInt_32 newPeriod);
80
81 UInt_32 GetPeriod() const;
82
83 void SetLatency(UInt_32 newLatency);
84
85 UInt_32 GetLatency() const;
86
87 UInt_64 GetMaxFrames() const;
88
89 virtual bool IsStreaming() const;
90
91 virtual bool IsValid() const;
92
97
103 };
104}
Definition Array.h:16
UInt_32 GetSampleRate() const
Definition BaseAudioDevice.cpp:134
AudioDeviceType GetType() const
Definition BaseAudioDevice.cpp:97
UInt_32 GetFrameSize() const
Definition BaseAudioDevice.cpp:152
UInt_32 channels
Definition BaseAudioDevice.h:33
UInt_16 GetChannels() const
Definition BaseAudioDevice.cpp:147
UInt_32 period
Definition BaseAudioDevice.h:34
void SetPeriod(UInt_32 newPeriod)
Definition BaseAudioDevice.cpp:157
UInt_16 byteDepth
Definition BaseAudioDevice.h:31
UInt_64 GetMaxFrames() const
Definition BaseAudioDevice.cpp:183
UInt_32 sampleRate
Definition BaseAudioDevice.h:32
static BaseAudioDevice GetDefault(AudioDeviceType type)
Definition BaseAudioDevice.cpp:198
DataType GetDataType() const
Definition BaseAudioDevice.cpp:111
DataType dataType
Definition BaseAudioDevice.h:30
UInt_32 GetPeriod() const
Definition BaseAudioDevice.cpp:165
void SetLatency(UInt_32 newLatency)
Definition BaseAudioDevice.cpp:170
virtual void CloseStream()
Definition BaseAudioDevice.cpp:39
void SetChannels(UInt_32 newChannels)
Definition BaseAudioDevice.cpp:139
void SetDataType(DataType newDataType)
Definition BaseAudioDevice.cpp:102
UInt_16 GetBitDepth() const
Definition BaseAudioDevice.cpp:121
UInt_64 maxFrames
Definition BaseAudioDevice.h:36
void SetSampleRate(UInt_32 newSampleRate)
Definition BaseAudioDevice.cpp:126
UInt_32 GetLatency() const
Definition BaseAudioDevice.cpp:178
BaseAudioDevice & operator=(const BaseAudioDevice &device)
Definition BaseAudioDevice.cpp:18
UInt_32 latency
Definition BaseAudioDevice.h:35
virtual UInt_64 SendStream(const void *data, UInt_64 size)
Definition BaseAudioDevice.cpp:43
virtual bool IsStreaming() const
Definition BaseAudioDevice.cpp:188
BaseAudioDevice()
Definition BaseAudioDevice.cpp:6
void BridgeStreams(BaseAudioDevice *input, UInt_64 frameBufferSize)
Definition BaseAudioDevice.cpp:53
virtual UInt_64 ReceiveStream(void *data, UInt_64 size)
Definition BaseAudioDevice.cpp:48
virtual void OpenStream()
Definition BaseAudioDevice.cpp:35
static Array< BaseAudioDevice > Get(AudioDeviceType type, AudioDeviceState state)
Definition BaseAudioDevice.cpp:203
virtual ~BaseAudioDevice()=default
virtual bool IsValid() const
Definition BaseAudioDevice.cpp:193
UInt_8 GetByteDepth() const
Definition BaseAudioDevice.cpp:116
AudioDeviceType type
Definition BaseAudioDevice.h:29
Definition Anchor.h:6
AudioDeviceState
Definition BaseAudioDevice.h:19
@ DISABLED
Definition BaseAudioDevice.h:21
@ ACTIVE
Definition BaseAudioDevice.h:20
@ NOT_PRESENT
Definition BaseAudioDevice.h:22
@ UNPLUGGED
Definition BaseAudioDevice.h:23
AudioDeviceType
Definition BaseAudioDevice.h:12
@ OUTPUT
Definition BaseAudioDevice.h:14
@ ALL
Definition BaseAudioDevice.h:15
@ INPUT
Definition BaseAudioDevice.h:13
unsigned int UInt_32
Definition Types.h:49
unsigned char UInt_8
Definition Types.h:43
DataType
Definition DataType.h:8
unsigned short UInt_16
Definition Types.h:46