, _check_for_test_updates (false)
, _maximum_j2k_bandwidth (250000000)
, _log_types (Log::TYPE_GENERAL | Log::TYPE_WARNING | Log::TYPE_ERROR)
+#ifdef DCPOMATIC_WINDOWS
+ , _win32_console (false)
+#endif
{
_allowed_dcp_frame_rates.push_back (24);
_allowed_dcp_frame_rates.push_back (25);
_allow_any_dcp_frame_rate = f.optional_bool_child ("AllowAnyDCPFrameRate");
_log_types = f.optional_number_child<int> ("LogTypes").get_value_or (Log::TYPE_GENERAL | Log::TYPE_WARNING | Log::TYPE_ERROR);
+#ifdef DCPOMATIC_WINDOWS
+ _win32_console = f.optional_bool_child ("Win32Console").get_value_or (false);
+#endif
list<cxml::NodePtr> his = f.node_children ("History");
for (list<cxml::NodePtr>::const_iterator i = his.begin(); i != his.end(); ++i) {
root->add_child("MaximumJ2KBandwidth")->add_child_text (raw_convert<string> (_maximum_j2k_bandwidth));
root->add_child("AllowAnyDCPFrameRate")->add_child_text (_allow_any_dcp_frame_rate ? "1" : "0");
root->add_child("LogTypes")->add_child_text (raw_convert<string> (_log_types));
+#ifdef DCPOMATIC_WINDOWS
+ root->add_child("Win32Console")->add_child_text (_win32_console ? "1" : "0");
+#endif
xmlpp::Element* signer = root->add_child ("Signer");
dcp::CertificateChain::List certs = _signer->certificates().root_to_leaf ();
return _log_types;
}
+#ifdef DCPOMATIC_WINDOWS
+ bool win32_console () const {
+ return _win32_console;
+ }
+#endif
+
std::vector<boost::filesystem::path> history () const {
return _history;
}
changed ();
}
+#ifdef DCPOMATIC_WINDOWS
+ void set_win32_console (bool c) {
+ _win32_console = c;
+ changed ();
+ }
+#endif
+
void clear_history () {
_history.clear ();
changed ();
/** maximum allowed J2K bandwidth in bits per second */
int _maximum_j2k_bandwidth;
int _log_types;
+#ifdef DCPOMATIC_WINDOWS
+ bool _win32_console;
+#endif
std::vector<boost::filesystem::path> _history;
/** Singleton instance, or 0 */
, _history_position (0)
, _history_separator (0)
{
-#if defined(DCPOMATIC_WINDOWS) && defined(DCPOMATIC_WINDOWS_CONSOLE)
- AllocConsole();
-
- HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
- int hCrt = _open_osfhandle((intptr_t) handle_out, _O_TEXT);
- FILE* hf_out = _fdopen(hCrt, "w");
- setvbuf(hf_out, NULL, _IONBF, 1);
- *stdout = *hf_out;
-
- HANDLE handle_in = GetStdHandle(STD_INPUT_HANDLE);
- hCrt = _open_osfhandle((intptr_t) handle_in, _O_TEXT);
- FILE* hf_in = _fdopen(hCrt, "r");
- setvbuf(hf_in, NULL, _IONBF, 128);
- *stdin = *hf_in;
+#if defined(DCPOMATIC_WINDOWS)
+ if (Config::instance()->win32_console ()) {
+ AllocConsole();
+
+ HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
+ int hCrt = _open_osfhandle((intptr_t) handle_out, _O_TEXT);
+ FILE* hf_out = _fdopen(hCrt, "w");
+ setvbuf(hf_out, NULL, _IONBF, 1);
+ *stdout = *hf_out;
+
+ HANDLE handle_in = GetStdHandle(STD_INPUT_HANDLE);
+ hCrt = _open_osfhandle((intptr_t) handle_in, _O_TEXT);
+ FILE* hf_in = _fdopen(hCrt, "r");
+ setvbuf(hf_in, NULL, _IONBF, 128);
+ *stdin = *hf_in;
+ }
#endif
wxMenuBar* bar = new wxMenuBar;
table->Add (t, 0, wxALL, 6);
}
+#ifdef DCPOMATIC_WINDOWS
+ _win32_console = new wxCheckBox (panel, wxID_ANY, _("Open console window"));
+ table->Add (_win32_console, 1, wxEXPAND | wxALL);
+ table->AddSpacer (0);
+#endif
+
Config* config = Config::instance ();
_maximum_j2k_bandwidth->SetRange (1, 500);
_log_error->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AdvancedPage::log_changed, this));
_log_timing->SetValue (config->log_types() & Log::TYPE_TIMING);
_log_timing->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AdvancedPage::log_changed, this));
+#ifdef DCPOMATIC_WINDOWS
+ _win32_console->SetValue (config->win32_console());
+ _win32_console->Bind (wxEVT_COMMAND_CHECKBOX_CLICKED, boost::bind (&AdvancedPage::win32_console_changed, this));
+#endif
return panel;
}
}
Config::instance()->set_log_types (types);
}
+
+#ifdef DCPOMATIC_WINDOWS
+ void win32_console_changed ()
+ {
+ Config::instance()->set_win32_console (_win32_console->GetValue ());
+ }
+#endif
wxSpinCtrl* _maximum_j2k_bandwidth;
wxCheckBox* _allow_any_dcp_frame_rate;
wxCheckBox* _log_warning;
wxCheckBox* _log_error;
wxCheckBox* _log_timing;
+#ifdef DCPOMATIC_WINDOWS
+ wxCheckBox* _win32_console;
+#endif
};
wxPreferencesEditor*