14class audio_format_range {
17 uint16_t num_channels = 0;
18 uint32_t min_sample_rate = 0;
19 uint32_t max_sample_rate = 0;
20 surround_mode surround_mode_mask = surround_mode::none;
22 constexpr audio_format_range()
noexcept =
default;
23 constexpr audio_format_range(audio_format_range&&)
noexcept =
default;
24 constexpr audio_format_range(audio_format_range
const&)
noexcept =
default;
25 constexpr audio_format_range& operator=(audio_format_range&&)
noexcept =
default;
26 constexpr audio_format_range& operator=(audio_format_range
const&)
noexcept =
default;
27 [[nodiscard]]
constexpr friend bool operator==(audio_format_range
const&, audio_format_range
const&)
noexcept =
default;
29 [[nodiscard]]
constexpr friend auto operator<=>(audio_format_range
const& lhs, audio_format_range
const& rhs)
noexcept
31 if (
auto tmp = lhs.num_channels <=> rhs.num_channels; tmp != std::strong_ordering::equal) {
34 if (
auto tmp = lhs.min_sample_rate <=> rhs.min_sample_rate; tmp != std::strong_ordering::equal) {
37 if (
auto tmp = lhs.surround_mode_mask <=> rhs.surround_mode_mask; tmp != std::strong_ordering::equal) {
40 return lhs.format <=> rhs.format;
43 [[nodiscard]]
constexpr friend bool
44 equal_except_bit_depth(audio_format_range
const& lhs, audio_format_range
const& rhs)
noexcept
46 return std::tie(lhs.num_channels, lhs.min_sample_rate, lhs.max_sample_rate, lhs.surround_mode_mask) ==
47 std::tie(rhs.num_channels, rhs.min_sample_rate, rhs.max_sample_rate, rhs.surround_mode_mask) and
48 equal_except_bit_depth(lhs.format, rhs.format);
51 constexpr audio_format_range(
53 uint16_t num_channels,
54 uint32_t min_sample_rate,
55 uint32_t max_sample_rate,
56 surround_mode surround_mode_mask) noexcept :
58 num_channels(num_channels),
59 min_sample_rate(min_sample_rate),
60 max_sample_rate(max_sample_rate),
61 surround_mode_mask(surround_mode_mask)
65 [[nodiscard]]
constexpr bool empty()
const noexcept
67 return format.empty();
70 constexpr explicit operator bool()
const noexcept
75 [[nodiscard]]
friend std::string to_string(audio_format_range
const& rhs)
noexcept
78 "format={}, ch={}, rate={}:{}, surround={}",
83 rhs.surround_mode_mask);