Lv2: Improve LED widget's digit calculation

This improves the way digits are calculated for display in
`Lv2ViewProc`:

- More than 2 digits are now recognized
- Minus signs are now recognized
- Tests have been added
This commit is contained in:
Johannes Lorenz
2023-09-22 23:58:52 +02:00
committed by Johannes Lorenz
parent c309d8bd11
commit d97377b640
4 changed files with 85 additions and 2 deletions

View File

@@ -39,6 +39,7 @@
#include "GuiApplication.h"
#include "embed.h"
#include "gui_templates.h"
#include "lmms_math.h"
#include "Lv2ControlBase.h"
#include "Lv2Manager.h"
#include "Lv2Proc.h"
@@ -74,8 +75,10 @@ Lv2ViewProc::Lv2ViewProc(QWidget* parent, Lv2Proc* proc, int colNum) :
case PortVis::Integer:
{
sample_rate_t sr = Engine::audioEngine()->processingSampleRate();
m_control = new LcdControl((port.max(sr) <= 9.0f) ? 1 : 2,
m_parent);
auto pMin = port.min(sr);
auto pMax = port.max(sr);
int numDigits = std::max(numDigitsAsInt(pMin), numDigitsAsInt(pMax));
m_control = new LcdControl(numDigits, m_parent);
break;
}
case PortVis::Enumeration: