diff options
author | Daniel Schürmann <daschuer@mixxx.org> | 2021-05-24 20:24:43 +0200 |
---|---|---|
committer | Daniel Schürmann <daschuer@mixxx.org> | 2021-05-24 20:24:43 +0200 |
commit | 262e2f0dbd17b8ef6af27c92a443fd31d22396c1 (patch) | |
tree | 526b47cd698dd55fb7c7de7ac75aa7138c44ad87 /src/audio | |
parent | 7d5089a291d8ba2509bf35957e0929548de6cb2a (diff) |
Added valueFromInt() and valueFromLayout()
Diffstat (limited to 'src/audio')
-rw-r--r-- | src/audio/types.h | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/src/audio/types.h b/src/audio/types.h index 6c0db4e19a..9301336447 100644 --- a/src/audio/types.h +++ b/src/audio/types.h @@ -41,30 +41,44 @@ class ChannelCount { private: // The default value is invalid and indicates a missing or unknown value. static constexpr value_t kValueDefault = 0; - - public: static constexpr value_t kValueMin = 1; // lower bound (inclusive) - static constexpr value_t kValueMax = 255; // upper bound (inclusive, 8-bit unsigned integer) - static constexpr ChannelCount min() { - return ChannelCount(kValueMin); - } - static constexpr ChannelCount max() { - return ChannelCount(kValueMax); + static value_t valueFromInt(int value) { + VERIFY_OR_DEBUG_ASSERT(value >= std::numeric_limits<value_t>::min() && + value <= std::numeric_limits<value_t>::max()) { + return kValueDefault; + } + return static_cast<value_t>(value); } - static ChannelCount fromLayout(ChannelLayout layout) { + static value_t valueFromLayout(ChannelLayout layout) { switch (layout) { case ChannelLayout::Mono: - return mono(); + return 1; case ChannelLayout::DualMono: - return stereo(); + return 2; case ChannelLayout::Stereo: - return stereo(); + return 2; } DEBUG_ASSERT(!"unreachable code"); } + public: + static constexpr ChannelCount min() { + return ChannelCount(kValueMin); + } + static constexpr ChannelCount max() { + return ChannelCount(std::numeric_limits<value_t>::max()); + } + + static ChannelCount fromLayout(ChannelLayout layout) { + return ChannelCount(valueFromLayout(layout)); + } + + static ChannelCount fromInt(int value) { + return ChannelCount(valueFromInt(value)); + } + static constexpr ChannelCount mono() { return ChannelCount(static_cast<value_t>(1)); } @@ -73,14 +87,6 @@ class ChannelCount { return ChannelCount(static_cast<value_t>(2)); } - static ChannelCount fromInt(int value) { - VERIFY_OR_DEBUG_ASSERT(value >= std::numeric_limits<value_t>::min() && - value <= std::numeric_limits<value_t>::max()) { - return ChannelCount(); - } - return ChannelCount(static_cast<value_t>(value)); - } - explicit constexpr ChannelCount( value_t value = kValueDefault) : m_value(value) { @@ -89,12 +95,12 @@ class ChannelCount { // A limits checking c-tor fom int channel used in many // external libraries explicit ChannelCount(int value) - : m_value(fromInt(value).m_value) { + : m_value(valueFromInt(value)) { } explicit ChannelCount( ChannelLayout layout) - : m_value(fromLayout(layout).m_value) { + : m_value(valueFromLayout(layout)) { } constexpr bool isValid() const { |