#include "lib/audio_decoder.h"
#include "lib/audio_analysis.h"
#include "lib/compose.hpp"
+#include "lib/constants.h"
#include "lib/maths_util.h"
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
#include <wx/graphics.h>
+LIBDCP_ENABLE_WARNINGS
#include <boost/bind/bind.hpp>
#include <cfloat>
-#include <iostream>
-using std::cout;
using std::list;
using std::map;
using std::max;
int const AudioPlot::max_smoothing = 128;
-AudioPlot::AudioPlot (wxWindow* parent, weak_ptr<FilmViewer> viewer)
+AudioPlot::AudioPlot(wxWindow* parent, FilmViewer& viewer)
: wxPanel (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE)
, _viewer (viewer)
, _smoothing (max_smoothing / 2)
_type_visible[i] = false;
}
- _colours.push_back (wxColour ( 0, 0, 0));
+ if (gui_is_dark()) {
+ _colours.push_back(wxColour(255, 255, 255));
+ } else {
+ _colours.push_back(wxColour(0, 0, 0));
+ }
_colours.push_back (wxColour (255, 0, 0));
_colours.push_back (wxColour ( 0, 255, 0));
_colours.push_back (wxColour (139, 0, 204));
gc->SetAntialiasMode (wxANTIALIAS_DEFAULT);
if (!_analysis || _analysis->channels() == 0) {
- gc->SetFont (gc->CreateFont (*wxNORMAL_FONT));
+ gc->SetFont(gc->CreateFont(*wxNORMAL_FONT, gui_is_dark() ? *wxWHITE : *wxBLACK));
gc->DrawText (_message, 32, 32);
delete gc;
return;
}
auto h_grid = gc->CreatePath ();
- gc->SetFont (gc->CreateFont (*wxSMALL_FONT));
+ gc->SetFont(gc->CreateFont(*wxSMALL_FONT, gui_is_dark() ? *wxWHITE : *wxBLACK));
wxDouble db_label_height;
wxDouble db_label_descent;
wxDouble db_label_leading;
gc->DrawText (std_to_wx (String::compose ("%1dB", i)), 0, y - (db_label_height / 2));
}
- gc->SetPen (wxPen (wxColour (200, 200, 200)));
+ wxColour const grid_colour = gui_is_dark() ? wxColour(80, 80, 80) : wxColour(200, 200, 200);
+
+ gc->SetPen(wxPen(grid_colour));
gc->StrokePath (h_grid);
/* Draw an x axis with marks */
DCPOMATIC_ASSERT (_analysis->samples_per_point() != 0.0);
double const pps = _analysis->sample_rate() * metrics.x_scale / _analysis->samples_per_point();
- gc->SetPen (*wxThePenList->FindOrCreatePen (wxColour (0, 0, 0), 1, wxPENSTYLE_SOLID));
-
double const mark_interval = calculate_mark_interval (rint (128 / pps));
auto t = DCPTime::from_seconds (mark_interval);
t += DCPTime::from_seconds (mark_interval);
}
- gc->SetPen (wxPen (wxColour (200, 200, 200)));
+ gc->SetPen(wxPen(grid_colour));
gc->StrokePath (v_grid);
if (_type_visible[AudioPoint::PEAK]) {
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);
- gc->SetPen (wxPen (wxColour (0, 0, 0)));
+ gc->SetPen(wxPen(grid_colour));
gc->StrokePath (axes);
if (_cursor) {
AudioPlot::left_down ()
{
if (_cursor) {
- if (auto fv = _viewer.lock()) {
- fv->seek (_cursor->time, true);
- }
+ _viewer.seek(_cursor->time, true);
}
}