private void button5_Click(object sender, EventArgs e) { var prompt = new PromptForm("Enter patch name"); var result = prompt.ShowDialog(); if (result == DialogResult.OK) { var patchName = prompt.Prompt.Text; var synthName = PluginContext.PluginCommandStub.GetEffectName(); var directory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"PresetMagician\TestVstHost\Patches\", synthName); Directory.CreateDirectory(directory); var patchFile = Path.Combine(directory, patchName + ".bin"); var ccFile = Path.Combine(directory, patchName + ".csv"); File.WriteAllBytes(patchFile, PluginContext.PluginCommandStub.GetChunk(false)); var parameters = new List <VstParameterCsv>(); for (int i = 0; i < PluginContext.PluginInfo.ParameterCount; i++) { parameters.Add(new VstParameterCsv { Index = i, DisplayValue = PluginContext.PluginCommandStub.GetParameterDisplay(i), FloatValue = PluginContext.PluginCommandStub.GetParameter(i), Name = PluginContext.PluginCommandStub.GetParameterName(i), Label = PluginContext.PluginCommandStub.GetParameterLabel(i) }); } using (var writer = new StreamWriter(ccFile)) using (var csv = new CsvWriter(writer)) { csv.WriteRecords(parameters); } } }
private void SetParamButton_Click(object sender, EventArgs e) { if (PluginParameterListVw.SelectedItems.Count == 1) { var item = PluginParameterListVw.SelectedItems[0]; var idx = Int32.Parse(item.Text); var name = PluginContext.PluginCommandStub.GetParameterName(idx); var prompt = new PromptForm($"New value for #{idx} {name}"); var result = prompt.ShowDialog(); if (result == DialogResult.OK) { var val = float.Parse(prompt.Prompt.Text); if (val < 0 || val > 1) { MessageBox.Show($"Value {val} out of range. allowed 0-1"); return; } PluginContext.PluginCommandStub.SetParameter(idx, val); timer1.Enabled = true; } } }