mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-07-04 18:55:16 -04:00
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);
|
updateScaleFactor(scaleFactor);
|
||||||
} else {
|
} else {
|
||||||
if (scaleFactorEnabled) {
|
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 {
|
} else {
|
||||||
setStatusText("Displaying spectrum of active demodulator.");
|
setStatusText("Displaying spectrum of active demodulator.");
|
||||||
}
|
}
|
||||||
@ -247,6 +247,7 @@ SpectrumVisualDataQueue *SpectrumCanvas::getVisualDataQueue() {
|
|||||||
|
|
||||||
void SpectrumCanvas::OnMouseRightDown(wxMouseEvent& event) {
|
void SpectrumCanvas::OnMouseRightDown(wxMouseEvent& event) {
|
||||||
mouseTracker.OnMouseRightDown(event);
|
mouseTracker.OnMouseRightDown(event);
|
||||||
|
scaleFactor = wxGetApp().getSpectrumProcessor()->getScaleFactor();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpectrumCanvas::OnMouseRightReleased(wxMouseEvent& event) {
|
void SpectrumCanvas::OnMouseRightReleased(wxMouseEvent& event) {
|
||||||
|
@ -43,6 +43,7 @@ WaterfallCanvas::WaterfallCanvas(wxWindow *parent, int *attribList) :
|
|||||||
lpsIndex = 0;
|
lpsIndex = 0;
|
||||||
preBuf = false;
|
preBuf = false;
|
||||||
SetCursor(wxCURSOR_CROSS);
|
SetCursor(wxCURSOR_CROSS);
|
||||||
|
scaleMove = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
WaterfallCanvas::~WaterfallCanvas() {
|
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) {
|
if (freqMove != 0.0) {
|
||||||
long long newFreq = getCenterFrequency() + (long long)((long double)getBandwidth()*freqMove) * 0.01;
|
long long newFreq = getCenterFrequency() + (long long)((long double)getBandwidth()*freqMove) * 0.01;
|
||||||
|
|
||||||
@ -306,14 +326,20 @@ void WaterfallCanvas::OnKeyUp(wxKeyEvent& event) {
|
|||||||
case 'A':
|
case 'A':
|
||||||
case WXK_UP:
|
case WXK_UP:
|
||||||
case WXK_NUMPAD_UP:
|
case WXK_NUMPAD_UP:
|
||||||
|
scaleMove = 0.0;
|
||||||
zoom = 1.0;
|
zoom = 1.0;
|
||||||
|
if (mouseZoom != 1.0) {
|
||||||
mouseZoom = 0.95;
|
mouseZoom = 0.95;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'Z':
|
case 'Z':
|
||||||
case WXK_DOWN:
|
case WXK_DOWN:
|
||||||
case WXK_NUMPAD_DOWN:
|
case WXK_NUMPAD_DOWN:
|
||||||
|
scaleMove = 0.0;
|
||||||
zoom = 1.0;
|
zoom = 1.0;
|
||||||
|
if (mouseZoom != 1.0) {
|
||||||
mouseZoom = 1.05;
|
mouseZoom = 1.05;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case WXK_LEFT:
|
case WXK_LEFT:
|
||||||
case WXK_NUMPAD_LEFT:
|
case WXK_NUMPAD_LEFT:
|
||||||
@ -336,14 +362,22 @@ void WaterfallCanvas::OnKeyDown(wxKeyEvent& event) {
|
|||||||
case 'A':
|
case 'A':
|
||||||
case WXK_UP:
|
case WXK_UP:
|
||||||
case WXK_NUMPAD_UP:
|
case WXK_NUMPAD_UP:
|
||||||
|
if (!shiftDown) {
|
||||||
mouseZoom = 1.0;
|
mouseZoom = 1.0;
|
||||||
zoom = 0.95;
|
zoom = 0.95;
|
||||||
|
} else {
|
||||||
|
scaleMove = 1.0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 'Z':
|
case 'Z':
|
||||||
case WXK_DOWN:
|
case WXK_DOWN:
|
||||||
case WXK_NUMPAD_DOWN:
|
case WXK_NUMPAD_DOWN:
|
||||||
|
if (!shiftDown) {
|
||||||
mouseZoom = 1.0;
|
mouseZoom = 1.0;
|
||||||
zoom = 1.05;
|
zoom = 1.05;
|
||||||
|
} else {
|
||||||
|
scaleMove = -1.0;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case WXK_RIGHT:
|
case WXK_RIGHT:
|
||||||
case WXK_NUMPAD_RIGHT:
|
case WXK_NUMPAD_RIGHT:
|
||||||
|
@ -67,6 +67,7 @@ private:
|
|||||||
long double freqMove;
|
long double freqMove;
|
||||||
float hoverAlpha;
|
float hoverAlpha;
|
||||||
int linesPerSecond;
|
int linesPerSecond;
|
||||||
|
float scaleMove;
|
||||||
|
|
||||||
SpectrumVisualDataQueue visualDataQueue;
|
SpectrumVisualDataQueue visualDataQueue;
|
||||||
Timer gTimer;
|
Timer gTimer;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user