table->Add (_dcp_directory, wxGBPosition (r, 1));
++r;
+ add_label_to_sizer (table, _panel, _("KDM directory"), true, wxGBPosition (r, 0));
+ _kdm_directory = new wxDirPickerCtrl (_panel, wxID_ANY, wxEmptyString, wxDirSelectorPromptStr, wxDefaultPosition, wxSize (300, -1));
+ table->Add (_kdm_directory, wxGBPosition (r, 1));
+ ++r;
+
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ add_label_to_sizer (table, _panel, _("Background image"), true, wxGBPosition (r, 0));
+ _background_image = new FilePickerCtrl (_panel, _("Select image file"), "*.png;*.jpg;*.jpeg;*.tif;*.tiff", true);
+ table->Add (_background_image, wxGBPosition (r, 1));
+ ++r;
+
+ add_label_to_sizer (table, _panel, _("KDM server URL"), true, wxGBPosition(r, 0));
+ _kdm_server_url = new wxTextCtrl (_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(400, -1));
+ table->Add (_kdm_server_url, wxGBPosition (r, 1));
+ ++r;
+#endif
+
_player_mode->Bind (wxEVT_CHOICE, bind(&PlayerGeneralPage::player_mode_changed, this));
_image_display->Bind (wxEVT_CHOICE, bind(&PlayerGeneralPage::image_display_changed, this));
_respect_kdm->Bind (wxEVT_CHECKBOX, bind(&PlayerGeneralPage::respect_kdm_changed, this));
_log_file->Bind (wxEVT_FILEPICKER_CHANGED, bind(&PlayerGeneralPage::log_file_changed, this));
_dcp_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&PlayerGeneralPage::dcp_directory_changed, this));
+ _kdm_directory->Bind (wxEVT_DIRPICKER_CHANGED, bind(&PlayerGeneralPage::kdm_directory_changed, this));
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ _background_image->Bind (wxEVT_FILEPICKER_CHANGED, bind(&PlayerGeneralPage::background_image_changed, this));
+ _kdm_server_url->Bind (wxEVT_TEXT, bind(&PlayerGeneralPage::kdm_server_url_changed, this));
+#endif
}
void config_changed ()
if (config->player_dcp_directory()) {
checked_set (_dcp_directory, *config->player_dcp_directory());
}
+ if (config->player_kdm_directory()) {
+ checked_set (_kdm_directory, *config->player_kdm_directory());
+ }
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ if (config->player_background_image()) {
+ checked_set (_background_image, *config->player_background_image());
+ }
+ checked_set (_kdm_server_url, config->kdm_server_url());
+#endif
}
private:
Config::instance()->set_player_dcp_directory(wx_to_std(_dcp_directory->GetPath()));
}
+ void kdm_directory_changed ()
+ {
+ Config::instance()->set_player_kdm_directory(wx_to_std(_kdm_directory->GetPath()));
+ }
+
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ void background_image_changed ()
+ {
+ Config::instance()->set_player_background_image(wx_to_std(_background_image->GetPath()));
+ }
+
+ void kdm_server_url_changed ()
+ {
+ Config::instance()->set_kdm_server_url(wx_to_std(_kdm_server_url->GetValue()));
+ }
+#endif
+
wxChoice* _player_mode;
wxChoice* _image_display;
wxCheckBox* _respect_kdm;
FilePickerCtrl* _log_file;
wxDirPickerCtrl* _dcp_directory;
+ wxDirPickerCtrl* _kdm_directory;
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ FilePickerCtrl* _background_image;
+ wxTextCtrl* _kdm_server_url;
+#endif
};
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+class WatermarkPage : public StandardPage
+{
+public:
+ WatermarkPage (wxSize panel_size, int border)
+ : StandardPage (panel_size, border)
+ {}
+
+ wxString GetName () const
+ {
+ return _("Watermark");
+ }
+
+private:
+ void setup ()
+ {
+ wxGridBagSizer* table = new wxGridBagSizer (DCPOMATIC_SIZER_X_GAP, DCPOMATIC_SIZER_Y_GAP);
+ _panel->GetSizer()->Add (table, 1, wxALL | wxEXPAND, _border);
+
+ int r = 0;
+
+ add_label_to_sizer (table, _panel, _("Theatre name"), true, wxGBPosition(r, 0));
+ _theatre = new wxTextCtrl (_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(300, -1));
+ table->Add (_theatre, wxGBPosition(r, 1), wxGBSpan(1, 2));
+ ++r;
+
+ add_label_to_sizer (table, _panel, _("Period"), true, wxGBPosition(r, 0));
+ _period = new wxSpinCtrl (_panel, wxID_ANY);
+ _period->SetRange (1, 60);
+ table->Add (_period, wxGBPosition(r, 1));
+ add_label_to_sizer (table, _panel, _("minutes"), false, wxGBPosition(r, 2));
+ ++r;
+
+ add_label_to_sizer (table, _panel, _("Duration"), true, wxGBPosition(r, 0));
+ _duration = new wxSpinCtrl (_panel, wxID_ANY);
+ _duration->SetRange (1, 200);
+ table->Add (_duration, wxGBPosition(r, 1));
+ add_label_to_sizer (table, _panel, _("milliseconds"), false, wxGBPosition(r, 2));
+ ++r;
+
+ _theatre->Bind (wxEVT_TEXT, bind(&WatermarkPage::theatre_changed, this));
+ _duration->Bind (wxEVT_SPINCTRL, bind(&WatermarkPage::duration_changed, this));
+ _period->Bind (wxEVT_SPINCTRL, bind(&WatermarkPage::period_changed, this));
+ }
+
+ void config_changed ()
+ {
+ Config* config = Config::instance ();
+ checked_set (_theatre, config->player_watermark_theatre());
+ checked_set (_duration, config->player_watermark_duration());
+ checked_set (_period, config->player_watermark_period());
+ }
+
+ void theatre_changed ()
+ {
+ Config::instance()->set_player_watermark_theatre(wx_to_std(_theatre->GetValue()));
+ }
+
+ void period_changed ()
+ {
+ Config::instance()->set_player_watermark_period(_period->GetValue());
+ }
+
+ void duration_changed ()
+ {
+ Config::instance()->set_player_watermark_duration(_duration->GetValue());
+ }
+
+ wxTextCtrl* _theatre;
+ wxSpinCtrl* _period;
+ wxSpinCtrl* _duration;
+};
+#endif
+
wxPreferencesEditor*
create_player_config_dialog ()
{
e->AddPage (new PlayerGeneralPage (ps, border));
e->AddPage (new KeysPage (ps, border));
+#ifdef DCPOMATIC_VARIANT_SWAROOP
+ e->AddPage (new WatermarkPage (ps, border));
+#endif
return e;
}