X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Faudio_plot.cc;h=90a4aa91df39b5a5cc468ba8a3850b0b5f4b2ba4;hb=df79d429bf1663a0053844b7e98690d2fdfb790d;hp=f25ae4cb64cb1c8517c13605aa15181971778677;hpb=55c007ab910ee9586d6bd2faba165e42f6148622;p=dcpomatic.git diff --git a/src/wx/audio_plot.cc b/src/wx/audio_plot.cc index f25ae4cb6..90a4aa91d 100644 --- a/src/wx/audio_plot.cc +++ b/src/wx/audio_plot.cc @@ -160,6 +160,8 @@ AudioPlot::paint () return; } + gc->SetAntialiasMode (wxANTIALIAS_DEFAULT); + if (!_analysis || _analysis->channels() == 0) { gc->SetFont (gc->CreateFont (*wxNORMAL_FONT)); gc->DrawText (_message, 32, 32); @@ -437,21 +439,6 @@ AudioPlot::colour (int n) const } -void -AudioPlot::search (map const & search, wxMouseEvent const & ev, double& min_dist, Point& min_point) const -{ - 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; - min_point = j; - } - } - } -} - - void AudioPlot::left_down () { @@ -469,10 +456,28 @@ AudioPlot::mouse_moved (wxMouseEvent& ev) double min_dist = DBL_MAX; Point min_point; - search (_rms, ev, min_dist, min_point); - search (_peak, ev, min_dist, min_point); + auto search = [this](map const & search, wxMouseEvent const & ev, double& min_dist, Point& min_point) { + for (auto const& i: search) { + if (_channel_visible[i.first]) { + 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; + min_point = j; + } + } + } + } + }; + + if (_type_visible[AudioPoint::RMS]) { + search (_rms, ev, min_dist, min_point); + } + if (_type_visible[AudioPoint::PEAK]) { + search (_peak, ev, min_dist, min_point); + } - _cursor = {}; + _cursor = boost::none; 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); @@ -488,7 +493,7 @@ AudioPlot::mouse_moved (wxMouseEvent& ev) void AudioPlot::mouse_leave (wxMouseEvent &) { - _cursor = {}; + _cursor = boost::none; Refresh (); Cursor (optional(), optional()); }