HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
audio_direction.hpp
1// Copyright Take Vos 2021-2022.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
4
5#pragma once
6
7#include "../utility/module.hpp"
8
9namespace hi::inline v1 {
10
11enum class audio_direction : unsigned char { none = 0b00, input = 0b01, output = 0b10, bidirectional = 0b11 };
12
13[[nodiscard]] constexpr audio_direction operator&(audio_direction const& lhs, audio_direction const& rhs) noexcept
14{
15 return static_cast<audio_direction>(to_underlying(lhs) & to_underlying(rhs));
16}
17
18[[nodiscard]] constexpr audio_direction operator|(audio_direction const& lhs, audio_direction const& rhs) noexcept
19{
20 return static_cast<audio_direction>(to_underlying(lhs) | to_underlying(rhs));
21}
22
23[[nodiscard]] constexpr bool to_bool(audio_direction const &rhs) noexcept
24{
25 return to_bool(to_underlying(rhs));
26}
27
28// clang-format off
29constexpr auto audio_direction_metadata = enum_metadata{
30 audio_direction::none, "none",
31 audio_direction::input, "input",
32 audio_direction::output, "output",
33 audio_direction::bidirectional, "bidirectional"
34};
35// clang-format on
36
37}
38
39template<typename CharT>
40struct std::formatter<hi::audio_direction, CharT> : std::formatter<std::string_view, CharT> {
41 auto format(hi::audio_direction const& t, auto& fc)
42 {
43 return std::formatter<std::string_view, CharT>::format(hi::audio_direction_metadata[t], fc);
44 }
45};
DOXYGEN BUG.
Definition algorithm.hpp:13
geometry/margins.hpp
Definition cache.hpp:11