7#include "audio_device.hpp"
8#include "audio_stream_format.hpp"
13struct IAudioEndpointVolume;
14struct IAudioMeterInformation;
28 [[nodiscard]] audio_device_state
state() const noexcept override;
29 [[nodiscard]] audio_direction direction() const noexcept override;
30 [[nodiscard]]
bool exclusive() const noexcept override;
49 audio_direction _direction;
50 bool _exclusive = false;
51 double _sample_rate = 0.0;
52 tt::speaker_mapping _speaker_mapping = tt::speaker_mapping::none;
55 IMMDevice *_device =
nullptr;
56 IMMEndpoint *_end_point =
nullptr;
57 IPropertyStore *_property_store =
nullptr;
58 IAudioClient *_audio_client =
nullptr;
64 std::
string device_name() const noexcept;
69 std::
string end_point_name() const noexcept;
A set of audio channels which can be rendered and/or captures at the same time.
Definition audio_device.hpp:52
Definition audio_device_id.hpp:14
Definition audio_device_win32.hpp:21
void set_output_speaker_mapping(tt::speaker_mapping speaker_mapping) noexcept override
Set the output speaker mapping.
static audio_device_id get_id(IMMDevice *device) noexcept
Get the device id for the given win32 audio end-point.
std::vector< tt::speaker_mapping > available_output_speaker_mappings() const noexcept override
Speaker mapping that are available in the current configuration.
audio_device_state state() const noexcept override
Get the current state of the audio device.
bool exclusive() const noexcept override
Check if the device is in exclusive mode.
std::string name() const noexcept override
Get a user friendly name of the audio device.
tt::speaker_mapping input_speaker_mapping() const noexcept override
Get the currently configured input speaker mapping.
void set_exclusive(bool exclusive) noexcept override
Set the device in exclusive or shared mode.
tt::speaker_mapping output_speaker_mapping() const noexcept override
Get the currently configured output speaker mapping.
void set_input_speaker_mapping(tt::speaker_mapping speaker_mapping) noexcept override
Set the input speaker mapping.
double sample_rate() const noexcept override
Get the currently configured sample rate.
std::vector< tt::speaker_mapping > available_input_speaker_mappings() const noexcept override
Speaker mapping that are available in the current configuration.
void set_sample_rate(double sample_rate) noexcept override
Set the sample rate.
The format of a stream of audio.
Definition audio_stream_format.hpp:15
A label consisting of localizable text and an icon.
Definition label.hpp:27