private void btnSavePreset_Click(object sender, EventArgs e) { XmaConverterSettings preset = buildPresetForCurrentValues(); if (preset != null) { SavePresetForm saveForm = new SavePresetForm(preset); saveForm.Show(); } }
//-------------------- // Preset Processing //-------------------- private XmaConverterSettings getPresetFromFile(string filePath) { XmaConverterSettings preset = null; preset = new XmaConverterSettings(); XmlSerializer serializer = new XmlSerializer(preset.GetType()); using (FileStream xmlFs = File.OpenRead(filePath)) { using (XmlTextReader textReader = new XmlTextReader(xmlFs)) { preset = (XmaConverterSettings)serializer.Deserialize(textReader); } } return(preset); }
private void loadSelectedPreset() { XmaConverterSettings preset = (XmaConverterSettings)this.comboPresets.SelectedItem; if (preset != null) { this.initializeXmaParseInputSection(); this.initializeRiffSection(); this.initializePosMakerSection(); this.initializeToWavSection(); this.loadXmaConverterSettings(preset); if (!String.IsNullOrEmpty(preset.NotesOrWarnings)) { MessageBox.Show(preset.NotesOrWarnings, "Notes/Warnings"); } } }
private void loadPresetList() { this.comboPresets.Items.Clear(); this.comboPresets.Text = String.Empty; foreach (string f in Directory.GetFiles(PLUGIN_PATH, "*.xml", SearchOption.TopDirectoryOnly)) { try { XmaConverterSettings preset = getPresetFromFile(f); if ((preset != null) && (!String.IsNullOrEmpty(preset.Header.FormatName))) { comboPresets.Items.Add(preset); } } catch (Exception) { MessageBox.Show(String.Format("Error loading preset file <{0}>", Path.GetFileName(f)), "Error"); } } comboPresets.Sorted = true; }
private XmaConverterSettings buildPresetForCurrentValues() { XmaConverterSettings xmaSettings = new XmaConverterSettings(); #region XMA PARSE //general xmaSettings.UseXmaParse = this.cbDoXmaParse.Checked; if (!String.IsNullOrEmpty(this.comboXmaParseInputType.Text)) { xmaSettings.XmaParseParameters.XmaTypeSpecified = true; switch (this.comboXmaParseInputType.Text) { case "1": xmaSettings.XmaParseParameters.XmaType = XmaType.Item1; break; case "2": xmaSettings.XmaParseParameters.XmaType = XmaType.Item2; break; default: break; } } else { xmaSettings.XmaParseParameters.XmaTypeSpecified = false; } xmaSettings.XmaParseParameters.RebuildXmaSpecified = true; xmaSettings.XmaParseParameters.RebuildXma = this.cbXmaParseDoRebuild.Checked; xmaSettings.XmaParseParameters.IgnoreXmaParseErrorsSpecified = true; xmaSettings.XmaParseParameters.IgnoreXmaParseErrors = this.cbXmaParseIgnoreErrors.Checked; // start offset xmaSettings.XmaParseParameters.UseStaticStartOffset = this.rbXmaParseStartOffsetStatic.Checked; xmaSettings.XmaParseParameters.UseDynamicStartOffset = this.rbXmaParseStartOffsetOffset.Checked; xmaSettings.XmaParseParameters.SetStartOffsetAfterRiffHeader = this.rbStartOffsetIsAfterRiff.Checked; xmaSettings.XmaParseParameters.StartOffsetStatic = this.tbXmaParseStartOffset.Text; if (this.rbXmaParseStartOffsetOffset.Checked) { xmaSettings.XmaParseParameters.StartOffsetOffset = this.XmaParseStartOffsetOffsetDescription.OffsetValue; xmaSettings.XmaParseParameters.StartOffsetOffsetSize = this.XmaParseStartOffsetOffsetDescription.OffsetSize; xmaSettings.XmaParseParameters.StartOffsetOffsetEndianessSpecified = true; xmaSettings.XmaParseParameters.StartOffsetOffsetEndianess = getEndiannessForStringValue(this.XmaParseStartOffsetOffsetDescription.OffsetByteOrder); } // block size xmaSettings.XmaParseParameters.UseStaticBlockSize = this.rbXmaParseBlockSizeStatic.Checked; xmaSettings.XmaParseParameters.UseDynamicBlockSize = this.rbXmaParseBlockSizeOffset.Checked; xmaSettings.XmaParseParameters.BlockSizeStatic = this.tbXmaParseBlockSize.Text; if (this.rbXmaParseBlockSizeOffset.Checked) { xmaSettings.XmaParseParameters.BlockSizeOffset = this.XmaParseBlockSizeOffsetDescription.OffsetValue; xmaSettings.XmaParseParameters.BlockSizeOffsetSize = this.XmaParseBlockSizeOffsetDescription.OffsetSize; xmaSettings.XmaParseParameters.BlockSizeOffsetEndianessSpecified = true; xmaSettings.XmaParseParameters.BlockSizeOffsetEndianess = getEndiannessForStringValue(this.XmaParseBlockSizeOffsetDescription.OffsetByteOrder); } // data size xmaSettings.XmaParseParameters.UseStaticDataSize = this.rbXmaParseDataSizeStatic.Checked; xmaSettings.XmaParseParameters.UseDynamicDataSize = this.rbXmaParseDataSizeOffset.Checked; xmaSettings.XmaParseParameters.GetDataSizeFromRiffHeader = this.rbGetDataSizeFromRiff.Checked; xmaSettings.XmaParseParameters.DataSizeStatic = this.tbXmaParseDataSize.Text; if (this.rbXmaParseDataSizeOffset.Checked) { xmaSettings.XmaParseParameters.DataSizeOffset = this.XmaParseDataSizeOffsetDescription.OffsetValue; xmaSettings.XmaParseParameters.DataSizeOffsetSize = this.XmaParseDataSizeOffsetDescription.OffsetSize; xmaSettings.XmaParseParameters.DataSizeOffsetEndianessSpecified = true; xmaSettings.XmaParseParameters.DataSizeOffsetEndianess = getEndiannessForStringValue(this.XmaParseDataSizeOffsetDescription.OffsetByteOrder); } #endregion #region RIFF HEADER xmaSettings.AddRiffHeader = this.cbAddRiffHeader.Checked; // Frequency if (this.rbAddManualFrequency.Checked) { xmaSettings.RiffParameters.UseStaticFrequency = true; xmaSettings.RiffParameters.FrequencyStatic = this.comboRiffFrequency.Text; } else if (this.rbFrequencyOffset.Checked) { xmaSettings.RiffParameters.GetFrequencyFromOffset = true; xmaSettings.RiffParameters.FrequencyOffset = this.frequencyOffsetDescription.OffsetValue; xmaSettings.RiffParameters.FrequencyOffsetSize = this.frequencyOffsetDescription.OffsetSize; xmaSettings.RiffParameters.FrequencyOffsetEndianessSpecified = true; xmaSettings.RiffParameters.FrequencyOffsetEndianess = getEndiannessForStringValue(this.frequencyOffsetDescription.OffsetByteOrder); } xmaSettings.RiffParameters.GetFrequencyFromRiffHeader = this.rbGetFrequencyFromRiff.Checked; // Channels if (this.rbAddManualChannels.Checked) { xmaSettings.RiffParameters.UseStaticChannels = true; switch (this.comboRiffChannels.Text) { case XmaConverterWorker.RIFF_CHANNELS_1: xmaSettings.RiffParameters.ChannelStatic = "mono"; break; case XmaConverterWorker.RIFF_CHANNELS_2: xmaSettings.RiffParameters.ChannelStatic = "stereo"; break; default: xmaSettings.RiffParameters.ChannelStatic = "ERROR"; break; } } else if (this.rbNumberOfChannelsOffset.Checked) { xmaSettings.RiffParameters.GetChannelsFromOffset = true; xmaSettings.RiffParameters.ChannelOffset = this.numberOfChannelsOffsetDescription.OffsetValue; xmaSettings.RiffParameters.ChannelOffsetSize = this.numberOfChannelsOffsetDescription.OffsetSize; xmaSettings.RiffParameters.ChannelOffsetEndianessSpecified = true; xmaSettings.RiffParameters.ChannelOffsetEndianess = getEndiannessForStringValue(this.numberOfChannelsOffsetDescription.OffsetByteOrder); } xmaSettings.RiffParameters.GetChannelsFromRiffHeader = this.rbGetChannelsFromRiff.Checked; #endregion #region POS MAKER xmaSettings.CreatePosFile = this.cbMakePosFile.Checked; // loop start xmaSettings.PosFileParameters.UseStaticStartOffset = this.rbLoopStartStatic.Checked; xmaSettings.PosFileParameters.UseDynamicStartOffset = this.rbLoopStartOffset.Checked; xmaSettings.PosFileParameters.StartOffsetStatic = this.tbLoopStartStatic.Text; if (this.rbLoopStartOffset.Checked) { xmaSettings.PosFileParameters.StartOffsetOffset = this.loopStartValueOffsetDescription.OffsetValue; xmaSettings.PosFileParameters.StartOffsetOffsetSize = this.loopStartValueOffsetDescription.OffsetSize; xmaSettings.PosFileParameters.StartOffsetOffsetEndianessSpecified = true; xmaSettings.PosFileParameters.StartOffsetOffsetEndianess = getEndiannessForStringValue(this.loopStartValueOffsetDescription.OffsetByteOrder); xmaSettings.PosFileParameters.StartOffsetCalculation = this.loopStartValueOffsetDescription.CalculationValue; } // loop end xmaSettings.PosFileParameters.UseStaticEndOffset = this.rbLoopEndStatic.Checked; xmaSettings.PosFileParameters.UseDynamicEndOffset = this.rbLoopEndOffset.Checked; xmaSettings.PosFileParameters.EndOffsetStatic = this.tbLoopEndStatic.Text; if (this.rbLoopEndOffset.Checked) { xmaSettings.PosFileParameters.EndOffsetOffset = this.loopEndValueOffsetDescription.OffsetValue; xmaSettings.PosFileParameters.EndOffsetOffsetSize = this.loopEndValueOffsetDescription.OffsetSize; xmaSettings.PosFileParameters.EndOffsetOffsetEndianessSpecified = true; xmaSettings.PosFileParameters.EndOffsetOffsetEndianess = getEndiannessForStringValue(this.loopEndValueOffsetDescription.OffsetByteOrder); xmaSettings.PosFileParameters.EndOffsetCalculation = this.loopEndValueOffsetDescription.CalculationValue; } #endregion #region WAV CONVERSION xmaSettings.WavConversionParameters.UseToWav = this.rbDoToWav.Checked; xmaSettings.WavConversionParameters.UseXmaEncode = this.rbDoXmaEncode.Checked; #endregion return(xmaSettings); }
private void loadXmaConverterSettings(XmaConverterSettings xmaSettings) { #region XMA PARSE //general this.cbDoXmaParse.Checked = xmaSettings.UseXmaParse; if (xmaSettings.XmaParseParameters.XmaTypeSpecified) { switch (xmaSettings.XmaParseParameters.XmaType) { case XmaType.Item1: this.comboXmaParseInputType.Text = "1"; break; case XmaType.Item2: this.comboXmaParseInputType.Text = "2"; break; default: this.comboXmaParseInputType.Text = String.Empty; break; } } this.cbXmaParseDoRebuild.Checked = xmaSettings.XmaParseParameters.RebuildXmaSpecified && xmaSettings.XmaParseParameters.RebuildXma; this.cbXmaParseIgnoreErrors.Checked = xmaSettings.XmaParseParameters.IgnoreXmaParseErrorsSpecified && xmaSettings.XmaParseParameters.IgnoreXmaParseErrors; // start offset this.rbXmaParseStartOffsetStatic.Checked = xmaSettings.XmaParseParameters.UseStaticStartOffset; this.rbXmaParseStartOffsetOffset.Checked = xmaSettings.XmaParseParameters.UseDynamicStartOffset; this.rbStartOffsetIsAfterRiff.Checked = xmaSettings.XmaParseParameters.SetStartOffsetAfterRiffHeader; this.tbXmaParseStartOffset.Text = xmaSettings.XmaParseParameters.StartOffsetStatic; if (xmaSettings.XmaParseParameters.UseDynamicStartOffset) { this.XmaParseStartOffsetOffsetDescription.OffsetValue = xmaSettings.XmaParseParameters.StartOffsetOffset; this.XmaParseStartOffsetOffsetDescription.OffsetSize = xmaSettings.XmaParseParameters.StartOffsetOffsetSize; this.XmaParseStartOffsetOffsetDescription.OffsetByteOrder = getEndiannessStringForXmlValue(xmaSettings.XmaParseParameters.StartOffsetOffsetEndianess); } // block size this.rbXmaParseBlockSizeStatic.Checked = xmaSettings.XmaParseParameters.UseStaticBlockSize; this.rbXmaParseBlockSizeOffset.Checked = xmaSettings.XmaParseParameters.UseDynamicBlockSize; this.tbXmaParseBlockSize.Text = xmaSettings.XmaParseParameters.BlockSizeStatic; if (xmaSettings.XmaParseParameters.UseDynamicBlockSize) { this.XmaParseBlockSizeOffsetDescription.OffsetValue = xmaSettings.XmaParseParameters.BlockSizeOffset; this.XmaParseBlockSizeOffsetDescription.OffsetSize = xmaSettings.XmaParseParameters.BlockSizeOffsetSize; this.XmaParseBlockSizeOffsetDescription.OffsetByteOrder = getEndiannessStringForXmlValue(xmaSettings.XmaParseParameters.BlockSizeOffsetEndianess); } // data size this.rbXmaParseDataSizeStatic.Checked = xmaSettings.XmaParseParameters.UseStaticDataSize; this.rbXmaParseDataSizeOffset.Checked = xmaSettings.XmaParseParameters.UseDynamicDataSize; this.rbGetDataSizeFromRiff.Checked = xmaSettings.XmaParseParameters.GetDataSizeFromRiffHeader; this.tbXmaParseDataSize.Text = xmaSettings.XmaParseParameters.DataSizeStatic; if (xmaSettings.XmaParseParameters.UseDynamicDataSize) { this.XmaParseDataSizeOffsetDescription.OffsetValue = xmaSettings.XmaParseParameters.DataSizeOffset; this.XmaParseDataSizeOffsetDescription.OffsetSize = xmaSettings.XmaParseParameters.DataSizeOffsetSize; this.XmaParseDataSizeOffsetDescription.OffsetByteOrder = getEndiannessStringForXmlValue(xmaSettings.XmaParseParameters.DataSizeOffsetEndianess); } #endregion #region RIFF HEADER this.cbAddRiffHeader.Checked = xmaSettings.AddRiffHeader; if (xmaSettings.AddRiffHeader) { // Frequency if (xmaSettings.RiffParameters.UseStaticFrequency) { this.rbAddManualFrequency.Checked = true; this.comboRiffFrequency.Text = xmaSettings.RiffParameters.FrequencyStatic; } else if (xmaSettings.RiffParameters.GetFrequencyFromOffset) { this.rbFrequencyOffset.Checked = true; this.frequencyOffsetDescription.OffsetValue = xmaSettings.RiffParameters.FrequencyOffset; this.frequencyOffsetDescription.OffsetSize = xmaSettings.RiffParameters.FrequencyOffsetSize; this.frequencyOffsetDescription.OffsetByteOrder = getEndiannessStringForXmlValue(xmaSettings.RiffParameters.FrequencyOffsetEndianess); } this.rbGetFrequencyFromRiff.Checked = xmaSettings.RiffParameters.GetFrequencyFromRiffHeader; // Channels if (xmaSettings.RiffParameters.UseStaticChannels) { this.rbAddManualChannels.Checked = true; switch (xmaSettings.RiffParameters.ChannelStatic) { case "mono": this.comboRiffChannels.Text = XmaConverterWorker.RIFF_CHANNELS_1; break; case "stereo": this.comboRiffChannels.Text = XmaConverterWorker.RIFF_CHANNELS_2; break; default: this.comboRiffChannels.Text = XmaConverterWorker.RIFF_CHANNELS_2; break; } } else if (xmaSettings.RiffParameters.GetChannelsFromOffset) { this.rbNumberOfChannelsOffset.Checked = true; this.numberOfChannelsOffsetDescription.OffsetValue = xmaSettings.RiffParameters.ChannelOffset; this.numberOfChannelsOffsetDescription.OffsetSize = xmaSettings.RiffParameters.ChannelOffsetSize; this.numberOfChannelsOffsetDescription.OffsetByteOrder = getEndiannessStringForXmlValue(xmaSettings.RiffParameters.ChannelOffsetEndianess); } this.rbGetChannelsFromRiff.Checked = xmaSettings.RiffParameters.GetChannelsFromRiffHeader; } #endregion #region POS MAKER this.cbMakePosFile.Checked = xmaSettings.CreatePosFile; // loop start this.rbLoopStartStatic.Checked = xmaSettings.PosFileParameters.UseStaticStartOffset; this.rbLoopStartOffset.Checked = xmaSettings.PosFileParameters.UseDynamicStartOffset; this.tbLoopStartStatic.Text = xmaSettings.PosFileParameters.StartOffsetStatic; if (xmaSettings.PosFileParameters.UseDynamicStartOffset) { this.loopStartValueOffsetDescription.OffsetValue = xmaSettings.PosFileParameters.StartOffsetOffset; this.loopStartValueOffsetDescription.OffsetSize = xmaSettings.PosFileParameters.StartOffsetOffsetSize; this.loopStartValueOffsetDescription.OffsetByteOrder = getEndiannessStringForXmlValue(xmaSettings.PosFileParameters.StartOffsetOffsetEndianess); this.loopStartValueOffsetDescription.CalculationValue = xmaSettings.PosFileParameters.StartOffsetCalculation; } // loop end this.rbLoopEndStatic.Checked = xmaSettings.PosFileParameters.UseStaticEndOffset; this.rbLoopEndOffset.Checked = xmaSettings.PosFileParameters.UseDynamicEndOffset; this.tbLoopEndStatic.Text = xmaSettings.PosFileParameters.EndOffsetStatic; if (xmaSettings.PosFileParameters.UseDynamicEndOffset) { this.loopEndValueOffsetDescription.OffsetValue = xmaSettings.PosFileParameters.EndOffsetOffset; this.loopEndValueOffsetDescription.OffsetSize = xmaSettings.PosFileParameters.EndOffsetOffsetSize; this.loopEndValueOffsetDescription.OffsetByteOrder = getEndiannessStringForXmlValue(xmaSettings.PosFileParameters.EndOffsetOffsetEndianess); this.loopEndValueOffsetDescription.CalculationValue = xmaSettings.PosFileParameters.EndOffsetCalculation; } #endregion #region WAV CONVERSION this.rbDoToWav.Checked = xmaSettings.WavConversionParameters.UseToWav; this.rbDoXmaEncode.Checked = xmaSettings.WavConversionParameters.UseXmaEncode; #endregion }