From 24a4ebb4c21c286e48099a9fad5b4b9858712b21 Mon Sep 17 00:00:00 2001 From: George Viaud Date: Thu, 25 Feb 2016 00:48:05 -0800 Subject: [PATCH] Added auto-zero to UI for squelch. Right-Click on signal level bar now sets squelch 2% over current signal level --- src/AppFrame.cpp | 2 +- src/visual/MeterCanvas.cpp | 23 ++++++++++++++++++----- src/visual/MeterCanvas.h | 4 +++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/AppFrame.cpp b/src/AppFrame.cpp index a1c893c..d014144 100644 --- a/src/AppFrame.cpp +++ b/src/AppFrame.cpp @@ -141,7 +141,7 @@ AppFrame::AppFrame() : demodSignalMeter->setMin(DEMOD_SIGNAL_MIN); demodSignalMeter->setLevel(DEMOD_SIGNAL_MIN); demodSignalMeter->setInputValue(DEMOD_SIGNAL_MIN); - demodSignalMeter->setHelpTip("Current Signal Level. Click / Drag to set Squelch level."); + demodSignalMeter->setHelpTip("Current Signal Level. Click / Drag to set Squelch level. Right-Click to Auto-Zero Squelch"); demodSignalMeter->SetMinSize(wxSize(12,24)); demodTray->Add(demodSignalMeter, 1, wxEXPAND | wxALL, 0); diff --git a/src/visual/MeterCanvas.cpp b/src/visual/MeterCanvas.cpp index d5b6037..d0a8b4d 100644 --- a/src/visual/MeterCanvas.cpp +++ b/src/visual/MeterCanvas.cpp @@ -20,6 +20,8 @@ EVT_IDLE(MeterCanvas::OnIdle) EVT_MOTION(MeterCanvas::OnMouseMoved) EVT_LEFT_DOWN(MeterCanvas::OnMouseDown) EVT_LEFT_UP(MeterCanvas::OnMouseReleased) +EVT_RIGHT_DOWN(MeterCanvas::OnMouseRightDown) +EVT_RIGHT_UP(MeterCanvas::OnMouseRightReleased) EVT_LEAVE_WINDOW(MeterCanvas::OnMouseLeftWindow) EVT_ENTER_WINDOW(MeterCanvas::OnMouseEnterWindow) wxEND_EVENT_TABLE() @@ -126,17 +128,28 @@ void MeterCanvas::OnMouseDown(wxMouseEvent& event) { Refresh(); } -void MeterCanvas::OnMouseWheelMoved(wxMouseEvent& event) { - InteractiveCanvas::OnMouseWheelMoved(event); - Refresh(); -} - void MeterCanvas::OnMouseReleased(wxMouseEvent& event) { InteractiveCanvas::OnMouseReleased(event); userInputValue = mouseTracker.getMouseY() * (level_max-level_min) + level_min; Refresh(); } +void MeterCanvas::OnMouseRightDown(wxMouseEvent& event) { + InteractiveCanvas::OnMouseRightDown(event); + Refresh(); +} + +void MeterCanvas::OnMouseRightReleased(wxMouseEvent& event) { + InteractiveCanvas::OnMouseRightReleased(event); + userInputValue = level - level * 0.02; + Refresh(); +} + +void MeterCanvas::OnMouseWheelMoved(wxMouseEvent& event) { + InteractiveCanvas::OnMouseWheelMoved(event); + Refresh(); +} + void MeterCanvas::OnMouseLeftWindow(wxMouseEvent& event) { InteractiveCanvas::OnMouseLeftWindow(event); SetCursor(wxCURSOR_CROSS); diff --git a/src/visual/MeterCanvas.h b/src/visual/MeterCanvas.h index 7da390e..95a7b42 100644 --- a/src/visual/MeterCanvas.h +++ b/src/visual/MeterCanvas.h @@ -38,8 +38,10 @@ private: void OnMouseMoved(wxMouseEvent& event); void OnMouseDown(wxMouseEvent& event); - void OnMouseWheelMoved(wxMouseEvent& event); void OnMouseReleased(wxMouseEvent& event); + void OnMouseWheelMoved(wxMouseEvent& event); + void OnMouseRightDown(wxMouseEvent& event); + void OnMouseRightReleased(wxMouseEvent& event); void OnMouseEnterWindow(wxMouseEvent& event); void OnMouseLeftWindow(wxMouseEvent& event);