mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-24 03:02:29 -04:00
Spectrum: reviewed histogram capping to phosphor palette and stroke value limits
This commit is contained in:
parent
635bea2059
commit
9158da20e0
@ -107,7 +107,7 @@ GLSpectrum::GLSpectrum(QWidget* parent) :
|
|||||||
m_histogramHoldoffBase = 4; // was 2
|
m_histogramHoldoffBase = 4; // was 2
|
||||||
m_histogramHoldoffCount = m_histogramHoldoffBase;
|
m_histogramHoldoffCount = m_histogramHoldoffBase;
|
||||||
m_histogramLateHoldoff = 20; // was 1
|
m_histogramLateHoldoff = 20; // was 1
|
||||||
m_histogramStroke = 40; // was 4
|
m_histogramStroke = 4;
|
||||||
|
|
||||||
m_timeScale.setFont(font());
|
m_timeScale.setFont(font());
|
||||||
m_timeScale.setOrientation(Qt::Vertical);
|
m_timeScale.setOrientation(Qt::Vertical);
|
||||||
@ -175,12 +175,12 @@ void GLSpectrum::setDecay(int decay)
|
|||||||
|
|
||||||
void GLSpectrum::setHistoHoldoffBase(int holdoffBase)
|
void GLSpectrum::setHistoHoldoffBase(int holdoffBase)
|
||||||
{
|
{
|
||||||
m_histogramHoldoffBase = holdoffBase < 0 ? 0 : holdoffBase > 20 ? 20 : holdoffBase;
|
m_histogramHoldoffBase = holdoffBase < 0 ? 0 : holdoffBase > 240 ? 240 : holdoffBase;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLSpectrum::setHistoStroke(int stroke)
|
void GLSpectrum::setHistoStroke(int stroke)
|
||||||
{
|
{
|
||||||
m_histogramStroke = stroke < 4 ? 4 : stroke > 240 ? 240 : stroke;
|
m_histogramStroke = stroke < 1 ? 1 : stroke > 40 ? 40 : stroke;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLSpectrum::setSampleRate(qint32 sampleRate)
|
void GLSpectrum::setSampleRate(qint32 sampleRate)
|
||||||
@ -373,7 +373,7 @@ void GLSpectrum::updateHistogram(const std::vector<Real>& spectrum)
|
|||||||
{
|
{
|
||||||
for (int i = 0; i < fftMulSize; i++)
|
for (int i = 0; i < fftMulSize; i++)
|
||||||
{
|
{
|
||||||
if (*b > 16) // was 20
|
if (*b > 20) // must be more than max value of m_decay
|
||||||
{
|
{
|
||||||
*b = *b - sub;
|
*b = *b - sub;
|
||||||
}
|
}
|
||||||
@ -470,15 +470,20 @@ void GLSpectrum::updateHistogram(const std::vector<Real>& spectrum)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
for(int i = 0; i < m_fftSize; i++) {
|
for (int i = 0; i < m_fftSize; i++)
|
||||||
|
{
|
||||||
int v = (int)((spectrum[i] - m_referenceLevel) * 100.0 / m_powerRange + 100.0);
|
int v = (int)((spectrum[i] - m_referenceLevel) * 100.0 / m_powerRange + 100.0);
|
||||||
|
|
||||||
if ((v >= 0) && (v <= 99)) {
|
if ((v >= 0) && (v <= 99))
|
||||||
|
{
|
||||||
b = m_histogram + i * 100 + v;
|
b = m_histogram + i * 100 + v;
|
||||||
if(*b < 220)
|
|
||||||
|
// capping to 239 as palette values are [0..239]
|
||||||
|
if (*b + m_histogramStroke <= 239) {
|
||||||
*b += m_histogramStroke; // was 4
|
*b += m_histogramStroke; // was 4
|
||||||
else if(*b < 239)
|
} else {
|
||||||
*b += 1;
|
*b = 239;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -68,7 +68,7 @@ void GLSpectrumGUI::resetToDefaults()
|
|||||||
m_powerRange = 100;
|
m_powerRange = 100;
|
||||||
m_decay = 0;
|
m_decay = 0;
|
||||||
m_histogramHoldoffBase = 0;
|
m_histogramHoldoffBase = 0;
|
||||||
m_histogramStroke = 40;
|
m_histogramStroke = 4;
|
||||||
m_displayGridIntensity = 5,
|
m_displayGridIntensity = 5,
|
||||||
m_displayWaterfall = true;
|
m_displayWaterfall = true;
|
||||||
m_invertedWaterfall = false;
|
m_invertedWaterfall = false;
|
||||||
@ -135,7 +135,7 @@ bool GLSpectrumGUI::deserialize(const QByteArray& data)
|
|||||||
d.readBool(12, &m_invert, true);
|
d.readBool(12, &m_invert, true);
|
||||||
d.readS32(13, &m_displayGridIntensity, 5);
|
d.readS32(13, &m_displayGridIntensity, 5);
|
||||||
d.readS32(14, &m_histogramHoldoffBase, 0);
|
d.readS32(14, &m_histogramHoldoffBase, 0);
|
||||||
d.readS32(15, &m_histogramStroke, 40);
|
d.readS32(15, &m_histogramStroke, 4);
|
||||||
d.readBool(16, &m_displayCurrent, false);
|
d.readBool(16, &m_displayCurrent, false);
|
||||||
d.readS32(17, &m_displayTraceIntensity, 50);
|
d.readS32(17, &m_displayTraceIntensity, 50);
|
||||||
Real waterfallShare;
|
Real waterfallShare;
|
||||||
@ -369,9 +369,6 @@ void GLSpectrumGUI::on_decay_valueChanged(int index)
|
|||||||
|
|
||||||
void GLSpectrumGUI::on_holdoff_valueChanged(int index)
|
void GLSpectrumGUI::on_holdoff_valueChanged(int index)
|
||||||
{
|
{
|
||||||
if (index < 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
m_histogramHoldoffBase = index;
|
m_histogramHoldoffBase = index;
|
||||||
//ui->holdoff->setToolTip(QString("Holdoff: %1").arg(m_histogramHoldoffBase));
|
//ui->holdoff->setToolTip(QString("Holdoff: %1").arg(m_histogramHoldoffBase));
|
||||||
if(m_glSpectrum != 0) {
|
if(m_glSpectrum != 0) {
|
||||||
@ -381,9 +378,6 @@ void GLSpectrumGUI::on_holdoff_valueChanged(int index)
|
|||||||
|
|
||||||
void GLSpectrumGUI::on_stroke_valueChanged(int index)
|
void GLSpectrumGUI::on_stroke_valueChanged(int index)
|
||||||
{
|
{
|
||||||
if (index < 4) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
m_histogramStroke = index;
|
m_histogramStroke = index;
|
||||||
//ui->stroke->setToolTip(QString("Stroke: %1").arg(m_histogramStroke));
|
//ui->stroke->setToolTip(QString("Stroke: %1").arg(m_histogramStroke));
|
||||||
if(m_glSpectrum != 0) {
|
if(m_glSpectrum != 0) {
|
||||||
|
@ -93,10 +93,10 @@
|
|||||||
<string>Stroke:</string>
|
<string>Stroke:</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>4</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>240</number>
|
<number>40</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="pageStep">
|
<property name="pageStep">
|
||||||
<number>1</number>
|
<number>1</number>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user