Пример #1
0
        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);
                    }
            }
        }
Пример #2
0
        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;
                }
            }
        }