Shift + arrow up/down to adjust visual scale
This commit is contained in:
parent
a6201ad3b5
commit
68d80bde9e
|
@ -206,7 +206,7 @@ void SpectrumCanvas::OnMouseMoved(wxMouseEvent& event) {
|
|||
updateScaleFactor(scaleFactor);
|
||||
} else {
|
||||
if (scaleFactorEnabled) {
|
||||
setStatusText("Drag horitontal to adjust center frequency. Right-drag to adjust vertical scale, click to reset. 'B' to toggle decibels display.");
|
||||
setStatusText("Drag horizontal to adjust center frequency. Right-drag or SHIFT+UP/DOWN to adjust vertical scale; right-click to reset. 'B' to toggle decibels display.");
|
||||
} else {
|
||||
setStatusText("Displaying spectrum of active demodulator.");
|
||||
}
|
||||
|
@ -247,6 +247,7 @@ SpectrumVisualDataQueue *SpectrumCanvas::getVisualDataQueue() {
|
|||
|
||||
void SpectrumCanvas::OnMouseRightDown(wxMouseEvent& event) {
|
||||
mouseTracker.OnMouseRightDown(event);
|
||||
scaleFactor = wxGetApp().getSpectrumProcessor()->getScaleFactor();
|
||||
}
|
||||
|
||||
void SpectrumCanvas::OnMouseRightReleased(wxMouseEvent& event) {
|
||||
|
|
|
@ -43,6 +43,7 @@ WaterfallCanvas::WaterfallCanvas(wxWindow *parent, int *attribList) :
|
|||
lpsIndex = 0;
|
||||
preBuf = false;
|
||||
SetCursor(wxCURSOR_CROSS);
|
||||
scaleMove = 0;
|
||||
}
|
||||
|
||||
WaterfallCanvas::~WaterfallCanvas() {
|
||||
|
@ -123,6 +124,25 @@ void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) {
|
|||
}
|
||||
}
|
||||
|
||||
if (scaleMove != 0) {
|
||||
SpectrumVisualProcessor *sp = wxGetApp().getSpectrumProcessor();
|
||||
FFTVisualDataThread *wdt = wxGetApp().getAppFrame()->getWaterfallDataThread();
|
||||
SpectrumVisualProcessor *wp = wdt->getProcessor();
|
||||
float factor = sp->getScaleFactor();
|
||||
|
||||
factor += scaleMove * 0.02;
|
||||
|
||||
if (factor < 0.25) {
|
||||
factor = 0.25;
|
||||
}
|
||||
if (factor > 10.0) {
|
||||
factor = 10.0;
|
||||
}
|
||||
|
||||
sp->setScaleFactor(factor);
|
||||
wp->setScaleFactor(factor);
|
||||
}
|
||||
|
||||
if (freqMove != 0.0) {
|
||||
long long newFreq = getCenterFrequency() + (long long)((long double)getBandwidth()*freqMove) * 0.01;
|
||||
|
||||
|
@ -306,14 +326,20 @@ void WaterfallCanvas::OnKeyUp(wxKeyEvent& event) {
|
|||
case 'A':
|
||||
case WXK_UP:
|
||||
case WXK_NUMPAD_UP:
|
||||
scaleMove = 0.0;
|
||||
zoom = 1.0;
|
||||
mouseZoom = 0.95;
|
||||
if (mouseZoom != 1.0) {
|
||||
mouseZoom = 0.95;
|
||||
}
|
||||
break;
|
||||
case 'Z':
|
||||
case WXK_DOWN:
|
||||
case WXK_NUMPAD_DOWN:
|
||||
scaleMove = 0.0;
|
||||
zoom = 1.0;
|
||||
mouseZoom = 1.05;
|
||||
if (mouseZoom != 1.0) {
|
||||
mouseZoom = 1.05;
|
||||
}
|
||||
break;
|
||||
case WXK_LEFT:
|
||||
case WXK_NUMPAD_LEFT:
|
||||
|
@ -336,14 +362,22 @@ void WaterfallCanvas::OnKeyDown(wxKeyEvent& event) {
|
|||
case 'A':
|
||||
case WXK_UP:
|
||||
case WXK_NUMPAD_UP:
|
||||
mouseZoom = 1.0;
|
||||
zoom = 0.95;
|
||||
if (!shiftDown) {
|
||||
mouseZoom = 1.0;
|
||||
zoom = 0.95;
|
||||
} else {
|
||||
scaleMove = 1.0;
|
||||
}
|
||||
break;
|
||||
case 'Z':
|
||||
case WXK_DOWN:
|
||||
case WXK_NUMPAD_DOWN:
|
||||
mouseZoom = 1.0;
|
||||
zoom = 1.05;
|
||||
if (!shiftDown) {
|
||||
mouseZoom = 1.0;
|
||||
zoom = 1.05;
|
||||
} else {
|
||||
scaleMove = -1.0;
|
||||
}
|
||||
break;
|
||||
case WXK_RIGHT:
|
||||
case WXK_NUMPAD_RIGHT:
|
||||
|
|
|
@ -67,6 +67,7 @@ private:
|
|||
long double freqMove;
|
||||
float hoverAlpha;
|
||||
int linesPerSecond;
|
||||
float scaleMove;
|
||||
|
||||
SpectrumVisualDataQueue visualDataQueue;
|
||||
Timer gTimer;
|
||||
|
|
Loading…
Reference in New Issue