X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fswaroop_controls.cc;h=abf6fc58c87d1be095ed0b683a1ba0252c809cf6;hb=1e62cf13bc31aa9c13fcc6c2738a6012e3e7ce99;hp=f93cc66f1eefe76f14ac6a057b11c4cb0cd0e8ff;hpb=c19a3e0b6fdd8b129caf7c56336215ba5df282ec;p=dcpomatic.git diff --git a/src/wx/swaroop_controls.cc b/src/wx/swaroop_controls.cc index f93cc66f1..abf6fc58c 100644 --- a/src/wx/swaroop_controls.cc +++ b/src/wx/swaroop_controls.cc @@ -118,6 +118,8 @@ SwaroopControls::SwaroopControls (wxWindow* parent, shared_ptr viewe _content_view->update (); update_playlist_directory (); + + _viewer->set_background_image (true); } void @@ -135,8 +137,7 @@ SwaroopControls::check_restart () for (size_t i = 0; i < _playlists.size(); ++i) { if (_playlists[i].id() == id) { - _selected_playlist = i; - _selected_playlist_position = index; + select_playlist (i, index); update_current_content (); _viewer->seek (DCPTime(time), false); _viewer->start (); @@ -160,6 +161,9 @@ SwaroopControls::viewer_position_changed () + " " + dcp::raw_convert(_viewer->position().get()); checked_fwrite (p.c_str(), p.length(), f, Config::path("position")); +#ifdef DCPOMATIC_LINUX + fsync (fileno(f)); +#endif fclose (f); } } @@ -170,6 +174,7 @@ SwaroopControls::started () Controls::started (); _play_button->Enable (false); _pause_button->Enable (true); + _viewer->set_background_image (false); } void @@ -215,6 +220,7 @@ SwaroopControls::stop_clicked () _selected_playlist_position = 0; update_current_content (); } + _viewer->set_background_image (true); } bool @@ -394,6 +400,12 @@ SwaroopControls::spl_selection_changed () return; } + select_playlist (selected, 0); +} + +void +SwaroopControls::select_playlist (int selected, int position) +{ log (wxString::Format("load-playlist %s", std_to_wx(_playlists[selected].name()).data())); wxProgressDialog dialog (_("DCP-o-matic"), "Loading playlist and KDMs"); @@ -438,7 +450,7 @@ SwaroopControls::spl_selection_changed () } _selected_playlist = selected; - _selected_playlist_position = 0; + _selected_playlist_position = position; dialog.Pulse (); reset_film (); dialog.Pulse (); @@ -506,6 +518,7 @@ SwaroopControls::viewer_finished () } } else { _selected_playlist_position = 0; + _viewer->set_background_image (true); ResetFilm (shared_ptr(new Film(optional()))); } }