Bunches of work on portaudio, still not done. Added fdmdvBasic tor testing, it is...
authorwittend99 <wittend99@01035d8c-6547-0410-b346-abe4f91aad63>
Sun, 17 Jun 2012 15:00:29 +0000 (15:00 +0000)
committerwittend99 <wittend99@01035d8c-6547-0410-b346-abe4f91aad63>
Sun, 17 Jun 2012 15:00:29 +0000 (15:00 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@553 01035d8c-6547-0410-b346-abe4f91aad63

26 files changed:
fdmdv2/Release/fdmdv2.exe
fdmdv2/fdmdv2.mk
fdmdv2/fdmdv2.txt
fdmdv2/fdmdv2.workspace
fdmdv2/fdmdv2_main.cpp
fdmdv2/fdmdv2_main.h
fdmdv2/fdmdv2_wsp.mk
fdmdv2/fdmdv2basic/Release/fdmdv2basic.exe [new file with mode: 0644]
fdmdv2/fdmdv2basic/fdmdv2basic.mk [new file with mode: 0644]
fdmdv2/fdmdv2basic/fdmdv2basic.project [new file with mode: 0644]
fdmdv2/fdmdv2basic/fdmdv2basic.txt [new file with mode: 0644]
fdmdv2/fdmdv2basic/gui.cpp [new file with mode: 0644]
fdmdv2/fdmdv2basic/gui.fbp [new file with mode: 0644]
fdmdv2/fdmdv2basic/gui.fbp.bak [new file with mode: 0644]
fdmdv2/fdmdv2basic/gui.h [new file with mode: 0644]
fdmdv2/fdmdv2basic/gui.py [new file with mode: 0644]
fdmdv2/fdmdv2basic/main.cpp [new file with mode: 0644]
fdmdv2/fdmdv2basic/main.h [new file with mode: 0644]
fdmdv2/fdmdv2basic/paclass.cpp [new file with mode: 0644]
fdmdv2/fdmdv2basic/paclass.h [new file with mode: 0644]
fdmdv2/hamlib-3.0/test_hamlib/test_hamlib.mk
fdmdv2/libsndfile/Projects/w32-mingw/test_sndfile.mk
fdmdv2/pa_cppbinding_test/pa_cppbinding_test.mk
fdmdv2/pa_cppbinding_test/pa_cppbinding_test.project
fdmdv2/pa_test/pa_test.mk
fdmdv2/pa_test/pa_test.project

index 5bc524810d09cb2d38b6dc6fa47f29dbb07b7d61..fab8536db7dd9bb3bb3e67f7aa1267410dd1d931 100644 (file)
Binary files a/fdmdv2/Release/fdmdv2.exe and b/fdmdv2/Release/fdmdv2.exe differ
index 5350737d1bfc1605a7613d971ef34af9da2f060d..be63226192ade5ba79b869729c78fdd4e765b6f5 100644 (file)
@@ -2,10 +2,10 @@
 ## Auto Generated makefile by CodeLite IDE\r
 ## any manual changes will be erased      \r
 ##\r
-## Debug\r
+## Release\r
 ProjectName            :=fdmdv2\r
-ConfigurationName      :=Debug\r
-IntermediateDirectory  :=./Debug\r
+ConfigurationName      :=Release\r
+IntermediateDirectory  :=./Release\r
 OutDir                 := $(IntermediateDirectory)\r
 WorkspacePath          := "C:\Users\wittend\Projects\Radio\fdmdv2"\r
 ProjectPath            := "C:\Users\wittend\Projects\Radio\fdmdv2"\r
@@ -13,7 +13,7 @@ CurrentFileName        :=
 CurrentFilePath        :=\r
 CurrentFileFullPath    :=\r
 User                   :=wittend\r
-Date                   :=6/15/2012\r
+Date                   :=6/17/2012\r
 CodeLitePath           :="C:\Program Files\CodeLite"\r
 LinkerName             :=g++\r
 ArchiveTool            :=ar rcus\r
@@ -38,9 +38,9 @@ PreprocessOnlySwitch   :=-E
 ObjectsFileList        :="C:\Users\wittend\Projects\Radio\fdmdv2\fdmdv2.txt"\r
 PCHCompileFlags        :=\r
 MakeDirCommand         :=makedir\r
-CmpOptions             := -g -O0 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=yes) $(Preprocessors)\r
-C_CmpOptions           := -g -O0 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=yes) $(Preprocessors)\r
-LinkOptions            :=  -mwindows $(shell wx-config --debug=yes --libs --unicode=yes)\r
+CmpOptions             := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
+C_CmpOptions           := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
+LinkOptions            :=  -mwindows -s $(shell wx-config --debug=no --libs --unicode=yes)\r
 IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch)./extern/include \r
 IncludePCH             := \r
 RcIncludePath          := \r
@@ -71,7 +71,7 @@ $(OutputFile): $(IntermediateDirectory)/.d $(Objects)
        $(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)\r
 \r
 $(IntermediateDirectory)/.d:\r
-       @$(MakeDirCommand) "./Debug"\r
+       @$(MakeDirCommand) "./Release"\r
 \r
 PreBuild:\r
 \r
@@ -175,6 +175,6 @@ clean:
        $(RM) $(IntermediateDirectory)/paclass$(PreprocessSuffix)\r
        $(RM) $(OutputFile)\r
        $(RM) $(OutputFile).exe\r
-       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-debug\fdmdv2"\r
+       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-release\fdmdv2"\r
 \r
 \r
index fce2d890a835906ac52585e307b9767ba730aa1a..22a652a4fe258e3d4f655bf9d92bf91f683451fe 100644 (file)
@@ -1 +1 @@
-./Debug/topFrame.o ./Debug/dlg_about.o ./Debug/dlg_audio.o ./Debug/dlg_options.o ./Debug/dlg_comports.o ./Debug/fdmdv2_plot.o ./Debug/fdmdv2_main.o ./Debug/paclass.o  \r
+./Release/topFrame.o ./Release/dlg_about.o ./Release/dlg_audio.o ./Release/dlg_options.o ./Release/dlg_comports.o ./Release/fdmdv2_plot.o ./Release/fdmdv2_main.o ./Release/paclass.o  \r
index 75a4c32d8f53db78281d2e4afb5b3521d3e3d110..15ff7af48c13dbabc603a90d93687959916603e4 100644 (file)
@@ -5,8 +5,9 @@
   <Project Name="fdmdv2" Path="fdmdv2.project" Active="Yes"/>
   <Project Name="pa_test" Path="pa_test/pa_test.project" Active="No"/>
   <Project Name="pa_cppbinding_test" Path="pa_cppbinding_test/pa_cppbinding_test.project" Active="No"/>
+  <Project Name="fdmdv2basic" Path="fdmdv2basic/fdmdv2basic.project" Active="No"/>
   <BuildMatrix>
-    <WorkspaceConfiguration Name="Debug" Selected="yes">
+    <WorkspaceConfiguration Name="Debug" Selected="no">
       <Project Name="test_sndfile" ConfigName="Debug"/>
       <Project Name="test_portaudio" ConfigName="Debug"/>
       <Project Name="test_codec2" ConfigName="Debug"/>
@@ -15,8 +16,9 @@
       <Project Name="fdmdv2" ConfigName="Debug"/>
       <Project Name="pa_test" ConfigName="Debug"/>
       <Project Name="pa_cppbinding_test" ConfigName="Debug"/>
+      <Project Name="fdmdv2basic" ConfigName="Debug"/>
     </WorkspaceConfiguration>
-    <WorkspaceConfiguration Name="Release" Selected="no">
+    <WorkspaceConfiguration Name="Release" Selected="yes">
       <Project Name="test_sndfile" ConfigName="Release"/>
       <Project Name="test_portaudio" ConfigName="Release"/>
       <Project Name="test_codec2" ConfigName="Release"/>
@@ -25,6 +27,7 @@
       <Project Name="fdmdv2" ConfigName="Release"/>
       <Project Name="pa_test" ConfigName="Release"/>
       <Project Name="pa_cppbinding_test" ConfigName="Release"/>
+      <Project Name="fdmdv2basic" ConfigName="Release"/>
     </WorkspaceConfiguration>
   </BuildMatrix>
 </CodeLite_Workspace>
index b707ed16910b22fddf5320b53484737160fc6f99..d1b10c9cdae601d865785ae8e865c240b156fd23 100644 (file)
 #define wxUSE_PCX       1\r
 #define wxUSE_LIBTIFF   1\r
 \r
+static int rxCallback(\r
+                        const void *inBuffer,\r
+                        void *outBuffer,\r
+                        unsigned long framesPerBuffer,\r
+                        const PaStreamCallbackTimeInfo *outTime,\r
+                        PaStreamCallbackFlags statusFlags,\r
+                        void *userData\r
+                     );\r
+static int txCallback(\r
+                        const void *inBuffer,\r
+                        void *outBuffer,\r
+                        unsigned long framesPerBuffer,\r
+                        const PaStreamCallbackTimeInfo *outTime,\r
+                        PaStreamCallbackFlags statusFlags,\r
+                        void *userData\r
+                     );\r
+\r
 // initialize the application\r
 IMPLEMENT_APP(MainApp);\r
 \r
@@ -48,7 +65,7 @@ bool MainApp::OnInit()
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
 MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)\r
 {\r
-    m_radioRunning      = false;\r
+//    m_radioRunning      = false;\r
     m_sound             = NULL;\r
     m_zoom              = 1.;\r
     m_SquelchActive     = false;\r
@@ -79,6 +96,7 @@ void MainFrame::OnCloseFrame(wxCloseEvent& event)
 //-------------------------------------------------------------------------\r
 void MainFrame::OnExitClick(wxCommandEvent& event)\r
 {\r
+    Pa_Terminate();\r
     Destroy();\r
 }\r
 \r
@@ -204,9 +222,9 @@ void MainFrame::OnTogBtnALCClick(wxCommandEvent& event)
 }\r
 \r
 //-------------------------------------------------------------------------\r
-// codec2Callback()\r
+// rxCallback()\r
 //-------------------------------------------------------------------------\r
-static int codec2Callback(\r
+static int rxCallback(\r
                             const void *inBuffer,\r
                             void *outBuffer,\r
                             unsigned long framesPerBuffer,\r
@@ -237,9 +255,9 @@ static int codec2Callback(
 }
 \r
 //-------------------------------------------------------------------------\r
-// audioCallback()\r
+// txCallback()\r
 //-------------------------------------------------------------------------\r
-static int audioCallback(   const void *inBuffer,\r
+static int txCallback(   const void *inBuffer,\r
                             void *outBuffer,\r
                             unsigned long framesPerBuffer,\r
                             const PaStreamCallbackTimeInfo *outTime,\r
@@ -268,47 +286,26 @@ static int audioCallback(   const void *inBuffer,
     return paContinue;                              // 0;\r
 }
 \r
+//-------------------------------------------------------------------------\r
+// OnTogBtnOnOff()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)\r
+{\r
+    if((!m_TxRunning) || (!m_RxRunning))\r
+    {\r
+        startRxStream();\r
+        startTxStream();\r
+        m_togBtnOnOff->SetLabel(wxT("Stop"));\r
+    }\r
+    else\r
+    {\r
+        stopRxStream();\r
+        stopTxStream();\r
+        m_togBtnOnOff->SetLabel(wxT("Start"));\r
+    }\r
+}\r
+\r
 /*\r
-#define FUZZ(x) CubicAmplifier(CubicAmplifier(CubicAmplifier(CubicAmplifier(x))))
-static int gNumNoInputs = 0;\r
-//-------------------------------------------------------------------------\r
-// fuzzCallback()\r
-//-------------------------------------------------------------------------\r
-static int fuzzCallback(const void *inputBuffer,
-                        void *outputBuffer,
-                        unsigned long framesPerBuffer,
-                        const pa->treamCallbackTimeInfo* timeInfo,
-                        pa->treamCallbackFlags statusFlags,
-                        void *userData)
-{
-    SAMPLE *out = (SAMPLE*)outputBuffer;
-    const SAMPLE *in = (const SAMPLE*)inputBuffer;
-    unsigned int i;
-    (void) timeInfo;                        // Prevent unused variable warnings.
-    (void) statusFlags;
-    (void) userData;
-
-    if(inputBuffer == NULL)
-    {
-        for(i = 0; i < framesPerBuffer; i++)
-        {
-            *out++ = 0;                     // left - silent
-            *out++ = 0;                     // right - silent
-        }
-        gNumNoInputs += 1;
-    }
-    else
-    {
-        for(i = 0; i < framesPerBuffer; i++)
-        {
-            *out++ = FUZZ(*in++);           // left - distorted
-            *out++ = *in++;                 // right - clean
-        }
-    }
-    return pa->ontinue;
-}
-*/\r
-
 //-------------------------------------------------------------------------\r
 // OnTogBtnOnOff()\r
 //-------------------------------------------------------------------------\r
@@ -348,7 +345,7 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)
         err = pa->setFramesPerBuffer(FRAMES_PER_BUFFER);
         err = pa->setSampleRate(SAMPLE_RATE);
         err = pa->setStreamFlags(0);
-        err = pa->setCallback(audioCallback);
+        err = pa->setCallback(txCallback);
         err = pa->streamOpen();
 
         if(err != paNoError)
@@ -374,6 +371,173 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)
         m_togBtnOnOff->SetLabel(wxT("Start"));\r
     }\r
 }\r
+*/\r
+\r
+//-------------------------------------------------------------------------\r
+// startRxStream()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::startRxStream()\r
+{\r
+    if(!m_RxRunning)\r
+    {\r
+        m_RxRunning = true;\r
+        m_rxPa = new PortAudioWrap();
+
+        m_rxDevIn = m_rxPa->getDefaultInputDevice();                   // default input device
+        if(m_rxDevIn == paNoDevice)
+        {
+            wxMessageBox(wxT("Rx Error: No default input device."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_rxErr = m_rxPa->setInputDevice(m_rxDevIn);
+        m_rxErr = m_rxPa->setInputChannelCount(2);                           // stereo input
+        m_rxErr = m_rxPa->setInputSampleFormat(PA_SAMPLE_TYPE);
+        m_rxErr = m_rxPa->setInputLatency(m_rxPa->getInputDefaultLowLatency());\r
+        m_rxPa->setInputHostApiStreamInfo(NULL);
+
+        m_rxDevOut = m_rxPa->getDefaultOutputDevice();                 // default output device
+        if (m_rxDevOut == paNoDevice)
+        {
+            wxMessageBox(wxT("Rx Error: No default output device."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_rxErr = m_rxPa->setOutputDevice(m_rxDevOut);
+        m_rxErr = m_rxPa->setOutputChannelCount(2);                           // stereo input
+        m_rxErr = m_rxPa->setOutputSampleFormat(PA_SAMPLE_TYPE);\r
+
+        m_rxErr = m_rxPa->setOutputLatency(m_rxPa->getOutputDefaultLowLatency());
+        m_rxPa->setOutputHostApiStreamInfo(NULL);
+
+        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->setCallback(rxCallback);
+        m_rxErr = m_rxPa->streamOpen();
+
+        if(m_rxErr != paNoError)
+        {
+            wxMessageBox(wxT("Rx Stream Open/Setup error."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_rxErr = m_rxPa->streamStart();
+        if(m_rxErr != paNoError)
+        {
+            wxMessageBox(wxT("Rx Stream Start Error."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+//        OnTogBtnOnOff->SetLabel(wxT("Stop"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// stopRxStream()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::stopRxStream()\r
+{\r
+    if(m_RxRunning)\r
+    {\r
+        m_RxRunning = false;\r
+        m_rxPa->stop();\r
+        m_rxPa->streamClose();\r
+//        OnTogBtnOnOff->SetLabel(wxT("Start"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// abortRxStream()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::abortRxStream()\r
+{\r
+    if(m_RxRunning)\r
+    {\r
+        m_RxRunning = false;\r
+        m_rxPa->abort();\r
+//        OnTogBtnOnOff->SetLabel(wxT("Start"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// startTxStream()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::startTxStream()\r
+{\r
+    if(!m_TxRunning)\r
+    {\r
+        m_TxRunning = true;\r
+        m_txPa = new PortAudioWrap();
+
+        m_txDevIn = m_txPa->getDefaultInputDevice();                   // default input device
+        if(m_txDevIn == paNoDevice)
+        {
+            wxMessageBox(wxT("Tx Error: No default input device."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_txErr = m_txPa->setInputDevice(m_txDevIn);
+        m_txErr = m_txPa->setInputChannelCount(2);                           // stereo input
+        m_txErr = m_txPa->setInputSampleFormat(PA_SAMPLE_TYPE);
+        m_txErr = m_txPa->setInputLatency(m_txPa->getInputDefaultLowLatency());\r
+        m_txPa->setInputHostApiStreamInfo(NULL);
+
+        m_txDevOut = m_txPa->getDefaultOutputDevice();                 // default output device
+        if (m_txDevOut == paNoDevice)
+        {
+            wxMessageBox(wxT("Tx Error: No default output device."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_txErr = m_txPa->setOutputDevice(m_txDevOut);
+        m_txErr = m_txPa->setOutputChannelCount(2);                           // stereo input
+        m_txErr = m_txPa->setOutputSampleFormat(PA_SAMPLE_TYPE);\r
+
+        m_txErr = m_txPa->setOutputLatency(m_txPa->getOutputDefaultLowLatency());
+        m_txPa->setOutputHostApiStreamInfo(NULL);
+
+        m_txErr = m_txPa->setFramesPerBuffer(FRAMES_PER_BUFFER);
+        m_txErr = m_txPa->setSampleRate(SAMPLE_RATE);
+        m_txErr = m_txPa->setStreamFlags(0);
+        m_txErr = m_txPa->setCallback(txCallback);
+        m_txErr = m_txPa->streamOpen();
+
+        if(m_txErr != paNoError)
+        {
+            wxMessageBox(wxT("Tx Stream Open/Setup error."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_txErr = m_txPa->streamStart();
+        if(m_txErr != paNoError)
+        {
+            wxMessageBox(wxT("Tx Stream Start Error."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+//        OnTogBtnOnOff->SetLabel(wxT("Stop"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// stopTxStream()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::stopTxStream()\r
+{\r
+    if(m_TxRunning)\r
+    {\r
+        m_TxRunning = false;\r
+        m_txPa->stop();\r
+        m_txPa->streamClose();\r
+//        OnTogBtnOnOff->SetLabel(wxT("Start"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// abortTxStream()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::abortTxStream()\r
+{\r
+    if(m_TxRunning)\r
+    {\r
+        m_TxRunning = false;\r
+        m_txPa->abort();\r
+//        OnTogBtnOnOff->SetLabel(wxT("Start"));\r
+    }\r
+}\r
 \r
 //-------------------------------------------------------------------------\r
 // OnOpen()\r
@@ -559,7 +723,7 @@ void MainFrame::OnToolsComCfg( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnToolsComCfgUI( wxUpdateUIEvent& event )\r
 {\r
-    event.Enable(!m_radioRunning);\r
+    event.Enable((!m_TxRunning) && (!m_RxRunning));\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -612,7 +776,7 @@ wxString MainFrame::LoadUserImage(wxImage& image)
 //-------------------------------------------------------------------------\r
 void MainFrame::OnSave(wxCommandEvent& WXUNUSED(event))\r
 {\r
-    wxImage image = m_bitmap.ConvertToImage();\r
//   wxImage image = m_bitmap.ConvertToImage();\r
 \r
     wxString savefilename = wxFileSelector(wxT("Save Sound File"),\r
                                            wxEmptyString,\r
@@ -632,6 +796,7 @@ void MainFrame::OnSave(wxCommandEvent& WXUNUSED(event))
     wxString extension;\r
     wxFileName::SplitPath(savefilename, NULL, NULL, &extension);\r
     bool saved = false;\r
+/*\r
     if(extension == wxT("bmp"))\r
     {\r
         static const int bppvalues[] =\r
@@ -760,6 +925,7 @@ void MainFrame::OnSave(wxCommandEvent& WXUNUSED(event))
         // specified image format:\r
         saved = image.SaveFile(savefilename, wxBITMAP_TYPE_CUR);\r
     }\r
+*/\r
     if(!saved)\r
     {\r
         // This one guesses image format from filename extension\r
index edcf8c5264c05e554e84b5eebb3241f60714ad8b..74df88a46461cba54bf785558fb0426def1d02a2 100644 (file)
@@ -81,14 +81,20 @@ class MainFrame : public TopFrame
         DrawPanel*      m_panelWaterfall;\r
         DrawPanel*      m_panelExtra1;\r
         DrawPanel*      m_panelExtra2;\r
-        bool            m_radioRunning;\r
+//        bool            m_radioRunning;\r
         bool            m_SquelchActive;\r
+        bool            m_RxRunning;\r
+        bool            m_TxRunning;\r
         CODEC2          *m_RXCodec2;\r
         CODEC2          *m_TXCodec2;\r
-        PortAudioWrap   *pa;\r
-        PaError         err;
-        PaDeviceIndex   inputDevice;
-        PaDeviceIndex   outputDevice;
+        PortAudioWrap   *m_rxPa;
+        PortAudioWrap   *m_txPa;
+        PaDeviceIndex   m_rxDevIn;
+        PaDeviceIndex   m_rxDevOut;
+        PaDeviceIndex   m_txDevIn;
+        PaDeviceIndex   m_txDevOut;
+        PaError         m_rxErr;
+        PaError         m_txErr;
 
 //        PortAudioWrap   stream;\r
 //        portaudio::AutoSystem autoSys;\r
@@ -110,6 +116,12 @@ class MainFrame : public TopFrame
         virtual void OnCloseFrame(wxCloseEvent& event);
         virtual void OnExitClick(wxCommandEvent& event);
 
+        void startTxStream();\r
+        void startRxStream();\r
+        void stopTxStream();\r
+        void stopRxStream();\r
+        void abortTxStream();\r
+        void abortRxStream();\r
         void OnOpen( wxCommandEvent& event );\r
         void OnOpenUpdateUI( wxUpdateUIEvent& event );\r
         void OnSave( wxCommandEvent& event );\r
index dd8060fabdc87d30d9341dff1da066b246e31109..359a9f63279ae4b50622056b8e386244b86f8f85 100644 (file)
@@ -1,8 +1,8 @@
 .PHONY: clean All
 
 All:
-       @echo ----------Building project:[ fdmdv2 - Debug ]----------
+       @echo ----------Building project:[ fdmdv2 - Release ]----------
        @"mingw32-make.exe"  -j 2 -f "fdmdv2.mk"
 clean:
-       @echo ----------Cleaning project:[ fdmdv2 - Debug ]----------
+       @echo ----------Cleaning project:[ fdmdv2 - Release ]----------
        @"mingw32-make.exe"  -j 2 -f "fdmdv2.mk" clean
diff --git a/fdmdv2/fdmdv2basic/Release/fdmdv2basic.exe b/fdmdv2/fdmdv2basic/Release/fdmdv2basic.exe
new file mode 100644 (file)
index 0000000..e9084f6
Binary files /dev/null and b/fdmdv2/fdmdv2basic/Release/fdmdv2basic.exe differ
diff --git a/fdmdv2/fdmdv2basic/fdmdv2basic.mk b/fdmdv2/fdmdv2basic/fdmdv2basic.mk
new file mode 100644 (file)
index 0000000..14994a7
--- /dev/null
@@ -0,0 +1,125 @@
+##\r
+## Auto Generated makefile by CodeLite IDE\r
+## any manual changes will be erased      \r
+##\r
+## Release\r
+ProjectName            :=fdmdv2basic\r
+ConfigurationName      :=Release\r
+IntermediateDirectory  :=./Release\r
+OutDir                 := $(IntermediateDirectory)\r
+WorkspacePath          := "C:\Users\wittend\Projects\Radio\fdmdv2"\r
+ProjectPath            := "C:\Users\wittend\Projects\Radio\fdmdv2\fdmdv2basic"\r
+CurrentFileName        :=\r
+CurrentFilePath        :=\r
+CurrentFileFullPath    :=\r
+User                   :=wittend\r
+Date                   :=6/16/2012\r
+CodeLitePath           :="C:\Program Files\CodeLite"\r
+LinkerName             :=g++\r
+ArchiveTool            :=ar rcus\r
+SharedObjectLinkerName :=g++ -shared -fPIC\r
+ObjectSuffix           :=.o\r
+DependSuffix           :=.o.d\r
+PreprocessSuffix       :=.o.i\r
+DebugSwitch            :=-gstab\r
+IncludeSwitch          :=-I\r
+LibrarySwitch          :=-l\r
+OutputSwitch           :=-o \r
+LibraryPathSwitch      :=-L\r
+PreprocessorSwitch     :=-D\r
+SourceSwitch           :=-c \r
+CompilerName           :=g++\r
+C_CompilerName         :=gcc\r
+OutputFile             :=$(IntermediateDirectory)/$(ProjectName)\r
+Preprocessors          :=$(PreprocessorSwitch)__WX__ \r
+ObjectSwitch           :=-o \r
+ArchiveOutputSwitch    := \r
+PreprocessOnlySwitch   :=-E \r
+ObjectsFileList        :="C:\Users\wittend\Projects\Radio\fdmdv2\fdmdv2basic\fdmdv2basic.txt"\r
+PCHCompileFlags        :=\r
+MakeDirCommand         :=makedir\r
+CmpOptions             := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
+C_CmpOptions           := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
+LinkOptions            :=  -mwindows -s $(shell wx-config --debug=no --libs --unicode=yes)\r
+IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch)./../extern/include \r
+IncludePCH             := \r
+RcIncludePath          := \r
+Libs                   := $(LibrarySwitch)sndfile-1 $(LibrarySwitch)codec2 $(LibrarySwitch)portaudio $(LibrarySwitch)portaudiocpp \r
+LibPath                := $(LibraryPathSwitch). $(LibraryPathSwitch)./../libsndfile/bin $(LibraryPathSwitch)./../extern/lib \r
+\r
+\r
+##\r
+## User defined environment variables\r
+##\r
+CodeLiteDir:=C:\Program Files\CodeLite\r
+WXWIN:=C:\bin\wxWidgets-2.9.4\r
+PATH:=$(WXWIN)\lib\gcc_dll;$(PATH)\r
+WXCFG:=gcc_dll\mswu\r
+UNIT_TEST_PP_SRC_DIR:=C:\bin\UnitTest++-1.3\r
+Objects=$(IntermediateDirectory)/gui$(ObjectSuffix) $(IntermediateDirectory)/main$(ObjectSuffix) $(IntermediateDirectory)/paclass$(ObjectSuffix) \r
+\r
+##\r
+## Main Build Targets \r
+##\r
+.PHONY: all clean PreBuild PrePreBuild PostBuild\r
+all: $(OutputFile)\r
+\r
+$(OutputFile): $(IntermediateDirectory)/.d $(Objects) \r
+       @$(MakeDirCommand) $(@D)\r
+       @echo "" > $(IntermediateDirectory)/.d\r
+       @echo $(Objects) > $(ObjectsFileList)\r
+       $(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)\r
+\r
+$(IntermediateDirectory)/.d:\r
+       @$(MakeDirCommand) "./Release"\r
+\r
+PreBuild:\r
+\r
+\r
+##\r
+## Objects\r
+##\r
+$(IntermediateDirectory)/gui$(ObjectSuffix): gui.cpp $(IntermediateDirectory)/gui$(DependSuffix)\r
+       $(CompilerName) $(IncludePCH) $(SourceSwitch) "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/gui.cpp" $(CmpOptions) $(ObjectSwitch)$(IntermediateDirectory)/gui$(ObjectSuffix) $(IncludePath)\r
+$(IntermediateDirectory)/gui$(DependSuffix): gui.cpp\r
+       @$(CompilerName) $(CmpOptions) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/gui$(ObjectSuffix) -MF$(IntermediateDirectory)/gui$(DependSuffix) -MM "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/gui.cpp"\r
+\r
+$(IntermediateDirectory)/gui$(PreprocessSuffix): gui.cpp\r
+       @$(CompilerName) $(CmpOptions) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/gui$(PreprocessSuffix) "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/gui.cpp"\r
+\r
+$(IntermediateDirectory)/main$(ObjectSuffix): main.cpp $(IntermediateDirectory)/main$(DependSuffix)\r
+       $(CompilerName) $(IncludePCH) $(SourceSwitch) "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/main.cpp" $(CmpOptions) $(ObjectSwitch)$(IntermediateDirectory)/main$(ObjectSuffix) $(IncludePath)\r
+$(IntermediateDirectory)/main$(DependSuffix): main.cpp\r
+       @$(CompilerName) $(CmpOptions) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/main$(ObjectSuffix) -MF$(IntermediateDirectory)/main$(DependSuffix) -MM "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/main.cpp"\r
+\r
+$(IntermediateDirectory)/main$(PreprocessSuffix): main.cpp\r
+       @$(CompilerName) $(CmpOptions) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/main$(PreprocessSuffix) "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/main.cpp"\r
+\r
+$(IntermediateDirectory)/paclass$(ObjectSuffix): paclass.cpp $(IntermediateDirectory)/paclass$(DependSuffix)\r
+       $(CompilerName) $(IncludePCH) $(SourceSwitch) "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/paclass.cpp" $(CmpOptions) $(ObjectSwitch)$(IntermediateDirectory)/paclass$(ObjectSuffix) $(IncludePath)\r
+$(IntermediateDirectory)/paclass$(DependSuffix): paclass.cpp\r
+       @$(CompilerName) $(CmpOptions) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/paclass$(ObjectSuffix) -MF$(IntermediateDirectory)/paclass$(DependSuffix) -MM "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/paclass.cpp"\r
+\r
+$(IntermediateDirectory)/paclass$(PreprocessSuffix): paclass.cpp\r
+       @$(CompilerName) $(CmpOptions) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/paclass$(PreprocessSuffix) "C:/Users/wittend/Projects/Radio/fdmdv2/fdmdv2basic/paclass.cpp"\r
+\r
+\r
+-include $(IntermediateDirectory)/*$(DependSuffix)\r
+##\r
+## Clean\r
+##\r
+clean:\r
+       $(RM) $(IntermediateDirectory)/gui$(ObjectSuffix)\r
+       $(RM) $(IntermediateDirectory)/gui$(DependSuffix)\r
+       $(RM) $(IntermediateDirectory)/gui$(PreprocessSuffix)\r
+       $(RM) $(IntermediateDirectory)/main$(ObjectSuffix)\r
+       $(RM) $(IntermediateDirectory)/main$(DependSuffix)\r
+       $(RM) $(IntermediateDirectory)/main$(PreprocessSuffix)\r
+       $(RM) $(IntermediateDirectory)/paclass$(ObjectSuffix)\r
+       $(RM) $(IntermediateDirectory)/paclass$(DependSuffix)\r
+       $(RM) $(IntermediateDirectory)/paclass$(PreprocessSuffix)\r
+       $(RM) $(OutputFile)\r
+       $(RM) $(OutputFile).exe\r
+       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-release\fdmdv2basic"\r
+\r
+\r
diff --git a/fdmdv2/fdmdv2basic/fdmdv2basic.project b/fdmdv2/fdmdv2basic/fdmdv2basic.project
new file mode 100644 (file)
index 0000000..13f6c19
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CodeLite_Project Name="fdmdv2basic" InternalType="GUI">
+  <Plugins>
+    <Plugin Name="qmake">
+      <![CDATA[00010001N0007Release000000000000]]>
+    </Plugin>
+  </Plugins>
+  <Description/>
+  <Dependencies/>
+  <VirtualDirectory Name="src">
+    <File Name="gui.cpp"/>
+    <File Name="main.cpp"/>
+    <File Name="paclass.cpp"/>
+  </VirtualDirectory>
+  <VirtualDirectory Name="include">
+    <File Name="gui.h"/>
+    <File Name="main.h"/>
+    <File Name="paclass.h"/>
+  </VirtualDirectory>
+  <VirtualDirectory Name="resources">
+    <File Name="gui.fbp"/>
+  </VirtualDirectory>
+  <Settings Type="Executable">
+    <GlobalSettings>
+      <Compiler Options="" C_Options="">
+        <IncludePath Value="."/>
+      </Compiler>
+      <Linker Options="">
+        <LibraryPath Value="."/>
+      </Linker>
+      <ResourceCompiler Options=""/>
+    </GlobalSettings>
+    <Configuration Name="Debug" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
+      <Compiler Options="-g;-O0;-Wall;$(shell wx-config --cxxflags --unicode=yes --debug=yes)" C_Options="-g;-O0;-Wall;$(shell wx-config --cxxflags --unicode=yes --debug=yes)" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" UseDifferentPCHFlags="no" PCHFlags="">
+        <Preprocessor Value="__WX__"/>
+      </Compiler>
+      <Linker Options="-mwindows;$(shell wx-config --debug=yes --libs --unicode=yes)" Required="yes"/>
+      <ResourceCompiler Options="$(shell wx-config --rcflags)" Required="no"/>
+      <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Debug" Command="./$(ProjectName)" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/>
+      <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
+        <![CDATA[]]>
+      </Environment>
+      <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="">
+        <PostConnectCommands/>
+        <StartupCommands/>
+      </Debugger>
+      <PreBuild/>
+      <PostBuild/>
+      <CustomBuild Enabled="no">
+        <RebuildCommand/>
+        <CleanCommand/>
+        <BuildCommand/>
+        <PreprocessFileCommand/>
+        <SingleFileCommand/>
+        <MakefileGenerationCommand/>
+        <ThirdPartyToolName>None</ThirdPartyToolName>
+        <WorkingDirectory/>
+      </CustomBuild>
+      <AdditionalRules>
+        <CustomPostBuild/>
+        <CustomPreBuild/>
+      </AdditionalRules>
+      <Completion EnableCpp11="no">
+        <ClangCmpFlags/>
+        <ClangPP/>
+        <SearchPaths/>
+      </Completion>
+    </Configuration>
+    <Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
+      <Compiler Options="-O2;-Wall;$(shell wx-config --cxxflags --unicode=yes --debug=no)" C_Options="-O2;-Wall;$(shell wx-config --cxxflags --unicode=yes --debug=no)" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" UseDifferentPCHFlags="no" PCHFlags="">
+        <IncludePath Value="./../extern/include"/>
+        <Preprocessor Value="__WX__"/>
+      </Compiler>
+      <Linker Options="-mwindows;-s;$(shell wx-config --debug=no --libs --unicode=yes)" Required="yes">
+        <LibraryPath Value="./../libsndfile/bin"/>
+        <LibraryPath Value="./../extern/lib"/>
+        <Library Value="libsndfile-1.dll"/>
+        <Library Value="libcodec2.a"/>
+        <Library Value="libportaudio.a"/>
+        <Library Value="libportaudiocpp.a"/>
+      </Linker>
+      <ResourceCompiler Options="$(shell wx-config --rcflags)" Required="no"/>
+      <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes"/>
+      <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
+        <![CDATA[]]>
+      </Environment>
+      <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="">
+        <PostConnectCommands/>
+        <StartupCommands/>
+      </Debugger>
+      <PreBuild/>
+      <PostBuild/>
+      <CustomBuild Enabled="no">
+        <RebuildCommand/>
+        <CleanCommand/>
+        <BuildCommand/>
+        <PreprocessFileCommand/>
+        <SingleFileCommand/>
+        <MakefileGenerationCommand/>
+        <ThirdPartyToolName>None</ThirdPartyToolName>
+        <WorkingDirectory/>
+      </CustomBuild>
+      <AdditionalRules>
+        <CustomPostBuild/>
+        <CustomPreBuild/>
+      </AdditionalRules>
+      <Completion EnableCpp11="no">
+        <ClangCmpFlags/>
+        <ClangPP/>
+        <SearchPaths/>
+      </Completion>
+    </Configuration>
+  </Settings>
+</CodeLite_Project>
diff --git a/fdmdv2/fdmdv2basic/fdmdv2basic.txt b/fdmdv2/fdmdv2basic/fdmdv2basic.txt
new file mode 100644 (file)
index 0000000..04bdf84
--- /dev/null
@@ -0,0 +1 @@
+./Release/gui.o ./Release/main.o ./Release/paclass.o  \r
diff --git a/fdmdv2/fdmdv2basic/gui.cpp b/fdmdv2/fdmdv2basic/gui.cpp
new file mode 100644 (file)
index 0000000..a6a6cf7
--- /dev/null
@@ -0,0 +1,186 @@
+///////////////////////////////////////////////////////////////////////////\r
+// C++ code generated with wxFormBuilder (version Mar 17 2012)\r
+// http://www.wxformbuilder.org/\r
+//\r
+// PLEASE DO "NOT" EDIT THIS FILE!\r
+///////////////////////////////////////////////////////////////////////////\r
+\r
+#include "gui.h"\r
+\r
+///////////////////////////////////////////////////////////////////////////\r
+\r
+MainDialogBase::MainDialogBase( 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( wxSize( -1,-1 ), wxDefaultSize );\r
+       \r
+       wxBoxSizer* mainSizer;\r
+       mainSizer = new wxBoxSizer( wxVERTICAL );\r
+       \r
+       wxBoxSizer* bSizer2;\r
+       bSizer2 = new wxBoxSizer( wxHORIZONTAL );\r
+       \r
+       wxStaticBoxSizer* sbSizer1;\r
+       sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Settings") ), wxVERTICAL );\r
+       \r
+       wxGridSizer* gSizer4;\r
+       gSizer4 = new wxGridSizer( 3, 1, 0, 0 );\r
+       \r
+       wxStaticBoxSizer* sbSizer3;\r
+       sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Audio") ), wxVERTICAL );\r
+       \r
+       wxGridSizer* gSizer1;\r
+       gSizer1 = new wxGridSizer( 4, 2, 0, 0 );\r
+       \r
+       m_staticText1 = new wxStaticText( this, wxID_ANY, _("Rx In (radio):"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       m_staticText1->Wrap( -1 );\r
+       gSizer1->Add( m_staticText1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+       \r
+       m_comboRxIn = new wxComboBox( this, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
+       gSizer1->Add( m_comboRxIn, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 2 );\r
+       \r
+       m_staticText2 = new wxStaticText( this, wxID_ANY, _("Rx Out (spkr):"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       m_staticText2->Wrap( -1 );\r
+       gSizer1->Add( m_staticText2, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+       \r
+       m_comboRxOut = new wxComboBox( this, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
+       gSizer1->Add( m_comboRxOut, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 2 );\r
+       \r
+       m_staticText3 = new wxStaticText( this, wxID_ANY, _("Tx In (mic):"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       m_staticText3->Wrap( -1 );\r
+       gSizer1->Add( m_staticText3, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+       \r
+       m_comboTxIn = new wxComboBox( this, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
+       gSizer1->Add( m_comboTxIn, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 2 );\r
+       \r
+       m_staticText4 = new wxStaticText( this, wxID_ANY, _("Tx Out (radio):"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       m_staticText4->Wrap( -1 );\r
+       gSizer1->Add( m_staticText4, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+       \r
+       m_comboTxOut = new wxComboBox( this, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
+       gSizer1->Add( m_comboTxOut, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 2 );\r
+       \r
+       \r
+       sbSizer3->Add( gSizer1, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxFIXED_MINSIZE, 2 );\r
+       \r
+       \r
+       gSizer4->Add( sbSizer3, 1, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxFIXED_MINSIZE, 5 );\r
+       \r
+       wxStaticBoxSizer* sbSizer4;\r
+       sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("label") ), wxVERTICAL );\r
+       \r
+       wxGridSizer* gSizer111;\r
+       gSizer111 = new wxGridSizer( 2, 2, 0, 0 );\r
+       \r
+       m_staticText111 = new wxStaticText( this, wxID_ANY, _("Rate:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       m_staticText111->Wrap( -1 );\r
+       gSizer111->Add( m_staticText111, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+       \r
+       m_comboBox111 = new wxComboBox( this, wxID_ANY, _("Combo!"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
+       gSizer111->Add( m_comboBox111, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 2 );\r
+       \r
+       m_staticText211 = new wxStaticText( this, wxID_ANY, _("MyLabel"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       m_staticText211->Wrap( -1 );\r
+       gSizer111->Add( m_staticText211, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+       \r
+       m_comboBox211 = new wxComboBox( this, wxID_ANY, _("Combo!"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
+       gSizer111->Add( m_comboBox211, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 2 );\r
+       \r
+       \r
+       sbSizer4->Add( gSizer111, 0, wxALIGN_CENTER|wxEXPAND|wxFIXED_MINSIZE, 2 );\r
+       \r
+       \r
+       gSizer4->Add( sbSizer4, 1, wxEXPAND|wxFIXED_MINSIZE, 5 );\r
+       \r
+       wxStaticBoxSizer* sbSizer5;\r
+       sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Comm Port") ), wxVERTICAL );\r
+       \r
+       wxGridSizer* gSizer11;\r
+       gSizer11 = new wxGridSizer( 2, 2, 0, 0 );\r
+       \r
+       m_staticText11 = new wxStaticText( this, wxID_ANY, _("Radio:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       m_staticText11->Wrap( -1 );\r
+       gSizer11->Add( m_staticText11, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+       \r
+       m_comboBox11 = new wxComboBox( this, wxID_ANY, _("Combo!"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
+       gSizer11->Add( m_comboBox11, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 2 );\r
+       \r
+       m_staticText21 = new wxStaticText( this, wxID_ANY, _("Port:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       m_staticText21->Wrap( -1 );\r
+       gSizer11->Add( m_staticText21, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+       \r
+       m_comboBox21 = new wxComboBox( this, wxID_ANY, _("Combo!"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
+       gSizer11->Add( m_comboBox21, 1, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 2 );\r
+       \r
+       \r
+       sbSizer5->Add( gSizer11, 0, wxALIGN_CENTER|wxEXPAND|wxFIXED_MINSIZE, 2 );\r
+       \r
+       \r
+       gSizer4->Add( sbSizer5, 1, wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );\r
+       \r
+       \r
+       sbSizer1->Add( gSizer4, 1, wxEXPAND, 5 );\r
+       \r
+       \r
+       bSizer2->Add( sbSizer1, 1, wxEXPAND, 5 );\r
+       \r
+       wxStaticBoxSizer* sbSizer2;\r
+       sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Operation") ), wxVERTICAL );\r
+       \r
+       m_toggleStartStop = new wxToggleButton( this, wxID_ANY, _("Start"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       sbSizer2->Add( m_toggleStartStop, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5 );\r
+       \r
+       m_toggleRxTx = new wxToggleButton( this, wxID_ANY, _("Tx"), wxDefaultPosition, wxDefaultSize, 0 );\r
+       sbSizer2->Add( m_toggleRxTx, 2, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5 );\r
+       \r
+       \r
+       bSizer2->Add( sbSizer2, 0, wxEXPAND, 5 );\r
+       \r
+       \r
+       mainSizer->Add( bSizer2, 1, wxEXPAND, 5 );\r
+       \r
+       m_staticLine = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );\r
+       mainSizer->Add( m_staticLine, 0, wxEXPAND | wxALL, 5 );\r
+       \r
+       m_sdbSizer = new wxStdDialogButtonSizer();\r
+       m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );\r
+       m_sdbSizer->AddButton( m_sdbSizerCancel );\r
+       m_sdbSizer->Realize();\r
+       \r
+       mainSizer->Add( m_sdbSizer, 0, wxALIGN_RIGHT|wxBOTTOM|wxRIGHT, 5 );\r
+       \r
+       \r
+       this->SetSizer( mainSizer );\r
+       this->Layout();\r
+       \r
+       this->Centre( wxBOTH );\r
+       \r
+       // Connect Events\r
+       this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogBase::OnCloseDialog ) );\r
+       this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( MainDialogBase::OnInitDialog ) );\r
+       m_comboRxIn->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnRxInSelect ), NULL, this );\r
+       m_comboRxOut->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnRxOutSelect ), NULL, this );\r
+       m_comboTxIn->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnTxInSelect ), NULL, this );\r
+       m_comboTxOut->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnTxOutSelect ), NULL, this );\r
+       m_comboBox11->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnRadioSelect ), NULL, this );\r
+       m_comboBox21->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnPortSelect ), NULL, this );\r
+       m_toggleStartStop->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( MainDialogBase::OnToggleStartStop ), NULL, this );\r
+       m_toggleRxTx->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( MainDialogBase::OnToggleRxRx ), NULL, this );\r
+       m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogBase::OnCancelClick ), NULL, this );\r
+}\r
+\r
+MainDialogBase::~MainDialogBase()\r
+{\r
+       // Disconnect Events\r
+       this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainDialogBase::OnCloseDialog ) );\r
+       this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( MainDialogBase::OnInitDialog ) );\r
+       m_comboRxIn->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnRxInSelect ), NULL, this );\r
+       m_comboRxOut->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnRxOutSelect ), NULL, this );\r
+       m_comboTxIn->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnTxInSelect ), NULL, this );\r
+       m_comboTxOut->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnTxOutSelect ), NULL, this );\r
+       m_comboBox11->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnRadioSelect ), NULL, this );\r
+       m_comboBox21->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( MainDialogBase::OnPortSelect ), NULL, this );\r
+       m_toggleStartStop->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( MainDialogBase::OnToggleStartStop ), NULL, this );\r
+       m_toggleRxTx->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( MainDialogBase::OnToggleRxRx ), NULL, this );\r
+       m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( MainDialogBase::OnCancelClick ), NULL, this );\r
+       \r
+}\r
diff --git a/fdmdv2/fdmdv2basic/gui.fbp b/fdmdv2/fdmdv2basic/gui.fbp
new file mode 100644 (file)
index 0000000..47e8002
--- /dev/null
@@ -0,0 +1,1977 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>\r
+<wxFormBuilder_Project>\r
+    <FileVersion major="1" minor="11" />\r
+    <object class="Project" expanded="1">\r
+        <property name="class_decoration"></property>\r
+        <property name="code_generation">C++|Python</property>\r
+        <property name="disconnect_events">1</property>\r
+        <property name="disconnect_mode">source_name</property>\r
+        <property name="disconnect_php_events">0</property>\r
+        <property name="disconnect_python_events">0</property>\r
+        <property name="embedded_files_path">res</property>\r
+        <property name="encoding">UTF-8</property>\r
+        <property name="event_generation">connect</property>\r
+        <property name="file">gui</property>\r
+        <property name="first_id">1000</property>\r
+        <property name="help_provider">none</property>\r
+        <property name="internationalize">1</property>\r
+        <property name="name">gui</property>\r
+        <property name="namespace"></property>\r
+        <property name="path">.</property>\r
+        <property name="precompiled_header"></property>\r
+        <property name="relative_path">1</property>\r
+        <property name="skip_php_events">1</property>\r
+        <property name="skip_python_events">1</property>\r
+        <property name="use_enum">0</property>\r
+        <property name="use_microsoft_bom">0</property>\r
+        <object class="Dialog" expanded="1">\r
+            <property name="BottomDockable">1</property>\r
+            <property name="LeftDockable">1</property>\r
+            <property name="RightDockable">1</property>\r
+            <property name="TopDockable">1</property>\r
+            <property name="aui_layer"></property>\r
+            <property name="aui_managed">0</property>\r
+            <property name="aui_name"></property>\r
+            <property name="aui_position"></property>\r
+            <property name="aui_row"></property>\r
+            <property name="best_size"></property>\r
+            <property name="bg"></property>\r
+            <property name="caption"></property>\r
+            <property name="caption_visible">1</property>\r
+            <property name="center">wxBOTH</property>\r
+            <property name="center_pane">0</property>\r
+            <property name="close_button">1</property>\r
+            <property name="context_help"></property>\r
+            <property name="context_menu">1</property>\r
+            <property name="default_pane">0</property>\r
+            <property name="dock">Dock</property>\r
+            <property name="dock_fixed">0</property>\r
+            <property name="docking">Left</property>\r
+            <property name="enabled">1</property>\r
+            <property name="event_handler">impl_virtual</property>\r
+            <property name="extra_style"></property>\r
+            <property name="fg"></property>\r
+            <property name="floatable">1</property>\r
+            <property name="font"></property>\r
+            <property name="gripper">0</property>\r
+            <property name="hidden">0</property>\r
+            <property name="id">wxID_ANY</property>\r
+            <property name="max_size"></property>\r
+            <property name="maximize_button">0</property>\r
+            <property name="maximum_size"></property>\r
+            <property name="min_size"></property>\r
+            <property name="minimize_button">0</property>\r
+            <property name="minimum_size">-1,-1</property>\r
+            <property name="moveable">1</property>\r
+            <property name="name">MainDialogBase</property>\r
+            <property name="pane_border">1</property>\r
+            <property name="pane_position"></property>\r
+            <property name="pane_size"></property>\r
+            <property name="pin_button">1</property>\r
+            <property name="pos"></property>\r
+            <property name="resize">Resizable</property>\r
+            <property name="show">1</property>\r
+            <property name="size">523,526</property>\r
+            <property name="style">wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>\r
+            <property name="subclass"></property>\r
+            <property name="title">FDMDV2Basic</property>\r
+            <property name="toolbar_pane">0</property>\r
+            <property name="tooltip"></property>\r
+            <property name="validator_data_type"></property>\r
+            <property name="validator_style">wxFILTER_NONE</property>\r
+            <property name="validator_type">wxDefaultValidator</property>\r
+            <property name="validator_variable"></property>\r
+            <property name="window_extra_style"></property>\r
+            <property name="window_name"></property>\r
+            <property name="window_style"></property>\r
+            <event name="OnActivate"></event>\r
+            <event name="OnActivateApp"></event>\r
+            <event name="OnAuiFindManager"></event>\r
+            <event name="OnAuiPaneButton"></event>\r
+            <event name="OnAuiPaneClose"></event>\r
+            <event name="OnAuiPaneMaximize"></event>\r
+            <event name="OnAuiPaneRestore"></event>\r
+            <event name="OnAuiRender"></event>\r
+            <event name="OnChar"></event>\r
+            <event name="OnClose">OnCloseDialog</event>\r
+            <event name="OnEnterWindow"></event>\r
+            <event name="OnEraseBackground"></event>\r
+            <event name="OnHibernate"></event>\r
+            <event name="OnIconize"></event>\r
+            <event name="OnIdle"></event>\r
+            <event name="OnInitDialog">OnInitDialog</event>\r
+            <event name="OnKeyDown"></event>\r
+            <event name="OnKeyUp"></event>\r
+            <event name="OnKillFocus"></event>\r
+            <event name="OnLeaveWindow"></event>\r
+            <event name="OnLeftDClick"></event>\r
+            <event name="OnLeftDown"></event>\r
+            <event name="OnLeftUp"></event>\r
+            <event name="OnMiddleDClick"></event>\r
+            <event name="OnMiddleDown"></event>\r
+            <event name="OnMiddleUp"></event>\r
+            <event name="OnMotion"></event>\r
+            <event name="OnMouseEvents"></event>\r
+            <event name="OnMouseWheel"></event>\r
+            <event name="OnPaint"></event>\r
+            <event name="OnRightDClick"></event>\r
+            <event name="OnRightDown"></event>\r
+            <event name="OnRightUp"></event>\r
+            <event name="OnSetFocus"></event>\r
+            <event name="OnSize"></event>\r
+            <event name="OnUpdateUI"></event>\r
+            <object class="wxBoxSizer" expanded="1">\r
+                <property name="minimum_size"></property>\r
+                <property name="name">mainSizer</property>\r
+                <property name="orient">wxVERTICAL</property>\r
+                <property name="permission">none</property>\r
+                <object class="sizeritem" expanded="1">\r
+                    <property name="border">5</property>\r
+                    <property name="flag">wxEXPAND</property>\r
+                    <property name="proportion">1</property>\r
+                    <object class="wxBoxSizer" expanded="1">\r
+                        <property name="minimum_size"></property>\r
+                        <property name="name">bSizer2</property>\r
+                        <property name="orient">wxHORIZONTAL</property>\r
+                        <property name="permission">none</property>\r
+                        <object class="sizeritem" expanded="1">\r
+                            <property name="border">5</property>\r
+                            <property name="flag">wxEXPAND</property>\r
+                            <property name="proportion">1</property>\r
+                            <object class="wxStaticBoxSizer" expanded="1">\r
+                                <property name="id">wxID_ANY</property>\r
+                                <property name="label">Settings</property>\r
+                                <property name="minimum_size"></property>\r
+                                <property name="name">sbSizer1</property>\r
+                                <property name="orient">wxVERTICAL</property>\r
+                                <property name="permission">none</property>\r
+                                <event name="OnUpdateUI"></event>\r
+                                <object class="sizeritem" expanded="1">\r
+                                    <property name="border">5</property>\r
+                                    <property name="flag">wxEXPAND</property>\r
+                                    <property name="proportion">1</property>\r
+                                    <object class="wxGridSizer" expanded="1">\r
+                                        <property name="cols">1</property>\r
+                                        <property name="hgap">0</property>\r
+                                        <property name="minimum_size"></property>\r
+                                        <property name="name">gSizer4</property>\r
+                                        <property name="permission">none</property>\r
+                                        <property name="rows">3</property>\r
+                                        <property name="vgap">0</property>\r
+                                        <object class="sizeritem" expanded="1">\r
+                                            <property name="border">5</property>\r
+                                            <property name="flag">wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxFIXED_MINSIZE</property>\r
+                                            <property name="proportion">1</property>\r
+                                            <object class="wxStaticBoxSizer" expanded="1">\r
+                                                <property name="id">wxID_ANY</property>\r
+                                                <property name="label">Audio</property>\r
+                                                <property name="minimum_size"></property>\r
+                                                <property name="name">sbSizer3</property>\r
+                                                <property name="orient">wxVERTICAL</property>\r
+                                                <property name="permission">none</property>\r
+                                                <event name="OnUpdateUI"></event>\r
+                                                <object class="sizeritem" expanded="1">\r
+                                                    <property name="border">2</property>\r
+                                                    <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxFIXED_MINSIZE</property>\r
+                                                    <property name="proportion">0</property>\r
+                                                    <object class="wxGridSizer" expanded="1">\r
+                                                        <property name="cols">2</property>\r
+                                                        <property name="hgap">0</property>\r
+                                                        <property name="minimum_size"></property>\r
+                                                        <property name="name">gSizer1</property>\r
+                                                        <property name="permission">none</property>\r
+                                                        <property name="rows">4</property>\r
+                                                        <property name="vgap">0</property>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">5</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL</property>\r
+                                                            <property name="proportion">0</property>\r
+                                                            <object class="wxStaticText" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="label">Rx In (radio):</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_staticText1</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <property name="wrap">-1</property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">2</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>\r
+                                                            <property name="proportion">1</property>\r
+                                                            <object class="wxComboBox" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="choices"></property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_comboRxIn</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="selection">-1</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="value">&lt;default&gt;</property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnCombobox">OnRxInSelect</event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnText"></event>\r
+                                                                <event name="OnTextEnter"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">5</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL</property>\r
+                                                            <property name="proportion">0</property>\r
+                                                            <object class="wxStaticText" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="label">Rx Out (spkr):</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_staticText2</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <property name="wrap">-1</property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">2</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>\r
+                                                            <property name="proportion">1</property>\r
+                                                            <object class="wxComboBox" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="choices"></property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_comboRxOut</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="selection">-1</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="value">&lt;default&gt;</property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnCombobox">OnRxOutSelect</event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnText"></event>\r
+                                                                <event name="OnTextEnter"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">5</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL</property>\r
+                                                            <property name="proportion">0</property>\r
+                                                            <object class="wxStaticText" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="label">Tx In (mic):</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_staticText3</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <property name="wrap">-1</property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">2</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>\r
+                                                            <property name="proportion">1</property>\r
+                                                            <object class="wxComboBox" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="choices"></property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_comboTxIn</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="selection">-1</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="value">&lt;default&gt;</property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnCombobox">OnTxInSelect</event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnText"></event>\r
+                                                                <event name="OnTextEnter"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">5</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL</property>\r
+                                                            <property name="proportion">0</property>\r
+                                                            <object class="wxStaticText" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="label">Tx Out (radio):</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_staticText4</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <property name="wrap">-1</property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">2</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>\r
+                                                            <property name="proportion">1</property>\r
+                                                            <object class="wxComboBox" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="choices"></property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_comboTxOut</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="selection">-1</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="value">&lt;default&gt;</property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnCombobox">OnTxOutSelect</event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnText"></event>\r
+                                                                <event name="OnTextEnter"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                    </object>\r
+                                                </object>\r
+                                            </object>\r
+                                        </object>\r
+                                        <object class="sizeritem" expanded="1">\r
+                                            <property name="border">5</property>\r
+                                            <property name="flag">wxEXPAND|wxFIXED_MINSIZE</property>\r
+                                            <property name="proportion">1</property>\r
+                                            <object class="wxStaticBoxSizer" expanded="1">\r
+                                                <property name="id">wxID_ANY</property>\r
+                                                <property name="label">label</property>\r
+                                                <property name="minimum_size"></property>\r
+                                                <property name="name">sbSizer4</property>\r
+                                                <property name="orient">wxVERTICAL</property>\r
+                                                <property name="permission">none</property>\r
+                                                <event name="OnUpdateUI"></event>\r
+                                                <object class="sizeritem" expanded="1">\r
+                                                    <property name="border">2</property>\r
+                                                    <property name="flag">wxALIGN_CENTER|wxEXPAND|wxFIXED_MINSIZE</property>\r
+                                                    <property name="proportion">0</property>\r
+                                                    <object class="wxGridSizer" expanded="1">\r
+                                                        <property name="cols">2</property>\r
+                                                        <property name="hgap">0</property>\r
+                                                        <property name="minimum_size"></property>\r
+                                                        <property name="name">gSizer111</property>\r
+                                                        <property name="permission">none</property>\r
+                                                        <property name="rows">2</property>\r
+                                                        <property name="vgap">0</property>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">5</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL</property>\r
+                                                            <property name="proportion">0</property>\r
+                                                            <object class="wxStaticText" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="label">Rate:</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_staticText111</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <property name="wrap">-1</property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">2</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>\r
+                                                            <property name="proportion">1</property>\r
+                                                            <object class="wxComboBox" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="choices"></property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_comboBox111</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="selection">-1</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="value">Combo!</property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnCombobox"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnText"></event>\r
+                                                                <event name="OnTextEnter"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">5</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL</property>\r
+                                                            <property name="proportion">0</property>\r
+                                                            <object class="wxStaticText" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="label">MyLabel</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_staticText211</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <property name="wrap">-1</property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">2</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>\r
+                                                            <property name="proportion">1</property>\r
+                                                            <object class="wxComboBox" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="choices"></property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_comboBox211</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="selection">-1</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="value">Combo!</property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnCombobox"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnText"></event>\r
+                                                                <event name="OnTextEnter"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                    </object>\r
+                                                </object>\r
+                                            </object>\r
+                                        </object>\r
+                                        <object class="sizeritem" expanded="1">\r
+                                            <property name="border">5</property>\r
+                                            <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxEXPAND</property>\r
+                                            <property name="proportion">1</property>\r
+                                            <object class="wxStaticBoxSizer" expanded="1">\r
+                                                <property name="id">wxID_ANY</property>\r
+                                                <property name="label">Comm Port</property>\r
+                                                <property name="minimum_size"></property>\r
+                                                <property name="name">sbSizer5</property>\r
+                                                <property name="orient">wxVERTICAL</property>\r
+                                                <property name="permission">none</property>\r
+                                                <event name="OnUpdateUI"></event>\r
+                                                <object class="sizeritem" expanded="1">\r
+                                                    <property name="border">2</property>\r
+                                                    <property name="flag">wxALIGN_CENTER|wxEXPAND|wxFIXED_MINSIZE</property>\r
+                                                    <property name="proportion">0</property>\r
+                                                    <object class="wxGridSizer" expanded="1">\r
+                                                        <property name="cols">2</property>\r
+                                                        <property name="hgap">0</property>\r
+                                                        <property name="minimum_size"></property>\r
+                                                        <property name="name">gSizer11</property>\r
+                                                        <property name="permission">none</property>\r
+                                                        <property name="rows">2</property>\r
+                                                        <property name="vgap">0</property>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">5</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL</property>\r
+                                                            <property name="proportion">0</property>\r
+                                                            <object class="wxStaticText" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="label">Radio:</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_staticText11</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <property name="wrap">-1</property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">2</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>\r
+                                                            <property name="proportion">1</property>\r
+                                                            <object class="wxComboBox" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="choices"></property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_comboBox11</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="selection">-1</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="value">Combo!</property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnCombobox">OnRadioSelect</event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnText"></event>\r
+                                                                <event name="OnTextEnter"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">5</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL</property>\r
+                                                            <property name="proportion">0</property>\r
+                                                            <object class="wxStaticText" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="label">Port:</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_staticText21</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <property name="wrap">-1</property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                        <object class="sizeritem" expanded="0">\r
+                                                            <property name="border">2</property>\r
+                                                            <property name="flag">wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND</property>\r
+                                                            <property name="proportion">1</property>\r
+                                                            <object class="wxComboBox" expanded="0">\r
+                                                                <property name="BottomDockable">1</property>\r
+                                                                <property name="LeftDockable">1</property>\r
+                                                                <property name="RightDockable">1</property>\r
+                                                                <property name="TopDockable">1</property>\r
+                                                                <property name="aui_layer"></property>\r
+                                                                <property name="aui_name"></property>\r
+                                                                <property name="aui_position"></property>\r
+                                                                <property name="aui_row"></property>\r
+                                                                <property name="best_size"></property>\r
+                                                                <property name="bg"></property>\r
+                                                                <property name="caption"></property>\r
+                                                                <property name="caption_visible">1</property>\r
+                                                                <property name="center_pane">0</property>\r
+                                                                <property name="choices"></property>\r
+                                                                <property name="close_button">1</property>\r
+                                                                <property name="context_help"></property>\r
+                                                                <property name="context_menu">1</property>\r
+                                                                <property name="default_pane">0</property>\r
+                                                                <property name="dock">Dock</property>\r
+                                                                <property name="dock_fixed">0</property>\r
+                                                                <property name="docking">Left</property>\r
+                                                                <property name="enabled">1</property>\r
+                                                                <property name="fg"></property>\r
+                                                                <property name="floatable">1</property>\r
+                                                                <property name="font"></property>\r
+                                                                <property name="gripper">0</property>\r
+                                                                <property name="hidden">0</property>\r
+                                                                <property name="id">wxID_ANY</property>\r
+                                                                <property name="max_size"></property>\r
+                                                                <property name="maximize_button">0</property>\r
+                                                                <property name="maximum_size"></property>\r
+                                                                <property name="min_size"></property>\r
+                                                                <property name="minimize_button">0</property>\r
+                                                                <property name="minimum_size"></property>\r
+                                                                <property name="moveable">1</property>\r
+                                                                <property name="name">m_comboBox21</property>\r
+                                                                <property name="pane_border">1</property>\r
+                                                                <property name="pane_position"></property>\r
+                                                                <property name="pane_size"></property>\r
+                                                                <property name="permission">protected</property>\r
+                                                                <property name="pin_button">1</property>\r
+                                                                <property name="pos"></property>\r
+                                                                <property name="resize">Resizable</property>\r
+                                                                <property name="selection">-1</property>\r
+                                                                <property name="show">1</property>\r
+                                                                <property name="size"></property>\r
+                                                                <property name="style"></property>\r
+                                                                <property name="subclass"></property>\r
+                                                                <property name="toolbar_pane">0</property>\r
+                                                                <property name="tooltip"></property>\r
+                                                                <property name="validator_data_type"></property>\r
+                                                                <property name="validator_style">wxFILTER_NONE</property>\r
+                                                                <property name="validator_type">wxDefaultValidator</property>\r
+                                                                <property name="validator_variable"></property>\r
+                                                                <property name="value">Combo!</property>\r
+                                                                <property name="window_extra_style"></property>\r
+                                                                <property name="window_name"></property>\r
+                                                                <property name="window_style"></property>\r
+                                                                <event name="OnChar"></event>\r
+                                                                <event name="OnCombobox">OnPortSelect</event>\r
+                                                                <event name="OnEnterWindow"></event>\r
+                                                                <event name="OnEraseBackground"></event>\r
+                                                                <event name="OnKeyDown"></event>\r
+                                                                <event name="OnKeyUp"></event>\r
+                                                                <event name="OnKillFocus"></event>\r
+                                                                <event name="OnLeaveWindow"></event>\r
+                                                                <event name="OnLeftDClick"></event>\r
+                                                                <event name="OnLeftDown"></event>\r
+                                                                <event name="OnLeftUp"></event>\r
+                                                                <event name="OnMiddleDClick"></event>\r
+                                                                <event name="OnMiddleDown"></event>\r
+                                                                <event name="OnMiddleUp"></event>\r
+                                                                <event name="OnMotion"></event>\r
+                                                                <event name="OnMouseEvents"></event>\r
+                                                                <event name="OnMouseWheel"></event>\r
+                                                                <event name="OnPaint"></event>\r
+                                                                <event name="OnRightDClick"></event>\r
+                                                                <event name="OnRightDown"></event>\r
+                                                                <event name="OnRightUp"></event>\r
+                                                                <event name="OnSetFocus"></event>\r
+                                                                <event name="OnSize"></event>\r
+                                                                <event name="OnText"></event>\r
+                                                                <event name="OnTextEnter"></event>\r
+                                                                <event name="OnUpdateUI"></event>\r
+                                                            </object>\r
+                                                        </object>\r
+                                                    </object>\r
+                                                </object>\r
+                                            </object>\r
+                                        </object>\r
+                                    </object>\r
+                                </object>\r
+                            </object>\r
+                        </object>\r
+                        <object class="sizeritem" expanded="1">\r
+                            <property name="border">5</property>\r
+                            <property name="flag">wxEXPAND</property>\r
+                            <property name="proportion">0</property>\r
+                            <object class="wxStaticBoxSizer" expanded="0">\r
+                                <property name="id">wxID_ANY</property>\r
+                                <property name="label">Operation</property>\r
+                                <property name="minimum_size"></property>\r
+                                <property name="name">sbSizer2</property>\r
+                                <property name="orient">wxVERTICAL</property>\r
+                                <property name="permission">none</property>\r
+                                <event name="OnUpdateUI"></event>\r
+                                <object class="sizeritem" expanded="0">\r
+                                    <property name="border">5</property>\r
+                                    <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND</property>\r
+                                    <property name="proportion">1</property>\r
+                                    <object class="wxToggleButton" expanded="0">\r
+                                        <property name="BottomDockable">1</property>\r
+                                        <property name="LeftDockable">1</property>\r
+                                        <property name="RightDockable">1</property>\r
+                                        <property name="TopDockable">1</property>\r
+                                        <property name="aui_layer"></property>\r
+                                        <property name="aui_name"></property>\r
+                                        <property name="aui_position"></property>\r
+                                        <property name="aui_row"></property>\r
+                                        <property name="best_size"></property>\r
+                                        <property name="bg"></property>\r
+                                        <property name="caption"></property>\r
+                                        <property name="caption_visible">1</property>\r
+                                        <property name="center_pane">0</property>\r
+                                        <property name="close_button">1</property>\r
+                                        <property name="context_help"></property>\r
+                                        <property name="context_menu">1</property>\r
+                                        <property name="default_pane">0</property>\r
+                                        <property name="dock">Dock</property>\r
+                                        <property name="dock_fixed">0</property>\r
+                                        <property name="docking">Left</property>\r
+                                        <property name="enabled">1</property>\r
+                                        <property name="fg"></property>\r
+                                        <property name="floatable">1</property>\r
+                                        <property name="font"></property>\r
+                                        <property name="gripper">0</property>\r
+                                        <property name="hidden">0</property>\r
+                                        <property name="id">wxID_ANY</property>\r
+                                        <property name="label">Start</property>\r
+                                        <property name="max_size"></property>\r
+                                        <property name="maximize_button">0</property>\r
+                                        <property name="maximum_size"></property>\r
+                                        <property name="min_size"></property>\r
+                                        <property name="minimize_button">0</property>\r
+                                        <property name="minimum_size"></property>\r
+                                        <property name="moveable">1</property>\r
+                                        <property name="name">m_toggleStartStop</property>\r
+                                        <property name="pane_border">1</property>\r
+                                        <property name="pane_position"></property>\r
+                                        <property name="pane_size"></property>\r
+                                        <property name="permission">protected</property>\r
+                                        <property name="pin_button">1</property>\r
+                                        <property name="pos"></property>\r
+                                        <property name="resize">Resizable</property>\r
+                                        <property name="show">1</property>\r
+                                        <property name="size"></property>\r
+                                        <property name="subclass"></property>\r
+                                        <property name="toolbar_pane">0</property>\r
+                                        <property name="tooltip"></property>\r
+                                        <property name="validator_data_type"></property>\r
+                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                        <property name="validator_variable"></property>\r
+                                        <property name="value">0</property>\r
+                                        <property name="window_extra_style"></property>\r
+                                        <property name="window_name"></property>\r
+                                        <property name="window_style"></property>\r
+                                        <event name="OnChar"></event>\r
+                                        <event name="OnEnterWindow"></event>\r
+                                        <event name="OnEraseBackground"></event>\r
+                                        <event name="OnKeyDown"></event>\r
+                                        <event name="OnKeyUp"></event>\r
+                                        <event name="OnKillFocus"></event>\r
+                                        <event name="OnLeaveWindow"></event>\r
+                                        <event name="OnLeftDClick"></event>\r
+                                        <event name="OnLeftDown"></event>\r
+                                        <event name="OnLeftUp"></event>\r
+                                        <event name="OnMiddleDClick"></event>\r
+                                        <event name="OnMiddleDown"></event>\r
+                                        <event name="OnMiddleUp"></event>\r
+                                        <event name="OnMotion"></event>\r
+                                        <event name="OnMouseEvents"></event>\r
+                                        <event name="OnMouseWheel"></event>\r
+                                        <event name="OnPaint"></event>\r
+                                        <event name="OnRightDClick"></event>\r
+                                        <event name="OnRightDown"></event>\r
+                                        <event name="OnRightUp"></event>\r
+                                        <event name="OnSetFocus"></event>\r
+                                        <event name="OnSize"></event>\r
+                                        <event name="OnToggleButton">OnToggleStartStop</event>\r
+                                        <event name="OnUpdateUI"></event>\r
+                                    </object>\r
+                                </object>\r
+                                <object class="sizeritem" expanded="0">\r
+                                    <property name="border">5</property>\r
+                                    <property name="flag">wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND</property>\r
+                                    <property name="proportion">2</property>\r
+                                    <object class="wxToggleButton" expanded="0">\r
+                                        <property name="BottomDockable">1</property>\r
+                                        <property name="LeftDockable">1</property>\r
+                                        <property name="RightDockable">1</property>\r
+                                        <property name="TopDockable">1</property>\r
+                                        <property name="aui_layer"></property>\r
+                                        <property name="aui_name"></property>\r
+                                        <property name="aui_position"></property>\r
+                                        <property name="aui_row"></property>\r
+                                        <property name="best_size"></property>\r
+                                        <property name="bg"></property>\r
+                                        <property name="caption"></property>\r
+                                        <property name="caption_visible">1</property>\r
+                                        <property name="center_pane">0</property>\r
+                                        <property name="close_button">1</property>\r
+                                        <property name="context_help"></property>\r
+                                        <property name="context_menu">1</property>\r
+                                        <property name="default_pane">0</property>\r
+                                        <property name="dock">Dock</property>\r
+                                        <property name="dock_fixed">0</property>\r
+                                        <property name="docking">Left</property>\r
+                                        <property name="enabled">1</property>\r
+                                        <property name="fg"></property>\r
+                                        <property name="floatable">1</property>\r
+                                        <property name="font"></property>\r
+                                        <property name="gripper">0</property>\r
+                                        <property name="hidden">0</property>\r
+                                        <property name="id">wxID_ANY</property>\r
+                                        <property name="label">Tx</property>\r
+                                        <property name="max_size"></property>\r
+                                        <property name="maximize_button">0</property>\r
+                                        <property name="maximum_size"></property>\r
+                                        <property name="min_size"></property>\r
+                                        <property name="minimize_button">0</property>\r
+                                        <property name="minimum_size"></property>\r
+                                        <property name="moveable">1</property>\r
+                                        <property name="name">m_toggleRxTx</property>\r
+                                        <property name="pane_border">1</property>\r
+                                        <property name="pane_position"></property>\r
+                                        <property name="pane_size"></property>\r
+                                        <property name="permission">protected</property>\r
+                                        <property name="pin_button">1</property>\r
+                                        <property name="pos"></property>\r
+                                        <property name="resize">Resizable</property>\r
+                                        <property name="show">1</property>\r
+                                        <property name="size"></property>\r
+                                        <property name="subclass"></property>\r
+                                        <property name="toolbar_pane">0</property>\r
+                                        <property name="tooltip"></property>\r
+                                        <property name="validator_data_type"></property>\r
+                                        <property name="validator_style">wxFILTER_NONE</property>\r
+                                        <property name="validator_type">wxDefaultValidator</property>\r
+                                        <property name="validator_variable"></property>\r
+                                        <property name="value">0</property>\r
+                                        <property name="window_extra_style"></property>\r
+                                        <property name="window_name"></property>\r
+                                        <property name="window_style"></property>\r
+                                        <event name="OnChar"></event>\r
+                                        <event name="OnEnterWindow"></event>\r
+                                        <event name="OnEraseBackground"></event>\r
+                                        <event name="OnKeyDown"></event>\r
+                                        <event name="OnKeyUp"></event>\r
+                                        <event name="OnKillFocus"></event>\r
+                                        <event name="OnLeaveWindow"></event>\r
+                                        <event name="OnLeftDClick"></event>\r
+                                        <event name="OnLeftDown"></event>\r
+                                        <event name="OnLeftUp"></event>\r
+                                        <event name="OnMiddleDClick"></event>\r
+                                        <event name="OnMiddleDown"></event>\r
+                                        <event name="OnMiddleUp"></event>\r
+                                        <event name="OnMotion"></event>\r
+                                        <event name="OnMouseEvents"></event>\r
+                                        <event name="OnMouseWheel"></event>\r
+                                        <event name="OnPaint"></event>\r
+                                        <event name="OnRightDClick"></event>\r
+                                        <event name="OnRightDown"></event>\r
+                                        <event name="OnRightUp"></event>\r
+                                        <event name="OnSetFocus"></event>\r
+                                        <event name="OnSize"></event>\r
+                                        <event name="OnToggleButton">OnToggleRxRx</event>\r
+                                        <event name="OnUpdateUI"></event>\r
+                                    </object>\r
+                                </object>\r
+                            </object>\r
+                        </object>\r
+                    </object>\r
+                </object>\r
+                <object class="sizeritem" expanded="1">\r
+                    <property name="border">5</property>\r
+                    <property name="flag">wxEXPAND | wxALL</property>\r
+                    <property name="proportion">0</property>\r
+                    <object class="wxStaticLine" expanded="1">\r
+                        <property name="BottomDockable">1</property>\r
+                        <property name="LeftDockable">1</property>\r
+                        <property name="RightDockable">1</property>\r
+                        <property name="TopDockable">1</property>\r
+                        <property name="aui_layer"></property>\r
+                        <property name="aui_name"></property>\r
+                        <property name="aui_position"></property>\r
+                        <property name="aui_row"></property>\r
+                        <property name="best_size"></property>\r
+                        <property name="bg"></property>\r
+                        <property name="caption"></property>\r
+                        <property name="caption_visible">1</property>\r
+                        <property name="center_pane">0</property>\r
+                        <property name="close_button">1</property>\r
+                        <property name="context_help"></property>\r
+                        <property name="context_menu">1</property>\r
+                        <property name="default_pane">0</property>\r
+                        <property name="dock">Dock</property>\r
+                        <property name="dock_fixed">0</property>\r
+                        <property name="docking">Left</property>\r
+                        <property name="enabled">1</property>\r
+                        <property name="fg"></property>\r
+                        <property name="floatable">1</property>\r
+                        <property name="font"></property>\r
+                        <property name="gripper">0</property>\r
+                        <property name="hidden">0</property>\r
+                        <property name="id">wxID_ANY</property>\r
+                        <property name="max_size"></property>\r
+                        <property name="maximize_button">0</property>\r
+                        <property name="maximum_size"></property>\r
+                        <property name="min_size"></property>\r
+                        <property name="minimize_button">0</property>\r
+                        <property name="minimum_size"></property>\r
+                        <property name="moveable">1</property>\r
+                        <property name="name">m_staticLine</property>\r
+                        <property name="pane_border">1</property>\r
+                        <property name="pane_position"></property>\r
+                        <property name="pane_size"></property>\r
+                        <property name="permission">protected</property>\r
+                        <property name="pin_button">1</property>\r
+                        <property name="pos"></property>\r
+                        <property name="resize">Resizable</property>\r
+                        <property name="show">1</property>\r
+                        <property name="size"></property>\r
+                        <property name="style">wxLI_HORIZONTAL</property>\r
+                        <property name="subclass"></property>\r
+                        <property name="toolbar_pane">0</property>\r
+                        <property name="tooltip"></property>\r
+                        <property name="validator_data_type"></property>\r
+                        <property name="validator_style">wxFILTER_NONE</property>\r
+                        <property name="validator_type">wxDefaultValidator</property>\r
+                        <property name="validator_variable"></property>\r
+                        <property name="window_extra_style"></property>\r
+                        <property name="window_name"></property>\r
+                        <property name="window_style"></property>\r
+                        <event name="OnChar"></event>\r
+                        <event name="OnEnterWindow"></event>\r
+                        <event name="OnEraseBackground"></event>\r
+                        <event name="OnKeyDown"></event>\r
+                        <event name="OnKeyUp"></event>\r
+                        <event name="OnKillFocus"></event>\r
+                        <event name="OnLeaveWindow"></event>\r
+                        <event name="OnLeftDClick"></event>\r
+                        <event name="OnLeftDown"></event>\r
+                        <event name="OnLeftUp"></event>\r
+                        <event name="OnMiddleDClick"></event>\r
+                        <event name="OnMiddleDown"></event>\r
+                        <event name="OnMiddleUp"></event>\r
+                        <event name="OnMotion"></event>\r
+                        <event name="OnMouseEvents"></event>\r
+                        <event name="OnMouseWheel"></event>\r
+                        <event name="OnPaint"></event>\r
+                        <event name="OnRightDClick"></event>\r
+                        <event name="OnRightDown"></event>\r
+                        <event name="OnRightUp"></event>\r
+                        <event name="OnSetFocus"></event>\r
+                        <event name="OnSize"></event>\r
+                        <event name="OnUpdateUI"></event>\r
+                    </object>\r
+                </object>\r
+                <object class="sizeritem" expanded="1">\r
+                    <property name="border">5</property>\r
+                    <property name="flag">wxALIGN_RIGHT|wxBOTTOM|wxRIGHT</property>\r
+                    <property name="proportion">0</property>\r
+                    <object class="wxStdDialogButtonSizer" expanded="1">\r
+                        <property name="Apply">0</property>\r
+                        <property name="Cancel">1</property>\r
+                        <property name="ContextHelp">0</property>\r
+                        <property name="Help">0</property>\r
+                        <property name="No">0</property>\r
+                        <property name="OK">0</property>\r
+                        <property name="Save">0</property>\r
+                        <property name="Yes">0</property>\r
+                        <property name="minimum_size"></property>\r
+                        <property name="name">m_sdbSizer</property>\r
+                        <property name="permission">protected</property>\r
+                        <event name="OnApplyButtonClick"></event>\r
+                        <event name="OnCancelButtonClick">OnCancelClick</event>\r
+                        <event name="OnContextHelpButtonClick"></event>\r
+                        <event name="OnHelpButtonClick"></event>\r
+                        <event name="OnNoButtonClick"></event>\r
+                        <event name="OnOKButtonClick"></event>\r
+                        <event name="OnSaveButtonClick"></event>\r
+                        <event name="OnYesButtonClick"></event>\r
+                    </object>\r
+                </object>\r
+            </object>\r
+        </object>\r
+    </object>\r
+</wxFormBuilder_Project>\r
diff --git a/fdmdv2/fdmdv2basic/gui.fbp.bak b/fdmdv2/fdmdv2basic/gui.fbp.bak
new file mode 100644 (file)
index 0000000..fb92297
--- /dev/null
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<wxFormBuilder_Project>
+    <FileVersion major="1" minor="9" />
+    <object class="Project" expanded="1">
+        <property name="class_decoration"></property>
+        <property name="code_generation">C++</property>
+        <property name="disconnect_events">1</property>
+        <property name="encoding">UTF-8</property>
+        <property name="event_generation">connect</property>
+        <property name="event_handler">impl_virtual</property>
+        <property name="file">gui</property>
+        <property name="first_id">1000</property>
+        <property name="help_provider">none</property>
+        <property name="internationalize">1</property>
+        <property name="name">gui</property>
+        <property name="namespace"></property>
+        <property name="path">.</property>
+        <property name="precompiled_header"></property>
+        <property name="relative_path">1</property>
+        <property name="use_enum">0</property>
+        <property name="use_microsoft_bom">0</property>
+        <object class="Dialog" expanded="1">
+            <property name="bg"></property>
+            <property name="center">wxBOTH</property>
+            <property name="context_help"></property>
+            <property name="enabled">1</property>
+            <property name="extra_style"></property>
+            <property name="fg"></property>
+            <property name="font"></property>
+            <property name="hidden">0</property>
+            <property name="id">wxID_ANY</property>
+            <property name="maximum_size"></property>
+            <property name="minimum_size">-1,-1</property>
+            <property name="name">MainDialogBase</property>
+            <property name="pos"></property>
+            <property name="size">400,300</property>
+            <property name="style">wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE</property>
+            <property name="subclass"></property>
+            <property name="title">wxMiniApp</property>
+            <property name="tooltip"></property>
+            <property name="validator_data_type"></property>
+            <property name="validator_style">wxFILTER_NONE</property>
+            <property name="validator_type">wxDefaultValidator</property>
+            <property name="validator_variable"></property>
+            <property name="window_extra_style"></property>
+            <property name="window_name"></property>
+            <property name="window_style"></property>
+            <event name="OnActivate"></event>
+            <event name="OnActivateApp"></event>
+            <event name="OnChar"></event>
+            <event name="OnClose">OnCloseDialog</event>
+            <event name="OnEnterWindow"></event>
+            <event name="OnEraseBackground"></event>
+            <event name="OnHibernate"></event>
+            <event name="OnIconize"></event>
+            <event name="OnIdle"></event>
+            <event name="OnInitDialog"></event>
+            <event name="OnKeyDown"></event>
+            <event name="OnKeyUp"></event>
+            <event name="OnKillFocus"></event>
+            <event name="OnLeaveWindow"></event>
+            <event name="OnLeftDClick"></event>
+            <event name="OnLeftDown"></event>
+            <event name="OnLeftUp"></event>
+            <event name="OnMiddleDClick"></event>
+            <event name="OnMiddleDown"></event>
+            <event name="OnMiddleUp"></event>
+            <event name="OnMotion"></event>
+            <event name="OnMouseEvents"></event>
+            <event name="OnMouseWheel"></event>
+            <event name="OnPaint"></event>
+            <event name="OnRightDClick"></event>
+            <event name="OnRightDown"></event>
+            <event name="OnRightUp"></event>
+            <event name="OnSetFocus"></event>
+            <event name="OnSize"></event>
+            <event name="OnUpdateUI"></event>
+            <object class="wxBoxSizer" expanded="1">
+                <property name="minimum_size"></property>
+                <property name="name">mainSizer</property>
+                <property name="orient">wxVERTICAL</property>
+                <property name="permission">none</property>
+                <object class="sizeritem" expanded="1">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND</property>
+                    <property name="proportion">1</property>
+                    <object class="spacer" expanded="1">
+                        <property name="height">0</property>
+                        <property name="permission">protected</property>
+                        <property name="width">0</property>
+                    </object>
+                </object>
+                <object class="sizeritem" expanded="1">
+                    <property name="border">5</property>
+                    <property name="flag">wxEXPAND | wxALL</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStaticLine" expanded="1">
+                        <property name="bg"></property>
+                        <property name="context_help"></property>
+                        <property name="enabled">1</property>
+                        <property name="fg"></property>
+                        <property name="font"></property>
+                        <property name="hidden">0</property>
+                        <property name="id">wxID_ANY</property>
+                        <property name="maximum_size"></property>
+                        <property name="minimum_size"></property>
+                        <property name="name">m_staticLine</property>
+                        <property name="permission">protected</property>
+                        <property name="pos"></property>
+                        <property name="size"></property>
+                        <property name="style">wxLI_HORIZONTAL</property>
+                        <property name="subclass"></property>
+                        <property name="tooltip"></property>
+                        <property name="validator_data_type"></property>
+                        <property name="validator_style">wxFILTER_NONE</property>
+                        <property name="validator_type">wxDefaultValidator</property>
+                        <property name="validator_variable"></property>
+                        <property name="window_extra_style"></property>
+                        <property name="window_name"></property>
+                        <property name="window_style"></property>
+                        <event name="OnChar"></event>
+                        <event name="OnEnterWindow"></event>
+                        <event name="OnEraseBackground"></event>
+                        <event name="OnKeyDown"></event>
+                        <event name="OnKeyUp"></event>
+                        <event name="OnKillFocus"></event>
+                        <event name="OnLeaveWindow"></event>
+                        <event name="OnLeftDClick"></event>
+                        <event name="OnLeftDown"></event>
+                        <event name="OnLeftUp"></event>
+                        <event name="OnMiddleDClick"></event>
+                        <event name="OnMiddleDown"></event>
+                        <event name="OnMiddleUp"></event>
+                        <event name="OnMotion"></event>
+                        <event name="OnMouseEvents"></event>
+                        <event name="OnMouseWheel"></event>
+                        <event name="OnPaint"></event>
+                        <event name="OnRightDClick"></event>
+                        <event name="OnRightDown"></event>
+                        <event name="OnRightUp"></event>
+                        <event name="OnSetFocus"></event>
+                        <event name="OnSize"></event>
+                        <event name="OnUpdateUI"></event>
+                    </object>
+                </object>
+                <object class="sizeritem" expanded="1">
+                    <property name="border">5</property>
+                    <property name="flag">wxALIGN_RIGHT|wxBOTTOM|wxRIGHT</property>
+                    <property name="proportion">0</property>
+                    <object class="wxStdDialogButtonSizer" expanded="1">
+                        <property name="Apply">0</property>
+                        <property name="Cancel">1</property>
+                        <property name="ContextHelp">0</property>
+                        <property name="Help">0</property>
+                        <property name="No">0</property>
+                        <property name="OK">1</property>
+                        <property name="Save">0</property>
+                        <property name="Yes">0</property>
+                        <property name="minimum_size"></property>
+                        <property name="name">m_sdbSizer</property>
+                        <property name="permission">protected</property>
+                        <event name="OnApplyButtonClick"></event>
+                        <event name="OnCancelButtonClick">OnCancelClick</event>
+                        <event name="OnContextHelpButtonClick"></event>
+                        <event name="OnHelpButtonClick"></event>
+                        <event name="OnNoButtonClick"></event>
+                        <event name="OnOKButtonClick">OnOKClick</event>
+                        <event name="OnSaveButtonClick"></event>
+                        <event name="OnYesButtonClick"></event>
+                    </object>
+                </object>
+            </object>
+        </object>
+    </object>
+</wxFormBuilder_Project>
diff --git a/fdmdv2/fdmdv2basic/gui.h b/fdmdv2/fdmdv2basic/gui.h
new file mode 100644 (file)
index 0000000..a32529e
--- /dev/null
@@ -0,0 +1,82 @@
+///////////////////////////////////////////////////////////////////////////\r
+// C++ code generated with wxFormBuilder (version Mar 17 2012)\r
+// http://www.wxformbuilder.org/\r
+//\r
+// PLEASE DO "NOT" EDIT THIS FILE!\r
+///////////////////////////////////////////////////////////////////////////\r
+\r
+#ifndef __GUI_H__\r
+#define __GUI_H__\r
+\r
+#include <wx/artprov.h>\r
+#include <wx/xrc/xmlres.h>\r
+#include <wx/intl.h>\r
+#include <wx/string.h>\r
+#include <wx/stattext.h>\r
+#include <wx/gdicmn.h>\r
+#include <wx/font.h>\r
+#include <wx/colour.h>\r
+#include <wx/settings.h>\r
+#include <wx/combobox.h>\r
+#include <wx/sizer.h>\r
+#include <wx/statbox.h>\r
+#include <wx/tglbtn.h>\r
+#include <wx/statline.h>\r
+#include <wx/button.h>\r
+#include <wx/dialog.h>\r
+\r
+///////////////////////////////////////////////////////////////////////////\r
+\r
+\r
+///////////////////////////////////////////////////////////////////////////////\r
+/// Class MainDialogBase\r
+///////////////////////////////////////////////////////////////////////////////\r
+class MainDialogBase : public wxDialog \r
+{\r
+       private:\r
+       \r
+       protected:\r
+               wxStaticText* m_staticText1;\r
+               wxComboBox* m_comboRxIn;\r
+               wxStaticText* m_staticText2;\r
+               wxComboBox* m_comboRxOut;\r
+               wxStaticText* m_staticText3;\r
+               wxComboBox* m_comboTxIn;\r
+               wxStaticText* m_staticText4;\r
+               wxComboBox* m_comboTxOut;\r
+               wxStaticText* m_staticText111;\r
+               wxComboBox* m_comboBox111;\r
+               wxStaticText* m_staticText211;\r
+               wxComboBox* m_comboBox211;\r
+               wxStaticText* m_staticText11;\r
+               wxComboBox* m_comboBox11;\r
+               wxStaticText* m_staticText21;\r
+               wxComboBox* m_comboBox21;\r
+               wxToggleButton* m_toggleStartStop;\r
+               wxToggleButton* m_toggleRxTx;\r
+               wxStaticLine* m_staticLine;\r
+               wxStdDialogButtonSizer* m_sdbSizer;\r
+               wxButton* m_sdbSizerCancel;\r
+               \r
+               // Virtual event handlers, overide them in your derived class\r
+               virtual void OnCloseDialog( wxCloseEvent& event ) { event.Skip(); }\r
+               virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }\r
+               virtual void OnRxInSelect( wxCommandEvent& event ) { event.Skip(); }\r
+               virtual void OnRxOutSelect( wxCommandEvent& event ) { event.Skip(); }\r
+               virtual void OnTxInSelect( wxCommandEvent& event ) { event.Skip(); }\r
+               virtual void OnTxOutSelect( wxCommandEvent& event ) { event.Skip(); }\r
+               virtual void OnRadioSelect( wxCommandEvent& event ) { event.Skip(); }\r
+               virtual void OnPortSelect( wxCommandEvent& event ) { event.Skip(); }\r
+               virtual void OnToggleStartStop( wxCommandEvent& event ) { event.Skip(); }\r
+               virtual void OnToggleRxRx( wxCommandEvent& event ) { event.Skip(); }\r
+               virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }\r
+               \r
+       \r
+       public:\r
+               \r
+               MainDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("FDMDV2Basic"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 523,526 ), long style = wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); \r
+               ~MainDialogBase();\r
+       \r
+};\r
+\r
+#endif //__GUI_H__\r
diff --git a/fdmdv2/fdmdv2basic/gui.py b/fdmdv2/fdmdv2basic/gui.py
new file mode 100644 (file)
index 0000000..e2052cb
--- /dev/null
@@ -0,0 +1,216 @@
+# -*- coding: utf-8 -*- \r
+\r
+###########################################################################\r
+## Python code generated with wxFormBuilder (version Mar 17 2012)\r
+## http://www.wxformbuilder.org/\r
+##\r
+## PLEASE DO "NOT" EDIT THIS FILE!\r
+###########################################################################\r
+\r
+import wx\r
+import wx.xrc\r
+\r
+import gettext\r
+_ = gettext.gettext\r
+\r
+###########################################################################\r
+## Class MainDialogBase\r
+###########################################################################\r
+\r
+class MainDialogBase ( wx.Dialog ):\r
+       \r
+       def __init__( self, parent ):\r
+               wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = _(u"FDMDV2Basic"), pos = wx.DefaultPosition, size = wx.Size( 523,526 ), style = wx.CLOSE_BOX|wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER )\r
+               \r
+               self.SetSizeHintsSz( wx.Size( -1,-1 ), wx.DefaultSize )\r
+               \r
+               mainSizer = wx.BoxSizer( wx.VERTICAL )\r
+               \r
+               bSizer2 = wx.BoxSizer( wx.HORIZONTAL )\r
+               \r
+               sbSizer1 = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, _(u"Settings") ), wx.VERTICAL )\r
+               \r
+               gSizer4 = wx.GridSizer( 3, 1, 0, 0 )\r
+               \r
+               sbSizer3 = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, _(u"Audio") ), wx.VERTICAL )\r
+               \r
+               gSizer1 = wx.GridSizer( 4, 2, 0, 0 )\r
+               \r
+               self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, _(u"Rx In (radio):"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               self.m_staticText1.Wrap( -1 )\r
+               gSizer1.Add( self.m_staticText1, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.ALL, 5 )\r
+               \r
+               m_comboRxInChoices = []\r
+               self.m_comboRxIn = wx.ComboBox( self, wx.ID_ANY, _(u"<default>"), wx.DefaultPosition, wx.DefaultSize, m_comboRxInChoices, 0 )\r
+               gSizer1.Add( self.m_comboRxIn, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 2 )\r
+               \r
+               self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, _(u"Rx Out (spkr):"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               self.m_staticText2.Wrap( -1 )\r
+               gSizer1.Add( self.m_staticText2, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.ALL, 5 )\r
+               \r
+               m_comboRxOutChoices = []\r
+               self.m_comboRxOut = wx.ComboBox( self, wx.ID_ANY, _(u"<default>"), wx.DefaultPosition, wx.DefaultSize, m_comboRxOutChoices, 0 )\r
+               gSizer1.Add( self.m_comboRxOut, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 2 )\r
+               \r
+               self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, _(u"Tx In (mic):"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               self.m_staticText3.Wrap( -1 )\r
+               gSizer1.Add( self.m_staticText3, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.ALL, 5 )\r
+               \r
+               m_comboTxInChoices = []\r
+               self.m_comboTxIn = wx.ComboBox( self, wx.ID_ANY, _(u"<default>"), wx.DefaultPosition, wx.DefaultSize, m_comboTxInChoices, 0 )\r
+               gSizer1.Add( self.m_comboTxIn, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 2 )\r
+               \r
+               self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, _(u"Tx Out (radio):"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               self.m_staticText4.Wrap( -1 )\r
+               gSizer1.Add( self.m_staticText4, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.ALL, 5 )\r
+               \r
+               m_comboTxOutChoices = []\r
+               self.m_comboTxOut = wx.ComboBox( self, wx.ID_ANY, _(u"<default>"), wx.DefaultPosition, wx.DefaultSize, m_comboTxOutChoices, 0 )\r
+               gSizer1.Add( self.m_comboTxOut, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 2 )\r
+               \r
+               \r
+               sbSizer3.Add( gSizer1, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND|wx.FIXED_MINSIZE, 2 )\r
+               \r
+               \r
+               gSizer4.Add( sbSizer3, 1, wx.ALIGN_CENTER|wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND|wx.FIXED_MINSIZE, 5 )\r
+               \r
+               sbSizer4 = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, _(u"label") ), wx.VERTICAL )\r
+               \r
+               gSizer111 = wx.GridSizer( 2, 2, 0, 0 )\r
+               \r
+               self.m_staticText111 = wx.StaticText( self, wx.ID_ANY, _(u"Rate:"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               self.m_staticText111.Wrap( -1 )\r
+               gSizer111.Add( self.m_staticText111, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.ALL, 5 )\r
+               \r
+               m_comboBox111Choices = []\r
+               self.m_comboBox111 = wx.ComboBox( self, wx.ID_ANY, _(u"Combo!"), wx.DefaultPosition, wx.DefaultSize, m_comboBox111Choices, 0 )\r
+               gSizer111.Add( self.m_comboBox111, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 2 )\r
+               \r
+               self.m_staticText211 = wx.StaticText( self, wx.ID_ANY, _(u"MyLabel"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               self.m_staticText211.Wrap( -1 )\r
+               gSizer111.Add( self.m_staticText211, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.ALL, 5 )\r
+               \r
+               m_comboBox211Choices = []\r
+               self.m_comboBox211 = wx.ComboBox( self, wx.ID_ANY, _(u"Combo!"), wx.DefaultPosition, wx.DefaultSize, m_comboBox211Choices, 0 )\r
+               gSizer111.Add( self.m_comboBox211, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 2 )\r
+               \r
+               \r
+               sbSizer4.Add( gSizer111, 0, wx.ALIGN_CENTER|wx.EXPAND|wx.FIXED_MINSIZE, 2 )\r
+               \r
+               \r
+               gSizer4.Add( sbSizer4, 1, wx.EXPAND|wx.FIXED_MINSIZE, 5 )\r
+               \r
+               sbSizer5 = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, _(u"Comm Port") ), wx.VERTICAL )\r
+               \r
+               gSizer11 = wx.GridSizer( 2, 2, 0, 0 )\r
+               \r
+               self.m_staticText11 = wx.StaticText( self, wx.ID_ANY, _(u"Radio:"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               self.m_staticText11.Wrap( -1 )\r
+               gSizer11.Add( self.m_staticText11, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.ALL, 5 )\r
+               \r
+               m_comboBox11Choices = []\r
+               self.m_comboBox11 = wx.ComboBox( self, wx.ID_ANY, _(u"Combo!"), wx.DefaultPosition, wx.DefaultSize, m_comboBox11Choices, 0 )\r
+               gSizer11.Add( self.m_comboBox11, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 2 )\r
+               \r
+               self.m_staticText21 = wx.StaticText( self, wx.ID_ANY, _(u"Port:"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               self.m_staticText21.Wrap( -1 )\r
+               gSizer11.Add( self.m_staticText21, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.ALL, 5 )\r
+               \r
+               m_comboBox21Choices = []\r
+               self.m_comboBox21 = wx.ComboBox( self, wx.ID_ANY, _(u"Combo!"), wx.DefaultPosition, wx.DefaultSize, m_comboBox21Choices, 0 )\r
+               gSizer11.Add( self.m_comboBox21, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 2 )\r
+               \r
+               \r
+               sbSizer5.Add( gSizer11, 0, wx.ALIGN_CENTER|wx.EXPAND|wx.FIXED_MINSIZE, 2 )\r
+               \r
+               \r
+               gSizer4.Add( sbSizer5, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.EXPAND, 5 )\r
+               \r
+               \r
+               sbSizer1.Add( gSizer4, 1, wx.EXPAND, 5 )\r
+               \r
+               \r
+               bSizer2.Add( sbSizer1, 1, wx.EXPAND, 5 )\r
+               \r
+               sbSizer2 = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, _(u"Operation") ), wx.VERTICAL )\r
+               \r
+               self.m_toggleStartStop = wx.ToggleButton( self, wx.ID_ANY, _(u"Start"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               sbSizer2.Add( self.m_toggleStartStop, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL|wx.EXPAND, 5 )\r
+               \r
+               self.m_toggleRxTx = wx.ToggleButton( self, wx.ID_ANY, _(u"Tx"), wx.DefaultPosition, wx.DefaultSize, 0 )\r
+               sbSizer2.Add( self.m_toggleRxTx, 2, wx.ALIGN_CENTER_HORIZONTAL|wx.ALL|wx.EXPAND, 5 )\r
+               \r
+               \r
+               bSizer2.Add( sbSizer2, 0, wx.EXPAND, 5 )\r
+               \r
+               \r
+               mainSizer.Add( bSizer2, 1, wx.EXPAND, 5 )\r
+               \r
+               self.m_staticLine = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL )\r
+               mainSizer.Add( self.m_staticLine, 0, wx.EXPAND |wx.ALL, 5 )\r
+               \r
+               m_sdbSizer = wx.StdDialogButtonSizer()\r
+               self.m_sdbSizerCancel = wx.Button( self, wx.ID_CANCEL )\r
+               m_sdbSizer.AddButton( self.m_sdbSizerCancel )\r
+               m_sdbSizer.Realize();\r
+               \r
+               mainSizer.Add( m_sdbSizer, 0, wx.ALIGN_RIGHT|wx.BOTTOM|wx.RIGHT, 5 )\r
+               \r
+               \r
+               self.SetSizer( mainSizer )\r
+               self.Layout()\r
+               \r
+               self.Centre( wx.BOTH )\r
+               \r
+               # Connect Events\r
+               self.Bind( wx.EVT_CLOSE, self.OnCloseDialog )\r
+               self.Bind( wx.EVT_INIT_DIALOG, self.OnInitDialog )\r
+               self.m_comboRxIn.Bind( wx.EVT_COMBOBOX, self.OnRxInSelect )\r
+               self.m_comboRxOut.Bind( wx.EVT_COMBOBOX, self.OnRxOutSelect )\r
+               self.m_comboTxIn.Bind( wx.EVT_COMBOBOX, self.OnTxInSelect )\r
+               self.m_comboTxOut.Bind( wx.EVT_COMBOBOX, self.OnTxOutSelect )\r
+               self.m_comboBox11.Bind( wx.EVT_COMBOBOX, self.OnRadioSelect )\r
+               self.m_comboBox21.Bind( wx.EVT_COMBOBOX, self.OnPortSelect )\r
+               self.m_toggleStartStop.Bind( wx.EVT_TOGGLEBUTTON, self.OnToggleStartStop )\r
+               self.m_toggleRxTx.Bind( wx.EVT_TOGGLEBUTTON, self.OnToggleRxRx )\r
+               self.m_sdbSizerCancel.Bind( wx.EVT_BUTTON, self.OnCancelClick )\r
+       \r
+       def __del__( self ):\r
+               pass\r
+       \r
+       \r
+       # Virtual event handlers, overide them in your derived class\r
+       def OnCloseDialog( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnInitDialog( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnRxInSelect( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnRxOutSelect( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnTxInSelect( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnTxOutSelect( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnRadioSelect( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnPortSelect( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnToggleStartStop( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnToggleRxRx( self, event ):\r
+               event.Skip()\r
+       \r
+       def OnCancelClick( self, event ):\r
+               event.Skip()\r
+       \r
+\r
diff --git a/fdmdv2/fdmdv2basic/main.cpp b/fdmdv2/fdmdv2basic/main.cpp
new file mode 100644 (file)
index 0000000..a8578d2
--- /dev/null
@@ -0,0 +1,545 @@
+/*********************************************************************\r
+ * Name:          main.cpp\r
+ * Purpose:       Implements simple wxWidgets application with GUI\r
+ *                 created using wxFormBuilder.\r
+ * Author:\r
+ * Created:\r
+ * Copyright:\r
+ * License:       wxWidgets license (www.wxwidgets.org)\r
+ *\r
+ * Notes:        Note that all GUI creation code is implemented in\r
+ *                 gui.cpp source file which is generated by wxFormBuilder.\r
+ *********************************************************************/\r
+\r
+#include "main.h"\r
+\r
+// initialize the application\r
+IMPLEMENT_APP(MainApp);\r
+\r
+////////////////////////////////////////////////////////////////////////////////\r
+// application class implementation\r
+////////////////////////////////////////////////////////////////////////////////\r
+\r
+bool MainApp::OnInit()\r
+{\r
+    SetTopWindow( new MainDialog( NULL ) );\r
+    GetTopWindow()->Show();\r
+\r
+    // true = enter the main loop\r
+    return true;\r
+}\r
+\r
+////////////////////////////////////////////////////////////////////////////////\r
+// main application frame implementation\r
+////////////////////////////////////////////////////////////////////////////////\r
+\r
+MainDialog::MainDialog(wxWindow *parent) : MainDialogBase( parent )\r
+{\r
+    m_RxRunning = false;\r
+    m_TxRunning = false;\r
+    if(Pa_Initialize())\r
+    {\r
+        wxMessageBox(wxT("Port Audio failed to initialize"), wxT("Pa_Initialize"), wxOK);\r
+    }\r
+}\r
+\r
+MainDialog::~MainDialog()\r
+{\r
+}\r
+\r
+void MainDialog::OnInitDialog( wxInitDialogEvent& event )\r
+{\r
+    populateAudioInfo();\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// populateStandardSampleRates()\r
+//-------------------------------------------------------------------------\r
+void MainDialog::populateStandardSampleRates(\r
+        wxComboBox* target,
+        const portaudio::DirectionSpecificStreamParameters &inputParameters,
+        const portaudio::DirectionSpecificStreamParameters &outputParameters)
+{
+    static double STANDARD_SAMPLE_RATES[] = {\r
+                                                8000.0, 9600.0, 11025.0, 12000.0,\r
+                                                16000.0, 22050.0, 24000.0, 32000.0,\r
+                                                44100.0, 48000.0, 88200.0, 96000.0,\r
+                                                -1 // negative terminated list\r
+                                            };\r
+    int printCount = 0;
+    wxString tStr;\r
+
+    for (int i = 0; STANDARD_SAMPLE_RATES[i] > 0; ++i)
+    {
+        portaudio::StreamParameters tmp = portaudio::StreamParameters(inputParameters, outputParameters, STANDARD_SAMPLE_RATES[i], 0, paNoFlag);
+        if (tmp.isSupported())
+        {
+            tStr.Printf("%i %8.2f", printCount, STANDARD_SAMPLE_RATES[i]);\r
+            target->Append(tStr);
+            ++printCount;
+        }
+    }
+    if (printCount == 0)
+    {
+        tStr = "None\n";
+        target->Append(tStr);
+    }
+}
+
+//-------------------------------------------------------------------------\r
+// OnActivate()\r
+//-------------------------------------------------------------------------\r
+int MainDialog::populateAudioInfo()
+{
+    wxString tStr;\r
+    wxString ttStr;\r
+    try
+    {
+        portaudio::AutoSystem autoSys;
+        portaudio::System &sys = portaudio::System::instance();\r
+/*
+
+        tStr.Printf("PortAudio version number: %i\n", sys.version());
+        m_textTopRight->AppendText(tStr);\r
+
+        tStr.Printf("PortAudio version number: %s\n", sys.versionText());
+        m_textTopRight->AppendText(tStr);
+\r
+        int numDevices = sys.deviceCount();
+        tStr.Printf("Number of devices: %i\n\n", numDevices);
+        m_textTopRight->AppendText(tStr);\r
+*/
+        for (portaudio::System::DeviceIterator i = sys.devicesBegin(); i != sys.devicesEnd(); ++i)
+        {
+/*\r
+            tStr.Printf("---------- device #: %i ----------\n", (*i).index());
+            m_textTopRight->AppendText(tStr);
+            bool defaultDisplayed = false;
+            if ((*i).isSystemDefaultInputDevice())
+            {
+                tStr.Printf("[ System Default Input %s", (*i).hostApi().name());
+                m_textTopRight->AppendText(tStr);
+                defaultDisplayed = true;
+            }
+            else if ((*i).isHostApiDefaultInputDevice())
+            {
+                tStr.Printf("[ HostApi Default %s Input", (*i).hostApi().name());
+                m_textTopRight->AppendText(tStr);
+                defaultDisplayed = true;
+            }
+            if ((*i).isSystemDefaultOutputDevice())
+            {
+                tStr.Printf(defaultDisplayed ? "," : "[");
+                m_textTopRight->AppendText(tStr);
+                tStr = (" System Default Output");
+                m_textTopRight->AppendText(tStr);
+                defaultDisplayed = true;
+            }
+            else if ((*i).isHostApiDefaultOutputDevice())
+            {
+                tStr.Printf(defaultDisplayed ? "," : "[");
+                m_textTopRight->AppendText(tStr);
+                tStr.Printf(" HostApi Default %s Output", (*i).hostApi().name());
+                m_textTopRight->AppendText(tStr);
+                defaultDisplayed = true;
+            }\r
+            if (defaultDisplayed)
+            {
+               tStr  =  " ]\n";
+                m_textTopRight->AppendText(tStr);
+            }
+            ttStr.Printf("Name                        : %s\n", (*i).name());
+            tStr  += ttStr;
+            ttStr.Printf("Host API                    : %s\n", (*i).hostApi().name());
+            tStr  += ttStr;
+            ttStr.Printf("Max inputs                  : %i\n", (*i).maxInputChannels());\r
+            tStr  += ttStr;
+            ttStr.Printf("Max outputs                 : %i\n\n", (*i).maxOutputChannels());\r
+            tStr  += ttStr;
+            ttStr.Printf("Default low input latency   : %8.3f\n", (*i).defaultLowInputLatency());\r
+            tStr  += ttStr;
+            ttStr.Printf("Default low output latency  : %8.3f\n", (*i).defaultLowOutputLatency());\r
+            tStr  += ttStr;
+            ttStr.Printf("Default high input latency  : %8.3f\n", (*i).defaultHighInputLatency());\r
+            tStr  += ttStr;
+            ttStr.Printf("Default high output latency : %8.3f\n\n", (*i).defaultHighOutputLatency());\r
+            tStr  += ttStr;
+            m_textTopRight->AppendText(tStr);
+
+#ifdef WIN32_ASIO
+            // ASIO specific latency information:
+            if ((*i).hostApi().typeId() == paASIO)
+            {
+                portaudio::AsioDeviceAdapter asioDevice((*i));
+                //std::cout << "ASIO minimum buffer size    = " << asioDevice.minBufferSize() << std::endl;
+                //std::cout << "ASIO maximum buffer size    = " << asioDevice.maxBufferSize() << std::endl;
+                //std::cout << "ASIO preferred buffer size  = " << asioDevice.preferredBufferSize() << std::endl;
+                if (asioDevice.granularity() == -1)
+                {
+                    //std::cout << "ASIO buffer granularity     = power of 2" << std::endl;
+                }
+                else
+                {
+                    //std::cout << "ASIO buffer granularity     = " << asioDevice.granularity() << std::endl;
+                }
+            }
+#endif // WIN32_ASIO
+
+            tStr.Printf("Default sample rate         : %8.2f\n", (*i).defaultSampleRate());
+            m_textTopRight->AppendText(tStr);
+        wxComboBox* m_comboAudioCodec;\r
+        wxComboBox* m_comboCodecTx;\r
+        wxComboBox* m_comboRadioRx;\r
+        wxComboBox* m_comboCodecSpkr;\r
+*/
+            // Poll for standard sample rates:
+            portaudio::DirectionSpecificStreamParameters inputParameters((*i), (*i).maxInputChannels(), portaudio::INT16, true, 0.0, NULL);
+            portaudio::DirectionSpecificStreamParameters outputParameters((*i), (*i).maxOutputChannels(), portaudio::INT16, true, 0.0, NULL);
+            if (inputParameters.numChannels() > 0)
+            {
+//                tStr = "Supported standard Input sample rates\n";\r
+//                m_comboAudioCodec->Append(tStr);
+//                tStr.Printf("   for half-duplex 16 bit %i channel input = ", inputParameters.numChannels());
+//                m_comboAudioCodec->InsertItems(1, &tStr, 0);
+//                m_comboAudioCodec->Append(tStr);
+                populateStandardSampleRates(m_comboRxIn, inputParameters, portaudio::DirectionSpecificStreamParameters::null());
+            }
+            if (outputParameters.numChannels() > 0)
+            {
+//                tStr = "Supported standard Output sample rates\n";\r
+//                m_comboRadioRx->Append(tStr);
+//                tStr.Printf("   for half-duplex 16 bit %i channel output = ", outputParameters.numChannels());
+//                m_comboRadioRx->Append(tStr);
+                populateStandardSampleRates(m_comboRxOut, portaudio::DirectionSpecificStreamParameters::null(), outputParameters);
+            }
+            if (inputParameters.numChannels() > 0 && inputParameters.numChannels() > 0)
+            {
+//                tStr = "Supported full-duplex sample rates\n";\r
+//                m_comboCodecTx->Append(tStr);
+//                tStr.Printf("   for full-duplex 16 bit %i channel input, %i", inputParameters.numChannels(), outputParameters.numChannels());
+//                m_comboCodecTx->InsertItems(1, &tStr, 0);
+//                m_comboCodecTx->Append(tStr);
+                populateStandardSampleRates(m_comboTxIn, inputParameters, outputParameters);
+            }
+            if (outputParameters.numChannels() > 0 && outputParameters.numChannels() > 0)
+            {
+//                tStr = "Supported full-duplex sample rates\n";\r
+//                m_comboCodecSpkr->Append(tStr);
+//                tStr.Printf("   for full-duplex 16 bit %i channel input, %i", inputParameters.numChannels(), outputParameters.numChannels());
+//                m_comboCodecTx->InsertItems(1, &tStr, 0);
+                populateStandardSampleRates(m_comboTxOut, inputParameters, outputParameters);
+            }
+        }
+    }
+    catch (const portaudio::PaException &e)
+    {
+        tStr.Printf("A PortAudio error occured: %s\n",  e.paErrorText());\r
+        wxMessageBox(tStr, wxT("Portaudio exception"), wxOK);
+    }
+    catch (const portaudio::PaCppException &e)
+    {
+        tStr.Printf("A PortAudioCpp error occured: %s\n", e.what());
+        wxMessageBox(tStr, wxT("PortAudioCpp error"), wxOK);
+    }
+    catch (const std::exception &e)
+    {
+        tStr.Printf("A generic exception occured: %s\n", e.what());
+        wxMessageBox(tStr, wxT("Generic Exception"), wxOK);
+    }
+    catch (...)
+    {
+        tStr.Printf("An unknown exception occured.\n");
+        wxMessageBox(tStr, wxT("Unknown error"), wxOK);
+    }
+    return 0;
+}
+\r
+void MainDialog::OnToggleStartStop( wxCommandEvent& event )\r
+{\r
+    if((!m_TxRunning) || (!m_RxRunning))\r
+    {\r
+        startRxStream();\r
+        startTxStream();\r
+    }\r
+    else\r
+    {\r
+        stopRxStream();\r
+        stopTxStream();\r
+    }\r
+}\r
+\r
+void MainDialog::OnToggleRxRx( wxCommandEvent& event )\r
+{\r
+}\r
+\r
+void MainDialog::OnRxInSelect(wxCommandEvent& event)\r
+{\r
+}\r
+\r
+void MainDialog::OnRxOutSelect(wxCommandEvent& event)\r
+{\r
+}\r
+\r
+void MainDialog::OnTxInSelect(wxCommandEvent& event)\r
+{\r
+}\r
+\r
+void MainDialog::OnTxOutSelect(wxCommandEvent& event)\r
+{\r
+}\r
+\r
+void MainDialog::OnRadioSelect(wxCommandEvent& event)\r
+{\r
+}\r
+\r
+void MainDialog::OnPortSelect(wxCommandEvent& event)\r
+{\r
+}\r
+\r
+void MainDialog::OnCloseDialog(wxCloseEvent& event)\r
+{\r
+    Pa_Terminate();\r
+    Destroy();\r
+}\r
+\r
+void MainDialog::OnOKClick(wxCommandEvent& event)
+{\r
+    Pa_Terminate();\r
+    Destroy();
+}
+
+void MainDialog::OnCancelClick(wxCommandEvent& event)
+{\r
+    Pa_Terminate();\r
+    Destroy();
+}\r
+
+//-------------------------------------------------------------------------\r
+// rxCallback()\r
+//-------------------------------------------------------------------------\r
+static int rxCallback(   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
+// txCallback()\r
+//-------------------------------------------------------------------------\r
+static int txCallback(   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
+// startRxStream()\r
+//-------------------------------------------------------------------------\r
+void MainDialog::startRxStream()\r
+{\r
+    if(!m_RxRunning)\r
+    {\r
+        m_RxRunning = true;\r
+        m_rxPa = new PortAudioWrap();
+
+        m_rxDevIn = m_rxPa->getDefaultInputDevice();                   // default input device
+        if(m_rxDevIn == paNoDevice)
+        {
+            wxMessageBox(wxT("Rx Error: No default input device."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_rxErr = m_rxPa->setInputDevice(m_rxDevIn);
+        m_rxErr = m_rxPa->setInputChannelCount(2);                           // stereo input
+        m_rxErr = m_rxPa->setInputSampleFormat(PA_SAMPLE_TYPE);
+        m_rxErr = m_rxPa->setInputLatency(m_rxPa->getInputDefaultLowLatency());\r
+        m_rxPa->setInputHostApiStreamInfo(NULL);
+
+        m_rxDevOut = m_rxPa->getDefaultOutputDevice();                 // default output device
+        if (m_rxDevOut == paNoDevice)
+        {
+            wxMessageBox(wxT("Rx Error: No default output device."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_rxErr = m_rxPa->setOutputDevice(m_rxDevOut);
+        m_rxErr = m_rxPa->setOutputChannelCount(2);                           // stereo input
+        m_rxErr = m_rxPa->setOutputSampleFormat(PA_SAMPLE_TYPE);\r
+
+        m_rxErr = m_rxPa->setOutputLatency(m_rxPa->getOutputDefaultLowLatency());
+        m_rxPa->setOutputHostApiStreamInfo(NULL);
+
+        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->setCallback(rxCallback);
+        m_rxErr = m_rxPa->streamOpen();
+
+        if(m_rxErr != paNoError)
+        {
+            wxMessageBox(wxT("Rx Stream Open/Setup error."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_rxErr = m_rxPa->streamStart();
+        if(m_rxErr != paNoError)
+        {
+            wxMessageBox(wxT("Rx Stream Start Error."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_toggleStartStop->SetLabel(wxT("Stop"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// stopRxStream()\r
+//-------------------------------------------------------------------------\r
+void MainDialog::stopRxStream()\r
+{\r
+    if(m_RxRunning)\r
+    {\r
+        m_RxRunning = false;\r
+        m_rxPa->stop();\r
+        m_rxPa->streamClose();\r
+        m_toggleStartStop->SetLabel(wxT("Start"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// abortRxStream()\r
+//-------------------------------------------------------------------------\r
+void MainDialog::abortRxStream()\r
+{\r
+    if(m_RxRunning)\r
+    {\r
+        m_RxRunning = false;\r
+        m_rxPa->abort();\r
+        m_toggleStartStop->SetLabel(wxT("Start"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// startTxStream()\r
+//-------------------------------------------------------------------------\r
+void MainDialog::startTxStream()\r
+{\r
+    if(!m_TxRunning)\r
+    {\r
+        m_TxRunning = true;\r
+        m_txPa = new PortAudioWrap();
+
+        m_txDevIn = m_txPa->getDefaultInputDevice();                   // default input device
+        if(m_txDevIn == paNoDevice)
+        {
+            wxMessageBox(wxT("Tx Error: No default input device."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_txErr = m_txPa->setInputDevice(m_txDevIn);
+        m_txErr = m_txPa->setInputChannelCount(2);                           // stereo input
+        m_txErr = m_txPa->setInputSampleFormat(PA_SAMPLE_TYPE);
+        m_txErr = m_txPa->setInputLatency(m_txPa->getInputDefaultLowLatency());\r
+        m_txPa->setInputHostApiStreamInfo(NULL);
+
+        m_txDevOut = m_txPa->getDefaultOutputDevice();                 // default output device
+        if (m_txDevOut == paNoDevice)
+        {
+            wxMessageBox(wxT("Tx Error: No default output device."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_txErr = m_txPa->setOutputDevice(m_txDevOut);
+        m_txErr = m_txPa->setOutputChannelCount(2);                           // stereo input
+        m_txErr = m_txPa->setOutputSampleFormat(PA_SAMPLE_TYPE);\r
+
+        m_txErr = m_txPa->setOutputLatency(m_txPa->getOutputDefaultLowLatency());
+        m_txPa->setOutputHostApiStreamInfo(NULL);
+
+        m_txErr = m_txPa->setFramesPerBuffer(FRAMES_PER_BUFFER);
+        m_txErr = m_txPa->setSampleRate(SAMPLE_RATE);
+        m_txErr = m_txPa->setStreamFlags(0);
+        m_txErr = m_txPa->setCallback(txCallback);
+        m_txErr = m_txPa->streamOpen();
+
+        if(m_txErr != paNoError)
+        {
+            wxMessageBox(wxT("Tx Stream Open/Setup error."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_txErr = m_txPa->streamStart();
+        if(m_txErr != paNoError)
+        {
+            wxMessageBox(wxT("Tx Stream Start Error."), wxT("Error"), wxOK);\r
+            return;\r
+        }
+        m_toggleStartStop->SetLabel(wxT("Stop"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// stopTxStream()\r
+//-------------------------------------------------------------------------\r
+void MainDialog::stopTxStream()\r
+{\r
+    if(m_TxRunning)\r
+    {\r
+        m_TxRunning = false;\r
+        m_txPa->stop();\r
+        m_txPa->streamClose();\r
+        m_toggleStartStop->SetLabel(wxT("Start"));\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// abortTxStream()\r
+//-------------------------------------------------------------------------\r
+void MainDialog::abortTxStream()\r
+{\r
+    if(m_TxRunning)\r
+    {\r
+        m_TxRunning = false;\r
+        m_txPa->abort();\r
+        m_toggleStartStop->SetLabel(wxT("Start"));\r
+    }\r
+}\r
diff --git a/fdmdv2/fdmdv2basic/main.h b/fdmdv2/fdmdv2basic/main.h
new file mode 100644 (file)
index 0000000..a8326ee
--- /dev/null
@@ -0,0 +1,97 @@
+/*********************************************************************
+ * Name:          main.h
+ * Purpose:       Declares simple wxWidgets application with GUI
+ *                 created using wxFormBuilder.
+ * Author:
+ * Created:
+ * Copyright:
+ * License:       wxWidgets license (www.wxwidgets.org)
+ *
+ * Notes:        Note that all GUI creation code is declared in
+ *                 gui.h source file which is generated by wxFormBuilder.
+ *********************************************************************/
+
+#ifndef __main__
+#define __main__
+
+// main wxWidgets header file
+#include <wx/wx.h>
+
+// Necessary Audio Stuff
+#include "../libsndfile/include/sndfile.h"\r
+#include "../extern/include/portaudio.h"
+#include "../extern/include/portaudiocpp/PortAudioCpp.hxx"
+#ifdef WIN32
+#include "../extern/include/portaudiocpp/AsioDeviceAdapter.hxx"
+#endif
+#include "paclass.h"
+
+// Fdmdv2 & Codec2 stuff
+#include "C:\Users\wittend\Projects\Radio\codec2-dev\src\codec2.h"
+#include "C:\Users\wittend\Projects\Radio\codec2-dev\src\fdmdv.h"
+
+// gui classes generated by wxFormBuilder
+#include "gui.h"
+
+////////////////////////////////////////////////////////////////////////////////
+// application class declaration
+////////////////////////////////////////////////////////////////////////////////
+
+class MainApp : public wxApp
+{
+    public:
+        virtual bool OnInit();
+};
+
+// declare global static function wxGetApp()
+DECLARE_APP(MainApp)
+
+////////////////////////////////////////////////////////////////////////////////
+// main application frame declaration
+////////////////////////////////////////////////////////////////////////////////
+
+class MainDialog : public MainDialogBase
+{
+    public:
+        MainDialog( wxWindow *parent );
+        virtual ~MainDialog();
+        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;
+
+    protected:
+        // protected event handlers
+        void startTxStream();\r
+        void startRxStream();\r
+        void stopTxStream();\r
+        void stopRxStream();\r
+        void abortTxStream();\r
+        void abortRxStream();\r
+        void OnInitDialog( wxInitDialogEvent& event );
+        void OnCloseDialog( wxCloseEvent& event );
+        void OnOKClick( wxCommandEvent& event );
+        void OnCancelClick( wxCommandEvent& event );
+        void OnToggleStartStop( wxCommandEvent& event );\r
+        void OnToggleRxRx( wxCommandEvent& event );
+        void OnRxInSelect( wxCommandEvent& event );\r
+        void OnRxOutSelect( wxCommandEvent& event );\r
+        void OnTxInSelect( wxCommandEvent& event );\r
+        void OnTxOutSelect( wxCommandEvent& event );\r
+        void OnRadioSelect( wxCommandEvent& event );\r
+        void OnPortSelect( wxCommandEvent& event );\r
+
+        void populateStandardSampleRates(wxComboBox* target, const portaudio::DirectionSpecificStreamParameters &inputParameters, const portaudio::DirectionSpecificStreamParameters &outputParameters);
+        int populateAudioInfo();
+\r
+};
+
+#endif //__main__
diff --git a/fdmdv2/fdmdv2basic/paclass.cpp b/fdmdv2/fdmdv2basic/paclass.cpp
new file mode 100644 (file)
index 0000000..6e98b3b
--- /dev/null
@@ -0,0 +1,211 @@
+#include "paclass.h"
+
+PortAudioWrap::PortAudioWrap()
+{
+    stream                  = NULL;\r
+    userData                = NULL;\r
+    samplerate              = 0;\r
+    framesPerBuffer         = 0;
+    statusFlags             = 0;\r
+    streamCallback          = NULL;\r
+    streamFinishedCallback  = NULL;\r
+    timeInfo                = 0;
+}
+
+PortAudioWrap::~PortAudioWrap()
+{
+}
+
+//PaError PortAudioWrap::init()
+//{
+//    return Pa_Initialize();
+//}
+
+PaError PortAudioWrap::streamOpen()\r
+{
+    return Pa_OpenStream(
+                            &stream,
+                            &inputBuffer,
+                            &outputBuffer,
+                            samplerate,
+                            framesPerBuffer,
+                            statusFlags,
+                            *streamCallback,
+                            userData
+                        );
+}
+
+PaError PortAudioWrap::streamStart()\r
+{
+    return Pa_StartStream(stream);
+}
+
+PaError PortAudioWrap::streamClose()\r
+{
+    if(isOpen())
+    {
+        PaError rv = Pa_CloseStream(stream);
+        return rv;
+    }
+    else
+    {
+        return paNoError;
+    }
+}
+\r
+void PortAudioWrap::terminate()\r
+{
+    if(Pa_IsStreamStopped(stream) != paNoError)
+    {
+        Pa_StopStream(stream);
+    }
+    Pa_Terminate();
+}
+\r
+void PortAudioWrap::stop()
+{
+    Pa_StopStream(stream);
+}
+
+void PortAudioWrap::abort()
+{
+    Pa_AbortStream(stream);
+}
+
+bool PortAudioWrap::isStopped() const
+{
+    PaError ret = Pa_IsStreamStopped(stream);
+    return ret;
+}
+
+bool PortAudioWrap::isActive() const
+{
+    PaError ret = Pa_IsStreamActive(stream);
+    return ret;
+}
+
+bool PortAudioWrap::isOpen() const\r
+{\r
+    return (stream != NULL);\r
+}\r
+
+PaDeviceIndex PortAudioWrap::getDefaultInputDevice()
+{
+    return Pa_GetDefaultInputDevice();
+}
+
+PaDeviceIndex PortAudioWrap::getDefaultOutputDevice()
+{
+    return Pa_GetDefaultOutputDevice();
+}
+
+PaError PortAudioWrap::setInputChannelCount(int count)
+{
+    inputBuffer.channelCount = count;
+    return paNoError;
+}
+
+PaError PortAudioWrap::getInputChannelCount()
+{
+    return inputBuffer.channelCount;
+}
+
+PaError PortAudioWrap::setInputSampleFormat(PaSampleFormat format)
+{
+    inputBuffer.sampleFormat = format;
+    return paNoError;
+}
+
+PaError PortAudioWrap::setInputLatency(PaTime latency)
+{
+    inputBuffer.suggestedLatency = latency;
+    return paNoError;
+}
+\r
+void PortAudioWrap::setInputHostApiStreamInfo(void *info)
+{
+    inputBuffer.hostApiSpecificStreamInfo = info;
+}
+\r
+PaTime  PortAudioWrap::getInputDefaultLowLatency()
+{
+    return Pa_GetDeviceInfo(inputBuffer.device)->defaultLowInputLatency;
+}
+
+PaError PortAudioWrap::setOutputChannelCount(int count)
+{
+    outputBuffer.channelCount = count;
+    return paNoError;
+}
+
+int PortAudioWrap::getOutputChannelCount()
+{
+    return outputBuffer.channelCount;
+}
+
+const char *PortAudioWrap::getDeviceName(PaDeviceIndex dev)
+{
+    const PaDeviceInfo *info;
+    info = Pa_GetDeviceInfo(dev);
+    return info->name;
+}
+
+PaError PortAudioWrap::setOutputSampleFormat(PaSampleFormat format)
+{
+    outputBuffer.sampleFormat = format;
+    return paNoError;
+}
+
+PaError PortAudioWrap::setOutputLatency(PaTime latency)
+{
+    outputBuffer.suggestedLatency = latency;
+    return paNoError;
+}
+
+void PortAudioWrap::setOutputHostApiStreamInfo(void *info)
+{
+    outputBuffer.hostApiSpecificStreamInfo = info;
+}
+
+PaTime  PortAudioWrap::getOutputDefaultLowLatency()
+{
+    return Pa_GetDeviceInfo(outputBuffer.device)->defaultLowOutputLatency;
+}
+
+PaError PortAudioWrap::setFramesPerBuffer(unsigned long size)
+{
+    framesPerBuffer = size;
+    return paNoError;
+}
+
+PaError PortAudioWrap::setSampleRate(unsigned long rate)\r
+{
+    samplerate = rate;
+    return paNoError;
+}
+
+PaError PortAudioWrap::setStreamFlags(PaStreamFlags flags)\r
+{
+    statusFlags = flags;
+    return paNoError;
+}
+
+PaError PortAudioWrap::setInputDevice(PaDeviceIndex index)\r
+{
+//    inputDevice = index;
+    inputBuffer.device = index;
+    return paNoError;
+}
+
+PaError PortAudioWrap::setOutputDevice(PaDeviceIndex index)\r
+{
+//    outputDevice = index;
+    outputBuffer.device = index;
+    return paNoError;
+}
+
+PaError PortAudioWrap::setCallback(PaStreamCallback *callback)\r
+{
+    streamCallback = callback;
+    return paNoError;
+}
diff --git a/fdmdv2/fdmdv2basic/paclass.h b/fdmdv2/fdmdv2basic/paclass.h
new file mode 100644 (file)
index 0000000..a20b272
--- /dev/null
@@ -0,0 +1,76 @@
+#include <stdio.h>
+#include <math.h>
+#include "portaudio.h"
+\r
+// Note that many of the older ISA sound cards on PCs do NOT support
+// full duplex audio (simultaneous record and playback).
+// And some only support full duplex at lower sample rates.
+#define SAMPLE_RATE         (44100)
+#define PA_SAMPLE_TYPE      paFloat32       //paInt16
+#define FRAMES_PER_BUFFER   (64)
+
+typedef float SAMPLE;
+
+float CubicAmplifier(float input);
+
+class PortAudioWrap\r
+{\r
+    public:\r
+        PortAudioWrap();\r
+        ~PortAudioWrap();\r
+\r
+    private:\r
+        PaStream                        *stream;\r
+        PaStreamParameters              inputBuffer;
+        PaStreamParameters              outputBuffer;
+        void                            *userData;\r
+        int                             samplerate;\r
+        unsigned long                   framesPerBuffer;
+        PaStreamCallbackFlags           statusFlags;\r
+        PaStreamCallback                *streamCallback;\r
+        PaStreamFinishedCallback        *streamFinishedCallback;\r
+        const PaStreamCallbackTimeInfo  *timeInfo;
+\r
+    public:\r
+
+        PaError streamOpen();\r
+\r
+        PaDeviceIndex getDefaultInputDevice();
+        PaDeviceIndex getDefaultOutputDevice();\r
+\r
+        PaStreamParameters *getDeviceInfo(PaDeviceIndex idx);\r
+        PaError     setFramesPerBuffer(unsigned long size);\r
+        PaError     setSampleRate(unsigned long size);\r
+        PaError     setStreamFlags(PaStreamFlags flags);\r
+        PaError     setCallback(PaStreamCallback *streamCallback);\r
+        PaError     setStreamCallback(PaStream *stream, PaStreamCallback* callback ) { streamCallback = callback; return 0;}
+        PaError     setStreamFinishedCallback(PaStream *stream, PaStreamFinishedCallback* streamFinishedCallback );
+
+        PaError     setInputDevice(PaDeviceIndex dev);\r
+        PaError     setInputChannelCount(int count);
+        int         getInputChannelCount();
+        PaError     setInputSampleFormat(PaSampleFormat format);
+        PaError     setInputSampleRate(PaSampleFormat format);
+        PaError     setInputLatency(PaTime latency);\r
+        void        setInputHostApiStreamInfo(void *info = NULL);\r
+        PaTime      getInputDefaultLowLatency();
+        const char  *getDeviceName(PaDeviceIndex dev);
+
+        PaError     setOutputDevice(PaDeviceIndex dev);\r
+        PaError     setOutputChannelCount(int count);
+        int         getOutputChannelCount();
+        PaError     setOutputSampleFormat(PaSampleFormat format);
+        PaError     setOutputLatency(PaTime latency);
+        void        setOutputHostApiStreamInfo(void *info = NULL);
+        PaTime      getOutputDefaultLowLatency();
+\r
+//        PaError     init();\r
+        PaError     streamStart();\r
+        PaError     streamClose();\r
+        void        terminate();\r
+        bool        isOpen() const;\r
+        void        stop();
+        void        abort();
+        bool        isStopped() const;
+        bool        isActive() const;
+};\r
index 62c1be1eacf409e6159b5fe3e3e286bb3b1c67e8..5ecb8b8d457a8b776e231746161bebf2cd2754b6 100644 (file)
@@ -2,10 +2,10 @@
 ## Auto Generated makefile by CodeLite IDE\r
 ## any manual changes will be erased      \r
 ##\r
-## Debug\r
+## Release\r
 ProjectName            :=test_hamlib\r
-ConfigurationName      :=Debug\r
-IntermediateDirectory  :=./Debug\r
+ConfigurationName      :=Release\r
+IntermediateDirectory  :=./Release\r
 OutDir                 := $(IntermediateDirectory)\r
 WorkspacePath          := "C:\Users\wittend\Projects\Radio\fdmdv2"\r
 ProjectPath            := "C:\Users\wittend\Projects\Radio\fdmdv2\hamlib-3.0\test_hamlib"\r
@@ -13,7 +13,7 @@ CurrentFileName        :=
 CurrentFilePath        :=\r
 CurrentFileFullPath    :=\r
 User                   :=wittend\r
-Date                   :=6/12/2012\r
+Date                   :=6/15/2012\r
 CodeLitePath           :="C:\Program Files\CodeLite"\r
 LinkerName             :=g++\r
 ArchiveTool            :=ar rcus\r
@@ -38,9 +38,9 @@ PreprocessOnlySwitch   :=-E
 ObjectsFileList        :="C:\Users\wittend\Projects\Radio\fdmdv2\hamlib-3.0\test_hamlib\test_hamlib.txt"\r
 PCHCompileFlags        :=\r
 MakeDirCommand         :=makedir\r
-CmpOptions             := -g -O0 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=yes) $(Preprocessors)\r
-C_CmpOptions           := -g -O0 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=yes) $(Preprocessors)\r
-LinkOptions            :=  $(shell wx-config --debug=yes --libs --unicode=yes)\r
+CmpOptions             := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
+C_CmpOptions           := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
+LinkOptions            :=  -s $(shell wx-config --debug=no --libs --unicode=yes)\r
 IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch)../include/ \r
 IncludePCH             := \r
 RcIncludePath          := \r
@@ -52,7 +52,7 @@ LibPath                := $(LibraryPathSwitch). $(LibraryPathSwitch)../lib/gcc/
 ## User defined environment variables\r
 ##\r
 CodeLiteDir:=C:\Program Files\CodeLite\r
-WXWIN:=C:\bin\wxWidgets-2.9.2\r
+WXWIN:=C:\bin\wxWidgets-2.9.4\r
 PATH:=$(WXWIN)\lib\gcc_dll;$(PATH)\r
 WXCFG:=gcc_dll\mswu\r
 UNIT_TEST_PP_SRC_DIR:=C:\bin\UnitTest++-1.3\r
@@ -71,7 +71,7 @@ $(OutputFile): $(IntermediateDirectory)/.d $(Objects)
        $(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)\r
 \r
 $(IntermediateDirectory)/.d:\r
-       @$(MakeDirCommand) "./Debug"\r
+       @$(MakeDirCommand) "./Release"\r
 \r
 PreBuild:\r
 \r
@@ -98,6 +98,6 @@ clean:
        $(RM) $(IntermediateDirectory)/main$(PreprocessSuffix)\r
        $(RM) $(OutputFile)\r
        $(RM) $(OutputFile).exe\r
-       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-debug\test_hamlib"\r
+       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-release\test_hamlib"\r
 \r
 \r
index 042ee3b7f7594a495d706499598c06def8b4e854..1797b4e999b187d7a8ad3d3b596d0b683743cef0 100644 (file)
@@ -2,10 +2,10 @@
 ## Auto Generated makefile by CodeLite IDE\r
 ## any manual changes will be erased      \r
 ##\r
-## Debug\r
+## Release\r
 ProjectName            :=test_sndfile\r
-ConfigurationName      :=Debug\r
-IntermediateDirectory  :=./Debug\r
+ConfigurationName      :=Release\r
+IntermediateDirectory  :=./Release\r
 OutDir                 := $(IntermediateDirectory)\r
 WorkspacePath          := "C:\Users\wittend\Projects\Radio\fdmdv2"\r
 ProjectPath            := "C:\Users\wittend\Projects\Radio\fdmdv2\libsndfile\Projects\w32-mingw"\r
@@ -13,7 +13,7 @@ CurrentFileName        :=
 CurrentFilePath        :=\r
 CurrentFileFullPath    :=\r
 User                   :=wittend\r
-Date                   :=6/12/2012\r
+Date                   :=6/15/2012\r
 CodeLitePath           :="C:\Program Files\CodeLite"\r
 LinkerName             :=g++\r
 ArchiveTool            :=ar rcus\r
@@ -38,8 +38,8 @@ PreprocessOnlySwitch   :=-E
 ObjectsFileList        :="C:\Users\wittend\Projects\Radio\fdmdv2\libsndfile\Projects\w32-mingw\test_sndfile.txt"\r
 PCHCompileFlags        :=\r
 MakeDirCommand         :=makedir\r
-CmpOptions             := -g -O0 -Wall $(Preprocessors)\r
-C_CmpOptions           := -g -O0 -Wall $(Preprocessors)\r
+CmpOptions             := -O2 -Wall $(Preprocessors)\r
+C_CmpOptions           := -O2 -Wall $(Preprocessors)\r
 LinkOptions            :=  \r
 IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch). \r
 IncludePCH             := \r
@@ -52,7 +52,7 @@ LibPath                := $(LibraryPathSwitch).
 ## User defined environment variables\r
 ##\r
 CodeLiteDir:=C:\Program Files\CodeLite\r
-WXWIN:=C:\bin\wxWidgets-2.9.2\r
+WXWIN:=C:\bin\wxWidgets-2.9.4\r
 PATH:=$(WXWIN)\lib\gcc_dll;$(PATH)\r
 WXCFG:=gcc_dll\mswu\r
 UNIT_TEST_PP_SRC_DIR:=C:\bin\UnitTest++-1.3\r
@@ -71,7 +71,7 @@ $(OutputFile): $(IntermediateDirectory)/.d $(Objects)
        $(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)\r
 \r
 $(IntermediateDirectory)/.d:\r
-       @$(MakeDirCommand) "./Debug"\r
+       @$(MakeDirCommand) "./Release"\r
 \r
 PreBuild:\r
 \r
@@ -98,6 +98,6 @@ clean:
        $(RM) $(IntermediateDirectory)/main$(PreprocessSuffix)\r
        $(RM) $(OutputFile)\r
        $(RM) $(OutputFile).exe\r
-       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-debug\test_sndfile"\r
+       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-release\test_sndfile"\r
 \r
 \r
index f2c5c8782277b847c46029ad18aa8ddeefe0f0c8..5094e4e100be67cd35a25cb95e3973d13e92f1f3 100644 (file)
@@ -2,10 +2,10 @@
 ## Auto Generated makefile by CodeLite IDE\r
 ## any manual changes will be erased      \r
 ##\r
-## Debug\r
+## Release\r
 ProjectName            :=pa_cppbinding_test\r
-ConfigurationName      :=Debug\r
-IntermediateDirectory  :=./Debug\r
+ConfigurationName      :=Release\r
+IntermediateDirectory  :=./Release\r
 OutDir                 := $(IntermediateDirectory)\r
 WorkspacePath          := "C:\Users\wittend\Projects\Radio\fdmdv2"\r
 ProjectPath            := "C:\Users\wittend\Projects\Radio\fdmdv2\pa_cppbinding_test"\r
@@ -13,7 +13,7 @@ CurrentFileName        :=
 CurrentFilePath        :=\r
 CurrentFileFullPath    :=\r
 User                   :=wittend\r
-Date                   :=6/12/2012\r
+Date                   :=6/15/2012\r
 CodeLitePath           :="C:\Program Files\CodeLite"\r
 LinkerName             :=g++\r
 ArchiveTool            :=ar rcus\r
@@ -38,13 +38,13 @@ PreprocessOnlySwitch   :=-E
 ObjectsFileList        :="C:\Users\wittend\Projects\Radio\fdmdv2\pa_cppbinding_test\pa_cppbinding_test.txt"\r
 PCHCompileFlags        :=\r
 MakeDirCommand         :=makedir\r
-CmpOptions             := -g -O0 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=yes) $(Preprocessors)\r
-C_CmpOptions           := -g -O0 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=yes) $(Preprocessors)\r
-LinkOptions            :=  -mwindows $(shell wx-config --debug=yes --libs --unicode=yes)\r
-IncludePath            :=  $(IncludeSwitch). \r
+CmpOptions             := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
+C_CmpOptions           := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
+LinkOptions            :=  -mwindows -s $(shell wx-config --debug=no --libs --unicode=yes)\r
+IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch)./ $(IncludeSwitch)C:/bin/MinGW/msys/1.0/local/include $(IncludeSwitch)./portaudiocpp \r
 IncludePCH             := \r
 RcIncludePath          := \r
-Libs                   := $(LibrarySwitch)portaudiocpp.la $(LibrarySwitch)portaudio.la \r
+Libs                   := $(LibrarySwitch)portaudiocpp-0 $(LibrarySwitch)portaudio-2 \r
 LibPath                := $(LibraryPathSwitch). $(LibraryPathSwitch). \r
 \r
 \r
@@ -52,7 +52,7 @@ LibPath                := $(LibraryPathSwitch). $(LibraryPathSwitch).
 ## User defined environment variables\r
 ##\r
 CodeLiteDir:=C:\Program Files\CodeLite\r
-WXWIN:=C:\bin\wxWidgets-2.9.2\r
+WXWIN:=C:\bin\wxWidgets-2.9.4\r
 PATH:=$(WXWIN)\lib\gcc_dll;$(PATH)\r
 WXCFG:=gcc_dll\mswu\r
 UNIT_TEST_PP_SRC_DIR:=C:\bin\UnitTest++-1.3\r
@@ -71,7 +71,7 @@ $(OutputFile): $(IntermediateDirectory)/.d $(Objects)
        $(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)\r
 \r
 $(IntermediateDirectory)/.d:\r
-       @$(MakeDirCommand) "./Debug"\r
+       @$(MakeDirCommand) "./Release"\r
 \r
 PreBuild:\r
 \r
@@ -109,6 +109,6 @@ clean:
        $(RM) $(IntermediateDirectory)/main$(PreprocessSuffix)\r
        $(RM) $(OutputFile)\r
        $(RM) $(OutputFile).exe\r
-       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-debug\pa_cppbinding_test"\r
+       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-release\pa_cppbinding_test"\r
 \r
 \r
index 3792c541c5b017fd8eff2730903c9781326221cc..6728a3af9da0b8aab7d0844777a0ba3969ba195c 100644 (file)
@@ -40,8 +40,6 @@
   <VirtualDirectory Name="resources">
     <File Name="gui.fbp"/>
   </VirtualDirectory>
-  <Dependencies Name="Debug"/>
-  <Dependencies Name="Release"/>
   <Settings Type="Executable">
     <GlobalSettings>
       <Compiler Options="" C_Options="">
       </Completion>
     </Configuration>
   </Settings>
+  <Dependencies Name="Debug"/>
+  <Dependencies Name="Release"/>
 </CodeLite_Project>
index 9f7391ef01910d7d1a75a460193f8984394b8236..a1d473962892c31108e34712b85ba2da39fc9fcb 100644 (file)
@@ -2,10 +2,10 @@
 ## Auto Generated makefile by CodeLite IDE\r
 ## any manual changes will be erased      \r
 ##\r
-## Debug\r
+## Release\r
 ProjectName            :=pa_test\r
-ConfigurationName      :=Debug\r
-IntermediateDirectory  :=./Debug\r
+ConfigurationName      :=Release\r
+IntermediateDirectory  :=./Release\r
 OutDir                 := $(IntermediateDirectory)\r
 WorkspacePath          := "C:\Users\wittend\Projects\Radio\fdmdv2"\r
 ProjectPath            := "C:\Users\wittend\Projects\Radio\fdmdv2\pa_test"\r
@@ -13,7 +13,7 @@ CurrentFileName        :=
 CurrentFilePath        :=\r
 CurrentFileFullPath    :=\r
 User                   :=wittend\r
-Date                   :=6/12/2012\r
+Date                   :=6/15/2012\r
 CodeLitePath           :="C:\Program Files\CodeLite"\r
 LinkerName             :=g++\r
 ArchiveTool            :=ar rcus\r
@@ -38,10 +38,10 @@ PreprocessOnlySwitch   :=-E
 ObjectsFileList        :="C:\Users\wittend\Projects\Radio\fdmdv2\pa_test\pa_test.txt"\r
 PCHCompileFlags        :=\r
 MakeDirCommand         :=makedir\r
-CmpOptions             := -g -O0 -Wall $(Preprocessors)\r
-C_CmpOptions           := -g -O0 -Wall $(Preprocessors)\r
+CmpOptions             := -O2 -Wall $(Preprocessors)\r
+C_CmpOptions           := -O2 -Wall $(Preprocessors)\r
 LinkOptions            :=  \r
-IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch). $(IncludeSwitch)../extern/include $(IncludeSwitch)../../../portaudio/include \r
+IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch). $(IncludeSwitch)extern/include \r
 IncludePCH             := \r
 RcIncludePath          := \r
 Libs                   := $(LibrarySwitch)portaudio \r
@@ -52,7 +52,7 @@ LibPath                := $(LibraryPathSwitch).
 ## User defined environment variables\r
 ##\r
 CodeLiteDir:=C:\Program Files\CodeLite\r
-WXWIN:=C:\bin\wxWidgets-2.9.2\r
+WXWIN:=C:\bin\wxWidgets-2.9.4\r
 PATH:=$(WXWIN)\lib\gcc_dll;$(PATH)\r
 WXCFG:=gcc_dll\mswu\r
 UNIT_TEST_PP_SRC_DIR:=C:\bin\UnitTest++-1.3\r
@@ -71,7 +71,7 @@ $(OutputFile): $(IntermediateDirectory)/.d $(Objects)
        $(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)\r
 \r
 $(IntermediateDirectory)/.d:\r
-       @$(MakeDirCommand) "./Debug"\r
+       @$(MakeDirCommand) "./Release"\r
 \r
 PreBuild:\r
 \r
@@ -98,6 +98,6 @@ clean:
        $(RM) $(IntermediateDirectory)/pa_class$(PreprocessSuffix)\r
        $(RM) $(OutputFile)\r
        $(RM) $(OutputFile).exe\r
-       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-debug\pa_test"\r
+       $(RM) "C:\Users\wittend\Projects\Radio\fdmdv2\.build-release\pa_test"\r
 \r
 \r
index 3c024018b57d888e41d48e7cce6afeb592218d1e..c479d7ddb5f2f3728a21608b48e96087f24fff94 100644 (file)
@@ -13,8 +13,6 @@
   <VirtualDirectory Name="include">
     <File Name="pa_class.h"/>
   </VirtualDirectory>
-  <Dependencies Name="Debug"/>
-  <Dependencies Name="Release"/>
   <Settings Type="Executable">
     <GlobalSettings>
       <Compiler Options="" C_Options="">
       </Completion>
     </Configuration>
   </Settings>
+  <Dependencies Name="Debug"/>
+  <Dependencies Name="Release"/>
 </CodeLite_Project>