X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fvideo_waveform_plot.h;h=36ec63d8a55bbe6b9d10052e7ec3630dd84c267e;hb=39fb8198febde1937019db1c300ec363aab5aa56;hp=0f8bd33cdb9c329d17ec1d518d737fe8fea55466;hpb=533de5cc51d93a8403816fc0f04ca1d5aa733242;p=dcpomatic.git diff --git a/src/wx/video_waveform_plot.h b/src/wx/video_waveform_plot.h index 0f8bd33cd..36ec63d8a 100644 --- a/src/wx/video_waveform_plot.h +++ b/src/wx/video_waveform_plot.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2015 Carl Hetherington + Copyright (C) 2015-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,42 +18,57 @@ */ + +#include "lib/warnings.h" +DCPOMATIC_DISABLE_WARNINGS #include -#include -#include +DCPOMATIC_ENABLE_WARNINGS #include + namespace dcp { class OpenJPEGImage; } class PlayerVideo; class Image; +class Film; class FilmViewer; + class VideoWaveformPlot : public wxPanel { public: - VideoWaveformPlot (wxWindow* parent, FilmViewer* viewer); + VideoWaveformPlot (wxWindow* parent, std::weak_ptr film, std::weak_ptr viewer); void set_enabled (bool e); void set_component (int c); void set_contrast (int b); + /** Emitted when the mouse is moved over the waveform. The parameters + are: + - (int, int): image x range + - (int, int): component value range + */ + boost::signals2::signal MouseMoved; + private: void paint (); void sized (wxSizeEvent &); void create_waveform (); - void set_image (boost::weak_ptr); + void set_image (std::shared_ptr); + void mouse_moved (wxMouseEvent &); - boost::shared_ptr _image; - boost::shared_ptr _waveform; - bool _dirty; - bool _enabled; - int _component; - int _contrast; + std::weak_ptr _film; + std::shared_ptr _image; + std::shared_ptr _waveform; + bool _dirty = true; + bool _enabled = false; + int _component = 0; + int _contrast = 0; static int const _vertical_margin; + static int const _pixel_values; static int const _x_axis_width; boost::signals2::connection _viewer_connection;