Receive side connected, segfault still to be tracked down.
authorwittend99 <wittend99@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 8 Oct 2012 13:29:38 +0000 (13:29 +0000)
committerwittend99 <wittend99@01035d8c-6547-0410-b346-abe4f91aad63>
Mon, 8 Oct 2012 13:29:38 +0000 (13:29 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@739 01035d8c-6547-0410-b346-abe4f91aad63

12 files changed:
fdmdv2/build/fdmdv2.mk
fdmdv2/build/fdmdv2.project
fdmdv2/build/fdmdv2.workspace
fdmdv2/src/dlg_comports.cpp
fdmdv2/src/dlg_comports.h
fdmdv2/src/fdmdv2_hdw_ports.cpp
fdmdv2/src/fdmdv2_hdw_ports.h
fdmdv2/src/fdmdv2_main.cpp
fdmdv2/src/fdmdv2_main.h
fdmdv2/src/fdmdv2_plot_spectrum.cpp
fdmdv2/src/fdmdv2_plot_waterfall.cpp
fdmdv2/src/topFrame.cpp

index ae75cabaa6304e816e4700a0d12064c5bb73ef2b..ffac947d7a1a443b87a106b7333c3caff6c73b62 100644 (file)
@@ -13,7 +13,7 @@ CurrentFileName        :=
 CurrentFilePath        :=\r
 CurrentFileFullPath    :=\r
 User                   :=OFA-Staff\r
-Date                   :=10/6/2012\r
+Date                   :=10/7/2012\r
 CodeLitePath           :="C:\bin\CodeLite"\r
 LinkerName             :=g++\r
 SharedObjectLinkerName :=g++ -shared -fPIC\r
index 8f33f3301157f5eb21f1348280fe4213e72dfc48..1bc2029473e1346115f814d74038c9e5d92a05a3 100644 (file)
@@ -66,6 +66,7 @@
     <File Name="../../codec2-dev/src/fdmdv.h"/>
     <File Name="../src/fdmdv2_defines.h"/>
     <File Name="../src/fdmdv2_hdw_ports.h"/>
+    <File Name="../../../Audio/portaudio/include/portaudio.h"/>
   </VirtualDirectory>
   <VirtualDirectory Name="resources">
     <File Name="../src/FDMDV2.fbp"/>
index 2f41763995319416fc0c3642ee97ba19efab1ac5..bd99de20617994e7aaae577da67ff5c86326ecb6 100644 (file)
@@ -1,18 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <CodeLite_Workspace Name="fdmdv2" Database="./fdmdv2.tags">
   <Project Name="fdmdv2" Path="fdmdv2.project" Active="Yes"/>
-  <Project Name="drawing" Path="../../../../wxWidgets-2.9.4/samples/drawing/drawing.project" Active="No"/>
-  <Project Name="configtest" Path="../../../../wxWidgets-2.9.4/samples/config/configtest.project" Active="No"/>
   <BuildMatrix>
     <WorkspaceConfiguration Name="Debug" Selected="yes">
       <Project Name="fdmdv2" ConfigName="Debug"/>
-      <Project Name="drawing" ConfigName="Debug"/>
-      <Project Name="configtest" ConfigName="Debug"/>
     </WorkspaceConfiguration>
-    <WorkspaceConfiguration Name="Release" Selected="no">
+    <WorkspaceConfiguration Name="Release" Selected="yes">
       <Project Name="fdmdv2" ConfigName="Release"/>
-      <Project Name="drawing" ConfigName="Release"/>
-      <Project Name="configtest" ConfigName="Release"/>
     </WorkspaceConfiguration>
   </BuildMatrix>
 </CodeLite_Workspace>
index 7497a3299bba1e5d98bb4cd97c1cc36d3458685a..33b2fda409cf5fc933a331d5253d9cdfbc3e6c38 100644 (file)
@@ -8,18 +8,21 @@
 //                  components of this project)\r
 //==========================================================================\r
 #include "dlg_comports.h"\r
+#include "fdmdv2_hdw_ports.h"\r
 \r
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
 // Class ComPortsDlg\r
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
-ComPortsDlg::ComPortsDlg( wxWindow* parent ) : DlgComPorts( parent )\r
+ComPortsDlg::ComPortsDlg(wxWindow* parent) : DlgComPorts(parent)\r
 {\r
+//    m_serialports = HdwPortList();\r
+//    m_serialports.setType(PORT_TYPE_SERIAL);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
 // OnListItemSelected()\r
 //-------------------------------------------------------------------------\r
-void ComPortsDlg::OnListItemSelected( wxListEvent& event )\r
+void ComPortsDlg::OnListItemSelected(wxListEvent& event)\r
 {\r
     // TODO: Implement OnListItemSelected\r
 }\r
@@ -61,7 +64,7 @@ void ComPortsDlg::ExchangeData(int inout)
 //-------------------------------------------------------------------------\r
 // OnCancel()\r
 //-------------------------------------------------------------------------\r
-void ComPortsDlg::OnCancel( wxCommandEvent& event )\r
+void ComPortsDlg::OnCancel(wxCommandEvent& event)\r
 {\r
     this->EndModal(wxID_CANCEL);\r
 }\r
@@ -69,7 +72,7 @@ void ComPortsDlg::OnCancel( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnOK()\r
 //-------------------------------------------------------------------------\r
-void ComPortsDlg::OnOK( wxCommandEvent& event )\r
+void ComPortsDlg::OnOK(wxCommandEvent& event)\r
 {\r
     this->EndModal(wxID_OK);\r
 }\r
@@ -77,7 +80,7 @@ void ComPortsDlg::OnOK( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnApply()\r
 //-------------------------------------------------------------------------\r
-void ComPortsDlg::OnApply( wxCommandEvent& event )\r
+void ComPortsDlg::OnApply(wxCommandEvent& event)\r
 {\r
     ExchangeData(EXCHANGE_DATA_OUT);\r
 }\r
@@ -85,7 +88,7 @@ void ComPortsDlg::OnApply( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnClose()\r
 //-------------------------------------------------------------------------\r
-void ComPortsDlg::OnClose( wxCloseEvent& event )\r
+void ComPortsDlg::OnClose(wxCloseEvent& event)\r
 {\r
     this->EndModal(wxID_OK);\r
 }\r
@@ -93,7 +96,7 @@ void ComPortsDlg::OnClose( wxCloseEvent& event )
 //-------------------------------------------------------------------------\r
 // OnInitDialog()\r
 //-------------------------------------------------------------------------\r
-void ComPortsDlg::OnInitDialog( wxInitDialogEvent& event )\r
+void ComPortsDlg::OnInitDialog(wxInitDialogEvent& event)\r
 {\r
     ExchangeData(EXCHANGE_DATA_IN);\r
 //    populateAudioInfo();\r
index e84faa2941808d5e212363b73f97e4cf04fc4d26..1c47aefd571633ec008872f2aea4732710a99e0e 100644 (file)
@@ -20,17 +20,18 @@ class ComPortsDlg : public DlgComPorts
 {\r
     public:\r
         /** Constructor */\r
-        ComPortsDlg( wxWindow* parent );\r
-        void ExchangeData(int inout);\r
+        ComPortsDlg(wxWindow* parent);\r
+        void    ExchangeData(int inout);\r
+        //ArrayOfPorts m_serialports;\r
 \r
     protected:\r
         // Handlers for events.\r
-        void OnListItemSelected( wxListEvent& event );\r
-        void OnCancel( wxCommandEvent& event );\r
-        void OnOK( wxCommandEvent& event );\r
-        void OnClose( wxCloseEvent& event );\r
-        void OnInitDialog( wxInitDialogEvent& event );\r
-        void OnApply( wxCommandEvent& event );\r
+        void    OnListItemSelected(wxListEvent& event);\r
+        void    OnCancel(wxCommandEvent& event);\r
+        void    OnOK(wxCommandEvent& event);\r
+        void    OnClose(wxCloseEvent& event);\r
+        void    OnInitDialog(wxInitDialogEvent& event);\r
+        void    OnApply(wxCommandEvent& event);\r
 \r
 };\r
 \r
index dfccbca486b58b16929b00322026488949dc1a2b..6f0d0d63abcaade588e2ac4dd8dd32ab7338ab85 100644 (file)
 //
 //==========================================================================\r
 #include "fdmdv2_hdw_ports.h"\r
-
+\r
+HdwPort::HdwPort()\r
+{\r
+    m_device_type = -1;\r
+}\r
+\r
+//#include <wx/arrimpl.cpp>               // This is a magic incantation which must be done!\r
+//WX_DEFINE_OBJARRAY(ArrayOfPorts);\r
+\r
+HdwPort::~HdwPort()\r
+{\r
+}\r
+\r
+void HdwPort::setType(int portType)\r
+{\r
+    m_device_type = portType;\r
+}\r
+\r
+int HdwPort::getList()\r
+{\r
+    int rv = 0;\r
+\r
+    if(m_device_type != -1)\r
+    {\r
+        switch(m_device_type)\r
+        {\r
+            case PORT_TYPE_SERIAL:\r
+                rv = getSerialPorts();\r
+                break;\r
+\r
+            case PORT_TYPE_USB:\r
+                rv = getUSBPorts();\r
+                break;\r
+\r
+            case PORT_TYPE_VIRTUAL:\r
+                rv = getVirtualPorts();\r
+                break;\r
+\r
+            case PORT_TYPE_PARALLEL:\r
+                rv = getParallelPorts();\r
+                break;\r
+\r
+            case PORT_TYPE_IEEE1394:\r
+                rv = getIEEE1394Ports();\r
+                break;\r
+\r
+            case PORT_TYPE_UNKNOWN:\r
+            default:\r
+                rv = 0;\r
+                break;\r
+        }\r
+    }\r
+    return rv;\r
+}\r
+\r
+int HdwPort::getSerialPorts()\r
+{\r
+    int rv = 0;\r
+    return rv;\r
+}\r
+\r
+int HdwPort::getUSBPorts()\r
+{\r
+    int rv = 0;\r
+    return rv;\r
+}\r
+\r
+int HdwPort::getVirtualPorts()\r
+{\r
+    int rv = 0;\r
+    return rv;\r
+}\r
+\r
+int HdwPort::getParallelPorts()\r
+{\r
+    int rv = 0;\r
+    return rv;\r
+}\r
+\r
+int HdwPort::getIEEE1394Ports()\r
+{\r
+    int rv = 0;\r
+    return rv;\r
+}\r
+\r
+\r
index 41d5fa9d4a4eac14e0447c0985dcabb0602e2954..7b79cdc82f29311a4d838158cc42a130a79de6b0 100644 (file)
@@ -26,6 +26,7 @@
 \r
 #include <string.h>\r
 #include "wx/wx.h"\r
+#include <wx/dynarray.h>\r
 #include "fdmdv2_main.h"\r
 \r
 enum\r
@@ -67,18 +68,33 @@ enum
     DEVICE_TYPE_UNKNOWN\r
 };\r
 \r
-class PortHardware\r
+class HdwPort;\r
+\r
+WX_DECLARE_OBJARRAY(HdwPort, ArrayOfPorts);\r
+\r
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
+// Class PortList\r
+//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
+class HdwPort\r
 {\r
-private:\r
-    int count;\r
-    int device_type;\r
-    int device_emulation;\r
+    public:\r
+        HdwPort();\r
+        ~HdwPort();\r
+\r
+    protected:\r
+        wxString    m_name;\r
 \r
-protected:\r
+    private:\r
+        int     m_device_type;\r
+        int     m_device_emulation;\r
 \r
-public:\r
-    PortHardware();\r
-    ~PortHardware();\r
+        void    setType(int portType);\r
+        int     getList();\r
+        int     getSerialPorts();\r
+        int     getUSBPorts();\r
+        int     getVirtualPorts();\r
+        int     getParallelPorts();\r
+        int     getIEEE1394Ports();\r
 };\r
 \r
 
index 19d5337ec527c1ec662b0d4d4edbbf4e8967d52f..1bbc085fffc6b34d844188b3dd08cfbe4f871385 100644 (file)
@@ -98,29 +98,29 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)
 \r
     tools->AppendSeparator();\r
     wxMenuItem* m_menuItemToolsConfigDelete;\r
-    m_menuItemToolsConfigDelete = new wxMenuItem( tools, wxID_ANY, wxString( _("&Delete stored config") ) , wxT("Delete config file/keys"), wxITEM_NORMAL );\r
-    this->Connect( m_menuItemToolsConfigDelete->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnDeleteConfig));\r
+    m_menuItemToolsConfigDelete = new wxMenuItem(tools, wxID_ANY, wxString(_("&Delete stored config")) , wxT("Delete config file/keys"), wxITEM_NORMAL);\r
+    this->Connect(m_menuItemToolsConfigDelete->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnDeleteConfig));\r
 \r
-    tools->Append( m_menuItemToolsConfigDelete );\r
+    tools->Append(m_menuItemToolsConfigDelete);\r
 \r
 \r
     // Add Waterfall Plot window\r
-    m_panelWaterfall = new PlotWaterfall((wxFrame*) m_auiNbookCtrl );\r
-    m_auiNbookCtrl->AddPage(m_panelWaterfall, _("Waterfall"), true, wxNullBitmap );\r
+    m_panelWaterfall = new PlotWaterfall((wxFrame*) m_auiNbookCtrl);\r
+    m_auiNbookCtrl->AddPage(m_panelWaterfall, _("Waterfall"), true, wxNullBitmap);\r
 \r
     // Add Spectrum Plot window\r
-    m_panelSpectrum = new PlotSpectrum((wxFrame*) m_auiNbookCtrl );\r
-    m_auiNbookCtrl->AddPage(m_panelSpectrum, _("Spectrum"), true, wxNullBitmap );\r
+    m_panelSpectrum = new PlotSpectrum((wxFrame*) m_auiNbookCtrl);\r
+    m_auiNbookCtrl->AddPage(m_panelSpectrum, _("Spectrum"), true, wxNullBitmap);\r
 \r
-//    m_panelScatter = new PlotScatter((wxFrame*) m_auiNbookCtrl );\r
-//    m_auiNbookCtrl->AddPage(m_panelWaterfall, _("Scatter"), true, wxNullBitmap );\r
+//    m_panelScatter = new PlotScatter((wxFrame*) m_auiNbookCtrl);\r
+//    m_auiNbookCtrl->AddPage(m_panelWaterfall, _("Scatter"), true, wxNullBitmap);\r
 \r
 //    m_panelScalar = new PlotScalar((wxFrame*) m_auiNbookCtrl, 500, 500);\r
-//    m_auiNbookCtrl->AddPage(m_panelWaterfall, _("Scalar"), true, wxNullBitmap );\r
+//    m_auiNbookCtrl->AddPage(m_panelWaterfall, _("Scalar"), true, wxNullBitmap);\r
 \r
     // Add generic plot window\r
-    m_panelDefaultA = new PlotPanel((wxFrame*) m_auiNbookCtrl );\r
-    m_auiNbookCtrl->AddPage(m_panelDefaultA, _("Test A"), true, wxNullBitmap );\r
+    m_panelDefaultA = new PlotPanel((wxFrame*) m_auiNbookCtrl);\r
+    m_auiNbookCtrl->AddPage(m_panelDefaultA, _("Test A"), true, wxNullBitmap);\r
 \r
     wxConfigBase *pConfig = wxConfigBase::Get();\r
 \r
@@ -148,14 +148,14 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)
 \r
     pConfig->SetPath(wxT("/"));\r
 \r
-//    this->Connect( m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnHelpCheckUpdatesUI ) );\r
-    m_togRxID->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnRxIDUI ), NULL, this );\r
-    m_togTxID->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnTxIDUI ), NULL, this );\r
-    m_togBtnOnOff->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnOnOffUI ), NULL, this );\r
-    m_togBtnSplit->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnSplitClickUI ), NULL, this );\r
-    m_togBtnAnalog->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnAnalogClickUI ), NULL, this );\r
-    m_togBtnALC->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnALCClickUI ), NULL, this );\r
-    m_btnTogTX->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnTXClickUI ), NULL, this );\r
+//    this->Connect(m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnHelpCheckUpdatesUI));\r
+    m_togRxID->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnRxIDUI), NULL, this);\r
+    m_togTxID->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnTxIDUI), NULL, this);\r
+    m_togBtnOnOff->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnOnOffUI), NULL, this);\r
+    m_togBtnSplit->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnSplitClickUI), NULL, this);\r
+    m_togBtnAnalog->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnAnalogClickUI), NULL, this);\r
+    m_togBtnALC->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnALCClickUI), NULL, this);\r
+    m_btnTogTX->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnTXClickUI), NULL, this);\r
 \r
     m_togBtnSplit->Disable();\r
     m_togRxID->Disable();\r
@@ -164,18 +164,14 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)
     m_togBtnALC->Disable();\r
     m_btnTogTX->Disable();\r
 \r
-#ifdef USE_TIMER\r
-    m_rxPa = new PortAudioWrap();\r
-    for(int i = 0; i < FDMDV_NSPEC; i++)\r
-    {\r
-        m_rxPa->m_av_mag[i] = sin(((double)i / M_PI)) * 100.0;\r
-    }\r
+#ifdef _USE_TIMER\r
     Bind(wxEVT_TIMER, &MainFrame::OnTimer, this);       // ID_MY_WINDOW);\r
     m_plotTimer.SetOwner(this, ID_TIMER_WATERFALL);
+//    m_rxPa = new PortAudioWrap();\r
 //    m_plotTimer.Start(500, wxTIMER_CONTINUOUS);\r
-    m_panelWaterfall->m_newdata = true;\r
+//    m_panelWaterfall->m_newdata = true;\r
     m_panelWaterfall->Refresh();\r
-#endif\r
+#endif //_USE_TIMER\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -210,25 +206,24 @@ MainFrame::~MainFrame()
         pConfig->Write(wxT("/Rig/StopBits"),        wxGetApp().m_strRigCtrlStopbits);\r
         pConfig->Write(wxT("/Rig/Parity"),          wxGetApp().m_strRigCtrlParity);\r
     }\r
-    m_togRxID->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnRxIDUI ), NULL, this );\r
-    m_togTxID->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnTxIDUI ), NULL, this );\r
-    m_togBtnOnOff->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnOnOffUI), NULL, this );\r
-    m_togBtnSplit->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnSplitClickUI), NULL, this );\r
-    m_togBtnAnalog->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnAnalogClickUI), NULL, this );\r
-    m_togBtnALC->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnALCClickUI), NULL, this );\r
-    m_btnTogTX->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnTXClickUI), NULL, this );\r
-#ifdef USE_TIMER\r
-    if (m_plotTimer.IsRunning())\r
+    m_togRxID->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnRxIDUI), NULL, this);\r
+    m_togTxID->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnTxIDUI), NULL, this);\r
+    m_togBtnOnOff->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnOnOffUI), NULL, this);\r
+    m_togBtnSplit->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnSplitClickUI), NULL, this);\r
+    m_togBtnAnalog->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnAnalogClickUI), NULL, this);\r
+    m_togBtnALC->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnALCClickUI), NULL, this);\r
+    m_btnTogTX->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MainFrame::OnTogBtnTXClickUI), NULL, this);\r
+#ifdef _USE_TIMER\r
+    if(m_plotTimer.IsRunning())\r
     {\r
         m_plotTimer.Stop();\r
-        Unbind(wxEVT_TIMER, &MainFrame::OnTimer, this);   // ID_MY_WINDOW);\r
+        Unbind(wxEVT_TIMER, &MainFrame::OnTimer, this);\r
     }
-#endif\r
+#endif //_USE_TIMER\r
     delete wxConfigBase::Set((wxConfigBase *) NULL);\r
 }
 \r
-#ifdef USE_TIMER\r
-\r
+#ifdef _USE_TIMER\r
 //----------------------------------------------------------------\r
 // OnTimer()\r
 //----------------------------------------------------------------\r
@@ -241,7 +236,7 @@ void MainFrame::OnTimer(wxTimerEvent &evt)
 //    m_panelDefaultA->m_newdata = true;\r
 //    m_panelDefaultA->Refresh();\r
 }\r
-#endif\r
+#endif // _USE_TIMER\r
 \r
 //-------------------------------------------------------------------------\r
 // OnCloseFrame()\r
@@ -267,7 +262,7 @@ void MainFrame::OnExitClick(wxCommandEvent& event)
 void MainFrame::OnDeleteConfig(wxCommandEvent&)\r
 {\r
     wxConfigBase *pConfig = wxConfigBase::Get();\r
-    if(pConfig->DeleteAll() )\r
+    if(pConfig->DeleteAll())\r
     {\r
         wxLogMessage(wxT("Config file/registry key successfully deleted."));\r
 \r
@@ -414,9 +409,9 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)
         m_togBtnALC->Enable();\r
         m_btnTogTX->Enable();\r
 \r
-#ifdef USE_TIMER\r
+#ifdef _USE_TIMER\r
         m_plotTimer.Start(500, wxTIMER_CONTINUOUS);\r
-#endif\r
+#endif // _USE_TIMER\r
         startRxStream();\r
         startTxStream();\r
         m_togBtnOnOff->SetLabel(wxT("Stop"));\r
@@ -429,9 +424,9 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)
         m_togBtnAnalog->Disable();\r
         m_togBtnALC->Disable();\r
         m_btnTogTX->Disable();\r
-#ifdef USE_TIMER\r
+#ifdef _USE_TIMER\r
         m_plotTimer.Stop();\r
-#endif\r
+#endif // _USE_TIMER\r
         stopRxStream();\r
         stopTxStream();\r
         m_togBtnOnOff->SetLabel(wxT("Start"));\r
@@ -509,7 +504,32 @@ void MainFrame::startRxStream()
     {\r
         m_RxRunning = true;\r
         m_rxPa = new PortAudioWrap();
-
+\r
+#ifdef _DUMMY_DATA
+        for(int i = 0; i < FDMDV_NSPEC; i++)\r
+        {\r
+            m_rxPa->m_av_mag[i] = sin(((double)i / M_PI)) * 100.0;\r
+        }\r
+#else\r
+        for(int i = 0; i < FDMDV_NSPEC; i++)\r
+        {\r
+            m_rxPa->m_av_mag[i] = -40.0;\r
+        }\r
+#endif // _DUMMY_DATA\r
+\r
+//        m_fdmdv2 = fdmdv_create();\r
+//        m_RXCodec2 = codec2_create(CODEC2_MODE_1400);\r
+        //output_buf = (short*)malloc(2*sizeof(short)*codec2_samples_per_frame(codec2));\r
+/*\r
+        for(int i = 0; i < MEM8; i++)\r
+        {\r
+            cbData.in8k[i] = 0.0;\r
+        }\r
+        for(int i = 0; i < FDMDV_OS_TAPS; i++)\r
+        {\r
+            cbData.in48k[i] = 0.0;\r
+        }\r
+*/\r
         m_rxDevIn = m_rxPa->getDefaultInputDevice();                        // default input device
         if(m_rxDevIn == paNoDevice)
         {
@@ -537,7 +557,8 @@ void MainFrame::startRxStream()
 
         m_rxErr = m_rxPa->setFramesPerBuffer(FRAMES_PER_BUFFER);
         m_rxErr = m_rxPa->setSampleRate(SAMPLE_RATE);
-        m_rxErr = m_rxPa->setStreamFlags(0);
+        m_rxErr = m_rxPa->setStreamFlags(0);\r
+//        m_rxCB = rxCallback;
         m_rxErr = m_rxPa->setCallback(rxCallback);
         m_rxErr = m_rxPa->streamOpen();
 
@@ -686,7 +707,7 @@ void MainFrame::abortTxStream()
 //-------------------------------------------------------------------------\r
 // OnOpen()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnOpen( wxCommandEvent& event )\r
+void MainFrame::OnOpen(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
 }\r
@@ -694,7 +715,7 @@ void MainFrame::OnOpen( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnOpenUpdateUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnOpenUpdateUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnOpenUpdateUI(wxUpdateUIEvent& event)\r
 {\r
     wxUnusedVar(event);\r
 //    wxMessageBox("Got Click!", "OnOpenUpdateUI", wxOK);\r
@@ -704,7 +725,7 @@ void MainFrame::OnOpenUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnSaveUpdateUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnSaveUpdateUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnSaveUpdateUI(wxUpdateUIEvent& event)\r
 {\r
 //    wxUnusedVar(event);\r
 //    wxMessageBox("Got Click!", "OnSaveUpdateUI", wxOK);\r
@@ -715,7 +736,7 @@ void MainFrame::OnSaveUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnClose()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnClose( wxCommandEvent& event )\r
+void MainFrame::OnClose(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
 \r
@@ -742,7 +763,7 @@ void MainFrame::OnClose( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnCloseUpdateUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnCloseUpdateUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnCloseUpdateUI(wxUpdateUIEvent& event)\r
 {\r
 //    wxUnusedVar(event);\r
     event.Enable(false);\r
@@ -751,7 +772,7 @@ void MainFrame::OnCloseUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnExit()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnExit( wxCommandEvent& event )\r
+void MainFrame::OnExit(wxCommandEvent& event)\r
 {\r
     //wxUnusedVar(event);\r
     OnClose(event);\r
@@ -762,7 +783,7 @@ void MainFrame::OnExit( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnCopy()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnCopy( wxCommandEvent& event )\r
+void MainFrame::OnCopy(wxCommandEvent& event)\r
 {\r
 //    wxMessageBox("Got Click!", "OnCopy", wxOK);\r
     event.Skip();\r
@@ -771,7 +792,7 @@ void MainFrame::OnCopy( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnCopyUpdateUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnCopyUpdateUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnCopyUpdateUI(wxUpdateUIEvent& event)\r
 {\r
 //    wxUnusedVar(event);\r
     event.Enable(false);\r
@@ -780,7 +801,7 @@ void MainFrame::OnCopyUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnCut()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnCut( wxCommandEvent& event )\r
+void MainFrame::OnCut(wxCommandEvent& event)\r
 {\r
 //    wxMessageBox("Got Click!", "OnCut", wxOK);\r
     event.Skip();\r
@@ -789,7 +810,7 @@ void MainFrame::OnCut( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnCutUpdateUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnCutUpdateUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnCutUpdateUI(wxUpdateUIEvent& event)\r
 {\r
 //    wxUnusedVar(event);\r
     event.Enable(false);\r
@@ -798,7 +819,7 @@ void MainFrame::OnCutUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnPaste()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnPaste( wxCommandEvent& event )\r
+void MainFrame::OnPaste(wxCommandEvent& event)\r
 {\r
 //    wxMessageBox("Got Click!", "OnPaste", wxOK);\r
     event.Skip();\r
@@ -807,7 +828,7 @@ void MainFrame::OnPaste( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnPasteUpdateUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnPasteUpdateUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnPasteUpdateUI(wxUpdateUIEvent& event)\r
 {\r
 //    wxUnusedVar(event);\r
     event.Enable(false);\r
@@ -816,7 +837,7 @@ void MainFrame::OnPasteUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnCaptureRxStream()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnCaptureRxStream( wxCommandEvent& event )\r
+void MainFrame::OnCaptureRxStream(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
 }\r
@@ -824,7 +845,7 @@ void MainFrame::OnCaptureRxStream( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnCaptureTxStream()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnCaptureTxStream( wxCommandEvent& event )\r
+void MainFrame::OnCaptureTxStream(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
 }\r
@@ -832,12 +853,12 @@ void MainFrame::OnCaptureTxStream( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnPlayAudioFile()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnPlayAudioFile( wxCommandEvent& event )\r
+void MainFrame::OnPlayAudioFile(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
     if(m_sound != NULL)\r
     {\r
-        if (wxMessageBox(wxT("Current content has not been saved! Proceed?"),wxT("Please confirm"), wxICON_QUESTION | wxYES_NO, this) == wxNO )\r
+        if (wxMessageBox(wxT("Current content has not been saved! Proceed?"),wxT("Please confirm"), wxICON_QUESTION | wxYES_NO, this) == wxNO)\r
         {\r
             return;\r
         }\r
@@ -863,7 +884,7 @@ void MainFrame::OnPlayAudioFile( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnToolsAudio()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnToolsAudio( wxCommandEvent& event )\r
+void MainFrame::OnToolsAudio(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
     int rv = 0;\r
@@ -879,7 +900,7 @@ void MainFrame::OnToolsAudio( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnToolsAudioUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnToolsAudioUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnToolsAudioUI(wxUpdateUIEvent& event)\r
 {\r
     wxUnusedVar(event);\r
 }\r
@@ -887,7 +908,7 @@ void MainFrame::OnToolsAudioUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnToolsComCfg()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnToolsComCfg( wxCommandEvent& event )\r
+void MainFrame::OnToolsComCfg(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
     int rv = 0;\r
@@ -903,7 +924,7 @@ void MainFrame::OnToolsComCfg( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnToolsComCfgUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnToolsComCfgUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnToolsComCfgUI(wxUpdateUIEvent& event)\r
 {\r
     event.Enable((!m_TxRunning) && (!m_RxRunning));\r
 }\r
@@ -911,7 +932,7 @@ void MainFrame::OnToolsComCfgUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnToolsOptions()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnToolsOptions( wxCommandEvent& event )\r
+void MainFrame::OnToolsOptions(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
     int rv = 0;\r
@@ -927,7 +948,7 @@ void MainFrame::OnToolsOptions( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnToolsOptionsUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnToolsOptionsUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnToolsOptionsUI(wxUpdateUIEvent& event)\r
 {\r
 //    wxUnusedVar(event);\r
     event.Enable(false);\r
@@ -936,7 +957,7 @@ void MainFrame::OnToolsOptionsUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 // OnHelpCheckUpdates()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnHelpCheckUpdates( wxCommandEvent& event )\r
+void MainFrame::OnHelpCheckUpdates(wxCommandEvent& event)\r
 {\r
     wxMessageBox("Got Click!", "OnHelpCheckUpdates", wxOK);\r
     event.Skip();\r
@@ -945,7 +966,7 @@ void MainFrame::OnHelpCheckUpdates( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 // OnHelpCheckUpdatesUI()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnHelpCheckUpdatesUI( wxUpdateUIEvent& event )\r
+void MainFrame::OnHelpCheckUpdatesUI(wxUpdateUIEvent& event)\r
 {\r
 //    wxUnusedVar(event);\r
     event.Enable(false);\r
@@ -954,7 +975,7 @@ void MainFrame::OnHelpCheckUpdatesUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 //OnHelpAbout()\r
 //-------------------------------------------------------------------------\r
-void MainFrame::OnHelpAbout( wxCommandEvent& event )\r
+void MainFrame::OnHelpAbout(wxCommandEvent& event)\r
 {\r
     wxUnusedVar(event);\r
 //    int rv = 0;\r
@@ -987,72 +1008,6 @@ wxString MainFrame::LoadUserImage(wxImage& image)
 }\r
 \r
 //-------------------------------------------------------------------------\r
-// OnSave()\r
-//-------------------------------------------------------------------------\r
-void MainFrame::OnSave(wxCommandEvent& WXUNUSED(event))\r
-{\r
-/*\r
-    wxString savefilename = wxFileSelector(wxT("Save Sound File"),\r
-                                           wxEmptyString,\r
-                                           wxEmptyString,\r
-                                           (const wxChar *)NULL,\r
-                                           wxT("WAV files (*.wav)|*.wav|")\r
-                                           wxT("RAW files (*.raw)|*.raw|")\r
-                                           wxT("SPEEX files (*.spx)|*.spx|")\r
-                                           wxT("FLAC files (*.flc)|*.flc|"),\r
-                                           wxFD_SAVE,\r
-                                           this);\r
-    if(savefilename.empty())\r
-    {\r
-        return;\r
-    }\r
-    wxString extension;\r
-    wxFileName::SplitPath(savefilename, NULL, NULL, &extension);\r
-    bool saved = false;\r
-    if(!saved)\r
-    {\r
-        // This one guesses image format from filename extension\r
-        // (it may fail if the extension is not recognized):\r
-        //image.SaveFile(savefilename);\r
-    }\r
-*/\r
- }\r
-
-//-------------------------------------------------------------------------\r
-// rxCallback()\r
-//-------------------------------------------------------------------------\r
-int MainFrame::rxCallback(\r
-                            const void *inBuffer,\r
-                            void *outBuffer,\r
-                            unsigned long framesPerBuffer,\r
-                            const PaStreamCallbackTimeInfo *outTime,\r
-                            PaStreamCallbackFlags statusFlags,\r
-                            void *userData\r
-                         )\r
-{\r
-    float *out = (float *) outBuffer;\r
-    float *in  = (float *) inBuffer;\r
-    float leftIn;\r
-    float rightIn;\r
-    unsigned int i;\r
-\r
-    if(inBuffer == NULL)\r
-    {\r
-        return 0;\r
-    }\r
-    // Read input buffer, process data, and fill output buffer.\r
-    for(i = 0; i < framesPerBuffer; i++)\r
-    {\r
-        leftIn  = *in++;                            // Get interleaved samples from input buffer.\r
-        rightIn = *in++;\r
-        *out++  = leftIn * rightIn;                 // ring modulation\r
-        *out++  = 0.5f * (leftIn + rightIn);        // mixing\r
-    }\r
-    return paContinue;                              // 0;\r
-}
-\r
-//-------------------------------------------------------------------------\r
-\r
 // txCallback()\r
 //-------------------------------------------------------------------------\r
 int MainFrame::txCallback(\r
@@ -1062,7 +1017,7 @@ int MainFrame::txCallback(
                             const PaStreamCallbackTimeInfo *outTime,\r
                             PaStreamCallbackFlags statusFlags,\r
                             void *userData\r
-                         )\r
+                        )\r
 {\r
     float *out = (float *) outBuffer;\r
     float *in  = (float *) inBuffer;\r
@@ -1098,10 +1053,116 @@ void MainFrame::averageData(float mag_dB[])
     }
 }\r
 \r
+// Main processing loop states ------------------\r
+float  Ts = 0.0;\r
+short  input_buf[2*FDMDV_NOM_SAMPLES_PER_FRAME];\r
+int    n_input_buf = 0;\r
+int    nin = FDMDV_NOM_SAMPLES_PER_FRAME;\r
+short *output_buf;\r
+int    n_output_buf = 0;\r
+int    codec_bits[2*FDMDV_BITS_PER_FRAME];\r
+int    state = 0;\r
+struct CODEC2 *g_RXCodec2;\r
+struct CODEC2 *g_TXCodec2;\r
+struct FDMDV  *g_pFDMDV_state;\r
+\r
+//-------------------------------------------------------------------------\r
+// rxCallback()\r
+//-------------------------------------------------------------------------\r
+int MainFrame::rxCallback(\r
+                            const void      *inputBuffer,\r
+                            void            *outputBuffer,\r
+                            unsigned long   framesPerBuffer,\r
+                            const PaStreamCallbackTimeInfo* timeInfo,\r
+                            PaStreamCallbackFlags statusFlags,\r
+                            void            *userData\r
+                         )\r
+{\r
+    paCallBackData *cbData = (paCallBackData*)userData;\r
+    unsigned int    i;\r
+    short           *rptr    = (short*)inputBuffer;\r
+    short           *wptr    = (short*)outputBuffer;\r
+    float           *in8k    = cbData->in8k;\r
+    float           *in48k   = cbData->in48k;\r
+    float           out8k[N8];\r
+    float           out48k[N48];\r
+    short           out48k_short[N48];\r
+\r
+    (void) timeInfo;\r
+    (void) statusFlags;\r
+\r
+    assert(inputBuffer != NULL);\r
+\r
+    // Convert input model samples from 48 to 8 kHz\r
+\r
+    // just use left channel\r
+    for(i = 0; i < framesPerBuffer; i++, rptr += 2)\r
+    {\r
+        in48k[i + FDMDV_OS_TAPS] = *rptr;\r
+    }\r
+    // downsample and update filter memory\r
+    fdmdv_48_to_8(out8k, &in48k[FDMDV_OS_TAPS], N8);\r
+    for(i = 0; i < FDMDV_OS_TAPS; i++)\r
+    {\r
+        in48k[i] = in48k[i + framesPerBuffer];\r
+    }\r
+    // run demod, decoder and update GUI info\r
+    for(i = 0; i < N8; i++)\r
+    {\r
+        input_buf[n_input_buf + i] = (short)out8k[i];\r
+    }\r
+    n_input_buf += FDMDV_NOM_SAMPLES_PER_FRAME;\r
+    per_frame_rx_processing(output_buf, &n_output_buf, codec_bits, input_buf, &n_input_buf, &nin, &state, g_RXCodec2);\r
+    // if demod out of sync copy input audio from A/D to aid in tuning\r
+    if (n_output_buf >= N8)\r
+    {\r
+        if(state == 0)\r
+        {\r
+            for(i = 0; i < N8; i++)\r
+            {\r
+                in8k[MEM8 + i] = out8k[i];       // A/D signal\r
+            }\r
+        }\r
+        else\r
+        {\r
+            for(i = 0; i < N8; i++)\r
+            {\r
+                in8k[MEM8+i] = output_buf[i];   // decoded spech\r
+            }\r
+        }\r
+        n_output_buf -= N8;\r
+    }\r
+    assert(n_output_buf >= 0);\r
+    // shift speech samples in output buffer\r
+    for(i = 0; i < (unsigned int)n_output_buf; i++)\r
+    {\r
+        output_buf[i] = output_buf[i + N8];\r
+    }\r
+    // Convert output speech to 48 kHz sample rate\r
+    // upsample and update filter memory\r
+    fdmdv_8_to_48(out48k, &in8k[MEM8], N8);\r
+    for(i = 0; i < MEM8; i++)\r
+    {\r
+        in8k[i] = in8k[i + N8];\r
+    }\r
+    assert(outputBuffer != NULL);\r
+    // write signal to both channels\r
+    for(i = 0; i < N48; i++)\r
+    {\r
+        out48k_short[i] = (short)out48k[i];\r
+    }\r
+    for(i = 0; i < framesPerBuffer; i++, wptr += 2)\r
+    {\r
+        wptr[0] = out48k_short[i];\r
+        wptr[1] = out48k_short[i];\r
+    }\r
+    return paContinue;\r
+}\r
+\r
 //----------------------------------------------------------------
 // per_frame_rx_processing()
 //----------------------------------------------------------------
-void MainFrame::per_frame_rx_processing(
+ void MainFrame::per_frame_rx_processing(
                                             short   output_buf[],  // output buf of decoded speech samples
                                             int     *n_output_buf, // how many samples currently in output_buf[]
                                             int     codec_bits[],  // current frame of bits for decoder
@@ -1109,8 +1170,8 @@ void MainFrame::per_frame_rx_processing(
                                             int     *n_input_buf,  // how many samples currently in input_buf[]
                                             int     *nin,          // amount of samples demod needs for next call
                                             int     *state,        // used to collect codec_bits[] halves
-                                            struct  CODEC2 *c2     // Codec 2 states
-                                       )
+                                            CODEC2 *c2     // Codec 2 states
+                                      )
 {
     struct FDMDV_STATS  stats;
     int                 sync_bit;
@@ -1147,22 +1208,22 @@ void MainFrame::per_frame_rx_processing(
         // demod per frame processing
         for(i = 0; i < *nin; i++)
         {
-            rx_fdm[i] = (float)input_buf[i]/FDMDV_SCALE;
+            rx_fdm[i] = (float)input_buf[i] / FDMDV_SCALE;
         }
         nin_prev = *nin;
-        fdmdv_demod(m_pFDMDV_state, rx_bits, &sync_bit, rx_fdm, nin);
+        fdmdv_demod(g_pFDMDV_state, rx_bits, &sync_bit, rx_fdm, nin);
         *n_input_buf -= nin_prev;
         assert(*n_input_buf >= 0);
 
         // shift input buffer
         for(i = 0; i < *n_input_buf; i++)
         {
-            input_buf[i] = input_buf[i+nin_prev];
+            input_buf[i] = input_buf[i + nin_prev];
         }
 \r
         // compute rx spectrum & get demod stats, and update GUI plot data
-        fdmdv_get_rx_spectrum(m_pFDMDV_state, rx_spec, rx_fdm, nin_prev);
-        fdmdv_get_demod_stats(m_pFDMDV_state, &stats);
+        fdmdv_get_rx_spectrum(g_pFDMDV_state, rx_spec, rx_fdm, nin_prev);
+        fdmdv_get_demod_stats(g_pFDMDV_state, &stats);
 //        averageData(rx_spec);\r
         //m_panelWaterfall->;\r
         //m_panelScalar;
@@ -1188,7 +1249,7 @@ void MainFrame::per_frame_rx_processing(
                 // mute output audio when out of sync
                 if(*n_output_buf < 2 * codec2_samples_per_frame(c2) - N8)
                 {
-                    for(i=0; i<N8; i++)\r
+                    for(i = 0; i < N8; i++)\r
                     {
                         output_buf[*n_output_buf + i] = 0;
                     }
@@ -1256,3 +1317,75 @@ void MainFrame::per_frame_rx_processing(
         *state = next_state;
     }
 }\r
+\r
+//-------------------------------------------------------------------------\r
+// OnSave()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnSave(wxCommandEvent& WXUNUSED(event))\r
+{\r
+/*\r
+    wxString savefilename = wxFileSelector(wxT("Save Sound File"),\r
+                                           wxEmptyString,\r
+                                           wxEmptyString,\r
+                                           (const wxChar *)NULL,\r
+                                           wxT("WAV files (*.wav)|*.wav|")\r
+                                           wxT("RAW files (*.raw)|*.raw|")\r
+                                           wxT("SPEEX files (*.spx)|*.spx|")\r
+                                           wxT("FLAC files (*.flc)|*.flc|"),\r
+                                           wxFD_SAVE,\r
+                                           this);\r
+    if(savefilename.empty())\r
+    {\r
+        return;\r
+    }\r
+    wxString extension;\r
+    wxFileName::SplitPath(savefilename, NULL, NULL, &extension);\r
+    bool saved = false;\r
+    if(!saved)\r
+    {\r
+        // This one guesses image format from filename extension\r
+        // (it may fail if the extension is not recognized):\r
+        //image.SaveFile(savefilename);\r
+    }\r
+*/\r
+}\r
+
+/*\r
+//-------------------------------------------------------------------------\r
+// rxCallback()\r
+//-------------------------------------------------------------------------\r
+int MainFrame::rxCallback(\r
+                            const void *inBuffer,\r
+                            void *outBuffer,\r
+                            unsigned long framesPerBuffer,\r
+                            const PaStreamCallbackTimeInfo *outTime,\r
+                            PaStreamCallbackFlags statusFlags,\r
+                            void *userData\r
+                        )\r
+{\r
+#ifdef _AUDIO_PASSTHROUGH\r
+    float *out = (float *) outBuffer;\r
+    float *in  = (float *) inBuffer;\r
+    float leftIn;\r
+    float rightIn;\r
+    unsigned int i;\r
+\r
+    if(inBuffer == NULL)\r
+    {\r
+        return 0;\r
+    }\r
+    // Read input buffer, process data, and fill output buffer.\r
+    for(i = 0; i < framesPerBuffer; i++)\r
+    {\r
+        leftIn  = *in++;                            // Get interleaved samples from input buffer.\r
+        rightIn = *in++;\r
+        *out++  = leftIn * rightIn;                 // ring modulation\r
+        *out++  = 0.5f * (leftIn + rightIn);        // mixing\r
+    }\r
+#else   // _AUDIO_PASSTHROUGH\r
+//    per_frame_rx_processing((short *) outBuffer, &framesPerBuffer, int codec_bits[], (short *) inBuffer, &framesPerBuffer, int *nin, int *state, m_rxPa);//
+//    per_frame_rx_processing(outBuffer, &framesPerBuffer, int codec_bits[], inBuffer, &framesPerBuffer, int *nin, int *state, m_rxPa);
+#endif  // _AUDIO_PASSTHROUGH\r
+    return paContinue;                              // 0;\r
+}
+*/\r
index 1a8c12e12315ec5c0e32ffc00ae49acd4d4c0af2..faf3af1447135b4aa4c8aab99fed1afb7448f45d 100644 (file)
@@ -45,7 +45,9 @@
 #include "sndfile.h"\r
 #include "portaudio.h"
 \r
-#define USE_TIMER 1\r
+#define _USE_TIMER          1\r
+#define _DUMMY_DATA         1\r
+//#define _AUDIO_PASSTHROUGH  1\r
 \r
 enum {\r
         ID_START = wxID_HIGHEST,\r
@@ -58,6 +60,12 @@ enum {
 #define EXCHANGE_DATA_IN    0\r
 #define EXCHANGE_DATA_OUT   1\r
 \r
+typedef struct\r
+{\r
+    float in48k[FDMDV_OS_TAPS + N48];\r
+    float in8k[MEM8 + N8];\r
+} paCallBackData;\r
+\r
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
 // Class MainApp\r
 //\r
@@ -123,35 +131,27 @@ class MainFrame : public TopFrame
         MainFrame(wxWindow *parent);
         virtual ~MainFrame();\r
 
-        PlotPanel*      m_panelDefaultA;\r
-        PlotSpectrum*   m_panelSpectrum;\r
-        PlotWaterfall*  m_panelWaterfall;\r
-        PlotScatter*    m_panelScatter;\r
-        PlotScalar*     m_panelScalar;\r
-        bool            m_SquelchActive;\r
-        bool            m_RxRunning;\r
-        bool            m_TxRunning;\r
-        CODEC2          *m_RXCodec2;\r
-        CODEC2          *m_TXCodec2;\r
-        PortAudioWrap   *m_rxPa;
-        PortAudioWrap   *m_txPa;
-        PaDeviceIndex   m_rxDevIn;
-        PaDeviceIndex   m_rxDevOut;
-        PaDeviceIndex   m_txDevIn;
-        PaDeviceIndex   m_txDevOut;
-        PaError         m_rxErr;
-        PaError         m_txErr;
-        wxSound         *m_sound;
-        struct FDMDV    *m_pFDMDV_state;\r
-        wxTimer         m_plotTimer;\r
-\r
-//        wxToggleButton* m_togRxID;\r
-//        wxToggleButton* m_togTxID;\r
-//        wxToggleButton* m_togBtnOnOff;\r
-//        wxToggleButton* m_togBtnSplit;\r
-//        wxToggleButton* m_togBtnAnalog;\r
-//        wxToggleButton* m_togBtnALC;\r
-//        wxToggleButton* m_btnTogTX;\r
+        PlotPanel*              m_panelDefaultA;\r
+        PlotSpectrum*           m_panelSpectrum;\r
+        PlotWaterfall*          m_panelWaterfall;\r
+        PlotScatter*            m_panelScatter;\r
+        PlotScalar*             m_panelScalar;\r
+        bool                    m_SquelchActive;\r
+        bool                    m_RxRunning;\r
+        bool                    m_TxRunning;\r
+        FDMDV                   *m_fdmdv2;\r
+        PortAudioWrap           *m_rxPa;
+        PortAudioWrap           *m_txPa;
+        PaDeviceIndex           m_rxDevIn;
+        PaDeviceIndex           m_rxDevOut;
+        PaDeviceIndex           m_txDevIn;
+        PaDeviceIndex           m_txDevOut;
+        PaError                 m_rxErr;
+        PaError                 m_txErr;
+        wxSound                 *m_sound;
+#ifdef _USE_TIMER\r
+        wxTimer                 m_plotTimer;\r
+#endif\r
 \r
         static int rxCallback(\r
                                 const void *inBuffer,\r
@@ -161,6 +161,7 @@ class MainFrame : public TopFrame
                                 PaStreamCallbackFlags statusFlags,\r
                                 void *userData\r
                              );\r
+\r
         static int txCallback(\r
                                 const void *inBuffer,\r
                                 void *outBuffer,\r
@@ -170,7 +171,7 @@ class MainFrame : public TopFrame
                                 void *userData\r
                              );\r
 \r
-        void per_frame_rx_processing(\r
+        static void per_frame_rx_processing(\r
                                         short   output_buf[],  // output buf of decoded speech samples\r
                                         int     *n_output_buf, // how many samples currently in output_buf[]\r
                                         int     codec_bits[],  // current frame of bits for decoder\r
index 8032f49483f4ac65d95f1ca6f72a3e89b10cb126..d672cfae320d8f758d25931ba55321fb8d520241 100644 (file)
@@ -96,7 +96,7 @@ void PlotSpectrum::draw(wxAutoBufferedPaintDC& pDC)
     {\r
         m_newdata = false;\r
 //        plotPixelData(dc);\r
-#ifdef USE_TIMER\r
+#ifdef _USE_TIMER\r
         int t = m_rPlot.GetTop();\r
         int l = m_rPlot.GetLeft();\r
         int h = m_rPlot.GetHeight();\r
index a4252506b5b4d147c91441f49c5801bc6f17acc8..d2157bfbc102e9cc287516db20093f151a9de54f 100644 (file)
@@ -173,12 +173,17 @@ void PlotWaterfall::draw(wxAutoBufferedPaintDC& pDC)
         m_mDC.SetBrush(ltGraphBkgBrush);\r
         m_mDC.SetPen(wxPen(BLACK_COLOR, 0));\r
         m_mDC.DrawRectangle(m_rPlot);\r
+\r
+//        pDC.SetBrush(ltGraphBkgBrush);\r
+//        pDC.SetPen(wxPen(BLACK_COLOR, 0));\r
+//        pDC.DrawRectangle(m_rPlot);\r
+        drawGraticule(pDC);\r
     }\r
     if(m_newdata)\r
     {\r
         m_newdata = false;\r
 //        plotPixelData(dc);\r
-#ifdef USE_TIMER\r
+//#ifdef _USE_TIMER\r
         int t = m_rPlot.GetTop();\r
         int l = m_rPlot.GetLeft();\r
         int h = m_rPlot.GetHeight();\r
@@ -191,7 +196,7 @@ void PlotWaterfall::draw(wxAutoBufferedPaintDC& pDC)
         m_mDC.StretchBlit(l, t2, w2, ht, &m_mDC, l, t2 + DATA_LINE_HEIGHT, w2, ht - 2);\r
 //        pDC.Blit(l, t, w, h, &m_mDC, l, t);                                                   // Scroll Up from Bottom\r
         pDC.StretchBlit(l, (h - t) + 4, w, (-h) + 4, &m_mDC, l, t, w, h);                       // Scroll Down from top\r
-#endif\r
+//#endif\r
         drawGraticule(pDC);\r
     }\r
     m_mDC.SetBrush(wxNullBrush);\r
index db753a16d21bed38cbc2a92e8af14dc16b5db706..1da9dad3e021baf0ff1fd5a09446b1a8698d7c4b 100644 (file)
 \r
 ///////////////////////////////////////////////////////////////////////////\r
 \r
-TopFrame::TopFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )\r
+TopFrame::TopFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxFrame(parent, id, title, pos, size, style)\r
 {\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-    this->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ) );\r
-    this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-    this->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ) );\r
-    this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );\r
-\r
-    m_menubarMain = new wxMenuBar( wxMB_DOCKABLE );\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
+    this->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));\r
+    this->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DLIGHT));\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
+    this->SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));\r
+    this->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DLIGHT));\r
+\r
+    m_menubarMain = new wxMenuBar(wxMB_DOCKABLE);\r
     file = new wxMenu();\r
     wxMenuItem* m_menuItemOpen;\r
-    m_menuItemOpen = new wxMenuItem( file, ID_OPEN, wxString( _("&Open") ) , _("Open File"), wxITEM_NORMAL );\r
-    file->Append( m_menuItemOpen );\r
+    m_menuItemOpen = new wxMenuItem(file, ID_OPEN, wxString(_("&Open")) , _("Open File"), wxITEM_NORMAL);\r
+    file->Append(m_menuItemOpen);\r
 \r
     wxMenuItem* m_menuItemSave;\r
-    m_menuItemSave = new wxMenuItem( file, ID_SAVE, wxString( _("&Save") ) , _("Save current file"), wxITEM_NORMAL );\r
-    file->Append( m_menuItemSave );\r
+    m_menuItemSave = new wxMenuItem(file, ID_SAVE, wxString(_("&Save")) , _("Save current file"), wxITEM_NORMAL);\r
+    file->Append(m_menuItemSave);\r
 \r
     wxMenuItem* m_menuItemClose;\r
-    m_menuItemClose = new wxMenuItem( file, ID_CLOSE, wxString( _("&Close") ) , _("Close current file"), wxITEM_NORMAL );\r
-    file->Append( m_menuItemClose );\r
+    m_menuItemClose = new wxMenuItem(file, ID_CLOSE, wxString(_("&Close")) , _("Close current file"), wxITEM_NORMAL);\r
+    file->Append(m_menuItemClose);\r
 \r
     file->AppendSeparator();\r
 \r
     wxMenuItem* m_menuItemExit;\r
-    m_menuItemExit = new wxMenuItem( file, ID_EXIT, wxString( _("E&xit") ) , _("Exit Program"), wxITEM_NORMAL );\r
-    file->Append( m_menuItemExit );\r
+    m_menuItemExit = new wxMenuItem(file, ID_EXIT, wxString(_("E&xit")) , _("Exit Program"), wxITEM_NORMAL);\r
+    file->Append(m_menuItemExit);\r
 \r
-    m_menubarMain->Append( file, _("&File") );\r
+    m_menubarMain->Append(file, _("&File"));\r
 \r
     edit = new wxMenu();\r
     wxMenuItem* m_menuItemCopy;\r
-    m_menuItemCopy = new wxMenuItem( edit, ID_COPY, wxString( _("&Copy") ) , _("Copy selection"), wxITEM_NORMAL );\r
-    edit->Append( m_menuItemCopy );\r
-    m_menuItemCopy->Enable( false );\r
+    m_menuItemCopy = new wxMenuItem(edit, ID_COPY, wxString(_("&Copy")) , _("Copy selection"), wxITEM_NORMAL);\r
+    edit->Append(m_menuItemCopy);\r
+    m_menuItemCopy->Enable(false);\r
 \r
     wxMenuItem* m_menuItemCut;\r
-    m_menuItemCut = new wxMenuItem( edit, ID_CUT, wxString( _("Cut") ) , _("Cut Selection"), wxITEM_NORMAL );\r
-    edit->Append( m_menuItemCut );\r
-    m_menuItemCut->Enable( false );\r
+    m_menuItemCut = new wxMenuItem(edit, ID_CUT, wxString(_("Cut")) , _("Cut Selection"), wxITEM_NORMAL);\r
+    edit->Append(m_menuItemCut);\r
+    m_menuItemCut->Enable(false);\r
 \r
     wxMenuItem* m_menuItemPaste;\r
-    m_menuItemPaste = new wxMenuItem( edit, ID_PASTE, wxString( _("&Paste") ) , _("Paste selection"), wxITEM_NORMAL );\r
-    edit->Append( m_menuItemPaste );\r
-    m_menuItemPaste->Enable( false );\r
+    m_menuItemPaste = new wxMenuItem(edit, ID_PASTE, wxString(_("&Paste")) , _("Paste selection"), wxITEM_NORMAL);\r
+    edit->Append(m_menuItemPaste);\r
+    m_menuItemPaste->Enable(false);\r
 \r
-    m_menubarMain->Append( edit, _("&Edit") );\r
+    m_menubarMain->Append(edit, _("&Edit"));\r
 \r
     tools = new wxMenu();\r
     wxMenuItem* m_menuItemAudio;\r
-    m_menuItemAudio = new wxMenuItem( tools, wxID_ANY, wxString( _("&Audio Config") ) , wxEmptyString, wxITEM_NORMAL );\r
-    tools->Append( m_menuItemAudio );\r
+    m_menuItemAudio = new wxMenuItem(tools, wxID_ANY, wxString(_("&Audio Config")) , wxEmptyString, wxITEM_NORMAL);\r
+    tools->Append(m_menuItemAudio);\r
 \r
     wxMenuItem* m_menuItemRigCtrlCfg;\r
-    m_menuItemRigCtrlCfg = new wxMenuItem( tools, wxID_ANY, wxString( _("Rig Control Config") ) , wxEmptyString, wxITEM_NORMAL );\r
-    tools->Append( m_menuItemRigCtrlCfg );\r
+    m_menuItemRigCtrlCfg = new wxMenuItem(tools, wxID_ANY, wxString(_("Rig Control Config")) , wxEmptyString, wxITEM_NORMAL);\r
+    tools->Append(m_menuItemRigCtrlCfg);\r
 \r
     wxMenuItem* m_menuItemOptions;\r
-    m_menuItemOptions = new wxMenuItem( tools, ID_OPTIONS, wxString( _("Other Program &Options") ) , _("Set preferences"), wxITEM_NORMAL );\r
-    tools->Append( m_menuItemOptions );\r
+    m_menuItemOptions = new wxMenuItem(tools, ID_OPTIONS, wxString(_("Other Program &Options")) , _("Set preferences"), wxITEM_NORMAL);\r
+    tools->Append(m_menuItemOptions);\r
 \r
     tools->AppendSeparator();\r
 \r
     wxMenuItem* m_menuItemCaptRxStream;\r
-    m_menuItemCaptRxStream = new wxMenuItem( tools, wxID_ANY, wxString( _("Capture Rx Stream") ) + wxT('\t') + wxT("Capture receive stream to file."), wxEmptyString, wxITEM_NORMAL );\r
+    m_menuItemCaptRxStream = new wxMenuItem(tools, wxID_ANY, wxString(_("Capture Rx Stream")) + wxT('\t') + wxT("Capture receive stream to file."), wxEmptyString, wxITEM_NORMAL);\r
     #ifdef __WXMSW__\r
-    m_menuItemCaptRxStream->SetBitmaps( wxNullBitmap );\r
-    #elif defined( __WXGTK__ )\r
-    m_menuItemCaptRxStream->SetBitmap( wxNullBitmap );\r
+    m_menuItemCaptRxStream->SetBitmaps(wxNullBitmap);\r
+    #elif defined(__WXGTK__)\r
+    m_menuItemCaptRxStream->SetBitmap(wxNullBitmap);\r
     #endif\r
-    tools->Append( m_menuItemCaptRxStream );\r
+    tools->Append(m_menuItemCaptRxStream);\r
 \r
     wxMenuItem* m_menuItemCaptTxStream;\r
-    m_menuItemCaptTxStream = new wxMenuItem( tools, wxID_ANY, wxString( _("Capture Tx Stream") ) + wxT('\t') + wxT("Capture transmit stream to file."), wxEmptyString, wxITEM_NORMAL );\r
+    m_menuItemCaptTxStream = new wxMenuItem(tools, wxID_ANY, wxString(_("Capture Tx Stream")) + wxT('\t') + wxT("Capture transmit stream to file."), wxEmptyString, wxITEM_NORMAL);\r
     #ifdef __WXMSW__\r
-    m_menuItemCaptTxStream->SetBitmaps( wxNullBitmap );\r
-    #elif defined( __WXGTK__ )\r
-    m_menuItemCaptTxStream->SetBitmap( wxNullBitmap );\r
+    m_menuItemCaptTxStream->SetBitmaps(wxNullBitmap);\r
+    #elif defined(__WXGTK__)\r
+    m_menuItemCaptTxStream->SetBitmap(wxNullBitmap);\r
     #endif\r
-    tools->Append( m_menuItemCaptTxStream );\r
+    tools->Append(m_menuItemCaptTxStream);\r
 \r
     tools->AppendSeparator();\r
 \r
     wxMenuItem* m_menuItemPlayAudioFile;\r
-    m_menuItemPlayAudioFile = new wxMenuItem( tools, wxID_ANY, wxString( _("Play File") ) , wxEmptyString, wxITEM_NORMAL );\r
-    tools->Append( m_menuItemPlayAudioFile );\r
+    m_menuItemPlayAudioFile = new wxMenuItem(tools, wxID_ANY, wxString(_("Play File")) , wxEmptyString, wxITEM_NORMAL);\r
+    tools->Append(m_menuItemPlayAudioFile);\r
 \r
-    m_menubarMain->Append( tools, _("&Tools") );\r
+    m_menubarMain->Append(tools, _("&Tools"));\r
 \r
     help = new wxMenu();\r
     wxMenuItem* m_menuItemHelpUpdates;\r
-    m_menuItemHelpUpdates = new wxMenuItem( help, wxID_ANY, wxString( _("Check for Updates") ) , wxEmptyString, wxITEM_NORMAL );\r
-    help->Append( m_menuItemHelpUpdates );\r
-    m_menuItemHelpUpdates->Enable( false );\r
+    m_menuItemHelpUpdates = new wxMenuItem(help, wxID_ANY, wxString(_("Check for Updates")) , wxEmptyString, wxITEM_NORMAL);\r
+    help->Append(m_menuItemHelpUpdates);\r
+    m_menuItemHelpUpdates->Enable(false);\r
 \r
     wxMenuItem* m_menuItemAbout;\r
-    m_menuItemAbout = new wxMenuItem( help, ID_ABOUT, wxString( _("&About") ) , _("About this program"), wxITEM_NORMAL );\r
-    help->Append( m_menuItemAbout );\r
+    m_menuItemAbout = new wxMenuItem(help, ID_ABOUT, wxString(_("&About")) , _("About this program"), wxITEM_NORMAL);\r
+    help->Append(m_menuItemAbout);\r
 \r
-    m_menubarMain->Append( help, _("&Help") );\r
+    m_menubarMain->Append(help, _("&Help"));\r
 \r
-    this->SetMenuBar( m_menubarMain );\r
+    this->SetMenuBar(m_menubarMain);\r
 \r
     wxBoxSizer* bSizer1;\r
-    bSizer1 = new wxBoxSizer( wxHORIZONTAL );\r
+    bSizer1 = new wxBoxSizer(wxHORIZONTAL);\r
 \r
     wxBoxSizer* leftSizer;\r
-    leftSizer = new wxBoxSizer( wxVERTICAL );\r
+    leftSizer = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxStaticBoxSizer* snrSizer;\r
-    snrSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("SNR") ), wxVERTICAL );\r
+    snrSizer = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("SNR")), wxVERTICAL);\r
 \r
-    m_gaugeSNR = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( 15,135 ), wxGA_SMOOTH|wxGA_VERTICAL );\r
-    m_gaugeSNR->SetToolTip( _("Display signal to noise ratio.") );\r
+    m_gaugeSNR = new wxGauge(this, wxID_ANY, 100, wxDefaultPosition, wxSize(15,135), wxGA_SMOOTH|wxGA_VERTICAL);\r
+    m_gaugeSNR->SetToolTip(_("Display signal to noise ratio."));\r
 \r
-    snrSizer->Add( m_gaugeSNR, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 10 );\r
+    snrSizer->Add(m_gaugeSNR, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 10);\r
 \r
     wxBoxSizer* bSizer29;\r
-    bSizer29 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer29 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_textSNR = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxPoint( -1,-1 ), wxSize( 35,25 ), wxTE_READONLY );\r
-    m_textSNR->SetToolTip( _("Show S/N ratio numerically.") );\r
-    m_textSNR->SetMinSize( wxSize( 35,25 ) );\r
+    m_textSNR = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxPoint(-1,-1), wxSize(35,25), wxTE_READONLY);\r
+    m_textSNR->SetToolTip(_("Show S/N ratio numerically."));\r
+    m_textSNR->SetMinSize(wxSize(35,25));\r
 \r
-    bSizer29->Add( m_textSNR, 0, wxALIGN_CENTER|wxALL, 1 );\r
+    bSizer29->Add(m_textSNR, 0, wxALIGN_CENTER|wxALL, 1);\r
 \r
 \r
-    snrSizer->Add( bSizer29, 0, wxEXPAND, 1 );\r
+    snrSizer->Add(bSizer29, 0, wxEXPAND, 1);\r
 \r
 \r
-    leftSizer->Add( snrSizer, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 1 );\r
+    leftSizer->Add(snrSizer, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 1);\r
 \r
     wxStaticBoxSizer* levelSizer;\r
-    levelSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Level") ), wxVERTICAL );\r
+    levelSizer = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Level")), wxVERTICAL);\r
 \r
-    m_gaugeLevel = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( 15,135 ), wxGA_SMOOTH|wxGA_VERTICAL );\r
-    m_gaugeLevel->SetToolTip( _("Display signal level.") );\r
+    m_gaugeLevel = new wxGauge(this, wxID_ANY, 100, wxDefaultPosition, wxSize(15,135), wxGA_SMOOTH|wxGA_VERTICAL);\r
+    m_gaugeLevel->SetToolTip(_("Display signal level."));\r
 \r
-    levelSizer->Add( m_gaugeLevel, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 10 );\r
+    levelSizer->Add(m_gaugeLevel, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 10);\r
 \r
 \r
-    leftSizer->Add( levelSizer, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 1 );\r
+    leftSizer->Add(levelSizer, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 1);\r
 \r
 \r
-    bSizer1->Add( leftSizer, 0, wxALL|wxEXPAND, 5 );\r
+    bSizer1->Add(leftSizer, 0, wxALL|wxEXPAND, 5);\r
 \r
     wxBoxSizer* centerSizer;\r
-    centerSizer = new wxBoxSizer( wxVERTICAL );\r
+    centerSizer = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxBoxSizer* upperSizer;\r
-    upperSizer = new wxBoxSizer( wxVERTICAL );\r
+    upperSizer = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_auiNbookCtrl = new wxAuiNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_BOTTOM|wxAUI_NB_DEFAULT_STYLE );\r
-    m_auiNbookCtrl->SetFont( wxFont( 6, 70, 90, 90, false, wxEmptyString ) );\r
+    m_auiNbookCtrl = new wxAuiNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_BOTTOM|wxAUI_NB_DEFAULT_STYLE);\r
+    m_auiNbookCtrl->SetFont(wxFont(6, 70, 90, 90, false, wxEmptyString));\r
 \r
 \r
-    upperSizer->Add( m_auiNbookCtrl, 1, wxALIGN_TOP|wxEXPAND, 1 );\r
+    upperSizer->Add(m_auiNbookCtrl, 1, wxALIGN_TOP|wxEXPAND, 1);\r
 \r
 \r
-    centerSizer->Add( upperSizer, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALIGN_TOP|wxEXPAND, 0 );\r
+    centerSizer->Add(upperSizer, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALIGN_TOP|wxEXPAND, 0);\r
 \r
     wxBoxSizer* lowerSizer;\r
-    lowerSizer = new wxBoxSizer( wxHORIZONTAL );\r
+    lowerSizer = new wxBoxSizer(wxHORIZONTAL);\r
 \r
     wxBoxSizer* bSizer15;\r
-    bSizer15 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer15 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_txtCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer15->Add( m_txtCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );\r
+    m_txtCtrl = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer15->Add(m_txtCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5);\r
 \r
 \r
-    lowerSizer->Add( bSizer15, 1, wxEXPAND, 5 );\r
+    lowerSizer->Add(bSizer15, 1, wxEXPAND, 5);\r
 \r
     wxBoxSizer* bSizer141;\r
-    bSizer141 = new wxBoxSizer( wxHORIZONTAL );\r
+    bSizer141 = new wxBoxSizer(wxHORIZONTAL);\r
 \r
-    m_togRxID = new wxToggleButton( this, wxID_ANY, _("RxID"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer141->Add( m_togRxID, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL|wxFIXED_MINSIZE, 5 );\r
+    m_togRxID = new wxToggleButton(this, wxID_ANY, _("RxID"), wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer141->Add(m_togRxID, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL|wxFIXED_MINSIZE, 5);\r
 \r
-    m_togTxID = new wxToggleButton( this, wxID_ANY, _("TxID"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer141->Add( m_togTxID, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
+    m_togTxID = new wxToggleButton(this, wxID_ANY, _("TxID"), wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer141->Add(m_togTxID, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);\r
 \r
 \r
-    lowerSizer->Add( bSizer141, 0, wxALIGN_RIGHT, 5 );\r
+    lowerSizer->Add(bSizer141, 0, wxALIGN_RIGHT, 5);\r
 \r
 \r
-    centerSizer->Add( lowerSizer, 0, wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 2 );\r
+    centerSizer->Add(lowerSizer, 0, wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 2);\r
 \r
 \r
-    bSizer1->Add( centerSizer, 4, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 1 );\r
+    bSizer1->Add(centerSizer, 4, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 1);\r
 \r
     wxBoxSizer* rightSizer;\r
-    rightSizer = new wxBoxSizer( wxVERTICAL );\r
+    rightSizer = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxStaticBoxSizer* sbSizer3;\r
-    sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("SQ") ), wxVERTICAL );\r
+    sbSizer3 = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("SQ")), wxVERTICAL);\r
 \r
-    m_sliderSQ = new wxSlider( this, wxID_ANY, 50, 0, 100, wxDefaultPosition, wxSize( -1,100 ), wxSL_AUTOTICKS|wxSL_INVERSE|wxSL_VERTICAL );\r
-    m_sliderSQ->SetToolTip( _("Set Squelch level.") );\r
+    m_sliderSQ = new wxSlider(this, wxID_ANY, 50, 0, 100, wxDefaultPosition, wxSize(-1,100), wxSL_AUTOTICKS|wxSL_INVERSE|wxSL_VERTICAL);\r
+    m_sliderSQ->SetToolTip(_("Set Squelch level."));\r
 \r
-    sbSizer3->Add( m_sliderSQ, 2, wxALIGN_CENTER|wxALL, 1 );\r
+    sbSizer3->Add(m_sliderSQ, 2, wxALIGN_CENTER|wxALL, 1);\r
 \r
     wxBoxSizer* bSizer131;\r
-    bSizer131 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer131 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_ckboxSQ = new wxCheckBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );\r
-    m_ckboxSQ->SetToolTip( _("Activate/Deactivate Squelch") );\r
+    m_ckboxSQ = new wxCheckBox(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);\r
+    m_ckboxSQ->SetToolTip(_("Activate/Deactivate Squelch"));\r
 \r
-    bSizer131->Add( m_ckboxSQ, 0, wxALIGN_CENTER|wxALL, 5 );\r
+    bSizer131->Add(m_ckboxSQ, 0, wxALIGN_CENTER|wxALL, 5);\r
 \r
 \r
-    sbSizer3->Add( bSizer131, 0, wxALIGN_CENTER, 5 );\r
+    sbSizer3->Add(bSizer131, 0, wxALIGN_CENTER, 5);\r
 \r
 \r
-    rightSizer->Add( sbSizer3, 2, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 3 );\r
+    rightSizer->Add(sbSizer3, 2, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 3);\r
 \r
     wxStaticBoxSizer* sbSizer5;\r
-    sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Control") ), wxVERTICAL );\r
+    sbSizer5 = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Control")), wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer1511;\r
-    bSizer1511 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer1511 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_togBtnOnOff = new wxToggleButton( this, wxID_ANY, _("Start"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_togBtnOnOff->SetToolTip( _("Begin receiving data.") );\r
+    m_togBtnOnOff = new wxToggleButton(this, wxID_ANY, _("Start"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_togBtnOnOff->SetToolTip(_("Begin receiving data."));\r
 \r
-    bSizer1511->Add( m_togBtnOnOff, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    bSizer1511->Add(m_togBtnOnOff, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1);\r
 \r
 \r
-    sbSizer5->Add( bSizer1511, 0, wxEXPAND, 1 );\r
+    sbSizer5->Add(bSizer1511, 0, wxEXPAND, 1);\r
 \r
     wxBoxSizer* bSizer151;\r
-    bSizer151 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer151 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_togBtnSplit = new wxToggleButton( this, wxID_ANY, _("Split"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_togBtnSplit->SetToolTip( _("Toggle split frequency mode.") );\r
+    m_togBtnSplit = new wxToggleButton(this, wxID_ANY, _("Split"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_togBtnSplit->SetToolTip(_("Toggle split frequency mode."));\r
 \r
-    bSizer151->Add( m_togBtnSplit, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    bSizer151->Add(m_togBtnSplit, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1);\r
 \r
 \r
-    sbSizer5->Add( bSizer151, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 1 );\r
+    sbSizer5->Add(bSizer151, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 1);\r
 \r
     wxBoxSizer* bSizer13;\r
-    bSizer13 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer13 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_togBtnAnalog = new wxToggleButton( this, wxID_ANY, _("Analog"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_togBtnAnalog->SetToolTip( _("Toggle analog/digital operation.") );\r
+    m_togBtnAnalog = new wxToggleButton(this, wxID_ANY, _("Analog"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_togBtnAnalog->SetToolTip(_("Toggle analog/digital operation."));\r
 \r
-    bSizer13->Add( m_togBtnAnalog, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    bSizer13->Add(m_togBtnAnalog, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1);\r
 \r
 \r
-    sbSizer5->Add( bSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    sbSizer5->Add(bSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1);\r
 \r
     wxBoxSizer* bSizer14;\r
-    bSizer14 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer14 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_togBtnALC = new wxToggleButton( this, wxID_ANY, _("ALC"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_togBtnALC->SetToolTip( _("Toggle automatic level control mode.") );\r
+    m_togBtnALC = new wxToggleButton(this, wxID_ANY, _("ALC"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_togBtnALC->SetToolTip(_("Toggle automatic level control mode."));\r
 \r
-    bSizer14->Add( m_togBtnALC, 0, wxALL, 1 );\r
+    bSizer14->Add(m_togBtnALC, 0, wxALL, 1);\r
 \r
 \r
-    sbSizer5->Add( bSizer14, 0, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALL, 1 );\r
+    sbSizer5->Add(bSizer14, 0, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALL, 1);\r
 \r
     wxBoxSizer* bSizer11;\r
-    bSizer11 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer11 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_btnTogTX = new wxToggleButton( this, wxID_ANY, _("TX"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_btnTogTX->SetToolTip( _("Switch between Receive and Transmit") );\r
+    m_btnTogTX = new wxToggleButton(this, wxID_ANY, _("TX"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_btnTogTX->SetToolTip(_("Switch between Receive and Transmit"));\r
 \r
-    bSizer11->Add( m_btnTogTX, 1, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    bSizer11->Add(m_btnTogTX, 1, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1);\r
 \r
 \r
-    sbSizer5->Add( bSizer11, 2, wxEXPAND, 1 );\r
+    sbSizer5->Add(bSizer11, 2, wxEXPAND, 1);\r
 \r
 \r
-    rightSizer->Add( sbSizer5, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 3 );\r
+    rightSizer->Add(sbSizer5, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 3);\r
 \r
 \r
-    bSizer1->Add( rightSizer, 0, wxALL|wxEXPAND, 3 );\r
+    bSizer1->Add(rightSizer, 0, wxALL|wxEXPAND, 3);\r
 \r
 \r
-    this->SetSizer( bSizer1 );\r
+    this->SetSizer(bSizer1);\r
     this->Layout();\r
-    m_statusBar1 = this->CreateStatusBar( 3, wxST_SIZEGRIP, wxID_ANY );\r
+    m_statusBar1 = this->CreateStatusBar(3, wxST_SIZEGRIP, wxID_ANY);\r
 \r
     // Connect Events\r
-    this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( TopFrame::topFrame_OnClose ) );\r
-    this->Connect( wxEVT_PAINT, wxPaintEventHandler( TopFrame::topFrame_OnPaint ) );\r
-    this->Connect( wxEVT_SIZE, wxSizeEventHandler( TopFrame::topFrame_OnSize ) );\r
-    this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::topFrame_OnUpdateUI ) );\r
-    this->Connect( m_menuItemOpen->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnOpen ) );\r
-    this->Connect( m_menuItemOpen->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnOpenUpdateUI ) );\r
-    this->Connect( m_menuItemSave->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnSave ) );\r
-    this->Connect( m_menuItemSave->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnSaveUpdateUI ) );\r
-    this->Connect( m_menuItemClose->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnClose ) );\r
-    this->Connect( m_menuItemClose->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCloseUpdateUI ) );\r
-    this->Connect( m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnExit ) );\r
-    this->Connect( m_menuItemCopy->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCopy ) );\r
-    this->Connect( m_menuItemCopy->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCopyUpdateUI ) );\r
-    this->Connect( m_menuItemCut->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCut ) );\r
-    this->Connect( m_menuItemCut->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCutUpdateUI ) );\r
-    this->Connect( m_menuItemPaste->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPaste ) );\r
-    this->Connect( m_menuItemPaste->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnPasteUpdateUI ) );\r
-    this->Connect( m_menuItemAudio->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsAudio ) );\r
-    this->Connect( m_menuItemAudio->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsAudioUI ) );\r
-    this->Connect( m_menuItemRigCtrlCfg->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsComCfg ) );\r
-    this->Connect( m_menuItemRigCtrlCfg->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsComCfgUI ) );\r
-    this->Connect( m_menuItemOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsOptions ) );\r
-    this->Connect( m_menuItemOptions->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsOptionsUI ) );\r
-    this->Connect( m_menuItemCaptRxStream->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureRxStream ) );\r
-    this->Connect( m_menuItemCaptTxStream->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureTxStream ) );\r
-    this->Connect( m_menuItemPlayAudioFile->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPlayAudioFile ) );\r
-    this->Connect( m_menuItemHelpUpdates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpCheckUpdates ) );\r
-    this->Connect( m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnHelpCheckUpdatesUI ) );\r
-    this->Connect( m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpAbout ) );\r
-    m_togRxID->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnRxID ), NULL, this );\r
-    m_togTxID->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTxID ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_LINEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_PAGEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnSliderScrollBottom ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScrollChanged ), NULL, this );\r
-    m_sliderSQ->Connect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnSliderScrollTop ), NULL, this );\r
-    m_ckboxSQ->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( TopFrame::OnCheckSQClick ), NULL, this );
-\r
-    m_togBtnOnOff->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnOnOff ), NULL, this );\r
-    m_togBtnSplit->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnSplitClick ), NULL, this );\r
-    m_togBtnAnalog->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnAnalogClick ), NULL, this );\r
-    m_togBtnALC->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnALCClick ), NULL, this );\r
-    m_btnTogTX->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTXClick ), NULL, this );\r
+    this->Connect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(TopFrame::topFrame_OnClose));\r
+    this->Connect(wxEVT_PAINT, wxPaintEventHandler(TopFrame::topFrame_OnPaint));\r
+    this->Connect(wxEVT_SIZE, wxSizeEventHandler(TopFrame::topFrame_OnSize));\r
+    this->Connect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::topFrame_OnUpdateUI));\r
+    this->Connect(m_menuItemOpen->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnOpen));\r
+    this->Connect(m_menuItemOpen->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnOpenUpdateUI));\r
+    this->Connect(m_menuItemSave->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnSave));\r
+    this->Connect(m_menuItemSave->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnSaveUpdateUI));\r
+    this->Connect(m_menuItemClose->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnClose));\r
+    this->Connect(m_menuItemClose->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnCloseUpdateUI));\r
+    this->Connect(m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnExit));\r
+    this->Connect(m_menuItemCopy->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnCopy));\r
+    this->Connect(m_menuItemCopy->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnCopyUpdateUI));\r
+    this->Connect(m_menuItemCut->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnCut));\r
+    this->Connect(m_menuItemCut->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnCutUpdateUI));\r
+    this->Connect(m_menuItemPaste->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnPaste));\r
+    this->Connect(m_menuItemPaste->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnPasteUpdateUI));\r
+    this->Connect(m_menuItemAudio->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnToolsAudio));\r
+    this->Connect(m_menuItemAudio->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnToolsAudioUI));\r
+    this->Connect(m_menuItemRigCtrlCfg->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnToolsComCfg));\r
+    this->Connect(m_menuItemRigCtrlCfg->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnToolsComCfgUI));\r
+    this->Connect(m_menuItemOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnToolsOptions));\r
+    this->Connect(m_menuItemOptions->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnToolsOptionsUI));\r
+    this->Connect(m_menuItemCaptRxStream->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnCaptureRxStream));\r
+    this->Connect(m_menuItemCaptTxStream->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnCaptureTxStream));\r
+    this->Connect(m_menuItemPlayAudioFile->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnPlayAudioFile));\r
+    this->Connect(m_menuItemHelpUpdates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnHelpCheckUpdates));\r
+    this->Connect(m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnHelpCheckUpdatesUI));\r
+    this->Connect(m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnHelpAbout));\r
+    m_togRxID->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnRxID), NULL, this);\r
+    m_togTxID->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnTxID), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_TOP, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_LINEUP, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_PAGEUP, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_CHANGED, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(TopFrame::OnSliderScrollBottom), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_CHANGED, wxScrollEventHandler(TopFrame::OnCmdSliderScrollChanged), NULL, this);\r
+    m_sliderSQ->Connect(wxEVT_SCROLL_TOP, wxScrollEventHandler(TopFrame::OnSliderScrollTop), NULL, this);\r
+    m_ckboxSQ->Connect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(TopFrame::OnCheckSQClick), NULL, this);
+\r
+    m_togBtnOnOff->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnOnOff), NULL, this);\r
+    m_togBtnSplit->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnSplitClick), NULL, this);\r
+    m_togBtnAnalog->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnAnalogClick), NULL, this);\r
+    m_togBtnALC->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnALCClick), NULL, this);\r
+    m_btnTogTX->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnTXClick), NULL, this);\r
 }\r
 \r
 TopFrame::~TopFrame()\r
 {\r
     // Disconnect Events\r
-    this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( TopFrame::topFrame_OnClose ) );\r
-    this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( TopFrame::topFrame_OnPaint ) );\r
-    this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( TopFrame::topFrame_OnSize ) );\r
-    this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::topFrame_OnUpdateUI ) );\r
-    this->Disconnect( ID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnOpen ) );\r
-    this->Disconnect( ID_OPEN, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnOpenUpdateUI ) );\r
-    this->Disconnect( ID_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnSave ) );\r
-    this->Disconnect( ID_SAVE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnSaveUpdateUI ) );\r
-    this->Disconnect( ID_CLOSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnClose ) );\r
-    this->Disconnect( ID_CLOSE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCloseUpdateUI ) );\r
-    this->Disconnect( ID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnExit ) );\r
-    this->Disconnect( ID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCopy ) );\r
-    this->Disconnect( ID_COPY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCopyUpdateUI ) );\r
-    this->Disconnect( ID_CUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCut ) );\r
-    this->Disconnect( ID_CUT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCutUpdateUI ) );\r
-    this->Disconnect( ID_PASTE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPaste ) );\r
-    this->Disconnect( ID_PASTE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnPasteUpdateUI ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsAudio ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsAudioUI ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsComCfg ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsComCfgUI ) );\r
-    this->Disconnect( ID_OPTIONS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsOptions ) );\r
-    this->Disconnect( ID_OPTIONS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsOptionsUI ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureRxStream ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureTxStream ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPlayAudioFile ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpCheckUpdates ) );\r
-    this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnHelpCheckUpdatesUI ) );\r
-    this->Disconnect( ID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpAbout ) );\r
-    m_togRxID->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnRxID ), NULL, this );\r
-    m_togTxID->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTxID ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_LINEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_PAGEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnSliderScrollBottom ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScrollChanged ), NULL, this );\r
-    m_sliderSQ->Disconnect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnSliderScrollTop ), NULL, this );\r
-    m_ckboxSQ->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( TopFrame::OnCheckSQClick ), NULL, this );
-\r
-    m_togBtnOnOff->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnOnOff ), NULL, this );\r
-    m_togBtnSplit->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnSplitClick ), NULL, this );\r
-    m_togBtnAnalog->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnAnalogClick ), NULL, this );\r
-    m_togBtnALC->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnALCClick ), NULL, this );\r
-    m_btnTogTX->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTXClick ), NULL, this );\r
+    this->Disconnect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(TopFrame::topFrame_OnClose));\r
+    this->Disconnect(wxEVT_PAINT, wxPaintEventHandler(TopFrame::topFrame_OnPaint));\r
+    this->Disconnect(wxEVT_SIZE, wxSizeEventHandler(TopFrame::topFrame_OnSize));\r
+    this->Disconnect(wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::topFrame_OnUpdateUI));\r
+    this->Disconnect(ID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnOpen));\r
+    this->Disconnect(ID_OPEN, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnOpenUpdateUI));\r
+    this->Disconnect(ID_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnSave));\r
+    this->Disconnect(ID_SAVE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnSaveUpdateUI));\r
+    this->Disconnect(ID_CLOSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnClose));\r
+    this->Disconnect(ID_CLOSE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnCloseUpdateUI));\r
+    this->Disconnect(ID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnExit));\r
+    this->Disconnect(ID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnCopy));\r
+    this->Disconnect(ID_COPY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnCopyUpdateUI));\r
+    this->Disconnect(ID_CUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnCut));\r
+    this->Disconnect(ID_CUT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnCutUpdateUI));\r
+    this->Disconnect(ID_PASTE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnPaste));\r
+    this->Disconnect(ID_PASTE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnPasteUpdateUI));\r
+    this->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnToolsAudio));\r
+    this->Disconnect(wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnToolsAudioUI));\r
+    this->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnToolsComCfg));\r
+    this->Disconnect(wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnToolsComCfgUI));\r
+    this->Disconnect(ID_OPTIONS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnToolsOptions));\r
+    this->Disconnect(ID_OPTIONS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnToolsOptionsUI));\r
+    this->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnCaptureRxStream));\r
+    this->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnCaptureTxStream));\r
+    this->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnPlayAudioFile));\r
+    this->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnHelpCheckUpdates));\r
+    this->Disconnect(wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(TopFrame::OnHelpCheckUpdatesUI));\r
+    this->Disconnect(ID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(TopFrame::OnHelpAbout));\r
+    m_togRxID->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnRxID), NULL, this);\r
+    m_togTxID->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnTxID), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_TOP, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_LINEUP, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_PAGEUP, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_CHANGED, wxScrollEventHandler(TopFrame::OnCmdSliderScroll), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(TopFrame::OnSliderScrollBottom), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_CHANGED, wxScrollEventHandler(TopFrame::OnCmdSliderScrollChanged), NULL, this);\r
+    m_sliderSQ->Disconnect(wxEVT_SCROLL_TOP, wxScrollEventHandler(TopFrame::OnSliderScrollTop), NULL, this);\r
+    m_ckboxSQ->Disconnect(wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler(TopFrame::OnCheckSQClick), NULL, this);
+\r
+    m_togBtnOnOff->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnOnOff), NULL, this);\r
+    m_togBtnSplit->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnSplitClick), NULL, this);\r
+    m_togBtnAnalog->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnAnalogClick), NULL, this);\r
+    m_togBtnALC->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnALCClick), NULL, this);\r
+    m_btnTogTX->Disconnect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnTXClick), NULL, this);\r
 \r
 }\r
 \r
-DlgAbout::DlgAbout( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
+DlgAbout::DlgAbout(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxDialog(parent, id, title, pos, size, style)\r
 {\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
 \r
     wxBoxSizer* bSizer20;\r
-    bSizer20 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer20 = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer21;\r
-    bSizer21 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer21 = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer23;\r
-    bSizer23 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer23 = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer25;\r
-    bSizer25 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer25 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_bitmapAbout = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer25->Add( m_bitmapAbout, 1, wxALL|wxEXPAND, 5 );\r
+    m_bitmapAbout = new wxStaticBitmap(this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer25->Add(m_bitmapAbout, 1, wxALL|wxEXPAND, 5);\r
 \r
 \r
-    bSizer23->Add( bSizer25, 1, wxEXPAND, 5 );\r
+    bSizer23->Add(bSizer25, 1, wxEXPAND, 5);\r
 \r
     wxBoxSizer* bSizer26;\r
-    bSizer26 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer26 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_staticText1 = new wxStaticText( this, wxID_ANY, _("MyLabel"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_staticText1->Wrap( -1 );\r
-    bSizer26->Add( m_staticText1, 1, wxALL, 5 );\r
+    m_staticText1 = new wxStaticText(this, wxID_ANY, _("MyLabel"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_staticText1->Wrap(-1);\r
+    bSizer26->Add(m_staticText1, 1, wxALL, 5);\r
 \r
 \r
-    bSizer23->Add( bSizer26, 0, 0, 5 );\r
+    bSizer23->Add(bSizer26, 0, 0, 5);\r
 \r
 \r
-    bSizer21->Add( bSizer23, 1, wxEXPAND, 5 );\r
+    bSizer21->Add(bSizer23, 1, wxEXPAND, 5);\r
 \r
     wxBoxSizer* bSizer24;\r
-    bSizer24 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer24 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_textCtrl2 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer24->Add( m_textCtrl2, 1, wxALL|wxEXPAND, 5 );\r
+    m_textCtrl2 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer24->Add(m_textCtrl2, 1, wxALL|wxEXPAND, 5);\r
 \r
 \r
-    bSizer21->Add( bSizer24, 1, wxEXPAND, 5 );\r
+    bSizer21->Add(bSizer24, 1, wxEXPAND, 5);\r
 \r
 \r
-    bSizer20->Add( bSizer21, 1, wxEXPAND, 5 );\r
+    bSizer20->Add(bSizer21, 1, wxEXPAND, 5);\r
 \r
     wxBoxSizer* bSizer22;\r
-    bSizer22 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer22 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_button9 = new wxButton( this, wxID_ANY, _("MyButton"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer22->Add( m_button9, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_button9 = new wxButton(this, wxID_ANY, _("MyButton"), wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer22->Add(m_button9, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL, 5);\r
 \r
 \r
-    bSizer20->Add( bSizer22, 0, wxALIGN_RIGHT, 5 );\r
+    bSizer20->Add(bSizer22, 0, wxALIGN_RIGHT, 5);\r
 \r
 \r
-    this->SetSizer( bSizer20 );\r
+    this->SetSizer(bSizer20);\r
     this->Layout();\r
 \r
-    this->Centre( wxBOTH );\r
-    this->Centre( wxBOTH );\r
+    this->Centre(wxBOTH);\r
+    this->Centre(wxBOTH);\r
 \r
     // Connect Events\r
-    this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAbout::OnClose ) );\r
-    this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAbout::OnInitDialog ) );\r
+    this->Connect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(DlgAbout::OnClose));\r
+    this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(DlgAbout::OnInitDialog));\r
 }\r
 \r
 DlgAbout::~DlgAbout()\r
 {\r
     // Disconnect Events\r
-    this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAbout::OnClose ) );\r
-    this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAbout::OnInitDialog ) );\r
+    this->Disconnect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(DlgAbout::OnClose));\r
+    this->Disconnect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(DlgAbout::OnInitDialog));\r
 \r
 }\r
 \r
-DlgAudio::DlgAudio( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
+DlgAudio::DlgAudio(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxDialog(parent, id, title, pos, size, style)\r
 {\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
 \r
     wxBoxSizer* bSizer32;\r
-    bSizer32 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer32 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_nbAudioOptions = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_panelDevices = new wxPanel( m_nbAudioOptions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
+    m_nbAudioOptions = new wxNotebook(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0);\r
+    m_panelDevices = new wxPanel(m_nbAudioOptions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);\r
     wxBoxSizer* bSizer34;\r
-    bSizer34 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer34 = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxStaticBoxSizer* sbSizer10;\r
-    sbSizer10 = new wxStaticBoxSizer( new wxStaticBox( m_panelDevices, wxID_ANY, _("PortAudio") ), wxHORIZONTAL );\r
+    sbSizer10 = new wxStaticBoxSizer(new wxStaticBox(m_panelDevices, wxID_ANY, _("PortAudio")), wxHORIZONTAL);\r
 \r
     wxBoxSizer* bSizer41;\r
-    bSizer41 = new wxBoxSizer( wxHORIZONTAL );\r
+    bSizer41 = new wxBoxSizer(wxHORIZONTAL);\r
 \r
     wxGridSizer* gSizer6;\r
-    gSizer6 = new wxGridSizer( 3, 1, 0, 0 );\r
+    gSizer6 = new wxGridSizer(3, 1, 0, 0);\r
 \r
-    gSizer6->SetMinSize( wxSize( 115,-1 ) );\r
-    m_radioBtnPortAudio = new wxRadioButton( m_panelDevices, wxID_ANY, _("PortAudio"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );\r
-    m_radioBtnPortAudio->SetValue( true );\r
-    gSizer6->Add( m_radioBtnPortAudio, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
+    gSizer6->SetMinSize(wxSize(115,-1));\r
+    m_radioBtnPortAudio = new wxRadioButton(m_panelDevices, wxID_ANY, _("PortAudio"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP);\r
+    m_radioBtnPortAudio->SetValue(true);\r
+    gSizer6->Add(m_radioBtnPortAudio, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);\r
 \r
     wxGridSizer* gSizer51;\r
-    gSizer51 = new wxGridSizer( 2, 2, 0, 0 );\r
+    gSizer51 = new wxGridSizer(2, 2, 0, 0);\r
 \r
-    gSizer51->SetMinSize( wxSize( 110,-1 ) );\r
-    m_staticText151 = new wxStaticText( m_panelDevices, wxID_ANY, _("# Ch Out:"), wxDefaultPosition, wxSize( 80,-1 ), wxALIGN_RIGHT );\r
-    m_staticText151->Wrap( -1 );\r
-    m_staticText151->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
-    m_staticText151->SetMinSize( wxSize( 80,-1 ) );\r
-    m_staticText151->SetMaxSize( wxSize( 80,-1 ) );\r
+    gSizer51->SetMinSize(wxSize(110,-1));\r
+    m_staticText151 = new wxStaticText(m_panelDevices, wxID_ANY, _("# Ch Out:"), wxDefaultPosition, wxSize(80,-1), wxALIGN_RIGHT);\r
+    m_staticText151->Wrap(-1);\r
+    m_staticText151->SetFont(wxFont(7, 70, 90, 90, false, wxEmptyString));\r
+    m_staticText151->SetMinSize(wxSize(80,-1));\r
+    m_staticText151->SetMaxSize(wxSize(80,-1));\r
 \r
-    gSizer51->Add( m_staticText151, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxEXPAND, 5 );\r
+    gSizer51->Add(m_staticText151, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxEXPAND, 5);\r
 \r
-    m_textNumChOut = new wxTextCtrl( m_panelDevices, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 30,-1 ), wxTE_READONLY );\r
-    m_textNumChOut->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
-    m_textNumChOut->SetMinSize( wxSize( 30,-1 ) );\r
-    m_textNumChOut->SetMaxSize( wxSize( 30,-1 ) );\r
+    m_textNumChOut = new wxTextCtrl(m_panelDevices, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(30,-1), wxTE_READONLY);\r
+    m_textNumChOut->SetFont(wxFont(7, 70, 90, 90, false, wxEmptyString));\r
+    m_textNumChOut->SetMinSize(wxSize(30,-1));\r
+    m_textNumChOut->SetMaxSize(wxSize(30,-1));\r
 \r
-    gSizer51->Add( m_textNumChOut, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL, 5 );\r
+    gSizer51->Add(m_textNumChOut, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL, 5);\r
 \r
-    m_staticText141 = new wxStaticText( m_panelDevices, wxID_ANY, _("# Ch In:"), wxDefaultPosition, wxSize( 80,-1 ), wxALIGN_RIGHT );\r
-    m_staticText141->Wrap( -1 );\r
-    m_staticText141->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
-    m_staticText141->SetMinSize( wxSize( 80,-1 ) );\r
-    m_staticText141->SetMaxSize( wxSize( 90,-1 ) );\r
+    m_staticText141 = new wxStaticText(m_panelDevices, wxID_ANY, _("# Ch In:"), wxDefaultPosition, wxSize(80,-1), wxALIGN_RIGHT);\r
+    m_staticText141->Wrap(-1);\r
+    m_staticText141->SetFont(wxFont(7, 70, 90, 90, false, wxEmptyString));\r
+    m_staticText141->SetMinSize(wxSize(80,-1));\r
+    m_staticText141->SetMaxSize(wxSize(90,-1));\r
 \r
-    gSizer51->Add( m_staticText141, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxEXPAND, 5 );\r
+    gSizer51->Add(m_staticText141, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxEXPAND, 5);\r
 \r
-    m_textNumChIn = new wxTextCtrl( m_panelDevices, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 30,-1 ), wxTE_READONLY );\r
-    m_textNumChIn->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
-    m_textNumChIn->SetMinSize( wxSize( 30,-1 ) );\r
-    m_textNumChIn->SetMaxSize( wxSize( 30,-1 ) );\r
+    m_textNumChIn = new wxTextCtrl(m_panelDevices, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(30,-1), wxTE_READONLY);\r
+    m_textNumChIn->SetFont(wxFont(7, 70, 90, 90, false, wxEmptyString));\r
+    m_textNumChIn->SetMinSize(wxSize(30,-1));\r
+    m_textNumChIn->SetMaxSize(wxSize(30,-1));\r
 \r
-    gSizer51->Add( m_textNumChIn, 0, wxALL, 4 );\r
+    gSizer51->Add(m_textNumChIn, 0, wxALL, 4);\r
 \r
 \r
-    gSizer6->Add( gSizer51, 0, wxEXPAND, 5 );\r
+    gSizer6->Add(gSizer51, 0, wxEXPAND, 5);\r
 \r
 \r
-    bSizer41->Add( gSizer6, 0, wxALL, 5 );\r
+    bSizer41->Add(gSizer6, 0, wxALL, 5);\r
 \r
     wxGridSizer* gSizer7;\r
-    gSizer7 = new wxGridSizer( 4, 2, 0, 0 );\r
+    gSizer7 = new wxGridSizer(4, 2, 0, 0);\r
 \r
-    m_staticText14 = new wxStaticText( m_panelDevices, wxID_ANY, _("Audio in (mic) -> codec:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
-    m_staticText14->Wrap( -1 );\r
-    gSizer7->Add( m_staticText14, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText14 = new wxStaticText(m_panelDevices, wxID_ANY, _("Audio in (mic) -> codec:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE);\r
+    m_staticText14->Wrap(-1);\r
+    gSizer7->Add(m_staticText14, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_comboAudioCodec = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
-    gSizer7->Add( m_comboAudioCodec, 1, wxALL, 5 );\r
+    m_comboAudioCodec = new wxComboBox(m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0);\r
+    gSizer7->Add(m_comboAudioCodec, 1, wxALL, 5);\r
 \r
-    m_staticText15 = new wxStaticText( m_panelDevices, wxID_ANY, _("codec -> Radio Tx:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
-    m_staticText15->Wrap( -1 );\r
-    gSizer7->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText15 = new wxStaticText(m_panelDevices, wxID_ANY, _("codec -> Radio Tx:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE);\r
+    m_staticText15->Wrap(-1);\r
+    gSizer7->Add(m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_comboCodecTx = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
-    gSizer7->Add( m_comboCodecTx, 1, wxALL, 5 );\r
+    m_comboCodecTx = new wxComboBox(m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0);\r
+    gSizer7->Add(m_comboCodecTx, 1, wxALL, 5);\r
 \r
-    m_staticText16 = new wxStaticText( m_panelDevices, wxID_ANY, _("Radio Rx -> codec:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
-    m_staticText16->Wrap( -1 );\r
-    gSizer7->Add( m_staticText16, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText16 = new wxStaticText(m_panelDevices, wxID_ANY, _("Radio Rx -> codec:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE);\r
+    m_staticText16->Wrap(-1);\r
+    gSizer7->Add(m_staticText16, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_comboRadioRx = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
-    gSizer7->Add( m_comboRadioRx, 1, wxALL, 5 );\r
+    m_comboRadioRx = new wxComboBox(m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0);\r
+    gSizer7->Add(m_comboRadioRx, 1, wxALL, 5);\r
 \r
-    m_staticText17 = new wxStaticText( m_panelDevices, wxID_ANY, _("codec -> Audio out (spkr):"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
-    m_staticText17->Wrap( -1 );\r
-    gSizer7->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText17 = new wxStaticText(m_panelDevices, wxID_ANY, _("codec -> Audio out (spkr):"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE);\r
+    m_staticText17->Wrap(-1);\r
+    gSizer7->Add(m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_comboCodecSpkr = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
-    gSizer7->Add( m_comboCodecSpkr, 0, wxALL, 5 );\r
+    m_comboCodecSpkr = new wxComboBox(m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0);\r
+    gSizer7->Add(m_comboCodecSpkr, 0, wxALL, 5);\r
 \r
 \r
-    bSizer41->Add( gSizer7, 0, wxALL|wxEXPAND, 5 );\r
+    bSizer41->Add(gSizer7, 0, wxALL|wxEXPAND, 5);\r
 \r
 \r
-    sbSizer10->Add( bSizer41, 1, wxEXPAND, 5 );\r
+    sbSizer10->Add(bSizer41, 1, wxEXPAND, 5);\r
 \r
 \r
-    bSizer34->Add( sbSizer10, 1, wxEXPAND, 5 );\r
+    bSizer34->Add(sbSizer10, 1, wxEXPAND, 5);\r
 \r
     wxStaticBoxSizer* sbSizer11;\r
-    sbSizer11 = new wxStaticBoxSizer( new wxStaticBox( m_panelDevices, wxID_ANY, _("File I/O") ), wxHORIZONTAL );\r
+    sbSizer11 = new wxStaticBoxSizer(new wxStaticBox(m_panelDevices, wxID_ANY, _("File I/O")), wxHORIZONTAL);\r
 \r
     wxBoxSizer* bSizer38;\r
-    bSizer38 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer38 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_radioBtnFileOnly = new wxRadioButton( m_panelDevices, wxID_ANY, _("File Only"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer38->Add( m_radioBtnFileOnly, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
+    m_radioBtnFileOnly = new wxRadioButton(m_panelDevices, wxID_ANY, _("File Only"), wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer38->Add(m_radioBtnFileOnly, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5);\r
 \r
 \r
-    sbSizer11->Add( bSizer38, 0, wxEXPAND, 5 );\r
+    sbSizer11->Add(bSizer38, 0, wxEXPAND, 5);\r
 \r
     wxBoxSizer* bSizer45;\r
-    bSizer45 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer45 = new wxBoxSizer(wxVERTICAL);\r
 \r
 \r
-    sbSizer11->Add( bSizer45, 1, wxEXPAND, 5 );\r
+    sbSizer11->Add(bSizer45, 1, wxEXPAND, 5);\r
 \r
     wxBoxSizer* bSizer46;\r
-    bSizer46 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer46 = new wxBoxSizer(wxVERTICAL);\r
 \r
 \r
-    sbSizer11->Add( bSizer46, 1, wxEXPAND, 5 );\r
+    sbSizer11->Add(bSizer46, 1, wxEXPAND, 5);\r
 \r
 \r
-    bSizer34->Add( sbSizer11, 1, wxEXPAND, 5 );\r
+    bSizer34->Add(sbSizer11, 1, wxEXPAND, 5);\r
 \r
 \r
-    m_panelDevices->SetSizer( bSizer34 );\r
+    m_panelDevices->SetSizer(bSizer34);\r
     m_panelDevices->Layout();\r
-    bSizer34->Fit( m_panelDevices );\r
-    m_nbAudioOptions->AddPage( m_panelDevices, _("Devices"), true );\r
-    m_panelSettings = new wxPanel( m_nbAudioOptions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
+    bSizer34->Fit(m_panelDevices);\r
+    m_nbAudioOptions->AddPage(m_panelDevices, _("Devices"), true);\r
+    m_panelSettings = new wxPanel(m_nbAudioOptions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);\r
     wxBoxSizer* bSizer27;\r
-    bSizer27 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer27 = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer271;\r
-    bSizer271 = new wxBoxSizer( wxHORIZONTAL );\r
+    bSizer271 = new wxBoxSizer(wxHORIZONTAL);\r
 \r
     wxStaticBoxSizer* sbSizer6;\r
-    sbSizer6 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Rx Input") ), wxVERTICAL );\r
+    sbSizer6 = new wxStaticBoxSizer(new wxStaticBox(m_panelSettings, wxID_ANY, _("Rx Input")), wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer31;\r
-    bSizer31 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer31 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_lbRxInput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
-    bSizer31->Add( m_lbRxInput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
+    m_lbRxInput = new wxListBox(m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE);\r
+    bSizer31->Add(m_lbRxInput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2);\r
 \r
-    m_textRxInput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer31->Add( m_textRxInput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
+    m_textRxInput = new wxTextCtrl(m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer31->Add(m_textRxInput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2);\r
 \r
 \r
-    sbSizer6->Add( bSizer31, 1, wxEXPAND, 6 );\r
+    sbSizer6->Add(bSizer31, 1, wxEXPAND, 6);\r
 \r
 \r
-    bSizer271->Add( sbSizer6, 1, wxEXPAND, 5 );\r
+    bSizer271->Add(sbSizer6, 1, wxEXPAND, 5);\r
 \r
     wxStaticBoxSizer* sbSizer7;\r
-    sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Tx Output") ), wxVERTICAL );\r
+    sbSizer7 = new wxStaticBoxSizer(new wxStaticBox(m_panelSettings, wxID_ANY, _("Tx Output")), wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer281;\r
-    bSizer281 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer281 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_lbTxOutput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
-    bSizer281->Add( m_lbTxOutput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
+    m_lbTxOutput = new wxListBox(m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE);\r
+    bSizer281->Add(m_lbTxOutput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2);\r
 \r
-    m_textTxOutput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer281->Add( m_textTxOutput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
+    m_textTxOutput = new wxTextCtrl(m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer281->Add(m_textTxOutput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2);\r
 \r
 \r
-    sbSizer7->Add( bSizer281, 1, wxEXPAND, 5 );\r
+    sbSizer7->Add(bSizer281, 1, wxEXPAND, 5);\r
 \r
 \r
-    bSizer271->Add( sbSizer7, 1, wxEXPAND, 6 );\r
+    bSizer271->Add(sbSizer7, 1, wxEXPAND, 6);\r
 \r
 \r
-    bSizer27->Add( bSizer271, 1, wxEXPAND, 5 );\r
+    bSizer27->Add(bSizer271, 1, wxEXPAND, 5);\r
 \r
     wxBoxSizer* bSizer26;\r
-    bSizer26 = new wxBoxSizer( wxHORIZONTAL );\r
+    bSizer26 = new wxBoxSizer(wxHORIZONTAL);\r
 \r
     wxStaticBoxSizer* sbSizer8;\r
-    sbSizer8 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Voice Input") ), wxVERTICAL );\r
+    sbSizer8 = new wxStaticBoxSizer(new wxStaticBox(m_panelSettings, wxID_ANY, _("Voice Input")), wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer29;\r
-    bSizer29 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer29 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_lbVoiceInput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
-    bSizer29->Add( m_lbVoiceInput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
+    m_lbVoiceInput = new wxListBox(m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE);\r
+    bSizer29->Add(m_lbVoiceInput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2);\r
 \r
-    m_textVoiceInput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer29->Add( m_textVoiceInput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
+    m_textVoiceInput = new wxTextCtrl(m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer29->Add(m_textVoiceInput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2);\r
 \r
 \r
-    sbSizer8->Add( bSizer29, 1, wxEXPAND, 5 );\r
+    sbSizer8->Add(bSizer29, 1, wxEXPAND, 5);\r
 \r
 \r
-    bSizer26->Add( sbSizer8, 1, wxEXPAND, 6 );\r
+    bSizer26->Add(sbSizer8, 1, wxEXPAND, 6);\r
 \r
     wxStaticBoxSizer* sbSizer9;\r
-    sbSizer9 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Voice Output") ), wxVERTICAL );\r
+    sbSizer9 = new wxStaticBoxSizer(new wxStaticBox(m_panelSettings, wxID_ANY, _("Voice Output")), wxVERTICAL);\r
 \r
     wxBoxSizer* bSizer30;\r
-    bSizer30 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer30 = new wxBoxSizer(wxVERTICAL);\r
 \r
-    m_lbVoiceOutput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
-    bSizer30->Add( m_lbVoiceOutput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
+    m_lbVoiceOutput = new wxListBox(m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE);\r
+    bSizer30->Add(m_lbVoiceOutput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2);\r
 \r
-    m_textVoiceOutput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    bSizer30->Add( m_textVoiceOutput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
+    m_textVoiceOutput = new wxTextCtrl(m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    bSizer30->Add(m_textVoiceOutput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2);\r
 \r
 \r
-    sbSizer9->Add( bSizer30, 1, wxEXPAND, 1 );\r
+    sbSizer9->Add(bSizer30, 1, wxEXPAND, 1);\r
 \r
 \r
-    bSizer26->Add( sbSizer9, 1, wxEXPAND, 6 );\r
+    bSizer26->Add(sbSizer9, 1, wxEXPAND, 6);\r
 \r
 \r
-    bSizer27->Add( bSizer26, 1, wxEXPAND, 1 );\r
+    bSizer27->Add(bSizer26, 1, wxEXPAND, 1);\r
 \r
 \r
-    m_panelSettings->SetSizer( bSizer27 );\r
+    m_panelSettings->SetSizer(bSizer27);\r
     m_panelSettings->Layout();\r
-    bSizer27->Fit( m_panelSettings );\r
-    m_nbAudioOptions->AddPage( m_panelSettings, _("Settings"), false );\r
+    bSizer27->Fit(m_panelSettings);\r
+    m_nbAudioOptions->AddPage(m_panelSettings, _("Settings"), false);\r
 \r
-    bSizer32->Add( m_nbAudioOptions, 1, wxEXPAND | wxALL, 1 );\r
+    bSizer32->Add(m_nbAudioOptions, 1, wxEXPAND | wxALL, 1);\r
 \r
     wxBoxSizer* bSizer28;\r
-    bSizer28 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer28 = new wxBoxSizer(wxVERTICAL);\r
 \r
     m_sdbSizer3 = new wxStdDialogButtonSizer();\r
-    m_sdbSizer3OK = new wxButton( this, wxID_OK );\r
-    m_sdbSizer3->AddButton( m_sdbSizer3OK );\r
-    m_sdbSizer3Apply = new wxButton( this, wxID_APPLY );\r
-    m_sdbSizer3->AddButton( m_sdbSizer3Apply );\r
-    m_sdbSizer3Cancel = new wxButton( this, wxID_CANCEL );\r
-    m_sdbSizer3->AddButton( m_sdbSizer3Cancel );\r
+    m_sdbSizer3OK = new wxButton(this, wxID_OK);\r
+    m_sdbSizer3->AddButton(m_sdbSizer3OK);\r
+    m_sdbSizer3Apply = new wxButton(this, wxID_APPLY);\r
+    m_sdbSizer3->AddButton(m_sdbSizer3Apply);\r
+    m_sdbSizer3Cancel = new wxButton(this, wxID_CANCEL);\r
+    m_sdbSizer3->AddButton(m_sdbSizer3Cancel);\r
     m_sdbSizer3->Realize();\r
 \r
-    bSizer28->Add( m_sdbSizer3, 1, wxEXPAND, 5 );\r
+    bSizer28->Add(m_sdbSizer3, 1, wxEXPAND, 5);\r
 \r
 \r
-    bSizer32->Add( bSizer28, 0, wxEXPAND, 5 );\r
+    bSizer32->Add(bSizer28, 0, wxEXPAND, 5);\r
 \r
 \r
-    bSizer32->Add( 0, 15, 0, wxEXPAND, 5 );\r
+    bSizer32->Add(0, 15, 0, wxEXPAND, 5);\r
 \r
 \r
-    this->SetSizer( bSizer32 );\r
+    this->SetSizer(bSizer32);\r
     this->Layout();\r
 \r
-    this->Centre( wxBOTH );\r
-    this->Centre( wxBOTH );\r
+    this->Centre(wxBOTH);\r
+    this->Centre(wxBOTH);\r
 \r
     // Connect Events\r
-    this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAudio::OnClose ) );\r
-    this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAudio::OnInitDialog ) );\r
-    m_lbRxInput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnRxInputSelect ), NULL, this );\r
-    m_lbTxOutput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnTxOutputSelect ), NULL, this );\r
-    m_lbVoiceInput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceInputSelect ), NULL, this );\r
-    m_lbVoiceOutput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceOutputSelect ), NULL, this );\r
-    m_sdbSizer3Apply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnApply ), NULL, this );\r
-    m_sdbSizer3Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnCancel ), NULL, this );\r
-    m_sdbSizer3OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnOK ), NULL, this );\r
+    this->Connect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(DlgAudio::OnClose));\r
+    this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(DlgAudio::OnInitDialog));\r
+    m_lbRxInput->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(DlgAudio::OnRxInputSelect), NULL, this);\r
+    m_lbTxOutput->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(DlgAudio::OnTxOutputSelect), NULL, this);\r
+    m_lbVoiceInput->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(DlgAudio::OnVoiceInputSelect), NULL, this);\r
+    m_lbVoiceOutput->Connect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(DlgAudio::OnVoiceOutputSelect), NULL, this);\r
+    m_sdbSizer3Apply->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgAudio::OnApply), NULL, this);\r
+    m_sdbSizer3Cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgAudio::OnCancel), NULL, this);\r
+    m_sdbSizer3OK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgAudio::OnOK), NULL, this);\r
 }\r
 \r
 DlgAudio::~DlgAudio()\r
 {\r
     // Disconnect Events\r
-    this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAudio::OnClose ) );\r
-    this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAudio::OnInitDialog ) );\r
-    m_lbRxInput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnRxInputSelect ), NULL, this );\r
-    m_lbTxOutput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnTxOutputSelect ), NULL, this );\r
-    m_lbVoiceInput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceInputSelect ), NULL, this );\r
-    m_lbVoiceOutput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceOutputSelect ), NULL, this );\r
-    m_sdbSizer3Apply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnApply ), NULL, this );\r
-    m_sdbSizer3Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnCancel ), NULL, this );\r
-    m_sdbSizer3OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnOK ), NULL, this );\r
+    this->Disconnect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(DlgAudio::OnClose));\r
+    this->Disconnect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(DlgAudio::OnInitDialog));\r
+    m_lbRxInput->Disconnect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(DlgAudio::OnRxInputSelect), NULL, this);\r
+    m_lbTxOutput->Disconnect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(DlgAudio::OnTxOutputSelect), NULL, this);\r
+    m_lbVoiceInput->Disconnect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(DlgAudio::OnVoiceInputSelect), NULL, this);\r
+    m_lbVoiceOutput->Disconnect(wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler(DlgAudio::OnVoiceOutputSelect), NULL, this);\r
+    m_sdbSizer3Apply->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgAudio::OnApply), NULL, this);\r
+    m_sdbSizer3Cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgAudio::OnCancel), NULL, this);\r
+    m_sdbSizer3OK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgAudio::OnOK), NULL, this);\r
 \r
 }\r
 \r
-DlgOptions::DlgOptions( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
+DlgOptions::DlgOptions(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxDialog(parent, id, title, pos, size, style)\r
 {\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
 \r
     wxBoxSizer* bSizer30;\r
-    bSizer30 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer30 = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxStaticBoxSizer* sbSizer5;\r
-    sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Config Options") ), wxHORIZONTAL );\r
+    sbSizer5 = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Config Options")), wxHORIZONTAL);\r
 \r
     wxGridSizer* gSizer2;\r
-    gSizer2 = new wxGridSizer( 6, 2, 0, 0 );\r
+    gSizer2 = new wxGridSizer(6, 2, 0, 0);\r
 \r
-    m_staticText2 = new wxStaticText( this, wxID_ANY, _("Option #1:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_staticText2->Wrap( -1 );\r
-    gSizer2->Add( m_staticText2, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText2 = new wxStaticText(this, wxID_ANY, _("Option #1:"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_staticText2->Wrap(-1);\r
+    gSizer2->Add(m_staticText2, 1, wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_textCtrl3 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer2->Add( m_textCtrl3, 1, wxALL, 5 );\r
+    m_textCtrl3 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer2->Add(m_textCtrl3, 1, wxALL, 5);\r
 \r
-    m_staticText3 = new wxStaticText( this, wxID_ANY, _("Option #2:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_staticText3->Wrap( -1 );\r
-    gSizer2->Add( m_staticText3, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText3 = new wxStaticText(this, wxID_ANY, _("Option #2:"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_staticText3->Wrap(-1);\r
+    gSizer2->Add(m_staticText3, 1, wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_textCtrl4 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer2->Add( m_textCtrl4, 1, wxALL, 5 );\r
+    m_textCtrl4 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer2->Add(m_textCtrl4, 1, wxALL, 5);\r
 \r
-    m_staticText4 = new wxStaticText( this, wxID_ANY, _("Option #3:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_staticText4->Wrap( -1 );\r
-    gSizer2->Add( m_staticText4, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText4 = new wxStaticText(this, wxID_ANY, _("Option #3:"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_staticText4->Wrap(-1);\r
+    gSizer2->Add(m_staticText4, 1, wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_textCtrl5 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer2->Add( m_textCtrl5, 1, wxALL, 5 );\r
+    m_textCtrl5 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer2->Add(m_textCtrl5, 1, wxALL, 5);\r
 \r
-    m_staticText5 = new wxStaticText( this, wxID_ANY, _("Option #4:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_staticText5->Wrap( -1 );\r
-    gSizer2->Add( m_staticText5, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText5 = new wxStaticText(this, wxID_ANY, _("Option #4:"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_staticText5->Wrap(-1);\r
+    gSizer2->Add(m_staticText5, 1, wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_textCtrl6 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer2->Add( m_textCtrl6, 1, wxALL, 5 );\r
+    m_textCtrl6 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer2->Add(m_textCtrl6, 1, wxALL, 5);\r
 \r
-    m_staticText6 = new wxStaticText( this, wxID_ANY, _("Option #5:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_staticText6->Wrap( -1 );\r
-    gSizer2->Add( m_staticText6, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText6 = new wxStaticText(this, wxID_ANY, _("Option #5:"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_staticText6->Wrap(-1);\r
+    gSizer2->Add(m_staticText6, 1, wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_textCtrl7 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer2->Add( m_textCtrl7, 1, wxALL, 5 );\r
+    m_textCtrl7 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer2->Add(m_textCtrl7, 1, wxALL, 5);\r
 \r
-    m_staticText7 = new wxStaticText( this, wxID_ANY, _("Option #6:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-    m_staticText7->Wrap( -1 );\r
-    gSizer2->Add( m_staticText7, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText7 = new wxStaticText(this, wxID_ANY, _("Option #6:"), wxDefaultPosition, wxDefaultSize, 0);\r
+    m_staticText7->Wrap(-1);\r
+    gSizer2->Add(m_staticText7, 1, wxALIGN_RIGHT|wxALL, 5);\r
 \r
-    m_textCtrl8 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer2->Add( m_textCtrl8, 1, wxALL, 5 );\r
+    m_textCtrl8 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer2->Add(m_textCtrl8, 1, wxALL, 5);\r
 \r
 \r
-    sbSizer5->Add( gSizer2, 1, wxEXPAND, 5 );\r
+    sbSizer5->Add(gSizer2, 1, wxEXPAND, 5);\r
 \r
 \r
-    bSizer30->Add( sbSizer5, 1, wxEXPAND, 5 );\r
+    bSizer30->Add(sbSizer5, 1, wxEXPAND, 5);\r
 \r
     m_sdbSizer4 = new wxStdDialogButtonSizer();\r
-    m_sdbSizer4OK = new wxButton( this, wxID_OK );\r
-    m_sdbSizer4->AddButton( m_sdbSizer4OK );\r
-    m_sdbSizer4Cancel = new wxButton( this, wxID_CANCEL );\r
-    m_sdbSizer4->AddButton( m_sdbSizer4Cancel );\r
+    m_sdbSizer4OK = new wxButton(this, wxID_OK);\r
+    m_sdbSizer4->AddButton(m_sdbSizer4OK);\r
+    m_sdbSizer4Cancel = new wxButton(this, wxID_CANCEL);\r
+    m_sdbSizer4->AddButton(m_sdbSizer4Cancel);\r
     m_sdbSizer4->Realize();\r
 \r
-    bSizer30->Add( m_sdbSizer4, 0, wxALIGN_RIGHT, 5 );\r
+    bSizer30->Add(m_sdbSizer4, 0, wxALIGN_RIGHT, 5);\r
 \r
 \r
-    this->SetSizer( bSizer30 );\r
+    this->SetSizer(bSizer30);\r
     this->Layout();\r
 \r
-    this->Centre( wxBOTH );\r
-    this->Centre( wxBOTH );\r
+    this->Centre(wxBOTH);\r
+    this->Centre(wxBOTH);\r
 \r
     // Connect Events\r
-    this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgOptions::OnClose ) );\r
-    this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgOptions::OnInitDialog ) );\r
+    this->Connect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(DlgOptions::OnClose));\r
+    this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(DlgOptions::OnInitDialog));\r
 }\r
 \r
 DlgOptions::~DlgOptions()\r
 {\r
     // Disconnect Events\r
-    this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgOptions::OnClose ) );\r
-    this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgOptions::OnInitDialog ) );\r
+    this->Disconnect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(DlgOptions::OnClose));\r
+    this->Disconnect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(DlgOptions::OnInitDialog));\r
 \r
 }\r
 \r
-DlgComPorts::DlgComPorts( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
+DlgComPorts::DlgComPorts(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style) : wxDialog(parent, id, title, pos, size, style)
 {\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
+    this->SetSizeHints(wxDefaultSize, wxDefaultSize);\r
 \r
     wxBoxSizer* bSizer30;\r
-    bSizer30 = new wxBoxSizer( wxVERTICAL );\r
+    bSizer30 = new wxBoxSizer(wxVERTICAL);\r
 \r
     wxGridSizer* gSizer3;\r
-    gSizer3 = new wxGridSizer( 6, 2, 0, 0 );\r
+    gSizer3 = new wxGridSizer(6, 2, 0, 0);\r
 \r
-    m_staticText8 = new wxStaticText( this, wxID_ANY, _("Available Ports:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-    m_staticText8->Wrap( -1 );\r
-    gSizer3->Add( m_staticText8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText8 = new wxStaticText(this, wxID_ANY, _("Available Ports:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);\r
+    m_staticText8->Wrap(-1);\r
+    gSizer3->Add(m_staticText8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2);\r
 \r
-    m_listCtrlPortSelect = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_ICON|wxLC_SINGLE_SEL );\r
-    gSizer3->Add( m_listCtrlPortSelect, 2, wxALL|wxEXPAND, 2 );\r
+    m_listCtrlPortSelect = new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_ICON|wxLC_SINGLE_SEL);\r
+    gSizer3->Add(m_listCtrlPortSelect, 2, wxALL|wxEXPAND, 2);\r
 \r
-    m_staticText9 = new wxStaticText( this, wxID_ANY, _("Use Port:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-    m_staticText9->Wrap( -1 );\r
-    gSizer3->Add( m_staticText9, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText9 = new wxStaticText(this, wxID_ANY, _("Use Port:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);\r
+    m_staticText9->Wrap(-1);\r
+    gSizer3->Add(m_staticText9, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2);\r
 \r
-    m_textRigCtrlPort = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer3->Add( m_textRigCtrlPort, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlPort = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer3->Add(m_textRigCtrlPort, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2);\r
 \r
-    m_staticText91 = new wxStaticText( this, wxID_ANY, _("Buad Rate:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-    m_staticText91->Wrap( -1 );\r
-    gSizer3->Add( m_staticText91, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText91 = new wxStaticText(this, wxID_ANY, _("Buad Rate:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);\r
+    m_staticText91->Wrap(-1);\r
+    gSizer3->Add(m_staticText91, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2);\r
 \r
-    m_textRigCtrlBaud = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer3->Add( m_textRigCtrlBaud, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlBaud = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer3->Add(m_textRigCtrlBaud, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2);\r
 \r
-    m_staticText911 = new wxStaticText( this, wxID_ANY, _("Data Bits:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-    m_staticText911->Wrap( -1 );\r
-    gSizer3->Add( m_staticText911, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText911 = new wxStaticText(this, wxID_ANY, _("Data Bits:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);\r
+    m_staticText911->Wrap(-1);\r
+    gSizer3->Add(m_staticText911, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2);\r
 \r
-    m_textRigCtrlDatabits = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer3->Add( m_textRigCtrlDatabits, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlDatabits = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer3->Add(m_textRigCtrlDatabits, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2);\r
 \r
-    m_staticText912 = new wxStaticText( this, wxID_ANY, _("Stop Bits:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-    m_staticText912->Wrap( -1 );\r
-    gSizer3->Add( m_staticText912, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText912 = new wxStaticText(this, wxID_ANY, _("Stop Bits:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);\r
+    m_staticText912->Wrap(-1);\r
+    gSizer3->Add(m_staticText912, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2);\r
 \r
-    m_textRigCtrlStopbits = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer3->Add( m_textRigCtrlStopbits, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlStopbits = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer3->Add(m_textRigCtrlStopbits, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2);\r
 \r
-    m_staticText913 = new wxStaticText( this, wxID_ANY, _("Parity:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-    m_staticText913->Wrap( -1 );\r
-    gSizer3->Add( m_staticText913, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText913 = new wxStaticText(this, wxID_ANY, _("Parity:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT);\r
+    m_staticText913->Wrap(-1);\r
+    gSizer3->Add(m_staticText913, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2);\r
 \r
-    m_textRigCtrlParity = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-    gSizer3->Add( m_textRigCtrlParity, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlParity = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);\r
+    gSizer3->Add(m_textRigCtrlParity, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2);\r
 \r
 \r
-    bSizer30->Add( gSizer3, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5 );\r
+    bSizer30->Add(gSizer3, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5);\r
 \r
     m_sdbSizer5 = new wxStdDialogButtonSizer();\r
-    m_sdbSizer5OK = new wxButton( this, wxID_OK );\r
-    m_sdbSizer5->AddButton( m_sdbSizer5OK );\r
-    m_sdbSizer5Apply = new wxButton( this, wxID_APPLY );\r
-    m_sdbSizer5->AddButton( m_sdbSizer5Apply );\r
-    m_sdbSizer5Cancel = new wxButton( this, wxID_CANCEL );\r
-    m_sdbSizer5->AddButton( m_sdbSizer5Cancel );\r
+    m_sdbSizer5OK = new wxButton(this, wxID_OK);\r
+    m_sdbSizer5->AddButton(m_sdbSizer5OK);\r
+    m_sdbSizer5Apply = new wxButton(this, wxID_APPLY);\r
+    m_sdbSizer5->AddButton(m_sdbSizer5Apply);\r
+    m_sdbSizer5Cancel = new wxButton(this, wxID_CANCEL);\r
+    m_sdbSizer5->AddButton(m_sdbSizer5Cancel);\r
     m_sdbSizer5->Realize();\r
 \r
-    bSizer30->Add( m_sdbSizer5, 0, wxEXPAND, 5 );\r
+    bSizer30->Add(m_sdbSizer5, 0, wxEXPAND, 5);\r
 \r
 \r
-    this->SetSizer( bSizer30 );\r
+    this->SetSizer(bSizer30);\r
     this->Layout();\r
 \r
-    this->Centre( wxBOTH );\r
-    this->Centre( wxBOTH );\r
+    this->Centre(wxBOTH);\r
+    this->Centre(wxBOTH);\r
 \r
     // Connect Events\r
-    this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgComPorts::OnInitDialog ) );\r
-    m_sdbSizer5Apply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnApply ), NULL, this );\r
-    m_sdbSizer5Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnCancel ), NULL, this );\r
-    m_sdbSizer5OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnOK ), NULL, this );\r
-    m_listCtrlPortSelect->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DlgComPorts::OnListItemSelected ), NULL, this );\r
+    this->Connect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(DlgComPorts::OnInitDialog));\r
+    m_sdbSizer5Apply->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgComPorts::OnApply), NULL, this);\r
+    m_sdbSizer5Cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgComPorts::OnCancel), NULL, this);\r
+    m_sdbSizer5OK->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgComPorts::OnOK), NULL, this);\r
+    m_listCtrlPortSelect->Connect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(DlgComPorts::OnListItemSelected), NULL, this);\r
 }\r
 \r
 DlgComPorts::~DlgComPorts()\r
 {\r
     // Disconnect Events\r
-    this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgComPorts::OnInitDialog ) );
-    m_listCtrlPortSelect->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DlgComPorts::OnListItemSelected ), NULL, this );\r
-    m_sdbSizer5Apply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnApply ), NULL, this );\r
-    m_sdbSizer5Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnCancel ), NULL, this );\r
-    m_sdbSizer5OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnOK ), NULL, this );\r
+    this->Disconnect(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(DlgComPorts::OnInitDialog));
+    m_listCtrlPortSelect->Disconnect(wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler(DlgComPorts::OnListItemSelected), NULL, this);\r
+    m_sdbSizer5Apply->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgComPorts::OnApply), NULL, this);\r
+    m_sdbSizer5Cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgComPorts::OnCancel), NULL, this);\r
+    m_sdbSizer5OK->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(DlgComPorts::OnOK), NULL, this);\r
 }\r