X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=src%2Flib%2Fdcp_content_type.cc;h=f3cd02e9f2e998c4bf0e1d61ad635bcecbebb19b;hp=6d7286a488970861930e10a17e1271ebacb001b6;hb=78ca79cde19db630b1abfe8f00f49e87bb7e4068;hpb=f25061b8a6f35e490b731caefe63560045b10a1f diff --git a/src/lib/dcp_content_type.cc b/src/lib/dcp_content_type.cc index 6d7286a48..f3cd02e9f 100644 --- a/src/lib/dcp_content_type.cc +++ b/src/lib/dcp_content_type.cc @@ -32,7 +32,7 @@ using boost::optional; using namespace std; -vector DCPContentType::_dcp_content_types; +vector DCPContentType::_dcp_content_types; DCPContentType::DCPContentType (string p, dcp::ContentKind k, string d) @@ -48,18 +48,18 @@ void DCPContentType::setup_dcp_content_types () { _dcp_content_types = { - new DCPContentType(_("Feature"), dcp::ContentKind::FEATURE, N_("FTR")), - new DCPContentType(_("Short"), dcp::ContentKind::SHORT, N_("SHR")), - new DCPContentType(_("Trailer"), dcp::ContentKind::TRAILER, N_("TLR")), - new DCPContentType(_("Test"), dcp::ContentKind::TEST, N_("TST")), - new DCPContentType(_("Transitional"), dcp::ContentKind::TRANSITIONAL, N_("XSN")), - new DCPContentType(_("Rating"), dcp::ContentKind::RATING, N_("RTG")), - new DCPContentType(_("Teaser"), dcp::ContentKind::TEASER, N_("TSR")), - new DCPContentType(_("Policy"), dcp::ContentKind::POLICY, N_("POL")), - new DCPContentType(_("Public Service Announcement"), dcp::ContentKind::PUBLIC_SERVICE_ANNOUNCEMENT, N_("PSA")), - new DCPContentType(_("Advertisement"), dcp::ContentKind::ADVERTISEMENT, N_("ADV")), - new DCPContentType(_("Episode"), dcp::ContentKind::EPISODE, N_("EPS")), - new DCPContentType(_("Promo"), dcp::ContentKind::PROMO, N_("PRO")) + DCPContentType(_("Feature"), dcp::ContentKind::FEATURE, N_("FTR")), + DCPContentType(_("Short"), dcp::ContentKind::SHORT, N_("SHR")), + DCPContentType(_("Trailer"), dcp::ContentKind::TRAILER, N_("TLR")), + DCPContentType(_("Test"), dcp::ContentKind::TEST, N_("TST")), + DCPContentType(_("Transitional"), dcp::ContentKind::TRANSITIONAL, N_("XSN")), + DCPContentType(_("Rating"), dcp::ContentKind::RATING, N_("RTG")), + DCPContentType(_("Teaser"), dcp::ContentKind::TEASER, N_("TSR")), + DCPContentType(_("Policy"), dcp::ContentKind::POLICY, N_("POL")), + DCPContentType(_("Public Service Announcement"), dcp::ContentKind::PUBLIC_SERVICE_ANNOUNCEMENT, N_("PSA")), + DCPContentType(_("Advertisement"), dcp::ContentKind::ADVERTISEMENT, N_("ADV")), + DCPContentType(_("Episode"), dcp::ContentKind::EPISODE, N_("EPS")), + DCPContentType(_("Promo"), dcp::ContentKind::PROMO, N_("PRO")) }; } @@ -67,22 +67,22 @@ DCPContentType::setup_dcp_content_types () DCPContentType const * DCPContentType::from_isdcf_name (string n) { - for (auto i: _dcp_content_types) { - if (i->isdcf_name() == n) { - return i; + for (auto& i: _dcp_content_types) { + if (i.isdcf_name() == n) { + return &i; } } - return 0; + return nullptr; } DCPContentType const * DCPContentType::from_libdcp_kind (dcp::ContentKind kind) { - for (auto i: _dcp_content_types) { - if (i->libdcp_kind() == kind) { - return i; + for (auto& i: _dcp_content_types) { + if (i.libdcp_kind() == kind) { + return &i; } } @@ -95,15 +95,15 @@ DCPContentType const * DCPContentType::from_index (int n) { DCPOMATIC_ASSERT (n >= 0 && n < int(_dcp_content_types.size())); - return _dcp_content_types[n]; + return &_dcp_content_types[n]; } optional DCPContentType::as_index (DCPContentType const * c) { - vector::size_type i = 0; - while (i < _dcp_content_types.size() && _dcp_content_types[i] != c) { + vector::size_type i = 0; + while (i < _dcp_content_types.size() && &_dcp_content_types[i] != c) { ++i; } @@ -118,5 +118,9 @@ DCPContentType::as_index (DCPContentType const * c) vector DCPContentType::all () { - return _dcp_content_types; + vector raw; + for (auto& type: _dcp_content_types) { + raw.push_back (&type); + } + return raw; }