X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fswaroop_controls.cc;h=add9bf3e0ae5937f9bbdce005dae8f01212a7501;hb=40d38c8d011f0863f396f21cd750cdcef803a792;hp=e7232e6f4d8b75b0d231066c2ed3ff9cfb1d63a3;hpb=66e6d93921ef9ecca86d807be68f7cfb481cc4c6;p=dcpomatic.git diff --git a/src/wx/swaroop_controls.cc b/src/wx/swaroop_controls.cc index e7232e6f4..add9bf3e0 100644 --- a/src/wx/swaroop_controls.cc +++ b/src/wx/swaroop_controls.cc @@ -54,6 +54,7 @@ SwaroopControls::SwaroopControls (wxWindow* parent, shared_ptr viewe , _previous_button (new Button(this, "Previous")) , _current_disable_timeline (false) , _current_disable_next (false) + , _timer (this) { _button_sizer->Add (_previous_button, 0, wxEXPAND); _button_sizer->Add (_play_button, 0, wxEXPAND); @@ -112,10 +113,13 @@ SwaroopControls::SwaroopControls (wxWindow* parent, shared_ptr viewe _spl_view->Bind (wxEVT_LIST_ITEM_SELECTED, boost::bind(&SwaroopControls::spl_selection_changed, this)); _spl_view->Bind (wxEVT_LIST_ITEM_DESELECTED, boost::bind(&SwaroopControls::spl_selection_changed, this)); _viewer->Finished.connect (boost::bind(&SwaroopControls::viewer_finished, this)); - _viewer->PositionChanged.connect (boost::bind(&SwaroopControls::viewer_position_changed, this)); _refresh_spl_view->Bind (wxEVT_BUTTON, boost::bind(&SwaroopControls::update_playlist_directory, this)); _refresh_content_view->Bind (wxEVT_BUTTON, boost::bind(&ContentView::update, _content_view)); + /* Write position every two minutes if we're playing */ + Bind (wxEVT_TIMER, boost::bind(&SwaroopControls::write_position, this)); + _timer.Start (2 * 60 * 1000, wxTIMER_CONTINUOUS); + _content_view->update (); update_playlist_directory (); @@ -153,10 +157,9 @@ SwaroopControls::check_restart () } void -SwaroopControls::viewer_position_changed () +SwaroopControls::write_position () { - /* Write position every two minutes if we're playing */ - if (!_selected_playlist || !_viewer->playing() || _viewer->position().get() % (2 * 60 * DCPTime::HZ)) { + if (!_selected_playlist || !_viewer->playing()) { return; } @@ -201,6 +204,7 @@ SwaroopControls::deselect_playlist () _selected_playlist = boost::none; _spl_view->SetItemState (selected, 0, wxLIST_STATE_SELECTED); } + ResetFilm (shared_ptr(new Film(optional()))); } void @@ -488,7 +492,7 @@ SwaroopControls::select_playlist (int selected, int position) } if (dcp->needs_kdm()) { /* We didn't get a KDM for this */ - error_dialog (this, "This playlist cannot be loaded as a KDM is missing."); + error_dialog (this, "This playlist cannot be loaded as a KDM is missing or incorrect."); deselect_playlist (); return; } @@ -501,10 +505,12 @@ SwaroopControls::select_playlist (int selected, int position) ffmpeg->add_kdm (*kdm); ffmpeg->examine (_film, shared_ptr()); } catch (KDMError& e) { - error_dialog (this, "Could not load KDM."); + error_dialog (this, "This playlist cannot be loaded as a KDM is missing or incorrect."); + deselect_playlist (); + return; } } else { - error_dialog (this, "This playlist cannot be loaded as a KDM is missing."); + error_dialog (this, "This playlist cannot be loaded as a KDM is missing or incorrect."); deselect_playlist (); return; }