From 550a7e446de8a3a0f2c5e56d6ba8aeef0a6d69a8 Mon Sep 17 00:00:00 2001 From: drowe67 Date: Sun, 25 Nov 2012 09:28:31 +0000 Subject: [PATCH] started hooking up controls for tx and rx data experiments git-svn-id: https://svn.code.sf.net/p/freetel/code@1065 01035d8c-6547-0410-b346-abe4f91aad63 --- fdmdv2/src/Makefile.linux | 4 ++-- fdmdv2/src/Makefile.win32 | 4 ++-- fdmdv2/src/fdmdv2_defines.h | 2 ++ fdmdv2/src/fdmdv2_main.cpp | 22 ++++++++++++++-------- fdmdv2/src/fdmdv2_main.h | 1 + fdmdv2/src/topFrame.cpp | 20 ++++++++++++-------- fdmdv2/src/topFrame.h | 3 ++- 7 files changed, 35 insertions(+), 21 deletions(-) diff --git a/fdmdv2/src/Makefile.linux b/fdmdv2/src/Makefile.linux index 9b7028e6..89f1c845 100644 --- a/fdmdv2/src/Makefile.linux +++ b/fdmdv2/src/Makefile.linux @@ -15,7 +15,7 @@ SVN_REVISION=$(shell svnversion) CODEC2_INC=-I$(CODEC2_PATH)/src CODEC2_LIB=$(CODEC2_PATH)/src/.libs/libcodec2.a -CPP_FLAGS = $(WX_CPPFLAGS) $(CODEC2_INC) -I. -g -Wall -O3 -DSVN_REV=\"$(SVN_REVISION)\" +CPP_FLAGS = $(WX_CPPFLAGS) $(CODEC2_INC) -I. -g -Wall -O3 -DSVN_REVISION=\"$(SVN_REVISION)\" LIBS = $(WX_LIBS) $(CODEC2_LIB) -lm -lportaudiocpp -lpthread -lsndfile /usr/lib/libsamplerate.so.0 OBJS = topFrame.o \ @@ -30,7 +30,7 @@ dlg_audiooptions.o \ dlg_comports.o \ dlg_filter.o -HDRS = dlg_audiooptions.h dlg_comports.h dlg_filter.h fdmdv2_main.h fdmdv2_defines.h fdmdv2_plot.h fdmdv2_plot_scalar.h fdmdv2_plot_waterfall_linux.h fdmdv2_plot_scatter.h fdmdv2_plot_spectrum.h fdmdv2_pa_wrapper.h +HDRS = dlg_audiooptions.h dlg_comports.h dlg_filter.h fdmdv2_main.h fdmdv2_defines.h fdmdv2_plot.h fdmdv2_plot_scalar.h fdmdv2_plot_waterfall_linux.h fdmdv2_plot_scatter.h fdmdv2_plot_spectrum.h fdmdv2_pa_wrapper.h topFrame.h all: freedv diff --git a/fdmdv2/src/Makefile.win32 b/fdmdv2/src/Makefile.win32 index 442b4242..dbb99974 100644 --- a/fdmdv2/src/Makefile.win32 +++ b/fdmdv2/src/Makefile.win32 @@ -15,7 +15,7 @@ SVN_REVISION=$(shell svnversion) CODEC2_INC=$(CODEC2_PATH)/src CODEC2_LIB=$(CODEC2_PATH)/src/.libs/libcodec2.a -CPP_FLAGS = -I$(INCLUDE_PATH) $(WX_CPPFLAGS) -I$(CODEC2_INC) -I../extern/include -g -Wall -DSVN_REV=\"$(SVN_REVISION)\" +CPP_FLAGS = -I$(INCLUDE_PATH) $(WX_CPPFLAGS) -I$(CODEC2_INC) -I../extern/include -g -Wall -DSVN_REVISION=\"$(SVN_REVISION)\" LIBS = $(WX_LIBS) $(CODEC2_LIB) -lm -lportaudiocpp -lportaudio -lpthread -lsndfile -lsamplerate OBJS = topFrame.o \ @@ -30,7 +30,7 @@ dlg_audiooptions.o \ dlg_comports.o \ dlg_filter.o -HDRS = dlg_audiooptions.h dlg_comports.h dlg_filter.h fdmdv2_main.h fdmdv2_defines.h fdmdv2_plot.h fdmdv2_plot_scalar.h fdmdv2_plot_waterfall_linux.h fdmdv2_plot_scatter.h fdmdv2_plot_spectrum.h fdmdv2_pa_wrapper.h topFrame.h dlg_audiooptions.h +HDRS = dlg_audiooptions.h dlg_comports.h dlg_filter.h fdmdv2_main.h fdmdv2_defines.h fdmdv2_plot.h fdmdv2_plot_scalar.h fdmdv2_plot_waterfall_linux.h fdmdv2_plot_scatter.h fdmdv2_plot_spectrum.h fdmdv2_pa_wrapper.h topFrame.h dlg_audiooptions.h topFrame.h all: freedv diff --git a/fdmdv2/src/fdmdv2_defines.h b/fdmdv2/src/fdmdv2_defines.h index 992af4ce..00dc1253 100644 --- a/fdmdv2/src/fdmdv2_defines.h +++ b/fdmdv2/src/fdmdv2_defines.h @@ -69,6 +69,8 @@ #define SNRSLOW_BETA 0.5 // time constant for slow SNR for display +#define MAX_TXID 1024 + enum { ID_ROTATE_LEFT = wxID_HIGHEST + 1, diff --git a/fdmdv2/src/fdmdv2_main.cpp b/fdmdv2/src/fdmdv2_main.cpp index 2e711273..f8a86c43 100644 --- a/fdmdv2/src/fdmdv2_main.cpp +++ b/fdmdv2/src/fdmdv2_main.cpp @@ -48,6 +48,7 @@ int g_analog; int g_split; int g_tx; float g_snr; +char g_txid[MAX_TXID]; // tx/rx processing states int g_nRxIn = FDMDV_NOM_SAMPLES_PER_FRAME; @@ -313,7 +314,7 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent) pConfig->SetPath(wxT("/")); // this->Connect(m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnHelpCheckUpdatesUI)); - m_togRxID->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnRxIDUI), NULL, this); + //m_togRxID->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnRxIDUI), NULL, this); m_togTxID->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnTxIDUI), NULL, this); m_togBtnOnOff->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnOnOffUI), NULL, this); m_togBtnSplit->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnSplitClickUI), NULL, this); @@ -322,7 +323,7 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent) m_btnTogTX->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnTXClickUI), NULL, this); m_togBtnSplit->Disable(); - m_togRxID->Disable(); + //m_togRxID->Disable(); m_togTxID->Disable(); m_togBtnAnalog->Disable(); //m_togBtnALC->Disable(); @@ -438,7 +439,7 @@ MainFrame::~MainFrame() pConfig->Write(wxT("/Audio/snrSlow"), wxGetApp().m_snrSlow); } - m_togRxID->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnRxIDUI), NULL, this); + //m_togRxID->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnRxIDUI), NULL, this); m_togTxID->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnTxIDUI), NULL, this); m_togBtnOnOff->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnOnOffUI), NULL, this); m_togBtnSplit->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnSplitClickUI), NULL, this); @@ -731,6 +732,9 @@ void MainFrame::OnTogBtnRxID(wxCommandEvent& event) //------------------------------------------------------------------------- void MainFrame::OnTogBtnTxID(wxCommandEvent& event) { + printf("MainFrame::OnTogBtnTxID"); + wxString txid = m_togTxID.GetValue(); + strncpy(g_txid, (const char*) txid.mb_str(wxConvUTF8), MAX_TXID-1); event.Skip(); } @@ -1003,7 +1007,7 @@ void MainFrame::OnExit(wxCommandEvent& event) stopRxStream(); } m_togBtnSplit->Disable(); - m_togRxID->Disable(); + //m_togRxID->Disable(); m_togTxID->Disable(); m_togBtnAnalog->Disable(); //m_togBtnALC->Disable(); @@ -1128,11 +1132,13 @@ void MainFrame::OnHelpAbout(wxCommandEvent& event) #ifdef TRY_WX_ABOUT - // DR: I tried this but I like out home made dialog better + // DR: I tried this but I like our home made dialog better It + // would be nice to have a proper hyperlink, need a custom dialog + // for that wxAboutDialogInfo aboutInfo; aboutInfo.SetName("FreeDV"); - aboutInfo.SetVersion(wxT("svn revision: %s\n") + svnLatestRev, SVN_REV); + aboutInfo.SetVersion(wxT("svn revision: %s\n") + svnLatestRev, SVN_REVISION); aboutInfo.SetDescription(_("Open Source Narrow Band Digital Voice over Radio")); aboutInfo.SetCopyright("Copyright (C) 2012"); aboutInfo.SetWebSite("http://freedv.org"); @@ -1155,7 +1161,7 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event) if (startStop.IsSameAs("Start")) { m_togBtnSplit->Enable(); - m_togRxID->Enable(); + //m_togRxID->Enable(); m_togTxID->Enable(); m_togBtnAnalog->Enable(); m_btnTogTX->Enable(); @@ -1205,7 +1211,7 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event) codec2_destroy(g_pCodec2); m_togBtnSplit->Disable(); - m_togRxID->Disable(); + //m_togRxID->Disable(); m_togTxID->Disable(); m_togBtnAnalog->Disable(); m_btnTogTX->Disable(); diff --git a/fdmdv2/src/fdmdv2_main.h b/fdmdv2/src/fdmdv2_main.h index 4b47dd37..c9070d08 100644 --- a/fdmdv2/src/fdmdv2_main.h +++ b/fdmdv2/src/fdmdv2_main.h @@ -62,6 +62,7 @@ #include "portaudio.h" #include "dlg_audiooptions.h" #include "dlg_filter.h" +#include "varicode.h" #define _USE_TIMER 1 #define _USE_ONIDLE 1 diff --git a/fdmdv2/src/topFrame.cpp b/fdmdv2/src/topFrame.cpp index 8abe6535..23efd247 100644 --- a/fdmdv2/src/topFrame.cpp +++ b/fdmdv2/src/topFrame.cpp @@ -51,14 +51,14 @@ TopFrame::TopFrame(wxWindow* parent, wxWindowID id, const wxString& title, const m_menuItemAudio = new wxMenuItem(tools, wxID_ANY, wxString(_("&Audio Config")) , wxEmptyString, wxITEM_NORMAL); tools->Append(m_menuItemAudio); - wxMenuItem* m_menuItemFilter; - m_menuItemFilter = new wxMenuItem(tools, wxID_ANY, wxString(_("&Filter")) , wxEmptyString, wxITEM_NORMAL); - tools->Append(m_menuItemFilter); - wxMenuItem* m_menuItemRigCtrlCfg; m_menuItemRigCtrlCfg = new wxMenuItem(tools, wxID_ANY, wxString(_("&PTT Config")) , wxEmptyString, wxITEM_NORMAL); tools->Append(m_menuItemRigCtrlCfg); + wxMenuItem* m_menuItemFilter; + m_menuItemFilter = new wxMenuItem(tools, wxID_ANY, wxString(_("&Filter")) , wxEmptyString, wxITEM_NORMAL); + tools->Append(m_menuItemFilter); + wxMenuItem* m_menuItemCaptTxInStream; m_menuItemCaptTxInStream = new wxMenuItem(tools, wxID_ANY, wxString(_("&Capture Tx Input Stream")), wxEmptyString, wxITEM_NORMAL); @@ -158,8 +158,10 @@ TopFrame::TopFrame(wxWindow* parent, wxWindowID id, const wxString& title, const lowerSizer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer(wxVERTICAL); - m_txtCtrl = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); - bSizer15->Add(m_txtCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5); + m_txtCtrlTx = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0); + bSizer15->Add(m_txtCtrlTx, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5); + m_txtCtrlRx = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY); + bSizer15->Add(m_txtCtrlRx, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5); lowerSizer->Add(bSizer15, 1, wxEXPAND, 5); wxBoxSizer* bSizer141; bSizer141 = new wxBoxSizer(wxHORIZONTAL); @@ -168,10 +170,12 @@ TopFrame::TopFrame(wxWindow* parent, wxWindowID id, const wxString& title, const // These are the buttons that autosend the userid (?) //===================================================== +#ifdef UNIMPLEMENTED // RxID //--------- m_togRxID = new wxToggleButton(this, wxID_ANY, _("RxID"), wxDefaultPosition, wxDefaultSize, 0); bSizer141->Add(m_togRxID, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL|wxFIXED_MINSIZE, 5); +#endif // TxID //--------- @@ -352,7 +356,7 @@ TopFrame::TopFrame(wxWindow* parent, wxWindowID id, const wxString& title, const this->Connect(m_menuItemHelpUpdates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnHelpCheckUpdates)); this->Connect(m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnHelpCheckUpdatesUI)); this->Connect(m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnHelpAbout)); - m_togRxID->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnRxID), NULL, this); + //m_togRxID->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnRxID), NULL, this); m_togTxID->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnTxID), NULL, this); m_sliderSQ->Connect(wxEVT_SCROLL_TOP, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this); m_sliderSQ->Connect(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this); @@ -402,7 +406,7 @@ TopFrame::~TopFrame() this->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnHelpCheckUpdates)); this->Disconnect(wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnHelpCheckUpdatesUI)); this->Disconnect(ID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnHelpAbout)); - m_togRxID->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnRxID), NULL, this); + //m_togRxID->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnRxID), NULL, this); m_togTxID->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnTxID), NULL, this); m_sliderSQ->Disconnect(wxEVT_SCROLL_TOP, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this); m_sliderSQ->Disconnect(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this); diff --git a/fdmdv2/src/topFrame.h b/fdmdv2/src/topFrame.h index 5fe18a4c..4c48c1b7 100644 --- a/fdmdv2/src/topFrame.h +++ b/fdmdv2/src/topFrame.h @@ -89,7 +89,8 @@ class TopFrame : public wxFrame wxStaticText* m_textSNR; wxCheckBox* m_ckboxSNR; wxGauge* m_gaugeLevel; - wxTextCtrl* m_txtCtrl; + wxTextCtrl* m_txtCtrlTx; + wxTextCtrl* m_txtCtrlRx; wxSlider* m_sliderSQ; wxCheckBox* m_ckboxSQ; wxStaticText* m_textSQ; -- 2.25.1