+
+string
+libdcp::effect_to_string (Effect e)
+{
+ switch (e) {
+ case NONE:
+ return "none";
+ case BORDER:
+ return "border";
+ case SHADOW:
+ return "shadow";
+ }
+
+ boost::throw_exception (MiscError ("unknown effect type"));
+}
+
+Effect
+libdcp::string_to_effect (string s)
+{
+ if (s == "none") {
+ return NONE;
+ } else if (s == "border") {
+ return BORDER;
+ } else if (s == "shadow") {
+ return SHADOW;
+ }
+
+ boost::throw_exception (DCPReadError ("unknown subtitle effect type"));
+}
+
+string
+libdcp::valign_to_string (VAlign v)
+{
+ switch (v) {
+ case TOP:
+ return "top";
+ case CENTER:
+ return "center";
+ case BOTTOM:
+ return "bottom";
+ }
+
+ boost::throw_exception (MiscError ("unknown valign type"));
+}
+
+VAlign
+libdcp::string_to_valign (string s)
+{
+ if (s == "top") {
+ return TOP;
+ } else if (s == "center") {
+ return CENTER;
+ } else if (s == "bottom") {
+ return BOTTOM;
+ }
+
+ boost::throw_exception (DCPReadError ("unknown subtitle valign type"));
+}
+
+