/
Channel.cpp
59 lines (56 loc) · 1.4 KB
/
Channel.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "Channel.h"
#include "Error.h"
#include "Str.h"
const Channel Channels::fromString(const std::string &strIn) {
const std::string str = String::toUpperCase(strIn);
if (str.compare("L") == 0) {
return Channel::L;
}
else if (str.compare("R") == 0) {
return Channel::R;
}
else if (str.compare("C") == 0) {
return Channel::C;
}
else if (str.compare("SW") == 0) {
return Channel::SW;
}
else if (str.compare("SL") == 0) {
return Channel::SL;
}
else if (str.compare("SR") == 0) {
return Channel::SR;
}
else if (str.compare("SBL") == 0) {
return Channel::SBL;
}
else if (str.compare("SBR") == 0) {
return Channel::SBR;
}
throw Error("Unknown channel '%s'", strIn.c_str());
}
const std::string Channels::toString(const Channel channel) {
switch (channel) {
case Channel::L:
return "L";
case Channel::R:
return "R";
case Channel::C:
return "C";
case Channel::SW:
return "SW";
case Channel::SL:
return "SL";
case Channel::SR:
return "SR";
case Channel::SBL:
return "SBL";
case Channel::SBR:
return "SBR";
default:
throw Error("Unknown channel type %d", channel);
};
}
const std::string Channels::toString(const size_t channelIndex) {
return toString((Channel)channelIndex);
}