Fix macOS build.
[dcpomatic.git] / src / wx / film_viewer.cc
index ac12bea3f6f9870a001e976b20d6f5d0eb1d8e0a..0e6e908b3245c88fb8e9851e4e898a452c8d64bb 100644 (file)
 #include "playhead_to_timecode_dialog.h"
 #include "simple_video_view.h"
 #include "wx_util.h"
-#include "lib/film.h"
-#include "lib/ratio.h"
-#include "lib/util.h"
-#include "lib/job_manager.h"
-#include "lib/image.h"
-#include "lib/exceptions.h"
+#include "lib/butler.h"
+#include "lib/compose.hpp"
+#include "lib/config.h"
+#include "lib/dcpomatic_log.h"
 #include "lib/examine_content_job.h"
+#include "lib/exceptions.h"
+#include "lib/film.h"
 #include "lib/filter.h"
+#include "lib/image.h"
+#include "lib/job_manager.h"
+#include "lib/log.h"
 #include "lib/player.h"
 #include "lib/player_video.h"
+#include "lib/ratio.h"
+#include "lib/text_content.h"
+#include "lib/timer.h"
+#include "lib/util.h"
 #include "lib/video_content.h"
 #include "lib/video_decoder.h"
-#include "lib/timer.h"
-#include "lib/butler.h"
-#include "lib/log.h"
-#include "lib/config.h"
-#include "lib/compose.hpp"
-#include "lib/dcpomatic_log.h"
-#include "lib/text_content.h"
+#include <dcp/exceptions.h>
+#include <dcp/warnings.h>
 extern "C" {
 #include <libavutil/pixfmt.h>
 }
-#include <dcp/exceptions.h>
+LIBDCP_DISABLE_WARNINGS
 #include <wx/tglbtn.h>
-#include <iostream>
+LIBDCP_ENABLE_WARNINGS
 #include <iomanip>
 
 
 using std::bad_alloc;
-using std::cout;
 using std::dynamic_pointer_cast;
 using std::make_shared;
 using std::max;
@@ -117,7 +118,7 @@ FilmViewer::~FilmViewer ()
 }
 
 
-/** Ask for ::get() to be called next time we are idle */
+/** Ask for ::idle_handler() to be called next time we are idle */
 void
 FilmViewer::request_idle_display_next_frame ()
 {
@@ -223,7 +224,7 @@ FilmViewer::recreate_butler ()
                _player,
                Config::instance()->audio_mapping(_audio_channels),
                _audio_channels,
-               bind(&PlayerVideo::force, _1, AV_PIX_FMT_RGB24),
+               boost::bind(&PlayerVideo::force, AV_PIX_FMT_RGB24),
                VideoRange::FULL,
                j2k_gl_optimised ? Image::Alignment::COMPACT : Image::Alignment::PADDED,
                true,
@@ -711,6 +712,13 @@ FilmViewer::dcp_decode_reduction () const
 }
 
 
+optional<ContentTime>
+FilmViewer::position_in_content (shared_ptr<const Content> content) const
+{
+       return _player->dcp_to_content_time (content, position());
+}
+
+
 DCPTime
 FilmViewer::one_video_frame () const
 {
@@ -794,3 +802,21 @@ FilmViewer::set_optimise_for_j2k (bool o)
        _video_view->set_optimise_for_j2k (o);
 }
 
+
+void
+FilmViewer::set_crop_guess (dcpomatic::Rect<float> crop)
+{
+       if (crop != _crop_guess) {
+               _crop_guess = crop;
+               _video_view->update ();
+       }
+}
+
+
+void
+FilmViewer::unset_crop_guess ()
+{
+       _crop_guess = {};
+       _video_view->update ();
+}
+