#pragma once #include "../../EHS.h" #include "BaseAudioDevice.h" #include namespace lwe { class AudioDevice : public BaseAudioDevice { private: snd_pcm_t* hdl; 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; bool IsValid() const override; static AudioDevice GetDefault(const AudioDeviceType type); static Array Get(const AudioDeviceType type, const AudioDeviceState state); }; }