Prototype frequency input dialog

This commit is contained in:
Charles J. Cliffe 2015-05-04 19:44:03 -04:00
parent e7d3e0c598
commit 04ee1534ad
6 changed files with 67 additions and 14 deletions

View File

@ -227,6 +227,7 @@ SET (cubicsdr_sources
src/CubicSDR.cpp
src/AppFrame.cpp
src/AppConfig.cpp
src/FrequencyDialog.cpp
src/sdr/SDRThread.cpp
src/sdr/SDRPostThread.cpp
src/demod/DemodulatorPreThread.cpp
@ -269,6 +270,7 @@ SET (cubicsdr_headers
src/CubicSDR.h
src/AppFrame.h
src/AppConfig.h
src/FrequencyDialog.h
src/sdr/SDRThread.h
src/sdr/SDRPostThread.h
src/demod/DemodulatorPreThread.h

View File

@ -13,7 +13,7 @@
#endif
#include "CubicSDR.h"
#include "AppFrame.h"
#include "FrequencyDialog.h"
#ifdef _OSX_APP_
#include "CoreFoundation/CoreFoundation.h"
@ -92,7 +92,7 @@ bool CubicSDR::OnInit() {
t_PostSDR = new std::thread(&SDRPostThread::threadMain, sdrPostThread);
t_SDR = new std::thread(&SDRThread::threadMain, sdrThread);
AppFrame *appframe = new AppFrame();
appframe = new AppFrame();
#ifdef __APPLE__
int main_policy;
@ -271,3 +271,11 @@ int CubicSDR::getPPM() {
return ppm;
}
void CubicSDR::showFrequencyInput() {
FrequencyDialog fdialog(appframe, -1, _("Set Frequency"), wxPoint(-100,-100), wxSize(320, 75 ));
if ( fdialog.ShowModal() != wxID_OK ) {
} else {
}
}

View File

@ -15,6 +15,7 @@
#include "AudioThread.h"
#include "DemodulatorMgr.h"
#include "AppConfig.h"
#include "AppFrame.h"
#define NUM_DEMODULATORS 1
@ -56,7 +57,10 @@ public:
void setPPM(int ppm_in);
int getPPM();
void showFrequencyInput();
private:
AppFrame *appframe;
AppConfig config;
PrimaryGLContext *m_glContext;
std::vector<SDRDeviceInfo *> devs;

21
src/FrequencyDialog.cpp Normal file
View File

@ -0,0 +1,21 @@
#include "FrequencyDialog.h"
wxBEGIN_EVENT_TABLE(FrequencyDialog, wxDialog) wxEND_EVENT_TABLE()
FrequencyDialog::FrequencyDialog(wxWindow * parent, wxWindowID id, const wxString & title, const wxPoint & position, const wxSize & size, long style) :
wxDialog(parent, id, title, position, size, style) {
wxString freqStr = "105.7Mhz";
dialogText = new wxTextCtrl(this, -1, freqStr, wxPoint(6, 1), wxSize(size.GetWidth() - 20, size.GetHeight() - 70), wxTE_PROCESS_ENTER);
dialogText->SetFont(wxFont(20, wxFONTFAMILY_TELETYPE, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD));
Connect(wxEVT_TEXT_ENTER, wxCommandEventHandler(FrequencyDialog::OnEnter));
SetEscapeId(wxID_CANCEL);
Centre();
}
void FrequencyDialog::OnEnter(wxCommandEvent &event) {
std::cout << dialogText->GetValue().ToStdString() << std::endl;
Close();
}

25
src/FrequencyDialog.h Normal file
View File

@ -0,0 +1,25 @@
#pragma once
#include "wx/dialog.h"
#include "wx/textctrl.h"
#include "wx/string.h"
#include "wx/button.h"
class FrequencyDialog: public wxDialog
{
public:
FrequencyDialog ( wxWindow * parent, wxWindowID id, const wxString & title,
const wxPoint & pos = wxDefaultPosition,
const wxSize & size = wxDefaultSize,
long style = wxDEFAULT_DIALOG_STYLE );
wxTextCtrl * dialogText;
private:
void OnEnter ( wxCommandEvent &event );
DECLARE_EVENT_TABLE()
};

View File

@ -299,16 +299,6 @@ void WaterfallCanvas::OnKeyDown(wxKeyEvent& event) {
wxGetApp().getDemodMgr().deleteThread(activeDemod);
break;
case 'S':
if (!activeDemod) {
break;
}
if (activeDemod->isSquelchEnabled()) {
activeDemod->setSquelchEnabled(false);
} else {
activeDemod->squelchAuto();
}
break;
case WXK_SPACE:
if (!activeDemod) {
break;
}
@ -318,6 +308,9 @@ void WaterfallCanvas::OnKeyDown(wxKeyEvent& event) {
activeDemod->setStereo(true);
}
break;
case WXK_SPACE:
wxGetApp().showFrequencyInput();
break;
default:
event.Skip();
return;
@ -720,14 +713,14 @@ void WaterfallCanvas::OnMouseMoved(wxMouseEvent& event) {
mouseTracker.setVertDragLock(true);
mouseTracker.setHorizDragLock(false);
setStatusText("Click and drag to change demodulator bandwidth. D to delete, SPACE for stereo.");
setStatusText("Click and drag to change demodulator bandwidth. D to delete, S for stereo.");
} else {
SetCursor(wxCURSOR_SIZING);
nextDragState = WF_DRAG_FREQUENCY;
mouseTracker.setVertDragLock(true);
mouseTracker.setHorizDragLock(false);
setStatusText("Click and drag to change demodulator frequency. D to delete, SPACE for stereo.");
setStatusText("Click and drag to change demodulator frequency. D to delete, S for stereo.");
}
} else {
SetCursor(wxCURSOR_CROSS);