7#include "../bigint.hpp"
8#include "audio_device_delegate.hpp"
9#include "audio_stream_config.hpp"
10#include "audio_channel.hpp"
11#include "audio_direction.hpp"
12#include "audio_device_state.hpp"
13#include "speaker_mapping.hpp"
15#include "../enum_metadata.hpp"
21namespace hi::inline
v1 {
63 virtual
void update_state() noexcept = 0;
67 [[nodiscard]] virtual audio_device_state state() const noexcept = 0;
69 [[nodiscard]] virtual audio_direction direction() const noexcept = 0;
75 [[nodiscard]] virtual
bool exclusive() const noexcept = 0;
91 virtual
void set_exclusive(
bool exclusive) noexcept = 0;
98 [[nodiscard]] virtual
double sample_rate() const noexcept = 0;
103 virtual
void set_sample_rate(
double sample_rate) noexcept = 0;
109 [[nodiscard]] virtual
hi::speaker_mapping input_speaker_mapping() const noexcept = 0;
115 virtual
void set_input_speaker_mapping(
hi::speaker_mapping speaker_mapping) noexcept = 0;
121 [[nodiscard]] virtual
std::vector<
hi::speaker_mapping> available_input_speaker_mappings() const noexcept = 0;
127 [[nodiscard]] virtual
hi::speaker_mapping output_speaker_mapping() const noexcept = 0;
133 virtual
void set_output_speaker_mapping(
hi::speaker_mapping speaker_mapping) noexcept = 0;
139 [[nodiscard]] virtual
std::vector<
hi::speaker_mapping> available_output_speaker_mappings() const noexcept = 0;
#define hi_axiom(expression)
Specify an axiom; an expression that is true.
Definition assert.hpp:133
Functionality for labels, text and icons.
DOXYGEN BUG.
Definition algorithm.hpp:15
The HikoGUI namespace.
Definition ascii.hpp:19
A set of audio channels which can be rendered and/or captures at the same time.
Definition audio_device.hpp:31
std::string name() const noexcept
Get a user friendly name of the audio device.
Definition audio_device.hpp:47
std::string const & id() const noexcept
The nonephemeral unique id that for an audio device on the system.
Definition audio_device.hpp:38
virtual label label() const noexcept=0
Get a user friendly label of the audio device.
A label consisting of localizable text and an icon.
Definition label.hpp:124