mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-09-28 16:16:58 -04:00
meter visual fix, tuner refresh fix
This commit is contained in:
parent
33d51b2bff
commit
9de7bc95fb
@ -106,6 +106,7 @@ AppFrame::AppFrame() :
|
|||||||
demodGainMeter = new MeterCanvas(this, attribList);
|
demodGainMeter = new MeterCanvas(this, attribList);
|
||||||
demodGainMeter->setMax(2.0);
|
demodGainMeter->setMax(2.0);
|
||||||
demodGainMeter->setHelpTip("Current Demodulator Gain Level. Click / Drag to set Gain level.");
|
demodGainMeter->setHelpTip("Current Demodulator Gain Level. Click / Drag to set Gain level.");
|
||||||
|
demodGainMeter->setShowUserInput(false);
|
||||||
demodTray->Add(demodGainMeter, 1, wxEXPAND | wxALL, 0);
|
demodTray->Add(demodGainMeter, 1, wxEXPAND | wxALL, 0);
|
||||||
|
|
||||||
vbox->Add(demodTray, 12, wxEXPAND | wxALL, 0);
|
vbox->Add(demodTray, 12, wxEXPAND | wxALL, 0);
|
||||||
@ -118,8 +119,9 @@ AppFrame::AppFrame() :
|
|||||||
|
|
||||||
spectrumAvgMeter = new MeterCanvas(this, attribList);
|
spectrumAvgMeter = new MeterCanvas(this, attribList);
|
||||||
spectrumAvgMeter->setMax(3.0);
|
spectrumAvgMeter->setMax(3.0);
|
||||||
spectrumAvgMeter->setInputValue(1.0);
|
spectrumAvgMeter->setLevel(1.0);
|
||||||
|
spectrumAvgMeter->setShowUserInput(false);
|
||||||
|
|
||||||
spectrumSizer->Add(spectrumCanvas, 63, wxEXPAND | wxALL, 0);
|
spectrumSizer->Add(spectrumCanvas, 63, wxEXPAND | wxALL, 0);
|
||||||
spectrumSizer->AddSpacer(1);
|
spectrumSizer->AddSpacer(1);
|
||||||
spectrumSizer->Add(spectrumAvgMeter, 1, wxEXPAND | wxALL, 0);
|
spectrumSizer->Add(spectrumAvgMeter, 1, wxEXPAND | wxALL, 0);
|
||||||
@ -142,7 +144,8 @@ AppFrame::AppFrame() :
|
|||||||
|
|
||||||
waterfallSpeedMeter = new MeterCanvas(this, attribList);
|
waterfallSpeedMeter = new MeterCanvas(this, attribList);
|
||||||
waterfallSpeedMeter->setMax(sqrt(1024));
|
waterfallSpeedMeter->setMax(sqrt(1024));
|
||||||
waterfallSpeedMeter->setInputValue(sqrt(DEFAULT_WATERFALL_LPS));
|
waterfallSpeedMeter->setLevel(sqrt(DEFAULT_WATERFALL_LPS));
|
||||||
|
waterfallSpeedMeter->setShowUserInput(false);
|
||||||
|
|
||||||
wfSizer->Add(waterfallCanvas, 63, wxEXPAND | wxALL, 0);
|
wfSizer->Add(waterfallCanvas, 63, wxEXPAND | wxALL, 0);
|
||||||
wfSizer->AddSpacer(1);
|
wfSizer->AddSpacer(1);
|
||||||
@ -737,7 +740,8 @@ void AppFrame::OnIdle(wxIdleEvent& event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (waterfallSpeedMeter->inputChanged()) {
|
if (waterfallSpeedMeter->inputChanged()) {
|
||||||
int val = (int)waterfallSpeedMeter->getInputValue();
|
float val = waterfallSpeedMeter->getInputValue();
|
||||||
|
waterfallSpeedMeter->setLevel(val);
|
||||||
fftDistrib.setLinesPerSecond((int)ceil(val*val));
|
fftDistrib.setLinesPerSecond((int)ceil(val*val));
|
||||||
wxGetApp().getWaterfallVisualQueue()->set_max_num_items((int)ceil(val*val));
|
wxGetApp().getWaterfallVisualQueue()->set_max_num_items((int)ceil(val*val));
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ EVT_ENTER_WINDOW(MeterCanvas::OnMouseEnterWindow)
|
|||||||
wxEND_EVENT_TABLE()
|
wxEND_EVENT_TABLE()
|
||||||
|
|
||||||
MeterCanvas::MeterCanvas(wxWindow *parent, int *attribList) :
|
MeterCanvas::MeterCanvas(wxWindow *parent, int *attribList) :
|
||||||
InteractiveCanvas(parent, attribList), level(0), level_max(1), inputValue(0), userInputValue(0) {
|
InteractiveCanvas(parent, attribList), level(0), level_max(1), inputValue(0), userInputValue(0), showUserInput(true) {
|
||||||
|
|
||||||
glContext = new MeterContext(this, &wxGetApp().GetContext(this));
|
glContext = new MeterContext(this, &wxGetApp().GetContext(this));
|
||||||
}
|
}
|
||||||
@ -58,6 +58,10 @@ float MeterCanvas::getInputValue() {
|
|||||||
return userInputValue;
|
return userInputValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MeterCanvas::setShowUserInput(bool showUserInput) {
|
||||||
|
this->showUserInput = showUserInput;
|
||||||
|
}
|
||||||
|
|
||||||
void MeterCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
|
void MeterCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
|
||||||
wxPaintDC dc(this);
|
wxPaintDC dc(this);
|
||||||
const wxSize ClientSize = GetClientSize();
|
const wxSize ClientSize = GetClientSize();
|
||||||
@ -68,11 +72,15 @@ void MeterCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
|
|||||||
glViewport(0, 0, ClientSize.x, ClientSize.y);
|
glViewport(0, 0, ClientSize.x, ClientSize.y);
|
||||||
|
|
||||||
glContext->DrawBegin();
|
glContext->DrawBegin();
|
||||||
|
glContext->Draw(ThemeMgr::mgr.currentTheme->generalBackground.r, ThemeMgr::mgr.currentTheme->generalBackground.g, ThemeMgr::mgr.currentTheme->generalBackground.b, 0.5, 1.0);
|
||||||
|
|
||||||
if (mouseTracker.mouseInView()) {
|
if (mouseTracker.mouseInView()) {
|
||||||
glContext->Draw(0.4, 0.4, 0.4, 0.5, mouseTracker.getMouseY());
|
glContext->Draw(0.4, 0.4, 0.4, 0.5, mouseTracker.getMouseY());
|
||||||
}
|
}
|
||||||
glContext->Draw(ThemeMgr::mgr.currentTheme->meterLevel.r, ThemeMgr::mgr.currentTheme->meterLevel.g, ThemeMgr::mgr.currentTheme->meterLevel.b, 0.5, level / level_max);
|
glContext->Draw(ThemeMgr::mgr.currentTheme->meterLevel.r, ThemeMgr::mgr.currentTheme->meterLevel.g, ThemeMgr::mgr.currentTheme->meterLevel.b, 0.5, level / level_max);
|
||||||
glContext->Draw(ThemeMgr::mgr.currentTheme->meterValue.r, ThemeMgr::mgr.currentTheme->meterValue.g, ThemeMgr::mgr.currentTheme->meterValue.b, 0.5, userInputValue / level_max);
|
if (showUserInput) {
|
||||||
|
glContext->Draw(ThemeMgr::mgr.currentTheme->meterValue.r, ThemeMgr::mgr.currentTheme->meterValue.g, ThemeMgr::mgr.currentTheme->meterValue.b, 0.5, userInputValue / level_max);
|
||||||
|
}
|
||||||
glContext->DrawEnd();
|
glContext->DrawEnd();
|
||||||
|
|
||||||
SwapBuffers();
|
SwapBuffers();
|
||||||
|
@ -26,6 +26,7 @@ public:
|
|||||||
void setInputValue(float slider_in);
|
void setInputValue(float slider_in);
|
||||||
bool inputChanged();
|
bool inputChanged();
|
||||||
float getInputValue();
|
float getInputValue();
|
||||||
|
void setShowUserInput(bool showUserInput);
|
||||||
|
|
||||||
void setHelpTip(std::string tip);
|
void setHelpTip(std::string tip);
|
||||||
|
|
||||||
@ -48,6 +49,8 @@ private:
|
|||||||
float inputValue;
|
float inputValue;
|
||||||
float userInputValue;
|
float userInputValue;
|
||||||
|
|
||||||
|
bool showUserInput;
|
||||||
|
|
||||||
std::string helpTip;
|
std::string helpTip;
|
||||||
//
|
//
|
||||||
wxDECLARE_EVENT_TABLE();
|
wxDECLARE_EVENT_TABLE();
|
||||||
|
@ -252,7 +252,9 @@ void TuningCanvas::OnIdle(wxIdleEvent &event) {
|
|||||||
dragging = false;
|
dragging = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Refresh();
|
if (mouseTracker.mouseInView() || changed()) {
|
||||||
|
Refresh();
|
||||||
|
}
|
||||||
event.RequestMore();
|
event.RequestMore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user