From 9bc3bec81ea9d2ac774a94baf80cd876d53c4443 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Tue, 13 Aug 2013 02:22:40 +0000 Subject: [PATCH] minor changes to defaults, re-enabled support for changing callsign when running, cleaner open/close of hamlib git-svn-id: https://svn.code.sf.net/p/freetel/code@1328 01035d8c-6547-0410-b346-abe4f91aad63 --- fdmdv2/src/fdmdv2_main.cpp | 32 +++++++++++++++++++++----------- fdmdv2/src/fdmdv2_main.h | 2 ++ fdmdv2/src/hamlib.cpp | 8 ++++++-- fdmdv2/src/hamlib.h | 1 + fdmdv2/src/version.h | 4 ++-- 5 files changed, 32 insertions(+), 15 deletions(-) diff --git a/fdmdv2/src/fdmdv2_main.cpp b/fdmdv2/src/fdmdv2_main.cpp index fbdc8ca2..5d7a8de7 100644 --- a/fdmdv2/src/fdmdv2_main.cpp +++ b/fdmdv2/src/fdmdv2_main.cpp @@ -318,9 +318,9 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent) wxGetApp().m_strHamlibSerialPort = pConfig->Read("/Hamlib/SerialPort", ""); wxGetApp().m_boolUseSerialPTT = pConfig->ReadBool(wxT("/Rig/UseSerialPTT"), false); - wxGetApp().m_strRigCtrlPort = pConfig->Read(wxT("/Rig/Port"), wxT("COM3")); + wxGetApp().m_strRigCtrlPort = pConfig->Read(wxT("/Rig/Port"), wxT("")); wxGetApp().m_boolUseRTS = pConfig->ReadBool(wxT("/Rig/UseRTS"), true); - wxGetApp().m_boolRTSPos = pConfig->ReadBool(wxT("/Rig/RTSPolarity"), false); + wxGetApp().m_boolRTSPos = pConfig->ReadBool(wxT("/Rig/RTSPolarity"), true); wxGetApp().m_boolUseDTR = pConfig->ReadBool(wxT("/Rig/UseDTR"), false); wxGetApp().m_boolDTRPos = pConfig->ReadBool(wxT("/Rig/DTRPolarity"), false); @@ -445,6 +445,8 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent) g_total_bit_errors = 0; g_total_bits = 0; wxGetApp().m_testFrames = false; + + m_modal = false; } //------------------------------------------------------------------------- @@ -906,13 +908,18 @@ int MainApp::FilterEvent(wxEvent& event) if ((event.GetEventType() == wxEVT_KEY_DOWN) && (((wxKeyEvent&)event).GetKeyCode() == WXK_SPACE)) { - if (frame->m_RxRunning) { + // only use space to toggle PTT if we are running and no modal dialogs (like options) up + + if (frame->m_RxRunning && !frame->m_modal) { if (frame->m_btnTogPTT->GetValue()) frame->m_btnTogPTT->SetValue(false); else frame->m_btnTogPTT->SetValue(true); frame->togglePTT(); + + return true; // absorb space so we don't toggle control with focus (e.g. Start) + } } @@ -949,9 +956,9 @@ void MainFrame::togglePTT(void) { // Hamlib PTT if (wxGetApp().m_boolHamlibUseForPTT) { - Hamlib *rig = wxGetApp().m_hamlib; - if (wxGetApp().m_boolHamlibUseForPTT && rig != NULL) { - rig->ptt(g_tx); + Hamlib *hamlib = wxGetApp().m_hamlib; + if (wxGetApp().m_boolHamlibUseForPTT && hamlib != NULL) { + hamlib->ptt(g_tx); } } @@ -1437,7 +1444,9 @@ void MainFrame::OnToolsOptions(wxCommandEvent& event) { wxUnusedVar(event); OptionsDlg *dlg = new OptionsDlg(NULL); + m_modal=true; dlg->ShowModal(); + m_modal=false; delete dlg; } @@ -1446,7 +1455,6 @@ void MainFrame::OnToolsOptions(wxCommandEvent& event) //------------------------------------------------------------------------- void MainFrame::OnToolsOptionsUI(wxUpdateUIEvent& event) { - event.Enable(!m_RxRunning); } //------------------------------------------------------------------------- @@ -1466,6 +1474,7 @@ void MainFrame::OnToolsComCfg(wxCommandEvent& event) { if (wxGetApp().m_boolHamlibUseForPTT) { OpenHamlibRig(); + wxGetApp().m_hamlib->close(); } if (wxGetApp().m_boolUseSerialPTT) { SetupSerialPort(); @@ -1586,7 +1595,7 @@ bool MainFrame::OpenHamlibRig() { bool status = wxGetApp().m_hamlib->connect(rig, port.mb_str(wxConvUTF8)); if (status == false) wxMessageBox("Couldn't connect to Radio with hamlib", wxT("About"), wxOK | wxICON_ERROR, this); - + return status; } @@ -1735,9 +1744,10 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event) // ensure we are not transmitting and shut down audio processing if (wxGetApp().m_boolHamlibUseForPTT) { - Hamlib *rig = wxGetApp().m_hamlib; - if (wxGetApp().m_boolHamlibUseForPTT && rig != NULL) { - rig->ptt(false); + Hamlib *hamlib = wxGetApp().m_hamlib; + if (wxGetApp().m_boolHamlibUseForPTT && hamlib != NULL) { + hamlib->ptt(false); + hamlib->close(); } } diff --git a/fdmdv2/src/fdmdv2_main.h b/fdmdv2/src/fdmdv2_main.h index 57f7db95..dcddff87 100644 --- a/fdmdv2/src/fdmdv2_main.h +++ b/fdmdv2/src/fdmdv2_main.h @@ -339,6 +339,8 @@ class MainFrame : public TopFrame void CloseSerialPort(void); void SerialPTTRx(void); + bool m_modal; + #ifdef _USE_TIMER wxTimer m_plotTimer; #endif diff --git a/fdmdv2/src/hamlib.cpp b/fdmdv2/src/hamlib.cpp index 254b8d55..547fd0c9 100644 --- a/fdmdv2/src/hamlib.cpp +++ b/fdmdv2/src/hamlib.cpp @@ -45,8 +45,6 @@ Hamlib::Hamlib() : m_rig(NULL) { } Hamlib::~Hamlib() { - rig_close(m_rig); - rig_cleanup(m_rig); } static int build_list(const struct rig_caps *rig, rig_ptr_t rigList) { @@ -108,3 +106,9 @@ bool Hamlib::ptt(bool press) { /* TODO(Joel): what should the VFO option be? */ return rig_set_ptt(m_rig, RIG_VFO_CURR, on) == RIG_OK; } + +void Hamlib::close(void) { + rig_close(m_rig); + rig_cleanup(m_rig); + free(m_rig); +} diff --git a/fdmdv2/src/hamlib.h b/fdmdv2/src/hamlib.h index b5942b3b..fe3496ff 100644 --- a/fdmdv2/src/hamlib.h +++ b/fdmdv2/src/hamlib.h @@ -15,6 +15,7 @@ class Hamlib { void populateComboBox(wxComboBox *cb); bool connect(unsigned int rig_index, const char *serial_port); bool ptt(bool press); + void close(void); typedef std::vector riglist_t; diff --git a/fdmdv2/src/version.h b/fdmdv2/src/version.h index 5a39f0dd..9337e2bb 100644 --- a/fdmdv2/src/version.h +++ b/fdmdv2/src/version.h @@ -3,9 +3,9 @@ #define FREEDV_VERSION_MAJOR 0 #define FREEDV_VERSION_MINOR 96 -#define FREEDV_VERSION_PATCH 3 +#define FREEDV_VERSION_PATCH 5 #define FREEDV_VERSION_SUFFIX "Beta" -#define FREEDV_VERSION "0.96.3 Beta" +#define FREEDV_VERSION "0.96.5 Beta" #endif //FREEDV_VER_DOT_H -- 2.25.1