#include "lib/server.h"
#include "lib/dcpomatic_socket.h"
#include "lib/scoped_temporary.h"
+#include "lib/monitor_checker.h"
+#include <dcp/dcp.h>
#include <wx/wx.h>
#include <wx/stdpaths.h>
#include <wx/splash.h>
UpdateChecker::instance()->StateChanged.connect (boost::bind (&DOMFrame::update_checker_state_changed, this));
_controls->SPLChanged.connect (boost::bind(&DOMFrame::set_spl, this, _1));
-
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ MonitorChecker::instance()->StateChanged.connect(boost::bind(&DOMFrame::monitor_checker_state_changed, this));
+ MonitorChecker::instance()->run ();
+#endif
setup_screen ();
}
+ void monitor_checker_state_changed ()
+ {
+ if (!MonitorChecker::instance()->ok()) {
+ error_dialog (this, _("The required display devices are not connected correctly."));
+ _viewer->stop ();
+ }
+ }
+
void setup_main_sizer (Config::PlayerMode mode)
{
wxSizer* main_sizer = new wxBoxSizer (wxVERTICAL);
bool playback_permitted ()
{
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ if (!MonitorChecker::instance()->ok()) {
+ error_dialog (this, _("The required display devices are not connected correctly."));
+ return false;
+ }
+#endif
if (!_film || !Config::instance()->respect_kdm_validity_periods()) {
return true;
}
void load_dcp (boost::filesystem::path dir)
{
+ dcp::DCP dcp (dir);
+ dcp.read ();
list<SPLEntry> spl;
- spl.push_back (SPLEntry(dir));
+ BOOST_FOREACH (shared_ptr<dcp::CPL> j, dcp.cpls()) {
+ spl.push_back (SPLEntry(j, dir));
+ }
set_spl (spl);
Config::instance()->add_to_player_history (dir);
}
return optional<dcp::EncryptedKDM>();
}
for (directory_iterator i = directory_iterator(*kdm_dir); i != directory_iterator(); ++i) {
- if (file_size(i->path()) < MAX_KDM_SIZE) {
- try {
+ try {
+ if (file_size(i->path()) < MAX_KDM_SIZE) {
dcp::EncryptedKDM kdm (dcp::file_to_string(i->path()));
if (kdm.cpl_id() == dcp->cpl()) {
return kdm;
}
- } catch (std::exception& e) {
- /* Hey well */
}
+ } catch (std::exception& e) {
+ /* Hey well */
}
}
return optional<dcp::EncryptedKDM>();
BOOST_FOREACH (SPLEntry i, spl) {
shared_ptr<DCPContent> dcp;
try {
- dcp.reset (new DCPContent (_film, i.dcp));
+ dcp.reset (new DCPContent (_film, i.directory));
} catch (boost::filesystem::filesystem_error& e) {
error_dialog (this, _("Could not load DCP"), std_to_wx (e.what()));
return;
_info->triggered_update ();
set_menu_sensitivity ();
- _controls->log (wxString::Format(_("Load DCP %s"), i.dcp.filename().string().c_str()));
+ _controls->log (wxString::Format(_("Load DCP %s"), i.directory.filename().string().c_str()));
}
wxMenuItemList old = _cpl_menu->GetMenuItems();