void initialize_db() { // if settings database does not exist, generate it if (Directory.Exists(cotangent.CCOptions.SettingsDBPath) == false) { populate_defaults(); SettingsSerializer serializer = new SettingsSerializer(); serializer.GenerateSettingsFolder(this, cotangent.CCOptions.SettingsDBPath); reset_db(); } try { DebugUtil.Log("Reading settings database from {0}", cotangent.CCOptions.SettingsDBPath); populate_from_disk(cotangent.CCOptions.SettingsDBPath); } catch (Exception e) { DebugUtil.Log("MachineDatabase: fatal exception restoring : " + e.Message); if (FPlatform.InUnityEditor()) { throw; } } // [TODO] sync w/ new known settings? List <MachinePreset> new_defaults = populate_defaults(); foreach (var preset in new_defaults) { SettingsSerializer serializer = new SettingsSerializer(); Manufacturer mfg = FindManufacturerByUUID(preset.Settings.BaseMachine.ManufacturerUUID); MachineModel model = FindModelByUUID(mfg, preset.Settings.BaseMachine.ModelUUID); string machinePath = serializer.CreateNewSettingsFolder(this, mfg, model, cotangent.CCOptions.SettingsDBPath); preset.SourcePath = Path.Combine(machinePath, preset.Settings.Identifier + ".txt"); serializer.StoreSettings(this, preset, true); } }
public MachineModel CreateManufacturer(string mfgName, string mfgUUID, string defaultMachineUUID) { Manufacturer new_mfg = new Manufacturer() { Name = mfgName, UUID = mfgUUID }; add_manufacturer(new_mfg); MachinePreset preset = new MachinePreset(new GenericPrinterSettings(mfgName, mfgUUID, defaultMachineUUID)); MachineModel model = new MachineModel() { Name = "Unknown", UUID = defaultMachineUUID, Presets = new List <MachinePreset>() { preset } }; add_machine(new_mfg, model); SettingsSerializer serializer = new SettingsSerializer(); string machinePath = serializer.CreateNewSettingsFolder(this, new_mfg, model, cotangent.CCOptions.SettingsDBPath); preset.Settings.Identifier = "Defaults"; preset.Settings.BaseMachine.ManufacturerName = mfgName; preset.Settings.BaseMachine.ManufacturerUUID = mfgUUID; preset.Settings.BaseMachine.ModelIdentifier = "(Unknown)"; preset.Settings.BaseMachine.ModelUUID = defaultMachineUUID; preset.SourcePath = Path.Combine(machinePath, "Default.txt"); serializer.StoreSettings(this, preset, true); model.Presets.Add(preset); model.DefaultPreset = preset; return(model); }