}
-Colour::Colour ()
-{
-
-}
-
-
Colour::Colour (int r_, int g_, int b_)
: r (r_)
, g (g_)
}
-string
-dcp::valign_to_string (VAlign v)
-{
- switch (v) {
- case VAlign::TOP:
- return "top";
- case VAlign::CENTER:
- return "center";
- case VAlign::BOTTOM:
- return "bottom";
- }
-
- boost::throw_exception (MiscError("unknown subtitle valign type"));
-}
-
-
-VAlign
-dcp::string_to_valign (string s)
-{
- if (s == "top") {
- return VAlign::TOP;
- } else if (s == "center") {
- return VAlign::CENTER;
- } else if (s == "bottom") {
- return VAlign::BOTTOM;
- }
-
- boost::throw_exception (ReadError("unknown subtitle valign type"));
-}
-
-
string
dcp::direction_to_string (Direction v)
{
{
vector<string> parts;
boost::split (parts, s, boost::is_any_of("/"));
- if (parts.size() != 2) {
- throw MainSoundConfigurationError (s);
+ if (parts.empty()) {
+ throw MainSoundConfigurationError(s);
}
- if (parts[0] == "20") {
- /* I can't find any mention in the standard of 20 being OK here, but Deluxe fail
- * QCs if the audio is stereo and 51 is used here.
- */
- _field = MCASoundField::STEREO;
- } else if (parts[0] == "51") {
+ if (parts[0] == "51") {
_field = MCASoundField::FIVE_POINT_ONE;
} else if (parts[0] == "71") {
_field = MCASoundField::SEVEN_POINT_ONE;
} else {
- throw MainSoundConfigurationError (s);
+ _field = MCASoundField::OTHER;
+ }
+
+ if (parts.size() < 2) {
+ /* I think it's OK to just have the sound field descriptor with no channels, though
+ * to me it's not clear and I might be wrong.
+ */
+ return;
}
vector<string> channels;
{
string c;
switch (_field) {
- case MCASoundField::STEREO:
- c = "20/";
- break;
case MCASoundField::FIVE_POINT_ONE:
c = "51/";
break;
Channel
dcp::mca_id_to_channel (string id)
{
- if (id == "L") {
+ transform(id.begin(), id.end(), id.begin(), ::tolower);
+
+ if (id == "l") {
return Channel::LEFT;
- } else if (id == "R") {
+ } else if (id == "r") {
return Channel::RIGHT;
- } else if (id == "C") {
+ } else if (id == "c") {
return Channel::CENTRE;
- } else if (id == "LFE") {
+ } else if (id == "lfe") {
return Channel::LFE;
- } else if (id == "Ls" || id == "Lss") {
+ } else if (id == "ls" || id == "lss") {
return Channel::LS;
- } else if (id == "Rs" || id == "Rss") {
+ } else if (id == "rs" || id == "rss") {
return Channel::RS;
- } else if (id == "HI") {
+ } else if (id == "hi") {
return Channel::HI;
- } else if (id == "VIN") {
+ } else if (id == "vin") {
return Channel::VI;
- } else if (id == "Lrs") {
+ } else if (id == "lrs") {
return Channel::BSL;
- } else if (id == "Rrs") {
+ } else if (id == "rrs") {
return Channel::BSR;
- } else if (id == "DBOX") {
+ } else if (id == "dbox") {
return Channel::MOTION_DATA;
- } else if (id == "FSKSync") {
+ } else if (id == "sync" || id == "fsksync") {
return Channel::SYNC_SIGNAL;
- } else if (id == "SLVS") {
+ } else if (id == "slvs") {
return Channel::SIGN_LANGUAGE;
}