Spectrum: do not process decay at all if decay = 0. Some code cleanup

This commit is contained in:
f4exb 2018-10-19 08:19:12 +02:00
parent e41df6f278
commit 8836b98542
1 changed files with 29 additions and 25 deletions

View File

@ -352,13 +352,9 @@ void GLSpectrum::updateWaterfall(const std::vector<Real>& spectrum)
void GLSpectrum::updateHistogram(const std::vector<Real>& spectrum) void GLSpectrum::updateHistogram(const std::vector<Real>& spectrum)
{ {
quint8* b = m_histogram; quint8* b = m_histogram;
int sub = 0; // was 1;
int fftMulSize = 100 * m_fftSize; int fftMulSize = 100 * m_fftSize;
//if(m_decay > 0) if ((m_displayHistogram || m_displayMaxHold) && (m_decay != 0))
sub += m_decay; // allow zero decay so history (including max hold) is kept forever
if (m_displayHistogram || m_displayMaxHold)
{ {
m_decayDivisorCount--; m_decayDivisorCount--;
@ -795,25 +791,31 @@ void GLSpectrum::paintGL()
{ {
int j; int j;
quint8* bs = m_histogram + i * 100; quint8* bs = m_histogram + i * 100;
for(j = 99; j > 1; j--) {
if(bs[j] > 0) for(j = 99; j > 1; j--)
{
if(bs[j] > 0) {
break; break;
} }
// TODO: ((bs[j] * (float)j) + (bs[j + 1] * (float)(j + 1))) / (bs[j] + bs[j + 1]) }
j = j - 99; j = j - 99;
m_maxHold[i] = (j * m_powerRange) / 99.0 + m_referenceLevel; m_maxHold[i] = (j * m_powerRange) / 99.0 + m_referenceLevel;
} }
{ {
//GLfloat q3[2*m_fftSize];
GLfloat *q3 = m_q3FFT.m_array; GLfloat *q3 = m_q3FFT.m_array;
Real bottom = -m_powerRange; Real bottom = -m_powerRange;
for(int i = 0; i < m_fftSize; i++) { for(int i = 0; i < m_fftSize; i++)
{
Real v = m_maxHold[i] - m_referenceLevel; Real v = m_maxHold[i] - m_referenceLevel;
if(v > 0)
if(v > 0) {
v = 0; v = 0;
else if(v < bottom) } else if(v < bottom) {
v = bottom; v = bottom;
}
q3[2*i] = (Real) i; q3[2*i] = (Real) i;
q3[2*i+1] = v; q3[2*i+1] = v;
} }
@ -828,15 +830,18 @@ void GLSpectrum::paintGL()
{ {
{ {
Real bottom = -m_powerRange; Real bottom = -m_powerRange;
//GLfloat q3[2*m_fftSize];
GLfloat *q3 = m_q3FFT.m_array; GLfloat *q3 = m_q3FFT.m_array;
for(int i = 0; i < m_fftSize; i++) { for(int i = 0; i < m_fftSize; i++)
{
Real v = (*m_currentSpectrum)[i] - m_referenceLevel; Real v = (*m_currentSpectrum)[i] - m_referenceLevel;
if(v > 0)
if(v > 0) {
v = 0; v = 0;
else if(v < bottom) } else if(v < bottom) {
v = bottom; v = bottom;
}
q3[2*i] = (Real) i; q3[2*i] = (Real) i;
q3[2*i+1] = v; q3[2*i+1] = v;
} }
@ -854,13 +859,13 @@ void GLSpectrum::paintGL()
tickList = &m_timeScale.getTickList(); tickList = &m_timeScale.getTickList();
{ {
//GLfloat q3[4*tickList->count()];
GLfloat *q3 = m_q3TickTime.m_array; GLfloat *q3 = m_q3TickTime.m_array;
int effectiveTicks = 0; int effectiveTicks = 0;
for (int i= 0; i < tickList->count(); i++) for (int i= 0; i < tickList->count(); i++)
{ {
tick = &(*tickList)[i]; tick = &(*tickList)[i];
if (tick->major) if (tick->major)
{ {
if(tick->textSize > 0) if(tick->textSize > 0)
@ -882,13 +887,13 @@ void GLSpectrum::paintGL()
tickList = &m_frequencyScale.getTickList(); tickList = &m_frequencyScale.getTickList();
{ {
//GLfloat q3[4*tickList->count()];
GLfloat *q3 = m_q3TickFrequency.m_array; GLfloat *q3 = m_q3TickFrequency.m_array;
int effectiveTicks = 0; int effectiveTicks = 0;
for (int i= 0; i < tickList->count(); i++) for (int i= 0; i < tickList->count(); i++)
{ {
tick = &(*tickList)[i]; tick = &(*tickList)[i];
if (tick->major) if (tick->major)
{ {
if (tick->textSize > 0) if (tick->textSize > 0)
@ -916,13 +921,13 @@ void GLSpectrum::paintGL()
tickList = &m_powerScale.getTickList(); tickList = &m_powerScale.getTickList();
{ {
//GLfloat q3[4*tickList->count()];
GLfloat *q3 = m_q3TickPower.m_array; GLfloat *q3 = m_q3TickPower.m_array;
int effectiveTicks = 0; int effectiveTicks = 0;
for(int i= 0; i < tickList->count(); i++) for(int i= 0; i < tickList->count(); i++)
{ {
tick = &(*tickList)[i]; tick = &(*tickList)[i];
if(tick->major) if(tick->major)
{ {
if(tick->textSize > 0) if(tick->textSize > 0)
@ -944,7 +949,6 @@ void GLSpectrum::paintGL()
tickList = &m_frequencyScale.getTickList(); tickList = &m_frequencyScale.getTickList();
{ {
//GLfloat q3[4*tickList->count()];
GLfloat *q3 = m_q3TickFrequency.m_array; GLfloat *q3 = m_q3TickFrequency.m_array;
int effectiveTicks = 0; int effectiveTicks = 0;