summaryrefslogtreecommitdiffstats
path: root/src/audio
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2021-05-24 20:24:43 +0200
committerDaniel Schürmann <daschuer@mixxx.org>2021-05-24 20:24:43 +0200
commit262e2f0dbd17b8ef6af27c92a443fd31d22396c1 (patch)
tree526b47cd698dd55fb7c7de7ac75aa7138c44ad87 /src/audio
parent7d5089a291d8ba2509bf35957e0929548de6cb2a (diff)
Added valueFromInt() and valueFromLayout()
Diffstat (limited to 'src/audio')
-rw-r--r--src/audio/types.h50
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 {