From 55c007ab910ee9586d6bd2faba165e42f6148622 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 15 Apr 2021 23:51:08 +0200 Subject: [PATCH] C++11 tidying. --- src/lib/analyse_audio_job.cc | 3 +- src/lib/dkdm_wrapper.cc | 34 +++++++++++++--------- src/lib/dkdm_wrapper.h | 13 ++++++--- src/lib/film.cc | 8 +++--- src/lib/hints.cc | 2 +- src/wx/audio_plot.cc | 56 +++++++++++++++++++++++------------- src/wx/dcp_panel.cc | 2 +- src/wx/markers_dialog.cc | 4 +++ src/wx/markers_dialog.h | 2 +- 9 files changed, 78 insertions(+), 46 deletions(-) diff --git a/src/lib/analyse_audio_job.cc b/src/lib/analyse_audio_job.cc index c94e0b91f..448902e1e 100644 --- a/src/lib/analyse_audio_job.cc +++ b/src/lib/analyse_audio_job.cc @@ -205,8 +205,7 @@ AnalyseAudioJob::run () /* If there was only one piece of content in this analysis we may later need to know what its gain was when we analysed it. */ - shared_ptr ac = _playlist->content().front()->audio; - if (ac) { + if (auto ac = _playlist->content().front()->audio) { _analysis->set_analysis_gain (ac->gain()); } } diff --git a/src/lib/dkdm_wrapper.cc b/src/lib/dkdm_wrapper.cc index 74a71966e..4698c159d 100644 --- a/src/lib/dkdm_wrapper.cc +++ b/src/lib/dkdm_wrapper.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2017 Carl Hetherington + Copyright (C) 2017-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,6 +18,7 @@ */ + #include "compose.hpp" #include "dkdm_wrapper.h" #include "dcpomatic_assert.h" @@ -26,78 +27,85 @@ DCPOMATIC_DISABLE_WARNINGS #include DCPOMATIC_ENABLE_WARNINGS + using std::string; using std::list; using std::shared_ptr; +using std::make_shared; using std::dynamic_pointer_cast; + shared_ptr DKDMBase::read (cxml::ConstNodePtr node) { if (node->name() == "DKDM") { - return shared_ptr (new DKDM (dcp::EncryptedKDM (node->content ()))); + return make_shared(dcp::EncryptedKDM(node->content())); } else if (node->name() == "DKDMGroup") { - shared_ptr group (new DKDMGroup (node->string_attribute ("Name"))); + auto group = make_shared(node->string_attribute("Name")); for (auto i: node->node_children()) { - shared_ptr c = read (i); - if (c) { + if (auto c = read(i)) { group->add (c); } } return group; } - return shared_ptr (); + return {}; } + string DKDM::name () const { return String::compose ("%1 (%2)", _dkdm.content_title_text(), _dkdm.cpl_id()); } + void DKDM::as_xml (xmlpp::Element* node) const { node->add_child("DKDM")->add_child_text (_dkdm.as_xml ()); } + void DKDMGroup::as_xml (xmlpp::Element* node) const { - xmlpp::Element* f = node->add_child("DKDMGroup"); + auto f = node->add_child("DKDMGroup"); f->set_attribute ("Name", _name); for (auto i: _children) { i->as_xml (f); } } + void DKDMGroup::add (shared_ptr child, shared_ptr previous) { DCPOMATIC_ASSERT (child); if (previous) { - list >::iterator i = find (_children.begin(), _children.end(), previous); - if (i != _children.end ()) { + auto i = find (_children.begin(), _children.end(), previous); + if (i != _children.end()) { ++i; } _children.insert (i, child); } else { _children.push_back (child); } - child->set_parent (dynamic_pointer_cast (shared_from_this ())); + child->set_parent (dynamic_pointer_cast(shared_from_this())); } + void DKDMGroup::remove (shared_ptr child) { - for (list >::iterator i = _children.begin(); i != _children.end(); ++i) { + for (auto i = _children.begin(); i != _children.end(); ++i) { if (*i == child) { _children.erase (i); - child->set_parent (shared_ptr ()); + child->set_parent (shared_ptr()); return; } - shared_ptr g = dynamic_pointer_cast (*i); + auto g = dynamic_pointer_cast (*i); if (g) { g->remove (child); } diff --git a/src/lib/dkdm_wrapper.h b/src/lib/dkdm_wrapper.h index 261cdc767..0c2992bc4 100644 --- a/src/lib/dkdm_wrapper.h +++ b/src/lib/dkdm_wrapper.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2017 Carl Hetherington + Copyright (C) 2017-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,6 +18,7 @@ */ + #include #include #include @@ -27,8 +28,10 @@ namespace xmlpp { class Element; } + class DKDMGroup; + class DKDMBase : public std::enable_shared_from_this { public: @@ -50,6 +53,7 @@ private: std::shared_ptr _parent; }; + class DKDM : public DKDMBase { public: @@ -68,6 +72,7 @@ private: dcp::EncryptedKDM _dkdm; }; + class DKDMGroup : public DKDMBase { public: @@ -81,14 +86,14 @@ public: void as_xml (xmlpp::Element *) const; - std::list > children () const { + std::list> children () const { return _children; } - void add (std::shared_ptr child, std::shared_ptr previous = std::shared_ptr ()); + void add (std::shared_ptr child, std::shared_ptr previous = std::shared_ptr()); void remove (std::shared_ptr child); private: std::string _name; - std::list > _children; + std::list> _children; }; diff --git a/src/lib/film.cc b/src/lib/film.cc index c57fc165c..7f6f8e498 100644 --- a/src/lib/film.cc +++ b/src/lib/film.cc @@ -284,13 +284,13 @@ Film::audio_analysis_path (shared_ptr playlist) const auto p = dir ("analysis"); Digester digester; - for (auto i: playlist->content ()) { + for (auto i: playlist->content()) { if (!i->audio) { continue; } - digester.add (i->digest ()); - digester.add (i->audio->mapping().digest ()); + digester.add (i->digest()); + digester.add (i->audio->mapping().digest()); if (playlist->content().size() != 1) { /* Analyses should be considered equal regardless of gain if they were made from just one piece of content. This @@ -298,7 +298,7 @@ Film::audio_analysis_path (shared_ptr playlist) const analysis at the plotting stage rather than having to recompute it. */ - digester.add (i->audio->gain ()); + digester.add (i->audio->gain()); } } diff --git a/src/lib/hints.cc b/src/lib/hints.cc index 729e9a867..e9dcfac34 100644 --- a/src/lib/hints.cc +++ b/src/lib/hints.cc @@ -125,7 +125,7 @@ Hints::check_incorrect_container () int scope = 0; for (auto i: film()->content()) { if (i->video) { - Ratio const * r = Ratio::nearest_from_ratio(i->video->scaled_size(film()->frame_size()).ratio()); + auto const r = Ratio::nearest_from_ratio(i->video->scaled_size(film()->frame_size()).ratio()); if (r && r->id() == "239") { ++scope; } else if (r && r->id() != "239" && r->id() != "235" && r->id() != "190") { diff --git a/src/wx/audio_plot.cc b/src/wx/audio_plot.cc index cb10908df..f25ae4cb6 100644 --- a/src/wx/audio_plot.cc +++ b/src/wx/audio_plot.cc @@ -18,6 +18,7 @@ */ + #include "audio_plot.h" #include "wx_util.h" #include "film_viewer.h" @@ -29,6 +30,7 @@ #include #include + using std::cout; using std::vector; using std::list; @@ -44,10 +46,12 @@ using namespace boost::placeholders; #endif using namespace dcpomatic; + int const AudioPlot::_minimum = -70; int const AudioPlot::_cursor_size = 8; int const AudioPlot::max_smoothing = 128; + AudioPlot::AudioPlot (wxWindow* parent, weak_ptr viewer) : wxPanel (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE) , _viewer (viewer) @@ -98,6 +102,7 @@ AudioPlot::AudioPlot (wxWindow* parent, weak_ptr viewer) SetMinSize (wxSize (640, 512)); } + void AudioPlot::set_analysis (shared_ptr a) { @@ -110,6 +115,7 @@ AudioPlot::set_analysis (shared_ptr a) Refresh (); } + void AudioPlot::set_channel_visible (int c, bool v) { @@ -117,6 +123,7 @@ AudioPlot::set_channel_visible (int c, bool v) Refresh (); } + void AudioPlot::set_type_visible (int t, bool v) { @@ -124,6 +131,7 @@ AudioPlot::set_type_visible (int t, bool v) Refresh (); } + void AudioPlot::set_message (wxString s) { @@ -131,6 +139,7 @@ AudioPlot::set_message (wxString s) Refresh (); } + struct Metrics { double db_label_width; @@ -140,12 +149,13 @@ struct Metrics float y_scale; }; + void AudioPlot::paint () { wxPaintDC dc (this); - wxGraphicsContext* gc = wxGraphicsContext::Create (dc); + auto gc = wxGraphicsContext::Create (dc); if (!gc) { return; } @@ -157,7 +167,7 @@ AudioPlot::paint () return; } - wxGraphicsPath h_grid = gc->CreatePath (); + auto h_grid = gc->CreatePath (); gc->SetFont (gc->CreateFont (*wxSMALL_FONT)); wxDouble db_label_height; wxDouble db_label_descent; @@ -186,7 +196,7 @@ AudioPlot::paint () /* Draw an x axis with marks */ - wxGraphicsPath v_grid = gc->CreatePath (); + auto v_grid = gc->CreatePath (); DCPOMATIC_ASSERT (_analysis->samples_per_point() != 0.0); double const pps = _analysis->sample_rate() * metrics.x_scale / _analysis->samples_per_point(); @@ -195,7 +205,7 @@ AudioPlot::paint () double const mark_interval = calculate_mark_interval (rint (128 / pps)); - DCPTime t = DCPTime::from_seconds (mark_interval); + auto t = DCPTime::from_seconds (mark_interval); while ((t.seconds() * pps) < data_width) { double tc = t.seconds (); int const h = tc / 3600; @@ -204,7 +214,7 @@ AudioPlot::paint () tc -= m * 60; int const s = tc; - wxString str = wxString::Format (wxT ("%02d:%02d:%02d"), h, m, s); + auto str = wxString::Format (wxT ("%02d:%02d:%02d"), h, m, s); wxDouble str_width; wxDouble str_height; wxDouble str_descent; @@ -225,11 +235,11 @@ AudioPlot::paint () if (_type_visible[AudioPoint::PEAK]) { for (int c = 0; c < MAX_DCP_AUDIO_CHANNELS; ++c) { - wxGraphicsPath p = gc->CreatePath (); + auto p = gc->CreatePath (); if (_channel_visible[c] && c < _analysis->channels()) { plot_peak (p, c, metrics); } - wxColour const col = _colours[c]; + auto const col = _colours[c]; gc->SetPen (wxPen (wxColour (col.Red(), col.Green(), col.Blue(), col.Alpha() / 2), 1, wxPENSTYLE_SOLID)); gc->StrokePath (p); } @@ -237,17 +247,17 @@ AudioPlot::paint () if (_type_visible[AudioPoint::RMS]) { for (int c = 0; c < MAX_DCP_AUDIO_CHANNELS; ++c) { - wxGraphicsPath p = gc->CreatePath (); + auto p = gc->CreatePath (); if (_channel_visible[c] && c < _analysis->channels()) { plot_rms (p, c, metrics); } - wxColour const col = _colours[c]; + auto const col = _colours[c]; gc->SetPen (wxPen (col, 1, wxPENSTYLE_SOLID)); gc->StrokePath (p); } } - wxGraphicsPath axes = gc->CreatePath (); + auto axes = gc->CreatePath (); axes.MoveToPoint (metrics.db_label_width, 0); axes.AddLineToPoint (metrics.db_label_width, metrics.height - metrics.y_origin); axes.AddLineToPoint (metrics.db_label_width + data_width, metrics.height - metrics.y_origin); @@ -255,19 +265,18 @@ AudioPlot::paint () gc->StrokePath (axes); if (_cursor) { - wxGraphicsPath cursor = gc->CreatePath (); + auto cursor = gc->CreatePath (); cursor.MoveToPoint (_cursor->draw.x - _cursor_size / 2, _cursor->draw.y - _cursor_size / 2); cursor.AddLineToPoint (_cursor->draw.x + _cursor_size / 2, _cursor->draw.y + _cursor_size / 2); cursor.MoveToPoint (_cursor->draw.x + _cursor_size / 2, _cursor->draw.y - _cursor_size / 2); cursor.AddLineToPoint (_cursor->draw.x - _cursor_size / 2, _cursor->draw.y + _cursor_size / 2); gc->StrokePath (cursor); - - } delete gc; } + float AudioPlot::y_for_linear (float p, Metrics const & metrics) const { @@ -278,6 +287,7 @@ AudioPlot::y_for_linear (float p, Metrics const & metrics) const return metrics.height - (linear_to_db(p) - _minimum) * metrics.y_scale - metrics.y_origin; } + void AudioPlot::plot_peak (wxGraphicsPath& path, int channel, Metrics const & metrics) const { @@ -315,6 +325,7 @@ AudioPlot::plot_peak (wxGraphicsPath& path, int channel, Metrics const & metrics } } + void AudioPlot::plot_rms (wxGraphicsPath& path, int channel, Metrics const & metrics) const { @@ -384,6 +395,7 @@ AudioPlot::plot_rms (wxGraphicsPath& path, int channel, Metrics const & metrics) } } + void AudioPlot::set_smoothing (int s) { @@ -393,6 +405,7 @@ AudioPlot::set_smoothing (int s) Refresh (); } + void AudioPlot::set_gain_correction (double gain) { @@ -400,10 +413,11 @@ AudioPlot::set_gain_correction (double gain) Refresh (); } + AudioPoint AudioPlot::get_point (int channel, int point) const { - AudioPoint p = _analysis->get_point (channel, point); + auto p = _analysis->get_point (channel, point); for (int i = 0; i < AudioPoint::COUNT; ++i) { p[i] *= db_to_linear(_gain_correction); } @@ -411,6 +425,7 @@ AudioPlot::get_point (int channel, int point) const return p; } + /** @param n Channel index. * @return Colour used by that channel in the plot. */ @@ -421,11 +436,12 @@ AudioPlot::colour (int n) const return _colours[n]; } + void AudioPlot::search (map const & search, wxMouseEvent const & ev, double& min_dist, Point& min_point) const { - for (map::const_iterator i = search.begin(); i != search.end(); ++i) { - for (auto const& j: i->second) { + for (auto const& i: search) { + for (auto const& j: i.second) { double const dist = pow(ev.GetX() - j.draw.x, 2) + pow(ev.GetY() - j.draw.y, 2); if (dist < min_dist) { min_dist = dist; @@ -440,8 +456,7 @@ void AudioPlot::left_down () { if (_cursor) { - shared_ptr fv = _viewer.lock (); - if (fv) { + if (auto fv = _viewer.lock()) { fv->seek (_cursor->time, true); } } @@ -457,7 +472,7 @@ AudioPlot::mouse_moved (wxMouseEvent& ev) search (_rms, ev, min_dist, min_point); search (_peak, ev, min_dist, min_point); - _cursor = optional (); + _cursor = {}; if (min_dist < DBL_MAX) { wxRect before (min_point.draw.x - _cursor_size / 2, min_point.draw.y - _cursor_size / 2, _cursor_size, _cursor_size); @@ -469,10 +484,11 @@ AudioPlot::mouse_moved (wxMouseEvent& ev) } } + void AudioPlot::mouse_leave (wxMouseEvent &) { - _cursor = optional (); + _cursor = {}; Refresh (); Cursor (optional(), optional()); } diff --git a/src/wx/dcp_panel.cc b/src/wx/dcp_panel.cc index 838ccee18..3a4644b42 100644 --- a/src/wx/dcp_panel.cc +++ b/src/wx/dcp_panel.cc @@ -895,7 +895,7 @@ DCPPanel::show_audio_clicked () if (_audio_dialog) { _audio_dialog->Destroy (); - _audio_dialog = 0; + _audio_dialog = nullptr; } auto d = new AudioDialog (_panel, _film, _viewer); diff --git a/src/wx/markers_dialog.cc b/src/wx/markers_dialog.cc index 6658fdb45..821258a20 100644 --- a/src/wx/markers_dialog.cc +++ b/src/wx/markers_dialog.cc @@ -18,6 +18,7 @@ */ + #include "markers_dialog.h" #include "wx_util.h" #include "timecode.h" @@ -31,6 +32,7 @@ #include #include + using std::cout; using std::shared_ptr; using std::weak_ptr; @@ -39,6 +41,7 @@ using boost::optional; using boost::bind; using dcpomatic::DCPTime; + class Marker { public: @@ -112,6 +115,7 @@ private: Button* set_button; }; + MarkersDialog::MarkersDialog (wxWindow* parent, weak_ptr film, weak_ptr viewer) : wxDialog (parent, wxID_ANY, _("Markers")) , _film (film) diff --git a/src/wx/markers_dialog.h b/src/wx/markers_dialog.h index a3f3532e5..7d713bd59 100644 --- a/src/wx/markers_dialog.h +++ b/src/wx/markers_dialog.h @@ -37,6 +37,6 @@ public: MarkersDialog (wxWindow* parent, std::weak_ptr film, std::weak_ptr viewer); private: - std::list > _markers; + std::list> _markers; std::weak_ptr _film; }; -- 2.30.2