X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fswaroop_controls.cc;h=add9bf3e0ae5937f9bbdce005dae8f01212a7501;hb=350afcbc40fffd8c8780180e153a2ee91088f562;hp=782109888a969ec63a11820bfc33b96c422d9b72;hpb=57c044838c98b900e64cc77eed0a74f75aa42cb9;p=dcpomatic.git diff --git a/src/wx/swaroop_controls.cc b/src/wx/swaroop_controls.cc index 782109888..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; } @@ -489,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; } @@ -502,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; }