diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-05-03 11:17:34 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-05-03 20:18:04 +0200 |
| commit | 689fa55d1529ad88449ca464e9107c4dcc54d1cb (patch) | |
| tree | edd1264941263f2fa25a98d61f98c87876c5b667 /src/tools | |
| parent | 0aabe4060ea4bad7c7caac633aef0737fccff8c2 (diff) | |
C++11 tidying.
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/dcpomatic_batch.cc | 133 | ||||
| -rw-r--r-- | src/tools/dcpomatic_combiner.cc | 53 | ||||
| -rw-r--r-- | src/tools/server_test.cc | 49 |
3 files changed, 126 insertions, 109 deletions
diff --git a/src/tools/dcpomatic_batch.cc b/src/tools/dcpomatic_batch.cc index 9cb6ddc55..061470602 100644 --- a/src/tools/dcpomatic_batch.cc +++ b/src/tools/dcpomatic_batch.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2013-2019 Carl Hetherington <cth@carlh.net> + Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -18,56 +18,62 @@ */ -#include "wx/wx_util.h" + #include "wx/about_dialog.h" -#include "wx/wx_signal_manager.h" -#include "wx/job_manager_view.h" +#include "wx/dcpomatic_button.h" #include "wx/full_config_dialog.h" +#include "wx/job_manager_view.h" #include "wx/servers_list_dialog.h" -#include "wx/dcpomatic_button.h" -#include "lib/version.h" +#include "wx/wx_signal_manager.h" +#include "wx/wx_util.h" #include "lib/compose.hpp" #include "lib/config.h" -#include "lib/util.h" +#include "lib/dcpomatic_socket.h" #include "lib/film.h" -#include "lib/job_manager.h" #include "lib/job.h" -#include "lib/dcpomatic_socket.h" +#include "lib/job_manager.h" #include "lib/transcode_job.h" +#include "lib/util.h" +#include "lib/version.h" #include <wx/aboutdlg.h> -#include <wx/stdpaths.h> #include <wx/cmdline.h> -#include <wx/splash.h> #include <wx/preferences.h> +#include <wx/splash.h> +#include <wx/stdpaths.h> #include <wx/wx.h> #include <iostream> #include <set> -using std::exception; -using std::string; + using std::cout; +using std::dynamic_pointer_cast; +using std::exception; using std::list; +using std::make_shared; using std::set; using std::shared_ptr; -using boost::thread; +using std::string; using boost::scoped_array; -using std::dynamic_pointer_cast; +using boost::thread; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; #endif + static list<boost::filesystem::path> films_to_load; + enum { ID_file_add_film = 1, ID_tools_encoding_servers, ID_help_about }; + void setup_menu (wxMenuBar* m) { - wxMenu* file = new wxMenu; + auto file = new wxMenu; file->Append (ID_file_add_film, _("&Add Film...\tCtrl-A")); #ifdef DCPOMATIC_OSX file->Append (wxID_EXIT, _("&Exit")); @@ -78,14 +84,14 @@ setup_menu (wxMenuBar* m) #ifdef DCPOMATIC_OSX file->Append (wxID_PREFERENCES, _("&Preferences...\tCtrl-P")); #else - wxMenu* edit = new wxMenu; + auto edit = new wxMenu; edit->Append (wxID_PREFERENCES, _("&Preferences...\tCtrl-P")); #endif - wxMenu* tools = new wxMenu; + auto tools = new wxMenu; tools->Append (ID_tools_encoding_servers, _("Encoding servers...")); - wxMenu* help = new wxMenu; + auto help = new wxMenu; help->Append (ID_help_about, _("About")); m->Append (file, _("&File")); @@ -96,16 +102,15 @@ setup_menu (wxMenuBar* m) m->Append (help, _("&Help")); } + class DOMFrame : public wxFrame { public: explicit DOMFrame (wxString const & title) - : wxFrame (NULL, -1, title) - , _sizer (new wxBoxSizer (wxVERTICAL)) - , _config_dialog (0) - , _servers_list_dialog (0) + : wxFrame (nullptr, -1, title) + , _sizer (new wxBoxSizer(wxVERTICAL)) { - wxMenuBar* bar = new wxMenuBar; + auto bar = new wxMenuBar; setup_menu (bar); SetMenuBar (bar); @@ -117,17 +122,17 @@ public: Bind (wxEVT_MENU, boost::bind (&DOMFrame::tools_encoding_servers, this), ID_tools_encoding_servers); Bind (wxEVT_MENU, boost::bind (&DOMFrame::help_about, this), ID_help_about); - wxPanel* panel = new wxPanel (this); - wxSizer* s = new wxBoxSizer (wxHORIZONTAL); + auto panel = new wxPanel (this); + auto s = new wxBoxSizer (wxHORIZONTAL); s->Add (panel, 1, wxEXPAND); SetSizer (s); - JobManagerView* job_manager_view = new JobManagerView (panel, true); + auto job_manager_view = new JobManagerView (panel, true); _sizer->Add (job_manager_view, 1, wxALL | wxEXPAND, 6); - wxSizer* buttons = new wxBoxSizer (wxHORIZONTAL); - wxButton* add = new Button (panel, _("Add Film...")); - add->Bind (wxEVT_BUTTON, boost::bind (&DOMFrame::add_film, this)); + auto buttons = new wxBoxSizer (wxHORIZONTAL); + auto add = new Button (panel, _("Add Film...")); + add->Bind (wxEVT_BUTTON, boost::bind(&DOMFrame::add_film, this)); buttons->Add (add, 1, wxALL, 6); _pause = new Button (panel, _("Pause")); _pause->Bind (wxEVT_BUTTON, boost::bind(&DOMFrame::pause, this)); @@ -142,8 +147,8 @@ public: panel->SetSizer (_sizer); - Bind (wxEVT_CLOSE_WINDOW, boost::bind (&DOMFrame::close, this, _1)); - Bind (wxEVT_SIZE, boost::bind (&DOMFrame::sized, this, _1)); + Bind (wxEVT_CLOSE_WINDOW, boost::bind(&DOMFrame::close, this, _1)); + Bind (wxEVT_SIZE, boost::bind(&DOMFrame::sized, this, _1)); } void setup_sensitivity () @@ -154,20 +159,20 @@ public: void pause () { - JobManager::instance()->pause (); + JobManager::instance()->pause(); setup_sensitivity (); } void resume () { - JobManager::instance()->resume (); + JobManager::instance()->resume(); setup_sensitivity (); } void start_job (boost::filesystem::path path) { try { - shared_ptr<Film> film (new Film (path)); + auto film = make_shared<Film>(path); film->read_metadata (); double total_required; @@ -176,7 +181,7 @@ public: film->should_be_enough_disk_space (total_required, available, can_hard_link); - set<shared_ptr<const Film> > films; + set<shared_ptr<const Film>> films; for (auto i: JobManager::instance()->get()) { films.insert (i->film()); @@ -208,9 +213,9 @@ public: film->make_dcp (); } catch (std::exception& e) { - wxString p = std_to_wx (path.string ()); - wxCharBuffer b = p.ToUTF8 (); - error_dialog (this, wxString::Format (_("Could not open film at %s"), p.data()), std_to_wx(e.what())); + auto p = std_to_wx (path.string ()); + auto b = p.ToUTF8 (); + error_dialog (this, wxString::Format(_("Could not open film at %s"), p.data()), std_to_wx(e.what())); } } @@ -223,11 +228,11 @@ private: bool should_close () { - if (!JobManager::instance()->work_to_do ()) { + if (!JobManager::instance()->work_to_do()) { return true; } - wxMessageDialog* d = new wxMessageDialog ( + auto d = new wxMessageDialog ( 0, _("There are unfinished jobs; are you sure you want to quit?"), _("Unfinished jobs"), @@ -241,7 +246,7 @@ private: void close (wxCloseEvent& ev) { - if (!should_close ()) { + if (!should_close()) { ev.Veto (); return; } @@ -256,7 +261,7 @@ private: void file_quit () { - if (should_close ()) { + if (should_close()) { Close (true); } } @@ -280,16 +285,16 @@ private: void help_about () { - AboutDialog* d = new AboutDialog (this); + auto d = new AboutDialog (this); d->ShowModal (); d->Destroy (); } void add_film () { - wxDirDialog* c = new wxDirDialog (this, _("Select film to open"), wxStandardPaths::Get().GetDocumentsDir(), wxDEFAULT_DIALOG_STYLE | wxDD_DIR_MUST_EXIST); + auto c = new wxDirDialog (this, _("Select film to open"), wxStandardPaths::Get().GetDocumentsDir(), wxDEFAULT_DIALOG_STYLE | wxDD_DIR_MUST_EXIST); if (_last_parent) { - c->SetPath (std_to_wx (_last_parent.get().string ())); + c->SetPath (std_to_wx(_last_parent.get().string())); } int r; @@ -320,7 +325,7 @@ private: } catch (exception& e) { error_dialog ( this, - wxString::Format ( + wxString::Format( _("Could not write to cinemas file at %s. Your changes have not been saved."), std_to_wx (Config::instance()->cinemas_file().string()).data() ) @@ -332,7 +337,7 @@ private: } catch (exception& e) { error_dialog ( this, - wxString::Format ( + wxString::Format( _("Could not write to config file at %s. Your changes have not been saved."), std_to_wx (Config::instance()->cinemas_file().string()).data() ) @@ -343,17 +348,19 @@ private: boost::optional<boost::filesystem::path> _last_parent; wxSizer* _sizer; - wxPreferencesEditor* _config_dialog; - ServersListDialog* _servers_list_dialog; + wxPreferencesEditor* _config_dialog = nullptr; + ServersListDialog* _servers_list_dialog = nullptr; wxButton* _pause; wxButton* _resume; }; + static const wxCmdLineEntryDesc command_line_description[] = { { wxCMD_LINE_PARAM, 0, 0, "film to load", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE | wxCMD_LINE_PARAM_OPTIONAL }, { wxCMD_LINE_NONE, "", "", "", wxCmdLineParamType (0), 0 } }; + class JobServer : public Server { public: @@ -366,11 +373,11 @@ public: { try { int const length = socket->read_uint32 (); - scoped_array<char> buffer (new char[length]); - socket->read (reinterpret_cast<uint8_t*> (buffer.get()), length); + scoped_array<char> buffer(new char[length]); + socket->read (reinterpret_cast<uint8_t*>(buffer.get()), length); string s (buffer.get()); _frame->start_job (s); - socket->write (reinterpret_cast<uint8_t const *> ("OK"), 3); + socket->write (reinterpret_cast<uint8_t const *>("OK"), 3); } catch (...) { } @@ -380,6 +387,7 @@ private: DOMFrame* _frame; }; + class App : public wxApp { bool OnInit () @@ -389,10 +397,10 @@ class App : public wxApp SetAppName (_("DCP-o-matic Batch Converter")); is_batch_converter = true; - Config::FailedToLoad.connect (boost::bind (&App::config_failed_to_load, this)); - Config::Warning.connect (boost::bind (&App::config_warning, this, _1)); + Config::FailedToLoad.connect (boost::bind(&App::config_failed_to_load, this)); + Config::Warning.connect (boost::bind(&App::config_warning, this, _1)); - wxSplashScreen* splash = maybe_show_splash (); + auto splash = maybe_show_splash (); if (!wxApp::OnInit()) { return false; @@ -430,7 +438,7 @@ class App : public wxApp } _frame->Show (); - JobServer* server = new JobServer (_frame); + auto server = new JobServer (_frame); new thread (boost::bind (&JobServer::run, server)); signal_manager = new wxSignalManager (this); @@ -438,15 +446,15 @@ class App : public wxApp shared_ptr<Film> film; for (auto i: films_to_load) { - if (boost::filesystem::is_directory (i)) { + if (boost::filesystem::is_directory(i)) { try { - film.reset (new Film (i)); + film = make_shared<Film>(i); film->read_metadata (); film->make_dcp (); } catch (exception& e) { error_dialog ( 0, - std_to_wx (String::compose (wx_to_std (_("Could not load film %1")), i.string())), + std_to_wx(String::compose(wx_to_std(_("Could not load film %1")), i.string())), std_to_wx(e.what()) ); } @@ -470,7 +478,7 @@ class App : public wxApp bool OnCmdLineParsed (wxCmdLineParser& parser) { for (size_t i = 0; i < parser.GetParamCount(); ++i) { - films_to_load.push_back (wx_to_std (parser.GetParam(i))); + films_to_load.push_back (wx_to_std(parser.GetParam(i))); } return true; @@ -483,10 +491,11 @@ class App : public wxApp void config_warning (string m) { - message_dialog (_frame, std_to_wx (m)); + message_dialog (_frame, std_to_wx(m)); } DOMFrame* _frame; }; + IMPLEMENT_APP (App) diff --git a/src/tools/dcpomatic_combiner.cc b/src/tools/dcpomatic_combiner.cc index 886c1c613..566ec82f1 100644 --- a/src/tools/dcpomatic_combiner.cc +++ b/src/tools/dcpomatic_combiner.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2020 Carl Hetherington <cth@carlh.net> + Copyright (C) 2020-2021 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -37,12 +37,13 @@ DCPOMATIC_ENABLE_WARNINGS #include <exception> +using std::dynamic_pointer_cast; using std::exception; +using std::make_shared; +using std::shared_ptr; using std::string; using std::vector; -using std::dynamic_pointer_cast; using boost::optional; -using std::shared_ptr; #if BOOST_VERSION >= 106100 using namespace boost::placeholders; #endif @@ -80,13 +81,13 @@ class DOMFrame : public wxFrame { public: explicit DOMFrame (wxString const & title) - : wxFrame (0, -1, title) + : wxFrame (nullptr, -1, title) { /* Use a panel as the only child of the Frame so that we avoid the dark-grey background on Windows. */ - wxPanel* overall_panel = new wxPanel (this); - wxSizer* s = new wxBoxSizer (wxHORIZONTAL); + auto overall_panel = new wxPanel (this); + auto s = new wxBoxSizer (wxHORIZONTAL); s->Add (overall_panel, 1, wxEXPAND); SetSizer (s); @@ -103,14 +104,14 @@ public: true ); - wxBoxSizer* output = new wxBoxSizer (wxHORIZONTAL); + auto output = new wxBoxSizer (wxHORIZONTAL); add_label_to_sizer (output, overall_panel, _("Output DCP folder"), true, 0, wxLEFT | wxRIGHT | wxALIGN_CENTRE_VERTICAL); _output = new DirPickerCtrl (overall_panel); output->Add (_output, 1, wxEXPAND); _combine = new Button (overall_panel, _("Combine")); - wxBoxSizer* sizer = new wxBoxSizer (wxVERTICAL); + auto sizer = new wxBoxSizer (wxVERTICAL); sizer->Add (_input, 1, wxALL | wxEXPAND, DCPOMATIC_DIALOG_BORDER); sizer->Add (output, 0, wxALL | wxEXPAND, DCPOMATIC_DIALOG_BORDER); sizer->Add (_combine, 0, wxALL | wxALIGN_RIGHT, DCPOMATIC_DIALOG_BORDER); @@ -137,9 +138,11 @@ private: void combine () { - boost::filesystem::path const output = wx_to_std(_output->GetPath()); + using namespace boost::filesystem; + + path const output = wx_to_std(_output->GetPath()); - if (boost::filesystem::is_directory(output) && !boost::filesystem::is_empty(output)) { + if (is_directory(output) && !is_empty(output)) { if (!confirm_dialog ( this, std_to_wx ( @@ -150,7 +153,7 @@ private: )) { return; } - } else if (boost::filesystem::is_regular_file(output)) { + } else if (is_regular_file(output)) { error_dialog ( this, String::compose (wx_to_std(_("%1 already exists as a file, so you cannot use it for a DCP.")), output.string()) @@ -158,21 +161,21 @@ private: return; } - JobManager* jm = JobManager::instance (); - jm->add (shared_ptr<Job>(new CombineDCPJob(_inputs, output))); + auto jm = JobManager::instance (); + jm->add (make_shared<CombineDCPJob>(_inputs, output)); bool const ok = display_progress (_("DCP-o-matic Combine"), _("Combining DCPs")); if (!ok) { return; } DCPOMATIC_ASSERT (!jm->get().empty()); - shared_ptr<CombineDCPJob> last = dynamic_pointer_cast<CombineDCPJob> (jm->get().back()); + auto last = dynamic_pointer_cast<CombineDCPJob> (jm->get().back()); DCPOMATIC_ASSERT (last); if (last->finished_ok()) { message_dialog (this, _("DCPs combined successfully.")); } else { - wxString m = std_to_wx(last->error_summary()); + auto m = std_to_wx(last->error_summary()); if (!last->error_details().empty()) { m += wxString::Format(" (%s)", std_to_wx(last->error_details())); } @@ -195,11 +198,9 @@ private: class App : public wxApp { public: - App () - : _frame (0) - {} + App () {} - bool OnInit () + bool OnInit () override { try { Config::FailedToLoad.connect (boost::bind (&App::config_failed_to_load, this)); @@ -249,7 +250,7 @@ public: } catch (exception& e) { - error_dialog (0, wxString::Format ("DCP-o-matic DCP Combiner could not start."), std_to_wx(e.what())); + error_dialog (nullptr, wxString::Format ("DCP-o-matic DCP Combiner could not start."), std_to_wx(e.what())); return false; } @@ -279,7 +280,7 @@ public: } catch (FileError& e) { error_dialog ( 0, - wxString::Format ( + wxString::Format( _("An exception occurred: %s (%s)\n\n") + REPORT_PROBLEM, std_to_wx (e.what()), std_to_wx (e.file().string().c_str ()) @@ -288,29 +289,29 @@ public: } catch (exception& e) { error_dialog ( 0, - wxString::Format ( + wxString::Format( _("An exception occurred: %s.\n\n") + REPORT_PROBLEM, std_to_wx (e.what ()) ) ); } catch (...) { - error_dialog (0, _("An unknown exception occurred.") + " " + REPORT_PROBLEM); + error_dialog (nullptr, _("An unknown exception occurred.") + " " + REPORT_PROBLEM); } } - bool OnExceptionInMainLoop () + bool OnExceptionInMainLoop () override { report_exception (); /* This will terminate the program */ return false; } - void OnUnhandledException () + void OnUnhandledException () override { report_exception (); } - DOMFrame* _frame; + DOMFrame* _frame = nullptr; }; IMPLEMENT_APP (App) diff --git a/src/tools/server_test.cc b/src/tools/server_test.cc index 8e4496799..6c7371253 100644 --- a/src/tools/server_test.cc +++ b/src/tools/server_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net> + Copyright (C) 2012-2021 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -18,29 +18,32 @@ */ -#include "lib/ratio.h" -#include "lib/film.h" -#include "lib/filter.h" -#include "lib/util.h" -#include "lib/encode_server.h" + #include "lib/dcp_video.h" #include "lib/decoder.h" +#include "lib/encode_server.h" +#include "lib/encode_server_description.h" #include "lib/exceptions.h" #include "lib/file_log.h" -#include "lib/video_decoder.h" +#include "lib/film.h" +#include "lib/filter.h" #include "lib/player.h" #include "lib/player_video.h" -#include "lib/encode_server_description.h" +#include "lib/ratio.h" +#include "lib/util.h" +#include "lib/video_decoder.h" #include <getopt.h> -#include <iostream> -#include <iomanip> #include <exception> +#include <iomanip> +#include <iostream> + -using std::cout; using std::cerr; -using std::string; +using std::cout; +using std::make_shared; using std::pair; using std::shared_ptr; +using std::string; using boost::optional; using boost::bind; #if BOOST_VERSION >= 106100 @@ -48,22 +51,24 @@ using namespace boost::placeholders; #endif using dcp::ArrayData; + static shared_ptr<Film> film; static EncodeServerDescription* server; static int frame_count = 0; + void process_video (shared_ptr<PlayerVideo> pvf) { - shared_ptr<DCPVideo> local (new DCPVideo (pvf, frame_count, film->video_frame_rate(), 250000000, Resolution::TWO_K)); - shared_ptr<DCPVideo> remote (new DCPVideo (pvf, frame_count, film->video_frame_rate(), 250000000, Resolution::TWO_K)); + auto local = make_shared<DCPVideo>(pvf, frame_count, film->video_frame_rate(), 250000000, Resolution::TWO_K); + auto remote = make_shared<DCPVideo>(pvf, frame_count, film->video_frame_rate(), 250000000, Resolution::TWO_K); cout << "Frame " << frame_count << ": "; cout.flush (); ++frame_count; - ArrayData local_encoded = local->encode_locally (); + auto local_encoded = local->encode_locally (); ArrayData remote_encoded; string remote_error; @@ -73,7 +78,7 @@ process_video (shared_ptr<PlayerVideo> pvf) remote_error = e.what (); } - if (!remote_error.empty ()) { + if (!remote_error.empty()) { cout << "\033[0;31mnetwork problem: " << remote_error << "\033[0m\n"; return; } @@ -83,8 +88,8 @@ process_video (shared_ptr<PlayerVideo> pvf) return; } - uint8_t* p = local_encoded.data(); - uint8_t* q = remote_encoded.data(); + auto p = local_encoded.data(); + auto q = remote_encoded.data(); for (int i = 0; i < local_encoded.size(); ++i) { if (*p++ != *q++) { cout << "\033[0;31mdata differ\033[0m at byte " << i << "\n"; @@ -95,6 +100,7 @@ process_video (shared_ptr<PlayerVideo> pvf) cout << "\033[0;32mgood\033[0m\n"; } + static void help (string n) { @@ -102,6 +108,7 @@ help (string n) exit (EXIT_FAILURE); } + int main (int argc, char* argv[]) { @@ -145,11 +152,11 @@ main (int argc, char* argv[]) try { server = new EncodeServerDescription (server_host, 1, SERVER_LINK_VERSION); - film.reset (new Film (film_dir)); + film = make_shared<Film>(film_dir); film->read_metadata (); - shared_ptr<Player> player (new Player(film)); - player->Video.connect (bind (&process_video, _1)); + auto player = make_shared<Player>(film); + player->Video.connect (bind(&process_video, _1)); while (!player->pass ()) {} } catch (std::exception& e) { cerr << "Error: " << e.what() << "\n"; |
