mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2026-06-01 21:54:39 -04:00
Drag up/down to set arbitrary FM demod bandwidth
Shouldn't need separate WBFM/FM/NFM setting this way -- Just "FM" and then set arbitrary bandwidth by dragging. Also removed redundant demod resampling stages left over from early experiments.
This commit is contained in:
@@ -15,17 +15,21 @@ void MouseTracker::OnMouseMoved(wxMouseEvent& event) {
|
||||
deltaMouseY = mouseY - lastMouseY;
|
||||
|
||||
if (isMouseDown) {
|
||||
lastMouseX = mouseX;
|
||||
|
||||
if (vertDragLock && mouseY != lastMouseY) {
|
||||
target->WarpPointer(event.m_x, lastMouseY * ClientSize.y);
|
||||
} else {
|
||||
lastMouseY = mouseY;
|
||||
if (horizDragLock && vertDragLock) {
|
||||
target->WarpPointer(originMouseX * ClientSize.x, originMouseY * ClientSize.y);
|
||||
mouseX = originMouseX;
|
||||
mouseY = originMouseY;
|
||||
} else if (vertDragLock && mouseY != lastMouseY) {
|
||||
target->WarpPointer(event.m_x, originMouseY * ClientSize.y);
|
||||
mouseY = originMouseY;
|
||||
} else if (horizDragLock && mouseX != lastMouseX) {
|
||||
target->WarpPointer(originMouseX * ClientSize.x, event.m_y);
|
||||
mouseX = originMouseX;
|
||||
}
|
||||
} else {
|
||||
lastMouseY = mouseY;
|
||||
lastMouseX = mouseX;
|
||||
}
|
||||
|
||||
lastMouseX = mouseX;
|
||||
lastMouseY = mouseY;
|
||||
}
|
||||
|
||||
void MouseTracker::OnMouseDown(wxMouseEvent& event) {
|
||||
@@ -105,6 +109,10 @@ void MouseTracker::setVertDragLock(bool dragLock) {
|
||||
vertDragLock = dragLock;
|
||||
}
|
||||
|
||||
void MouseTracker::setHorizDragLock(bool dragLock) {
|
||||
horizDragLock = dragLock;
|
||||
}
|
||||
|
||||
bool MouseTracker::mouseDown() {
|
||||
return isMouseDown;
|
||||
}
|
||||
|
||||
@@ -6,13 +6,13 @@ class MouseTracker {
|
||||
public:
|
||||
MouseTracker(wxWindow *target) :
|
||||
target(target), mouseX(0), mouseY(0), lastMouseX(0), lastMouseY(0), originMouseX(0), originMouseY(0), deltaMouseX(0), deltaMouseY(0), isMouseDown(
|
||||
false), vertDragLock(false), isMouseInView(false) {
|
||||
false), vertDragLock(false), horizDragLock(false), isMouseInView(false) {
|
||||
|
||||
}
|
||||
|
||||
MouseTracker() :
|
||||
target(NULL), mouseX(0), mouseY(0), lastMouseX(0), lastMouseY(0), originMouseX(0), originMouseY(0), deltaMouseX(0), deltaMouseY(0), isMouseDown(
|
||||
false), vertDragLock(false), isMouseInView(false) {
|
||||
false), vertDragLock(false), horizDragLock(false), isMouseInView(false) {
|
||||
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ public:
|
||||
float getMouseY();
|
||||
|
||||
void setVertDragLock(bool dragLock);
|
||||
void setHorizDragLock(bool dragLock);
|
||||
bool mouseDown();
|
||||
bool mouseInView();
|
||||
void setTarget(wxWindow *target_in);
|
||||
@@ -46,6 +47,6 @@ private:
|
||||
float originMouseX, originMouseY;
|
||||
|
||||
bool isMouseDown, isMouseInView;
|
||||
bool vertDragLock;
|
||||
bool vertDragLock, horizDragLock;
|
||||
wxWindow *target;
|
||||
};
|
||||
|
||||
@@ -207,6 +207,15 @@ public:
|
||||
return m_queue.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove any items in the queue.
|
||||
*/
|
||||
void flush() const {
|
||||
std::lock_guard < std::mutex > lock(m_mutex);
|
||||
std::queue<T, Container> emptyQueue;
|
||||
std::swap(m_queue, emptyQueue);
|
||||
}
|
||||
|
||||
/**
|
||||
* Swaps the contents.
|
||||
* \param[out] sq The ThreadQueue to swap with 'this'.
|
||||
|
||||
Reference in New Issue
Block a user