Change end() to only do one thing, and copy the required stuff into pause()
[dcpomatic.git] / src / lib / config.cc
index aea54aa237c59144553b3d508a0560f5a215c2b5..8ae511361d511ea3ff3c624639f75acc58c1eb5e 100644 (file)
@@ -213,6 +213,13 @@ Config::set_defaults ()
        set_notification_email_to_default ();
        set_cover_sheet_to_default ();
 
+       _gpu_binary_location = "";
+       _enable_gpu = false;
+       _selected_gpu = 0;
+       _gpu_license_server = "";
+       _gpu_license_port = 5000;
+       _gpu_license = "";
+
        _main_divider_sash_position = {};
        _main_content_divider_sash_position = {};
 
@@ -487,7 +494,7 @@ try
           of the nags.
        */
        for (auto i: f.node_children("Nagged")) {
-               auto const id = i->number_attribute<int>("Id");
+               auto const id = number_attribute<int>(i, "Id", "id");
                if (id >= 0 && id < NAG_COUNT) {
                        _nagged[id] = raw_convert<int>(i->content());
                }
@@ -558,7 +565,7 @@ try
        _default_notify = f.optional_bool_child("DefaultNotify").get_value_or(false);
 
        for (auto i: f.node_children("Notification")) {
-               int const id = i->number_attribute<int>("Id");
+               int const id = number_attribute<int>(i, "Id", "id");
                if (id >= 0 && id < NOTIFICATION_COUNT) {
                        _notification[id] = raw_convert<int>(i->content());
                }
@@ -634,6 +641,13 @@ try
        _allow_smpte_bv20 = f.optional_bool_child("AllowSMPTEBv20").get_value_or(false);
        _isdcf_name_part_length = f.optional_number_child<int>("ISDCFNamePartLength").get_value_or(14);
 
+       _enable_gpu = f.optional_bool_child("EnableGpu").get_value_or(false);
+       _gpu_binary_location = f.string_child("GpuBinaryLocation");
+       _selected_gpu = f.number_child<int>("SelectedGpu");
+       _gpu_license_server = f.string_child ("GpuLicenseServer");
+       _gpu_license_port = f.number_child<int> ("GpuLicensePort");
+       _gpu_license = f.string_child("GpuLicense");
+
        _export.read(f.optional_node_child("Export"));
 }
 catch (...) {
@@ -956,7 +970,7 @@ Config::write_config () const
        /* [XML] Nagged 1 if a particular nag screen has been shown and should not be shown again, otherwise 0. */
        for (int i = 0; i < NAG_COUNT; ++i) {
                xmlpp::Element* e = root->add_child ("Nagged");
-               e->set_attribute ("Id", raw_convert<string>(i));
+               e->set_attribute("id", raw_convert<string>(i));
                e->add_child_text (_nagged[i] ? "1" : "0");
        }
        /* [XML] PreviewSound 1 to use sound in the GUI preview and player, otherwise 0. */
@@ -1011,7 +1025,7 @@ Config::write_config () const
        /* [XML] Notification 1 if a notification type is enabled, otherwise 0. */
        for (int i = 0; i < NOTIFICATION_COUNT; ++i) {
                xmlpp::Element* e = root->add_child ("Notification");
-               e->set_attribute ("Id", raw_convert<string>(i));
+               e->set_attribute("id", raw_convert<string>(i));
                e->add_child_text (_notification[i] ? "1" : "0");
        }
 
@@ -1120,6 +1134,13 @@ Config::write_config () const
        /* [XML] ISDCFNamePartLength Maximum length of the "name" part of an ISDCF name, which should be 14 according to the standard */
        root->add_child("ISDCFNamePartLength")->add_child_text(raw_convert<string>(_isdcf_name_part_length));
 
+       root->add_child("GpuBinaryLocation")->add_child_text (_gpu_binary_location);
+       root->add_child("EnableGpu")->add_child_text ((_enable_gpu ? "1" : "0"));
+       root->add_child("SelectedGpu")->add_child_text (raw_convert<string> (_selected_gpu));
+       root->add_child("GpuLicenseServer")->add_child_text (_gpu_license_server);
+       root->add_child("GpuLicensePort")->add_child_text (raw_convert<string> (_gpu_license_port));
+       root->add_child("GpuLicense")->add_child_text (_gpu_license);
+
        _export.write(root->add_child("Export"));
 
        auto target = config_write_file();