Spectrum panel init fixes, more FFT distributor tweaks

This commit is contained in:
Charles J. Cliffe 2015-09-09 17:31:55 -04:00
parent 11121d8a0e
commit 7163cd13f2
5 changed files with 26 additions and 15 deletions

View File

@ -4,8 +4,16 @@
#include <iostream>
#include <iomanip>
#include "ColorTheme.h"
#include "CubicSDRDefs.h"
SpectrumPanel::SpectrumPanel() {
floorValue = 0;
ceilValue = 1;
showDb = false;
fftSize = DEFAULT_FFT_SIZE;
bandwidth = DEFAULT_DEMOD_BW;
freq = 0;
SpectrumPanel::SpectrumPanel() : floorValue(0), ceilValue(1), showDb(false), fftSize(2048) {
setFill(GLPANEL_FILL_GRAD_Y);
setFillColor(ThemeMgr::mgr.currentTheme->fftBackground * 2.0, ThemeMgr::mgr.currentTheme->fftBackground);
@ -233,15 +241,18 @@ void SpectrumPanel::drawPanelContents() {
float dbPanelHeight = (1.0/viewHeight)*14.0;
std::stringstream ssLabel;
std::stringstream ssLabel("");
if (getCeilValue() != getFloorValue() && fftSize) {
ssLabel << std::fixed << std::setprecision(1) << (20.0 * log10(2.0*(getCeilValue())/(double)fftSize)) << "dB";
}
dbPanelCeil.setText(ssLabel.str(), GLFont::GLFONT_ALIGN_RIGHT);
dbPanelCeil.setSize(dbPanelWidth, dbPanelHeight);
dbPanelCeil.setPosition(-1.0 + dbPanelWidth, 1.0 - dbPanelHeight);
ssLabel.str("");
if (getCeilValue() != getFloorValue() && fftSize) {
ssLabel << (20.0 * log10(2.0*(getFloorValue())/(double)fftSize)) << "dB";
}
dbPanelFloor.setText(ssLabel.str(), GLFont::GLFONT_ALIGN_RIGHT);
dbPanelFloor.setSize(dbPanelWidth, dbPanelHeight);

View File

@ -16,7 +16,7 @@ int FFTDataDistributor::getLinesPerSecond() {
}
void FFTDataDistributor::process() {
while (!input->empty()) {
if (!input->empty()) {
if (!isAnyOutputEmpty()) {
return;
}
@ -33,7 +33,7 @@ void FFTDataDistributor::process() {
}
inp->decRefCount();
} else {
continue;
return;
}
// number of seconds contained in input

View File

@ -102,9 +102,9 @@ void ScopeCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
wxPaintDC dc(this);
const wxSize ClientSize = GetClientSize();
#ifdef __APPLE__
glFinish();
#endif
//#ifdef __APPLE__
// glFinish();
//#endif
while (!inputData.empty()) {
ScopeRenderData *avData;

View File

@ -45,9 +45,9 @@ SpectrumCanvas::~SpectrumCanvas() {
void SpectrumCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
wxPaintDC dc(this);
const wxSize ClientSize = GetClientSize();
#ifdef __APPLE__
glFinish();
#endif
//#ifdef __APPLE__
// glFinish();
//#endif
if (!visualDataQueue.empty()) {

View File

@ -75,9 +75,9 @@ void WaterfallCanvas::processInputQueue() {
glContext->SetCurrent(*this);
bool processed = false;
while (!visualDataQueue.empty()) {
int numVis = visualDataQueue.size();
for (int i = 0; i < numVis; i++) {
SpectrumVisualData *vData;
visualDataQueue.pop(vData);
if (vData) {