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:
Charles J. Cliffe
2014-11-26 21:05:19 -05:00
parent f441546023
commit ddbc08a4ff
13 changed files with 256 additions and 87 deletions
+17 -9
View File
@@ -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;
}
+4 -3
View File
@@ -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;
};
+9
View File
@@ -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'.