#include "check_box.h"
#include "dcpomatic_button.h"
#include "film_viewer.h"
+#include "markers.h"
#include "markers_dialog.h"
#include "static_text.h"
#include "timecode.h"
#include "wx_util.h"
#include "lib/film.h"
-#include "lib/warnings.h"
#include <dcp/types.h>
-DCPOMATIC_DISABLE_WARNINGS
+#include <dcp/warnings.h>
+LIBDCP_DISABLE_WARNINGS
#include <wx/gbsizer.h>
-DCPOMATIC_ENABLE_WARNINGS
+LIBDCP_ENABLE_WARNINGS
#include <boost/bind/bind.hpp>
class Marker
{
public:
- Marker (wxWindow* parent, wxGridBagSizer* grid, int row, weak_ptr<Film> film_, weak_ptr<FilmViewer> viewer_, wxString name, dcp::Marker type_)
+ Marker(wxWindow* parent, wxGridBagSizer* grid, int row, weak_ptr<Film> film_, FilmViewer const& viewer_, wxString name, dcp::Marker type_)
: film (film_)
, viewer (viewer_)
, type (type_)
{
auto f = film.lock ();
DCPOMATIC_ASSERT (f);
- auto v = viewer.lock ();
- DCPOMATIC_ASSERT (v);
- timecode->set (v->position(), f->video_frame_rate());
+ timecode->set(viewer.position(), f->video_frame_rate());
changed ();
}
}
weak_ptr<Film> film;
- weak_ptr<FilmViewer> viewer;
+ FilmViewer const& viewer;
dcp::Marker type;
CheckBox* checkbox;
Timecode<dcpomatic::DCPTime>* timecode;
};
-MarkersDialog::MarkersDialog (wxWindow* parent, weak_ptr<Film> film, weak_ptr<FilmViewer> viewer)
+MarkersDialog::MarkersDialog(wxWindow* parent, weak_ptr<Film> film, FilmViewer const& viewer)
: wxDialog (parent, wxID_ANY, _("Markers"))
, _film (film)
{
auto grid = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
int r = 0;
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("First frame of composition"), dcp::Marker::FFOC));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("Last frame of composition"), dcp::Marker::LFOC));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("First frame of title credits"), dcp::Marker::FFTC));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("Last frame of title credits"), dcp::Marker::LFTC));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("First frame of intermission"), dcp::Marker::FFOI));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("Last frame of intermission"), dcp::Marker::LFOI));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("First frame of end credits"), dcp::Marker::FFEC));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("Last frame of end credits"), dcp::Marker::LFEC));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("First frame of moving credits"), dcp::Marker::FFMC));
- _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, _("Last frame of moving credits"), dcp::Marker::LFMC));
+ for (auto const& marker: all_editable_markers()) {
+ _markers.push_back (make_shared<Marker>(this, grid, r++, film, viewer, marker.first, marker.second));
+ }
sizer->Add (grid, 0, wxALL, 8);