Use enum class for VideoRange.
[dcpomatic.git] / src / lib / types.cc
index df57f2d47143a470b1ed88ae11a6e0ac699abf4b..840ee3aa8b5608fb9ff946f04efdffa22c4f6eb9 100644 (file)
 #include <dcp/raw_convert.h>
 #include <dcp/cpl.h>
 #include <dcp/dcp.h>
-#include <dcp/reel_mxf.h>
+#include <dcp/reel_file_asset.h>
 #include <dcp/reel_asset.h>
 DCPOMATIC_DISABLE_WARNINGS
 #include <libxml++/libxml++.h>
 DCPOMATIC_ENABLE_WARNINGS
 #include <libcxml/cxml.h>
-#include <boost/foreach.hpp>
 
 #include "i18n.h"
 
@@ -39,7 +38,8 @@ using std::max;
 using std::min;
 using std::string;
 using std::list;
-using boost::shared_ptr;
+using std::shared_ptr;
+using std::vector;
 using dcp::raw_convert;
 
 bool operator== (Crop const & a, Crop const & b)
@@ -198,10 +198,10 @@ CPLSummary::CPLSummary (boost::filesystem::path p)
 {
        dcp::DCP dcp (p);
 
-       list<dcp::VerificationNote> notes;
+       vector<dcp::VerificationNote> notes;
        dcp.read (&notes);
-       BOOST_FOREACH (dcp::VerificationNote i, notes) {
-               if (i.code() != dcp::VerificationNote::EXTERNAL_ASSET) {
+       for (auto i: notes) {
+               if (i.code() != dcp::VerificationNote::Code::EXTERNAL_ASSET) {
                        /* It's not just a warning about this DCP being a VF */
                        throw dcp::ReadError(dcp::note_to_string(i));
                }
@@ -212,8 +212,8 @@ CPLSummary::CPLSummary (boost::filesystem::path p)
        cpl_file = dcp.cpls().front()->file().get();
 
        encrypted = false;
-       BOOST_FOREACH (shared_ptr<dcp::CPL> j, dcp.cpls()) {
-               BOOST_FOREACH (shared_ptr<const dcp::ReelMXF> k, j->reel_mxfs()) {
+       for (auto j: dcp.cpls()) {
+               for (auto k: j->reel_file_assets()) {
                        if (k->key_id()) {
                                encrypted = true;
                        }
@@ -222,3 +222,38 @@ CPLSummary::CPLSummary (boost::filesystem::path p)
 
        last_write_time = boost::filesystem::last_write_time (p);
 }
+
+
+bool operator== (NamedChannel const& a, NamedChannel const& b)
+{
+       return a.name == b.name && a.index == b.index;
+}
+
+
+string
+video_range_to_string (VideoRange r)
+{
+       switch (r) {
+       case VideoRange::FULL:
+               return "full";
+       case VideoRange::VIDEO:
+               return "video";
+       default:
+               DCPOMATIC_ASSERT (false);
+       }
+}
+
+
+VideoRange
+string_to_video_range (string s)
+{
+       if (s == "full") {
+               return VideoRange::FULL;
+       } else if (s == "video") {
+               return VideoRange::VIDEO;
+       }
+
+       DCPOMATIC_ASSERT (false);
+       return VideoRange::FULL;
+}
+