X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fcontent_view.cc;h=8055e2f2d2fb2f043c147984bf30ecd99dd542ec;hb=9ff22e1694a53f09a84b01685b64dcb83e830365;hp=44e575d9393bcc06a349d88901c1cb5b20021a10;hpb=a5d004b0773f633401528392fc28e66d70e13ac8;p=dcpomatic.git diff --git a/src/wx/content_view.cc b/src/wx/content_view.cc index 44e575d93..8055e2f2d 100644 --- a/src/wx/content_view.cc +++ b/src/wx/content_view.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2018 Carl Hetherington + Copyright (C) 2018-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,6 +18,7 @@ */ + #include "content_view.h" #include "wx_util.h" #include "lib/dcpomatic_assert.h" @@ -32,15 +33,18 @@ #include #include -using std::string; + using std::cout; +using std::dynamic_pointer_cast; using std::list; +using std::make_shared; using std::shared_ptr; +using std::string; using std::weak_ptr; using boost::optional; -using std::dynamic_pointer_cast; using namespace dcpomatic; + ContentView::ContentView (wxWindow* parent) : wxListCtrl (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_NO_HEADER) { @@ -51,18 +55,20 @@ ContentView::ContentView (wxWindow* parent) AppendColumn (wxT(""), wxLIST_FORMAT_LEFT, 580); } + shared_ptr ContentView::selected () const { long int s = GetNextItem (-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if (s == -1) { - return shared_ptr(); + return {}; } DCPOMATIC_ASSERT (s < int(_content.size())); return _content[s]; } + void ContentView::update () { @@ -70,29 +76,29 @@ ContentView::update () DeleteAllItems (); _content.clear (); - optional dir = Config::instance()->player_content_directory(); + auto dir = Config::instance()->player_content_directory(); if (!dir || !boost::filesystem::is_directory(*dir)) { dir = home_directory (); } wxProgressDialog progress (_("DCP-o-matic"), _("Reading content directory")); - JobManager* jm = JobManager::instance (); + auto jm = JobManager::instance (); - list > jobs; + list> jobs; - for (directory_iterator i = directory_iterator(*dir); i != directory_iterator(); ++i) { + for (auto i: directory_iterator(*dir)) { try { progress.Pulse (); shared_ptr content; - if (is_directory(*i) && (is_regular_file(*i / "ASSETMAP") || is_regular_file(*i / "ASSETMAP.xml"))) { - content.reset (new DCPContent(*i)); - } else if (i->path().extension() == ".mp4" || i->path().extension() == ".ecinema") { - content = content_factory(*i).front(); + if (is_directory(i) && (is_regular_file(i / "ASSETMAP") || is_regular_file(i / "ASSETMAP.xml"))) { + content.reset (new DCPContent(i)); + } else if (i.path().extension() == ".mp4" || i.path().extension() == ".ecinema") { + content = content_factory(i).front(); } if (content) { - shared_ptr job(new ExamineContentJob(shared_ptr(), content)); + auto job = make_shared(shared_ptr(), content); jm->add (job); jobs.push_back (job); } @@ -125,6 +131,7 @@ ContentView::update () } } + void ContentView::add (shared_ptr content) { @@ -133,13 +140,12 @@ ContentView::add (shared_ptr content) wxListItem it; it.SetId(N); it.SetColumn(0); - DCPTime length = content->approximate_length (); - int h, m, s, f; - length.split (24, h, m, s, f); - it.SetText(wxString::Format("%02d:%02d:%02d", h, m, s)); + auto length = content->approximate_length (); + auto const hmsf = length.split (24); + it.SetText(wxString::Format("%02d:%02d:%02d", hmsf.h, hmsf.m, hmsf.s)); InsertItem(it); - shared_ptr dcp = dynamic_pointer_cast(content); + auto dcp = dynamic_pointer_cast(content); if (dcp && dcp->content_kind()) { it.SetId(N); it.SetColumn(1); @@ -153,6 +159,7 @@ ContentView::add (shared_ptr content) SetItem(it); } + shared_ptr ContentView::get (string digest) const { @@ -162,5 +169,5 @@ ContentView::get (string digest) const } } - return shared_ptr(); + return {}; }