X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fplaylist_controls.cc;h=f51bcc4e22dcc33c96da7966fad104cc614ddf1b;hb=a3fcbb3a76e079a5485a0552ea5d35b8d6739116;hp=3be47ad97cd0d4ad7a264cb938bc3263e078d072;hpb=cfbe9d2f44e380efed7a61b5b5c7a2fec7794915;p=dcpomatic.git diff --git a/src/wx/playlist_controls.cc b/src/wx/playlist_controls.cc index 3be47ad97..f51bcc4e2 100644 --- a/src/wx/playlist_controls.cc +++ b/src/wx/playlist_controls.cc @@ -18,34 +18,43 @@ */ -#include "playlist_controls.h" -#include "film_viewer.h" -#include "wx_util.h" + #include "content_view.h" #include "dcpomatic_button.h" +#include "film_viewer.h" +#include "playlist_controls.h" #include "static_text.h" -#include "lib/player_video.h" -#include "lib/dcp_content.h" +#include "wx_util.h" +#include "wx_variant.h" +#include "lib/compose.hpp" +#include "lib/constants.h" #include "lib/cross.h" -#include "lib/scoped_temporary.h" -#include "lib/internet.h" +#include "lib/dcp_content.h" #include "lib/ffmpeg_content.h" -#include "lib/compose.hpp" -#include +#include "lib/film.h" +#include "lib/internet.h" +#include "lib/player_video.h" +#include "lib/scoped_temporary.h" #include +#include +#include +LIBDCP_DISABLE_WARNINGS #include #include +LIBDCP_ENABLE_WARNINGS + -using std::string; using std::cout; +using std::dynamic_pointer_cast; using std::exception; -using std::sort; using std::shared_ptr; -using std::dynamic_pointer_cast; +using std::sort; +using std::string; using boost::optional; using namespace dcpomatic; -PlaylistControls::PlaylistControls (wxWindow* parent, shared_ptr viewer) + +PlaylistControls::PlaylistControls(wxWindow* parent, FilmViewer& viewer) : Controls (parent, viewer, false) , _play_button (new Button(this, _("Play"))) , _pause_button (new Button(this, _("Pause"))) @@ -62,15 +71,15 @@ PlaylistControls::PlaylistControls (wxWindow* parent, shared_ptr vie _spl_view = new wxListCtrl (this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_NO_HEADER); _spl_view->AppendColumn (wxT(""), wxLIST_FORMAT_LEFT, 740); - wxBoxSizer* left_sizer = new wxBoxSizer (wxVERTICAL); - wxBoxSizer* e_sizer = new wxBoxSizer (wxHORIZONTAL); + auto left_sizer = new wxBoxSizer(wxVERTICAL); + auto e_sizer = new wxBoxSizer(wxHORIZONTAL); wxFont subheading_font (*wxNORMAL_FONT); subheading_font.SetWeight (wxFONTWEIGHT_BOLD); - wxBoxSizer* spl_header = new wxBoxSizer (wxHORIZONTAL); + auto spl_header = new wxBoxSizer(wxHORIZONTAL); { - wxStaticText* m = new StaticText (this, "Playlists"); + auto m = new StaticText(this, "Playlists"); m->SetFont (subheading_font); spl_header->Add (m, 1, wxALIGN_CENTER_VERTICAL); } @@ -82,9 +91,9 @@ PlaylistControls::PlaylistControls (wxWindow* parent, shared_ptr vie _content_view = new ContentView (this); - wxBoxSizer* content_header = new wxBoxSizer (wxHORIZONTAL); + auto content_header = new wxBoxSizer(wxHORIZONTAL); { - wxStaticText* m = new StaticText (this, "Content"); + auto m = new StaticText(this, "Content"); m->SetFont (subheading_font); content_header->Add (m, 1, wxALIGN_CENTER_VERTICAL); } @@ -109,7 +118,7 @@ PlaylistControls::PlaylistControls (wxWindow* parent, shared_ptr vie _previous_button->Bind (wxEVT_BUTTON, boost::bind(&PlaylistControls::previous_clicked, this)); _spl_view->Bind (wxEVT_LIST_ITEM_SELECTED, boost::bind(&PlaylistControls::spl_selection_changed, this)); _spl_view->Bind (wxEVT_LIST_ITEM_DESELECTED, boost::bind(&PlaylistControls::spl_selection_changed, this)); - viewer->Finished.connect (boost::bind(&PlaylistControls::viewer_finished, this)); + _viewer.Finished.connect(boost::bind(&PlaylistControls::viewer_finished, this)); _refresh_spl_view->Bind (wxEVT_BUTTON, boost::bind(&PlaylistControls::update_playlist_directory, this)); _refresh_content_view->Bind (wxEVT_BUTTON, boost::bind(&ContentView::update, _content_view)); @@ -142,32 +151,24 @@ PlaylistControls::deselect_playlist () _selected_playlist = boost::none; _spl_view->SetItemState (selected, 0, wxLIST_STATE_SELECTED); } - ResetFilm (shared_ptr(new Film(optional()))); + ResetFilm(std::make_shared(optional())); } void PlaylistControls::play_clicked () { - auto viewer = _viewer.lock (); - if (viewer) { - viewer->start (); - } + _viewer.start(); } void PlaylistControls::setup_sensitivity () { - auto viewer = _viewer.lock (); - if (!viewer) { - return; - } - Controls::setup_sensitivity (); bool const active_job = _active_job && *_active_job != "examine_content"; bool const c = _film && !_film->content().empty() && !active_job; - _play_button->Enable (c && !viewer->playing()); - _pause_button->Enable (viewer->playing()); - _spl_view->Enable (!viewer->playing()); + _play_button->Enable(c && !_viewer.playing()); + _pause_button->Enable(_viewer.playing()); + _spl_view->Enable(!_viewer.playing()); _next_button->Enable (can_do_next()); _previous_button->Enable (can_do_previous()); } @@ -175,22 +176,14 @@ PlaylistControls::setup_sensitivity () void PlaylistControls::pause_clicked () { - auto viewer = _viewer.lock (); - if (viewer) { - viewer->stop (); - } + _viewer.stop(); } void PlaylistControls::stop_clicked () { - auto viewer = _viewer.lock (); - if (!viewer) { - return; - } - - viewer->stop (); - viewer->seek (DCPTime(), true); + _viewer.stop(); + _viewer.seek(DCPTime(), true); if (_selected_playlist) { _selected_playlist_position = 0; update_current_content (); @@ -339,7 +332,7 @@ PlaylistControls::spl_selection_changed () void PlaylistControls::select_playlist (int selected, int position) { - wxProgressDialog dialog (_("DCP-o-matic"), "Loading playlist and KDMs"); + wxProgressDialog dialog(variant::wx::dcpomatic(), "Loading playlist and KDMs"); for (auto const& i: _playlists[selected].get()) { dialog.Pulse (); @@ -405,19 +398,13 @@ PlaylistControls::config_changed (int property) } } -void -PlaylistControls::set_film (shared_ptr film) -{ - Controls::set_film (film); - setup_sensitivity (); -} void PlaylistControls::update_current_content () { DCPOMATIC_ASSERT (_selected_playlist); - wxProgressDialog dialog (_("DCP-o-matic"), "Loading content"); + wxProgressDialog dialog(variant::wx::dcpomatic(), "Loading content"); setup_sensitivity (); dialog.Pulse (); @@ -428,8 +415,7 @@ PlaylistControls::update_current_content () void PlaylistControls::viewer_finished () { - auto viewer = _viewer.lock (); - if (!_selected_playlist || !viewer) { + if (!_selected_playlist) { return; } @@ -437,11 +423,11 @@ PlaylistControls::viewer_finished () if (_selected_playlist_position < int(_playlists[*_selected_playlist].get().size())) { /* Next piece of content on the SPL */ update_current_content (); - viewer->start (); + _viewer.start(); } else { /* Finished the whole SPL */ _selected_playlist_position = 0; - ResetFilm (shared_ptr(new Film(optional()))); + ResetFilm(std::make_shared(optional())); _play_button->Enable (true); _pause_button->Enable (false); }