Adjusted workflow.
This commit is contained in:
66
include/ehs/io/audio/AudioDevice_W32.h
Normal file
66
include/ehs/io/audio/AudioDevice_W32.h
Normal file
@@ -0,0 +1,66 @@
|
||||
#pragma once
|
||||
|
||||
#include "ehs/EHS.h"
|
||||
#include "BaseAudioDevice.h"
|
||||
|
||||
#include <initguid.h>
|
||||
#include <mmdeviceapi.h>
|
||||
#include <functiondiscoverykeys_devpkey.h>
|
||||
#include <Audioclient.h>
|
||||
|
||||
struct IMMDevice;
|
||||
|
||||
namespace ehs
|
||||
{
|
||||
class AudioDevice : public BaseAudioDevice
|
||||
{
|
||||
private:
|
||||
IMMDevice* hdl;
|
||||
IAudioClient* client;
|
||||
IAudioRenderClient* playbackClient;
|
||||
IAudioCaptureClient* captureClient;
|
||||
|
||||
public:
|
||||
~AudioDevice() override;
|
||||
|
||||
AudioDevice();
|
||||
|
||||
AudioDevice(AudioDevice&& device) noexcept;
|
||||
|
||||
AudioDevice(const AudioDevice& device);
|
||||
|
||||
AudioDevice& operator=(AudioDevice&& device) noexcept;
|
||||
|
||||
AudioDevice& operator=(const AudioDevice& device);
|
||||
|
||||
void Release() override;
|
||||
|
||||
void OpenStream() override;
|
||||
|
||||
void CloseStream() override;
|
||||
|
||||
UInt_64 GetAvailFrames() const override;
|
||||
|
||||
Byte* Map(UInt_64* offset, UInt_64* frames) override;
|
||||
|
||||
void UnMap(const UInt_64 offset, const UInt_64 frames) override;
|
||||
|
||||
Str_32 GetInterfaceName_32() const;
|
||||
|
||||
Str_16 GetInterfaceName_16() const;
|
||||
|
||||
Str_8 GetInterfaceName_8() const;
|
||||
|
||||
Str_32 GetName_32() const;
|
||||
|
||||
Str_16 GetName_16() const;
|
||||
|
||||
Str_8 GetName_8() const;
|
||||
|
||||
bool IsValid() const override;
|
||||
|
||||
static AudioDevice GetDefault(const AudioDeviceType type);
|
||||
|
||||
static Array<AudioDevice> Get(const AudioDeviceType type, const AudioDeviceState state);
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user