shared_ptr<DCPContent> d = dynamic_pointer_cast<DCPContent>(i);
if (d && !d->kdm_timing_window_valid()) {
ok = false;
shared_ptr<DCPContent> d = dynamic_pointer_cast<DCPContent>(i);
if (d && !d->kdm_timing_window_valid()) {
ok = false;
if (dcp) {
DCPExaminer ex (dcp, true);
shared_ptr<dcp::CPL> playing_cpl;
if (dcp) {
DCPExaminer ex (dcp, true);
shared_ptr<dcp::CPL> playing_cpl;
"playback-started %s %s %s",
time.timecode(_film->video_frame_rate()).c_str(),
dcp->directories().front().string().c_str(),
"playback-started %s %s %s",
time.timecode(_film->video_frame_rate()).c_str(),
dcp->directories().front().string().c_str(),
- BOOST_FOREACH (shared_ptr<Content> i, _film->content()) {
- shared_ptr<DCPContent> dcp = dynamic_pointer_cast<DCPContent>(i);
+ for (auto i: _film->content()) {
+ auto dcp = dynamic_pointer_cast<DCPContent>(i);
- wxMenuItemList old = _cpl_menu->GetMenuItems();
- for (wxMenuItemList::iterator i = old.begin(); i != old.end(); ++i) {
- _cpl_menu->Remove (*i);
+ auto old = _cpl_menu->GetMenuItems();
+ for (auto const& i: old) {
+ _cpl_menu->Remove (i);
- BOOST_FOREACH (shared_ptr<dcp::CPL> i, ex.cpls()) {
- wxMenuItem* j = _cpl_menu->AppendRadioItem(
+ for (auto i: ex.cpls()) {
+ auto j = _cpl_menu->AppendRadioItem(
- wxString::Format("%s (%s)", std_to_wx(i->annotation_text()).data(), std_to_wx(i->id()).data())
+ wxString::Format("%s (%s)", std_to_wx(i->annotation_text().get_value_or("")).data(), std_to_wx(i->id()).data())
if (last->finished_in_error()) {
error_dialog(parent, wxString::Format(_("Could not load DCP.\n\n%s."), std_to_wx(last->error_summary()).data()), std_to_wx(last->error_details()));
return false;
if (last->finished_in_error()) {
error_dialog(parent, wxString::Format(_("Could not load DCP.\n\n%s."), std_to_wx(last->error_summary()).data()), std_to_wx(last->error_details()));
return false;
view->AppendRadioItem(ID_view_scale_quarter, _("Decode at quarter resolution"))->Check(c && c.get() == 2);
wxMenu* tools = new wxMenu;
view->AppendRadioItem(ID_view_scale_quarter, _("Decode at quarter resolution"))->Check(c && c.get() == 2);
wxMenu* tools = new wxMenu;
tools->AppendSeparator ();
tools->Append (ID_tools_check_for_updates, _("Check for updates"));
tools->Append (ID_tools_timing, _("Timing..."));
tools->AppendSeparator ();
tools->Append (ID_tools_check_for_updates, _("Check for updates"));
tools->Append (ID_tools_timing, _("Timing..."));
DCPOMATIC_ASSERT (dcp);
dcp->add_ov (wx_to_std(c->GetPath()));
JobManager::instance()->add(shared_ptr<Job>(new ExamineContentJob (_film, dcp)));
DCPOMATIC_ASSERT (dcp);
dcp->add_ov (wx_to_std(c->GetPath()));
JobManager::instance()->add(shared_ptr<Job>(new ExamineContentJob (_film, dcp)));
DCPOMATIC_ASSERT (dcp);
DCPExaminer ex (dcp, true);
int id = ev.GetId() - ID_view_cpl;
DCPOMATIC_ASSERT (dcp);
DCPExaminer ex (dcp, true);
int id = ev.GetId() - ID_view_cpl;
boost::signals2::scoped_connection _config_changed_connection;
boost::signals2::scoped_connection _examine_job_connection;
wxMenuItem* _file_add_ov;
boost::signals2::scoped_connection _config_changed_connection;
boost::signals2::scoped_connection _examine_job_connection;
wxMenuItem* _file_add_ov;