@@ -84,20 +84,22 @@ void Oscillator::BuildNode(Canvas& canvas)
8484 spSocket->SetConstraints (glm::uvec2 (LayoutConstraint::Preferred, LayoutConstraint::Expanding));
8585 spHorzLayout->AddChild (spSocket);
8686
87- sliderVal.step = 0 .2f ;
88- sliderVal.units = " dB " ;
87+ sliderVal.step = 0 .1f ;
88+ sliderVal.units = " " ;
8989 sliderVal.valueFlags = WidgetValueFlags::Default;
90+ sliderVal.value = 1 .0f ;
9091
91- auto spSlider = std::make_shared<Slider>(" Amp" , sliderVal);
92- spSlider->SetRect (NRectf (0 .0f , 0 .0f , 0 .0f , 0 .0f ));
93- spHorzLayout->AddChild (spSlider);
92+ m_spAmplitude = std::make_shared<Slider>(" Amp" , sliderVal);
93+ spHorzLayout->AddChild (m_spAmplitude);
94+ m_connections.push_back (m_spAmplitude->ValueUpdatedSignal .connect ([=]() {
95+ UpdateWave ();
96+ }));
9497
9598 sliderVal.units = " Hz" ;
9699 sliderVal.name = " Freq" ;
97100 sliderVal.valueText = " Freq" ;
98101
99- spSlider = std::make_shared<Slider>(" Freq" , sliderVal);
100- spSlider->SetRect (NRectf (0 .0f , 0 .0f , 0 .0f , 0 .0f ));
102+ auto spSlider = std::make_shared<Slider>(" Freq" , sliderVal);
101103 spHorzLayout->AddChild (spSlider);
102104
103105 spSocket = std::make_shared<Socket>(" Amp" , SocketType::Right);
@@ -125,12 +127,15 @@ void Oscillator::UpdateWave()
125127 pOsc->enableBandlimit = 1 ;
126128 pOsc->bandlimitIndexOverride = -1 ;
127129
128- SliderValue val;
129- m_spWaveSlider->GetCB ()->UpdateSlider (m_spWaveSlider.get (), SliderOp::Get, val);
130+ SliderValue sliderType;
131+ m_spWaveSlider->GetCB ()->UpdateSlider (m_spWaveSlider.get (), SliderOp::Get, sliderType);
132+
133+ SliderValue amplitude;
134+ m_spAmplitude->GetCB ()->UpdateSlider (m_spAmplitude.get (), SliderOp::Get, amplitude);
130135
131- pOsc->wtpos = val .value ;
136+ pOsc->wtpos = sliderType .value ;
132137
133- pOsc->amp = 1.0 ;
138+ pOsc->amp = amplitude. value ;
134139 pOsc->iphs = 0 ;
135140
136141 pOsc->freq = 100 ;
0 commit comments