Я пытаюсь сделать основной плагин синтезатора.У меня проблема с моим слайдером.Когда я соединяю его с ValueTree, я ИНОГДА получаю следующую ошибку.Иногда это работает без ошибок.
// for a two-value style slider, you should use the setMinValue() and setMaxValue()
// methods to set the two values.
jassert (style != TwoValueHorizontal && style != TwoValueVertical);
Я не могу объяснить, почему я получаю ошибку о ползунке с двумя значениями, даже если я им не пользуюсь.Я что-то пропустил?Я новичок в JUCE и C ++ в целом, поэтому, пожалуйста, извините, если я пропустил что-то очевидное.
Вот как я добавляю параметр в PluginProcessor.cpp:
tree (*this, nullptr)
tree.createAndAddParameter("osc1_attack", "Osc1_Attack", "Osc1_Attack", envParam, 0, nullptr ,nullptr);
//Initialize Tree
tree.state = ValueTree("SynthTree");
Вот какЯ создаю Slider в PluginEditor.cpp:
osc1AttackSlider.setSliderStyle(Slider::SliderStyle::LinearVertical);
osc1AttackSlider.setRange(0.1f, 500.0f);
osc1AttackSlider.setValue(0.1f);
osc1AttackSlider.addListener(this);
osc1AttackSlider.setTextBoxStyle(Slider::TextBoxBelow, false, 50, 20);
addAndMakeVisible(&osc1AttackSlider);
sliderTree = new AudioProcessorValueTreeState::SliderAttachment(processor.tree, "osc1_attack", osc1AttackSlider);
Вот как я объявил переменную sliderTree в PluginEditor.h:
AudioProcessorValueTreeState::SliderAttachment* sliderTree;
Я следовал очень хорошему учебнику YouTube «theAudioProgrammer»»И он использовал ScopedPointer для этого.Для меня это работает только для ComboBoxes, если я использую его здесь, я получаю следующую ошибку:
/** Returns a raw pointer to the allocated data.
This may be a null pointer if the data hasn't yet been allocated, or if it has been
freed by calling the free() method.
*/
inline ElementType* get() const noexcept { return data; }