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/utility.hpp"
8#include "../macros.hpp"
9
10hi_export_module(hikogui.audio.audio_direction);
11
12namespace hi { inline namespace v1 {
13
14hi_export enum class audio_direction : unsigned char { none = 0b00, input = 0b01, output = 0b10, bidirectional = 0b11 };
15
16hi_export [[nodiscard]] constexpr audio_direction operator&(audio_direction const& lhs, audio_direction const& rhs) noexcept
17{
18 return static_cast<audio_direction>(std::to_underlying(lhs) & std::to_underlying(rhs));
19}
20
21hi_export [[nodiscard]] constexpr audio_direction operator|(audio_direction const& lhs, audio_direction const& rhs) noexcept
22{
23 return static_cast<audio_direction>(std::to_underlying(lhs) | std::to_underlying(rhs));
24}
25
26hi_export [[nodiscard]] constexpr bool to_bool(audio_direction const &rhs) noexcept
27{
28 return to_bool(std::to_underlying(rhs));
29}
30
31// clang-format off
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"
37};
38// clang-format on
39
40}}
41
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
45 {
46 return std::formatter<std::string_view, CharT>::format(hi::audio_direction_metadata[t], fc);
47 }
48};
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