7#include "../utility/utility.hpp"
8#include "../macros.hpp"
10hi_export_module(hikogui.audio.audio_direction);
12namespace hi {
inline namespace v1 {
14hi_export
enum class audio_direction :
unsigned char { none = 0b00, input = 0b01, output = 0b10, bidirectional = 0b11 };
16hi_export [[
nodiscard]]
constexpr audio_direction operator&(audio_direction
const& lhs, audio_direction
const& rhs)
noexcept
18 return static_cast<audio_direction
>(std::to_underlying(lhs) & std::to_underlying(rhs));
21hi_export [[
nodiscard]]
constexpr audio_direction operator|(audio_direction
const& lhs, audio_direction
const& rhs)
noexcept
23 return static_cast<audio_direction
>(std::to_underlying(lhs) | std::to_underlying(rhs));
26hi_export [[
nodiscard]]
constexpr bool to_bool(audio_direction
const &rhs)
noexcept
28 return to_bool(std::to_underlying(rhs));
32hi_export
constexpr auto audio_direction_metadata = enum_metadata{
33 audio_direction::none,
"none",
34 audio_direction::input,
"input",
35 audio_direction::output,
"output",
36 audio_direction::bidirectional,
"bidirectional"
42hi_export
template<
typename CharT>
43struct std::formatter<
hi::audio_direction, CharT> : std::formatter<std::string_view, CharT> {
44 auto format(hi::audio_direction
const& t,
auto& fc)
const
46 return std::formatter<std::string_view, CharT>::format(hi::audio_direction_metadata[t], fc);
DOXYGEN BUG.
Definition algorithm.hpp:16
geometry/margins.hpp
Definition lookahead_iterator.hpp:5
constexpr Out narrow_cast(In const &rhs) noexcept
Cast numeric values without loss of precision.
Definition cast.hpp:377