X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fdcp_content_type.cc;h=c31c507b0786c92bd3223061872f3d735bc1a124;hb=a5d004b0773f633401528392fc28e66d70e13ac8;hp=321aa61da494c2a9955e3b6a128f13e994ba4a5c;hpb=c7c8c894df8c2bb98aeed84011dd28da94afa392;p=dcpomatic.git diff --git a/src/lib/dcp_content_type.cc b/src/lib/dcp_content_type.cc index 321aa61da..c31c507b0 100644 --- a/src/lib/dcp_content_type.cc +++ b/src/lib/dcp_content_type.cc @@ -1,19 +1,20 @@ /* - Copyright (C) 2012 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ @@ -21,16 +22,19 @@ * @brief A description of the type of content for a DCP (e.g. feature, trailer etc.) */ -#include #include "dcp_content_type.h" +#include "dcpomatic_assert.h" + +#include "i18n.h" using namespace std; vector DCPContentType::_dcp_content_types; -DCPContentType::DCPContentType (string p, string d) +DCPContentType::DCPContentType (string p, dcp::ContentKind k, string d) : _pretty_name (p) - , _dcp_name (d) + , _libdcp_kind (k) + , _isdcf_name (d) { } @@ -38,34 +42,50 @@ DCPContentType::DCPContentType (string p, string d) void DCPContentType::setup_dcp_content_types () { - _dcp_content_types.push_back (new DCPContentType ("Feature", "feature")); - _dcp_content_types.push_back (new DCPContentType ("Short", "short")); - _dcp_content_types.push_back (new DCPContentType ("Trailer", "trailer")); - _dcp_content_types.push_back (new DCPContentType ("Test", "test")); - _dcp_content_types.push_back (new DCPContentType ("Transitional", "transitional")); - _dcp_content_types.push_back (new DCPContentType ("Rating", "rating")); - _dcp_content_types.push_back (new DCPContentType ("Teaser", "teaster")); - _dcp_content_types.push_back (new DCPContentType ("Policy", "policy")); - _dcp_content_types.push_back (new DCPContentType ("Public Service Announcement", "psa")); - _dcp_content_types.push_back (new DCPContentType ("Advertisement", "advertisement")); + _dcp_content_types.push_back (new DCPContentType (_("Feature"), dcp::FEATURE, N_("FTR"))); + _dcp_content_types.push_back (new DCPContentType (_("Short"), dcp::SHORT, N_("SHR"))); + _dcp_content_types.push_back (new DCPContentType (_("Trailer"), dcp::TRAILER, N_("TLR"))); + _dcp_content_types.push_back (new DCPContentType (_("Test"), dcp::TEST, N_("TST"))); + _dcp_content_types.push_back (new DCPContentType (_("Transitional"), dcp::TRANSITIONAL, N_("XSN"))); + _dcp_content_types.push_back (new DCPContentType (_("Rating"), dcp::RATING, N_("RTG"))); + _dcp_content_types.push_back (new DCPContentType (_("Teaser"), dcp::TEASER, N_("TSR"))); + _dcp_content_types.push_back (new DCPContentType (_("Policy"), dcp::POLICY, N_("POL"))); + _dcp_content_types.push_back (new DCPContentType (_("Public Service Announcement"), dcp::PUBLIC_SERVICE_ANNOUNCEMENT, N_("PSA"))); + _dcp_content_types.push_back (new DCPContentType (_("Advertisement"), dcp::ADVERTISEMENT, N_("ADV"))); + _dcp_content_types.push_back (new DCPContentType (_("Episode"), dcp::EPISODE, N_("EPS"))); + _dcp_content_types.push_back (new DCPContentType (_("Promo"), dcp::PROMO, N_("PRO"))); } DCPContentType const * -DCPContentType::from_pretty_name (string n) +DCPContentType::from_isdcf_name (string n) { - for (vector::const_iterator i = _dcp_content_types.begin(); i != _dcp_content_types.end(); ++i) { - if ((*i)->pretty_name() == n) { - return *i; + for (auto i: _dcp_content_types) { + if (i->isdcf_name() == n) { + return i; } } return 0; } +DCPContentType const * +DCPContentType::from_libdcp_kind (dcp::ContentKind kind) +{ + for (auto i: _dcp_content_types) { + if (i->libdcp_kind() == kind) { + return i; + } + } + + DCPOMATIC_ASSERT (false); + return 0; +} + + DCPContentType const * DCPContentType::from_index (int n) { - assert (n >= 0 && n < int (_dcp_content_types.size ())); + DCPOMATIC_ASSERT (n >= 0 && n < int (_dcp_content_types.size ())); return _dcp_content_types[n]; }