MCPcopy Create free account
hub / github.com/aethersdr/AetherSDR / buildUI

Method buildUI

src/gui/ClientReverbApplet.cpp:156–261  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

154}
155
156void ClientReverbApplet::buildUI()
157{
158 setStyleSheet("QWidget { background: transparent; }");
159
160 auto* outer = new QVBoxLayout(this);
161 outer->setContentsMargins(4, 4, 4, 4);
162 outer->setSpacing(4);
163
164 // Live visualisation — same algorithm as the strip's larger
165 // GridBox. Sits above the knob row so the user sees the dry
166 // packet, reflections, and tail update as knobs move.
167 auto* viz = new ReverbVizBox;
168 m_viz = viz;
169 outer->addWidget(viz);
170
171 auto* row = new QHBoxLayout;
172 row->setSpacing(4);
173 row->addStretch();
174
175 auto makeKnob = [](const QString& label) {
176 auto* k = new ClientCompKnob;
177 k->setLabel(label);
178 k->setCenterLabelMode(true);
179 k->setInlineEditEnabled(false);
180 k->setFixedSize(38, 48);
181 return k;
182 };
183
184 m_size = makeKnob("Size");
185 m_size->setRange(0.0f, 1.0f);
186 m_size->setDefault(0.5f);
187 m_size->setValueFromNorm([](float n) { return n; });
188 m_size->setNormFromValue([](float v) { return v; });
189 m_size->setLabelFormat([](float v) {
190 return QString::number(static_cast<int>(v * 100.0f + 0.5f)) + " %";
191 });
192 row->addWidget(m_size);
193
194 m_decay = makeKnob("Decay");
195 m_decay->setRange(0.3f, 5.0f);
196 m_decay->setDefault(1.2f);
197 m_decay->setValueFromNorm([](float n) {
198 // Exponential 0.3 → 5.0 (~16.7x)
199 return 0.3f * std::pow(5.0f / 0.3f, n);
200 });
201 m_decay->setNormFromValue([](float v) {
202 if (v <= 0.3f) return 0.0f;
203 return std::log(v / 0.3f) / std::log(5.0f / 0.3f);
204 });
205 m_decay->setLabelFormat([](float v) {
206 return QString::number(v, 'f', 2) + " s";
207 });
208 row->addWidget(m_decay);
209
210 m_damping = makeKnob("Damp");
211 m_damping->setRange(0.0f, 1.0f);
212 m_damping->setDefault(0.5f);
213 m_damping->setValueFromNorm([](float n) { return n; });

Callers

nothing calls this directly

Calls 11

logFunction · 0.85
setCenterLabelModeMethod · 0.80
setInlineEditEnabledMethod · 0.80
setDefaultMethod · 0.80
setValueFromNormMethod · 0.80
setNormFromValueMethod · 0.80
setLabelFormatMethod · 0.80
clientReverbTxMethod · 0.80
setLabelMethod · 0.45
setRangeMethod · 0.45

Tested by

no test coverage detected