- shared_ptr<const dcp::CertificateChain> signer;
- if (_film->is_signed ()) {
- signer = Config::instance()->signer_chain ();
- /* We did check earlier, but check again here to be on the safe side */
- string reason;
- if (!signer->valid (&reason)) {
- throw InvalidSignerError (reason);
+ vector<dcp::ContentVersion> cv;
+ BOOST_FOREACH (string i, _film->content_versions()) {
+ cv.push_back (dcp::ContentVersion(i));
+ }
+ cpl->set_content_versions (cv);
+
+ cpl->set_full_content_title_text (_film->name());
+ cpl->set_full_content_title_text_language (_film->name_language());
+ cpl->set_release_territory (_film->release_territory());
+ cpl->set_version_number (_film->version_number());
+ cpl->set_status (_film->status());
+ cpl->set_chain (_film->chain());
+ cpl->set_distributor (_film->distributor());
+ cpl->set_facility (_film->facility());
+ cpl->set_luminance (_film->luminance());
+
+ list<int> ac = _film->mapped_audio_channels ();
+ dcp::MainSoundConfiguration::Field field = (
+ find(ac.begin(), ac.end(), static_cast<int>(dcp::BSL)) != ac.end() ||
+ find(ac.begin(), ac.end(), static_cast<int>(dcp::BSR)) != ac.end()
+ ) ? dcp::MainSoundConfiguration::SEVEN_POINT_ONE : dcp::MainSoundConfiguration::FIVE_POINT_ONE;
+
+ dcp::MainSoundConfiguration msc (field, _film->audio_channels());
+ BOOST_FOREACH (int i, ac) {
+ if (i < _film->audio_channels()) {
+ msc.set_mapping (i, static_cast<dcp::Channel>(i));