Various incremental advances. Not 'there' yet.
authorwittend99 <wittend99@01035d8c-6547-0410-b346-abe4f91aad63>
Sat, 6 Oct 2012 19:16:25 +0000 (19:16 +0000)
committerwittend99 <wittend99@01035d8c-6547-0410-b346-abe4f91aad63>
Sat, 6 Oct 2012 19:16:25 +0000 (19:16 +0000)
git-svn-id: https://svn.code.sf.net/p/freetel/code@738 01035d8c-6547-0410-b346-abe4f91aad63

47 files changed:
fdmdv2/build/fdmdv2.mk
fdmdv2/build/fdmdv2.project
fdmdv2/build/fdmdv2.txt
fdmdv2/build/fdmdv2.workspace
fdmdv2/build/fdmdv2_wsp.mk
fdmdv2/src/dlg_comports.cpp
fdmdv2/src/dlg_comports.h
fdmdv2/src/fdmdv2_hdw_ports.cpp [new file with mode: 0644]
fdmdv2/src/fdmdv2_hdw_ports.h [new file with mode: 0644]
fdmdv2/src/fdmdv2_main.cpp
fdmdv2/src/fdmdv2_main.h
fdmdv2/src/fdmdv2_plot_waterfall.cpp
fdmdv2/src/topFrame.cpp
fdmdv2/src/topFrame.h
fdmdv2/tests/pa_enum/Release/bitmaps/blank.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/inArrow.ICO [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/inArrow16x16.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/inArrow32x32.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/outArrow.ICO [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/outArrow16x16.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/outArrow16x16.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/outArrow32x32.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/sample.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/small1.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/small1.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolbrai.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolbrai.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolchar.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolchar.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolchec.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolchec.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/tooldata.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/tooldata.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolgame.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolgame.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolnote.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolnote.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/tooltime.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/tooltime.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/tooltodo.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/tooltodo.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolword.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/toolword.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/transparent.ico [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/bitmaps/transparent.xpm [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/libgcc_s_dw2-1.dll [new file with mode: 0644]
fdmdv2/tests/pa_enum/Release/libstdc++-6.dll [new file with mode: 0644]

index 95d588cc22dfa9ee29a758c4dff206c5183de4b6..ae75cabaa6304e816e4700a0d12064c5bb73ef2b 100644 (file)
@@ -2,18 +2,18 @@
 ## Auto Generated makefile by CodeLite IDE\r
 ## any manual changes will be erased      \r
 ##\r
-## Release\r
+## Debug\r
 ProjectName            :=fdmdv2\r
-ConfigurationName      :=Release\r
+ConfigurationName      :=Debug\r
 WorkspacePath          := "C:\bin\Projects\Radio\fdmdv2\build"\r
 ProjectPath            := "C:\bin\Projects\Radio\fdmdv2\build"\r
-IntermediateDirectory  :=./Release\r
+IntermediateDirectory  :=./Debug\r
 OutDir                 := $(IntermediateDirectory)\r
 CurrentFileName        :=\r
 CurrentFilePath        :=\r
 CurrentFileFullPath    :=\r
 User                   :=OFA-Staff\r
-Date                   :=9/19/2012\r
+Date                   :=10/6/2012\r
 CodeLitePath           :="C:\bin\CodeLite"\r
 LinkerName             :=g++\r
 SharedObjectLinkerName :=g++ -shared -fPIC\r
@@ -35,7 +35,7 @@ PreprocessOnlySwitch   :=-E
 ObjectsFileList        :="C:\bin\Projects\Radio\fdmdv2\build\fdmdv2.txt"\r
 PCHCompileFlags        :=\r
 MakeDirCommand         :=makedir\r
-LinkOptions            :=  -mwindows -s $(shell wx-config --debug=no --libs --unicode=yes)\r
+LinkOptions            :=  -mwindows $(shell wx-config --debug=yes --libs --unicode=yes)\r
 IncludePath            :=  $(IncludeSwitch). $(IncludeSwitch)/bin/MinGW/msys/1.0/local/include $(IncludeSwitch)../../codec2-dev/src $(IncludeSwitch)../3rdparty/portaudio/include $(IncludeSwitch)../3rdparty/portaudio/bindings/cpp/include $(IncludeSwitch)../3rdparty/libsndfile/include $(IncludeSwitch)../3rdparty/libsamplerate-0.1.8/src \r
 IncludePCH             := \r
 RcIncludePath          := \r
@@ -50,8 +50,8 @@ LibPath                := $(LibraryPathSwitch). $(LibraryPathSwitch)/bin/MinGW/m
 AR       := ar rcus\r
 CXX      := g++\r
 CC       := gcc\r
-CXXFLAGS :=  -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no)  -DSVN_REVISION=\"674\"  $(Preprocessors)\r
-CFLAGS   :=  -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no)  -DSVN_REVISION=\"674\"  $(Preprocessors)\r
+CXXFLAGS :=  -g -O0 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=yes)  -DSVN_REVISION=\"674\"  $(Preprocessors)\r
+CFLAGS   :=  -g -O0 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=yes)  -DSVN_REVISION=\"674\"  $(Preprocessors)\r
 \r
 \r
 ##\r
@@ -63,7 +63,7 @@ PATH:=$(WXWIN)\lib\gcc_dll;$(PATH)
 WXCFG:=gcc_dll\mswu\r
 UNIT_TEST_PP_SRC_DIR:=C:\bin\UnitTest++-1.3\r
 Objects=$(IntermediateDirectory)/src_dlg_about$(ObjectSuffix) $(IntermediateDirectory)/src_dlg_audio$(ObjectSuffix) $(IntermediateDirectory)/src_dlg_comports$(ObjectSuffix) $(IntermediateDirectory)/src_dlg_options$(ObjectSuffix) $(IntermediateDirectory)/src_fdmdv2_main$(ObjectSuffix) $(IntermediateDirectory)/src_fdmdv2_plot$(ObjectSuffix) $(IntermediateDirectory)/src_topFrame$(ObjectSuffix) $(IntermediateDirectory)/src_fdmdv2_plot_scatter$(ObjectSuffix) $(IntermediateDirectory)/src_fdmdv2_plot_waterfall$(ObjectSuffix) $(IntermediateDirectory)/src_fdmdv2_plot_spectrum$(ObjectSuffix) \\r
-       $(IntermediateDirectory)/src_fdmdv2_pa_wrapper$(ObjectSuffix) $(IntermediateDirectory)/src_fdmdv2_plot_scalar$(ObjectSuffix) \r
+       $(IntermediateDirectory)/src_fdmdv2_pa_wrapper$(ObjectSuffix) $(IntermediateDirectory)/src_fdmdv2_plot_scalar$(ObjectSuffix) $(IntermediateDirectory)/src_fdmdv2_hdw_ports$(ObjectSuffix) \r
 \r
 ##\r
 ## Main Build Targets \r
@@ -78,7 +78,7 @@ $(OutputFile): $(IntermediateDirectory)/.d $(Objects)
        $(LinkerName) $(OutputSwitch)$(OutputFile) @$(ObjectsFileList) $(LibPath) $(Libs) $(LinkOptions)\r
 \r
 $(IntermediateDirectory)/.d:\r
-       @$(MakeDirCommand) "./Release"\r
+       @$(MakeDirCommand) "./Debug"\r
 \r
 PreBuild:\r
 \r
@@ -182,6 +182,14 @@ $(IntermediateDirectory)/src_fdmdv2_plot_scalar$(DependSuffix): ../src/fdmdv2_pl
 $(IntermediateDirectory)/src_fdmdv2_plot_scalar$(PreprocessSuffix): ../src/fdmdv2_plot_scalar.cpp\r
        @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/src_fdmdv2_plot_scalar$(PreprocessSuffix) "C:/bin/Projects/Radio/fdmdv2/src/fdmdv2_plot_scalar.cpp"\r
 \r
+$(IntermediateDirectory)/src_fdmdv2_hdw_ports$(ObjectSuffix): ../src/fdmdv2_hdw_ports.cpp $(IntermediateDirectory)/src_fdmdv2_hdw_ports$(DependSuffix)\r
+       $(CXX) $(IncludePCH) $(SourceSwitch) "C:/bin/Projects/Radio/fdmdv2/src/fdmdv2_hdw_ports.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/src_fdmdv2_hdw_ports$(ObjectSuffix) $(IncludePath)\r
+$(IntermediateDirectory)/src_fdmdv2_hdw_ports$(DependSuffix): ../src/fdmdv2_hdw_ports.cpp\r
+       @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/src_fdmdv2_hdw_ports$(ObjectSuffix) -MF$(IntermediateDirectory)/src_fdmdv2_hdw_ports$(DependSuffix) -MM "C:/bin/Projects/Radio/fdmdv2/src/fdmdv2_hdw_ports.cpp"\r
+\r
+$(IntermediateDirectory)/src_fdmdv2_hdw_ports$(PreprocessSuffix): ../src/fdmdv2_hdw_ports.cpp\r
+       @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/src_fdmdv2_hdw_ports$(PreprocessSuffix) "C:/bin/Projects/Radio/fdmdv2/src/fdmdv2_hdw_ports.cpp"\r
+\r
 \r
 -include $(IntermediateDirectory)/*$(DependSuffix)\r
 ##\r
@@ -224,8 +232,11 @@ clean:
        $(RM) $(IntermediateDirectory)/src_fdmdv2_plot_scalar$(ObjectSuffix)\r
        $(RM) $(IntermediateDirectory)/src_fdmdv2_plot_scalar$(DependSuffix)\r
        $(RM) $(IntermediateDirectory)/src_fdmdv2_plot_scalar$(PreprocessSuffix)\r
+       $(RM) $(IntermediateDirectory)/src_fdmdv2_hdw_ports$(ObjectSuffix)\r
+       $(RM) $(IntermediateDirectory)/src_fdmdv2_hdw_ports$(DependSuffix)\r
+       $(RM) $(IntermediateDirectory)/src_fdmdv2_hdw_ports$(PreprocessSuffix)\r
        $(RM) $(OutputFile)\r
        $(RM) $(OutputFile).exe\r
-       $(RM) "C:\bin\Projects\Radio\fdmdv2\build\.build-release\fdmdv2"\r
+       $(RM) "C:\bin\Projects\Radio\fdmdv2\build\.build-debug\fdmdv2"\r
 \r
 \r
index 41c2d74d11212cf359b8b85371e0333c07e8eb45..8f33f3301157f5eb21f1348280fe4213e72dfc48 100644 (file)
@@ -20,6 +20,7 @@
     <File Name="../src/fdmdv2_plot_spectrum.cpp"/>
     <File Name="../src/fdmdv2_pa_wrapper.cpp"/>
     <File Name="../src/fdmdv2_plot_scalar.cpp"/>
+    <File Name="../src/fdmdv2_hdw_ports.cpp"/>
   </VirtualDirectory>
   <VirtualDirectory Name="include">
     <File Name="../src/dlg_about.h"/>
@@ -64,6 +65,7 @@
     <File Name="../../codec2-dev/src/codec2.h"/>
     <File Name="../../codec2-dev/src/fdmdv.h"/>
     <File Name="../src/fdmdv2_defines.h"/>
+    <File Name="../src/fdmdv2_hdw_ports.h"/>
   </VirtualDirectory>
   <VirtualDirectory Name="resources">
     <File Name="../src/FDMDV2.fbp"/>
index 444adc7e0b44e4afd8e35a82c6ca84447879d29b..4368000624e11ec720e306a265978e474ee7b86a 100644 (file)
@@ -1 +1 @@
-./Release/src_dlg_about.o ./Release/src_dlg_audio.o ./Release/src_dlg_comports.o ./Release/src_dlg_options.o ./Release/src_fdmdv2_main.o ./Release/src_fdmdv2_plot.o ./Release/src_topFrame.o ./Release/src_fdmdv2_plot_scatter.o ./Release/src_fdmdv2_plot_waterfall.o ./Release/src_fdmdv2_plot_spectrum.o  ./Release/src_fdmdv2_pa_wrapper.o ./Release/src_fdmdv2_plot_scalar.o  \r
+./Debug/src_dlg_about.o ./Debug/src_dlg_audio.o ./Debug/src_dlg_comports.o ./Debug/src_dlg_options.o ./Debug/src_fdmdv2_main.o ./Debug/src_fdmdv2_plot.o ./Debug/src_topFrame.o ./Debug/src_fdmdv2_plot_scatter.o ./Debug/src_fdmdv2_plot_waterfall.o ./Debug/src_fdmdv2_plot_spectrum.o  ./Debug/src_fdmdv2_pa_wrapper.o ./Debug/src_fdmdv2_plot_scalar.o ./Debug/src_fdmdv2_hdw_ports.o  \r
index 25a589b2027392ab103d8d0c0082416daaa09d8d..2f41763995319416fc0c3642ee97ba19efab1ac5 100644 (file)
@@ -4,12 +4,12 @@
   <Project Name="drawing" Path="../../../../wxWidgets-2.9.4/samples/drawing/drawing.project" Active="No"/>
   <Project Name="configtest" Path="../../../../wxWidgets-2.9.4/samples/config/configtest.project" Active="No"/>
   <BuildMatrix>
-    <WorkspaceConfiguration Name="Debug" Selected="no">
+    <WorkspaceConfiguration Name="Debug" Selected="yes">
       <Project Name="fdmdv2" ConfigName="Debug"/>
       <Project Name="drawing" ConfigName="Debug"/>
       <Project Name="configtest" ConfigName="Debug"/>
     </WorkspaceConfiguration>
-    <WorkspaceConfiguration Name="Release" Selected="yes">
+    <WorkspaceConfiguration Name="Release" Selected="no">
       <Project Name="fdmdv2" ConfigName="Release"/>
       <Project Name="drawing" ConfigName="Release"/>
       <Project Name="configtest" ConfigName="Release"/>
index 59fb53ea6a70e2d3e0e9130c933698d6a46b4b21..4ea617a27f67fd1c8affb214583d0600e2a5783b 100644 (file)
@@ -1,8 +1,8 @@
 .PHONY: clean All
 
 All:
-       @echo ----------Building project:[ fdmdv2 - Release ]----------
+       @echo ----------Building project:[ fdmdv2 - Debug ]----------
        @"$(MAKE)" -f "fdmdv2.mk"
 clean:
-       @echo ----------Cleaning project:[ fdmdv2 - Release ]----------
+       @echo ----------Cleaning project:[ fdmdv2 - Debug ]----------
        @"$(MAKE)" -f "fdmdv2.mk" clean
index e89adb577d0b46a9023a2d55263e0d1c5aaca1f0..7497a3299bba1e5d98bb4cd97c1cc36d3458685a 100644 (file)
@@ -99,3 +99,202 @@ void ComPortsDlg::OnInitDialog( wxInitDialogEvent& event )
 //    populateAudioInfo();\r
 }\r
 \r
+/*\r
+//-------------------------------------------------------------------------\r
+// serial_parity_handler()\r
+//-------------------------------------------------------------------------\r
+static void serial_parity_handler(union control *ctrl, void *dlg, void *data, int event)\r
+{\r
+    static const struct\r
+    {\r
+        const char *name;\r
+        int val;\r
+    }\r
+    parities[] =\r
+    {\r
+        {"None",  SER_PAR_NONE},\r
+        {"Odd",   SER_PAR_ODD},\r
+        {"Even",  SER_PAR_EVEN},\r
+        {"Mark",  SER_PAR_MARK},\r
+        {"Space", SER_PAR_SPACE},\r
+    };\r
+    int mask = ctrl->listbox.context.i;\r
+    int i, j;\r
+    Config *cfg = (Config *)data;\r
+\r
+    if (event == EVENT_REFRESH)\r
+    {\r
+        int oldparity = cfg->serparity; // preserve past reentrant calls\r
+        dlg_update_start(ctrl, dlg);\r
+        dlg_listbox_clear(ctrl, dlg);\r
+        for (i = 0; i < lenof(parities); i++)\r
+        {\r
+            if (mask & (1 << i))\r
+            dlg_listbox_addwithid(ctrl, dlg, parities[i].name, parities[i].val);\r
+        }\r
+        for (i = j = 0; i < lenof(parities); i++)\r
+        {\r
+            if (mask & (1 << i))\r
+            {\r
+                if (oldparity == parities[i].val)\r
+                {\r
+                    dlg_listbox_select(ctrl, dlg, j);\r
+                    break;\r
+                }\r
+                j++;\r
+            }\r
+        }\r
+        if (i == lenof(parities))\r
+        {\r
+            // an unsupported setting was chosen\r
+            dlg_listbox_select(ctrl, dlg, 0);\r
+            oldparity = SER_PAR_NONE;\r
+        }\r
+        dlg_update_done(ctrl, dlg);\r
+        cfg->serparity = oldparity;\r
+        // restore\r
+    }\r
+    else if (event == EVENT_SELCHANGE)\r
+    {\r
+        int i = dlg_listbox_index(ctrl, dlg);\r
+        if (i < 0)\r
+        {\r
+            i = SER_PAR_NONE;\r
+        }\r
+        else\r
+        {\r
+            i = dlg_listbox_getid(ctrl, dlg, i);\r
+        }\r
+        cfg->serparity = i;\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// serial_flow_handler()\r
+//-------------------------------------------------------------------------\r
+static void serial_flow_handler(union control *ctrl, void *dlg,        void *data, int event)\r
+{\r
+    static const struct\r
+    {\r
+        const char *name;\r
+        int val;\r
+    } flows[] =\r
+    {\r
+        {"None", SER_FLOW_NONE},\r
+        {"XON/XOFF", SER_FLOW_XONXOFF},\r
+        {"RTS/CTS", SER_FLOW_RTSCTS},\r
+        {"DSR/DTR", SER_FLOW_DSRDTR},\r
+    };\r
+    int mask = ctrl->listbox.context.i;\r
+    int i, j;\r
+    Config *cfg = (Config *)data;\r
+\r
+    if (event == EVENT_REFRESH)\r
+    {\r
+        int oldflow = cfg->serflow;    // preserve past reentrant calls\r
+        dlg_update_start(ctrl, dlg);\r
+        dlg_listbox_clear(ctrl, dlg);\r
+        for (i = 0; i < lenof(flows); i++)\r
+        {\r
+            if (mask & (1 << i))\r
+            dlg_listbox_addwithid(ctrl, dlg, flows[i].name, flows[i].val);\r
+        }\r
+        for (i = j = 0; i < lenof(flows); i++)\r
+        {\r
+            if (mask & (1 << i))\r
+            {\r
+                if (oldflow == flows[i].val)\r
+                {\r
+                    dlg_listbox_select(ctrl, dlg, j);\r
+                    break;\r
+                }\r
+            j++;\r
+            }\r
+        }\r
+        if (i == lenof(flows))\r
+        {\r
+            // an unsupported setting was chosen\r
+            dlg_listbox_select(ctrl, dlg, 0);\r
+            oldflow = SER_FLOW_NONE;\r
+        }\r
+        dlg_update_done(ctrl, dlg);\r
+        cfg->serflow = oldflow;               // restore\r
+    }\r
+    else if (event == EVENT_SELCHANGE)\r
+    {\r
+        int i = dlg_listbox_index(ctrl, dlg);\r
+        if (i < 0)\r
+        {\r
+            i = SER_FLOW_NONE;\r
+        }\r
+        else\r
+        {\r
+            i = dlg_listbox_getid(ctrl, dlg, i);\r
+        }\r
+        cfg->serflow = i;\r
+    }\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// ser_setup_config_box()\r
+//-------------------------------------------------------------------------\r
+void ser_setup_config_box(struct controlbox *b, int midsession, int parity_mask, int flow_mask)\r
+{\r
+    struct controlset *s;\r
+    union control *c;\r
+\r
+    if (!midsession)\r
+    {\r
+        int i;\r
+        extern void config_protocolbuttons_handler(union control *, void *, void *, int);\r
+        //\r
+        // Add the serial back end to the protocols list at the\r
+        // top of the config box.\r
+        //\r
+        s = ctrl_getset(b, "Session", "hostport", "Specify the destination you want to connect to");\r
+        for (i = 0; i < s->ncontrols; i++)\r
+        {\r
+            c = s->ctrls[i];\r
+            if (c->generic.type == CTRL_RADIO && c->generic.handler == config_protocolbuttons_handler)\r
+            {\r
+                c->radio.nbuttons++;\r
+                c->radio.ncolumns++;\r
+                c->radio.buttons = sresize(c->radio.buttons, c->radio.nbuttons, char *);\r
+                c->radio.buttons[c->radio.nbuttons-1] = dupstr("Serial");\r
+                c->radio.buttondata = sresize(c->radio.buttondata, c->radio.nbuttons, intorptr);\r
+                c->radio.buttondata[c->radio.nbuttons-1] = I(PROT_SERIAL);\r
+                if (c->radio.shortcuts)\r
+                {\r
+                    c->radio.shortcuts = sresize(c->radio.shortcuts, c->radio.nbuttons, char);\r
+                    c->radio.shortcuts[c->radio.nbuttons-1] = 'r';\r
+                }\r
+            }\r
+        }\r
+    }\r
+    //\r
+    // Entirely new Connection/Serial panel for serial port\r
+    // configuration.\r
+    //\r
+    ctrl_settitle(b, "Connection/Serial", "Options controlling local serial lines");\r
+    if (!midsession)\r
+    {\r
+        //\r
+        // We don't permit switching to a different serial port in\r
+        // midflight, although we do allow all other\r
+        // reconfiguration.\r
+        //\r
+        s = ctrl_getset(b, "Connection/Serial", "serline", "Select a serial line");\r
+        ctrl_editbox(s, "Serial line to connect to", 'l', 40, HELPCTX(serial_line), dlg_stdeditbox_handler, I(offsetof(Config,serline)), I(sizeof(((Config *)0)->serline)));\r
+    }\r
+\r
+    s = ctrl_getset(b, "Connection/Serial", "sercfg", "Configure the serial line");\r
+    ctrl_editbox(s, "Speed (baud)", 's', 40, HELPCTX(serial_speed), dlg_stdeditbox_handler, I(offsetof(Config,serspeed)), I(-1));\r
+    ctrl_editbox(s, "Data bits", 'b', 40, HELPCTX(serial_databits), dlg_stdeditbox_handler,I(offsetof(Config,serdatabits)),I(-1));\r
+    //\r
+    // Stop bits come in units of one half.\r
+    //\r
+    ctrl_editbox(s, "Stop bits", 't', 40, HELPCTX(serial_stopbits), dlg_stdeditbox_handler,I(offsetof(Config,serstopbits)),I(-2));\r
+    ctrl_droplist(s, "Parity", 'p', 40,          HELPCTX(serial_parity),   serial_parity_handler, I(parity_mask));\r
+    ctrl_droplist(s, "Flow control", 'f', 40, HELPCTX(serial_flow), serial_flow_handler,   I(flow_mask));\r
+}\r
+*/\r
index 3e949b041ab4b30ee22097fa08d45c1bcbdb19d5..e84faa2941808d5e212363b73f97e4cf04fc4d26 100644 (file)
@@ -11,6 +11,7 @@
 #define __COMPORTS_DIALOG__\r
 \r
 #include "fdmdv2_main.h"\r
+#include "fdmdv2_hdw_ports.h"\r
 \r
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
 // Class ComPortsDlg\r
diff --git a/fdmdv2/src/fdmdv2_hdw_ports.cpp b/fdmdv2/src/fdmdv2_hdw_ports.cpp
new file mode 100644 (file)
index 0000000..dfccbca
--- /dev/null
@@ -0,0 +1,25 @@
+//==========================================================================\r
+// Name:            fdmdv2_enum_ports.cpp\r
+// Purpose:         Tools to enumerate hardware ports (other than audio).\r
+// Created:         Oct 2, 2012
+// Initial author:  David Witten\r
+// License:\r
+//\r
+//  Copyright (C) 2012 David Witten
+//
+//  All rights reserved.
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Lesser General Public License version 2.1,
+//  as published by the Free Software Foundation.  This program is
+//  distributed in the hope that it will be useful, but WITHOUT ANY
+//  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+//  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+//  License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public License
+//  along with this program; if not, see <http://www.gnu.org/licenses/>.
+//
+//==========================================================================\r
+#include "fdmdv2_hdw_ports.h"\r
+
diff --git a/fdmdv2/src/fdmdv2_hdw_ports.h b/fdmdv2/src/fdmdv2_hdw_ports.h
new file mode 100644 (file)
index 0000000..41d5fa9
--- /dev/null
@@ -0,0 +1,85 @@
+//==========================================================================\r
+// Name:            fdmdv2_enum_ports.h\r
+// Purpose:         Tools to enumerate hardware ports (other than audio).\r
+// Created:         Oct 2, 2012
+// Initial author:  David Witten\r
+// License:\r
+//\r
+//  Copyright (C) 2012 David Witten
+//
+//  All rights reserved.
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Lesser General Public License version 2.1,
+//  as published by the Free Software Foundation.  This program is
+//  distributed in the hope that it will be useful, but WITHOUT ANY
+//  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+//  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
+//  License for more details.
+//
+//  You should have received a copy of the GNU Lesser General Public License
+//  along with this program; if not, see <http://www.gnu.org/licenses/>.
+//
+//==========================================================================\r
+#ifndef __FDMDV2_HDW_PORTS__\r
+#define __FDMDV2_HDW_PORTS__\r
+\r
+#include <string.h>\r
+#include "wx/wx.h"\r
+#include "fdmdv2_main.h"\r
+\r
+enum\r
+{\r
+    SER_PAR_NONE,\r
+    SER_PAR_ODD,\r
+    SER_PAR_EVEN,\r
+    SER_PAR_MARK,\r
+    SER_PAR_SPACE\r
+};\r
+\r
+enum\r
+{\r
+    SER_FLOW_NONE,\r
+    SER_FLOW_XONXOFF,\r
+    SER_FLOW_RTSCTS,\r
+    SER_FLOW_DSRDTR\r
+};\r
+\r
+enum\r
+{\r
+    PORT_TYPE_SERIAL,\r
+    PORT_TYPE_USB,\r
+    PORT_TYPE_VIRTUAL,\r
+    PORT_TYPE_PARALLEL,\r
+    PORT_TYPE_IEEE1394,\r
+    PORT_TYPE_UNKNOWN\r
+};\r
+\r
+enum\r
+{\r
+    DEVICE_TYPE_SERIAL,\r
+    DEVICE_TYPE_USB,\r
+    DEVICE_TYPE_VIRTUAL,\r
+    DEVICE_TYPE_PARALLEL,\r
+    DEVICE_TYPE_BLUETOOTH,\r
+    DEVICE_TYPE_NETWORK,\r
+    DEVICE_TYPE_IEEE1394,\r
+    DEVICE_TYPE_UNKNOWN\r
+};\r
+\r
+class PortHardware\r
+{\r
+private:\r
+    int count;\r
+    int device_type;\r
+    int device_emulation;\r
+\r
+protected:\r
+\r
+public:\r
+    PortHardware();\r
+    ~PortHardware();\r
+};\r
+\r
+
+#endif // __FDMDV2_HDW_PORTS__\r
index d585f6bfcbc76a5aa8e1eb3427b0b24bee9b8c27..19d5337ec527c1ec662b0d4d4edbbf4e8967d52f 100644 (file)
@@ -98,10 +98,10 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)
 \r
     tools->AppendSeparator();\r
     wxMenuItem* m_menuItemToolsConfigDelete;\r
-       m_menuItemToolsConfigDelete = new wxMenuItem( tools, wxID_ANY, wxString( _("&Delete stored config") ) , wxT("Delete config file/keys"), wxITEM_NORMAL );\r
+    m_menuItemToolsConfigDelete = new wxMenuItem( tools, wxID_ANY, wxString( _("&Delete stored config") ) , wxT("Delete config file/keys"), wxITEM_NORMAL );\r
     this->Connect( m_menuItemToolsConfigDelete->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnDeleteConfig));\r
 \r
-       tools->Append( m_menuItemToolsConfigDelete );\r
+    tools->Append( m_menuItemToolsConfigDelete );\r
 \r
 \r
     // Add Waterfall Plot window\r
@@ -137,8 +137,8 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)
     wxGetApp().m_textVoiceInput     = pConfig->Read(wxT("/Audio/TxIn"),         wxT("<m_textVoiceInput>"));\r
     wxGetApp().m_textVoiceOutput    = pConfig->Read(wxT("/Audio/TxOut"),        wxT("<m_textVoiceOutput>"));\r
     wxGetApp().m_strSampleRate      = pConfig->Read(wxT("/Audio/SampleRate"),   wxT("48000"));\r
-    wxGetApp().m_strSampleRate      = pConfig->Read(wxT("/Audio/SampleRate"),   wxT("48000"));\r
-    wxGetApp().m_strSampleRate      = pConfig->Read(wxT("/Audio/SampleRate"),   wxT("48000"));\r
+//    wxGetApp().m_strSampleRate      = pConfig->Read(wxT("/Audio/SampleRate"),   wxT("48000"));\r
+//    wxGetApp().m_strSampleRate      = pConfig->Read(wxT("/Audio/SampleRate"),   wxT("48000"));\r
 \r
     wxGetApp().m_strRigCtrlPort     = pConfig->Read("/Rig/Port",                wxT("\\\\.\\com1"));\r
     wxGetApp().m_strRigCtrlBaud     = pConfig->Read("/Rig/Baud",                wxT("9600"));\r
@@ -148,6 +148,22 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)
 \r
     pConfig->SetPath(wxT("/"));\r
 \r
+//    this->Connect( m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnHelpCheckUpdatesUI ) );\r
+    m_togRxID->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnRxIDUI ), NULL, this );\r
+    m_togTxID->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnTxIDUI ), NULL, this );\r
+    m_togBtnOnOff->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnOnOffUI ), NULL, this );\r
+    m_togBtnSplit->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnSplitClickUI ), NULL, this );\r
+    m_togBtnAnalog->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnAnalogClickUI ), NULL, this );\r
+    m_togBtnALC->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnALCClickUI ), NULL, this );\r
+    m_btnTogTX->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnTXClickUI ), NULL, this );\r
+\r
+    m_togBtnSplit->Disable();\r
+    m_togRxID->Disable();\r
+    m_togTxID->Disable();\r
+    m_togBtnAnalog->Disable();\r
+    m_togBtnALC->Disable();\r
+    m_btnTogTX->Disable();\r
+\r
 #ifdef USE_TIMER\r
     m_rxPa = new PortAudioWrap();\r
     for(int i = 0; i < FDMDV_NSPEC; i++)\r
@@ -156,7 +172,9 @@ MainFrame::MainFrame(wxWindow *parent) : TopFrame(parent)
     }\r
     Bind(wxEVT_TIMER, &MainFrame::OnTimer, this);       // ID_MY_WINDOW);\r
     m_plotTimer.SetOwner(this, ID_TIMER_WATERFALL);
-    m_plotTimer.Start(500, wxTIMER_CONTINUOUS);\r
+//    m_plotTimer.Start(500, wxTIMER_CONTINUOUS);\r
+    m_panelWaterfall->m_newdata = true;\r
+    m_panelWaterfall->Refresh();\r
 #endif\r
 }\r
 \r
@@ -191,8 +209,14 @@ MainFrame::~MainFrame()
         pConfig->Write(wxT("/Rig/DataBits"),        wxGetApp().m_strRigCtrlDatabits);\r
         pConfig->Write(wxT("/Rig/StopBits"),        wxGetApp().m_strRigCtrlStopbits);\r
         pConfig->Write(wxT("/Rig/Parity"),          wxGetApp().m_strRigCtrlParity);\r
-\r
     }\r
+    m_togRxID->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnRxIDUI ), NULL, this );\r
+    m_togTxID->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnTxIDUI ), NULL, this );\r
+    m_togBtnOnOff->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnOnOffUI), NULL, this );\r
+    m_togBtnSplit->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnSplitClickUI), NULL, this );\r
+    m_togBtnAnalog->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnAnalogClickUI), NULL, this );\r
+    m_togBtnALC->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnALCClickUI), NULL, this );\r
+    m_btnTogTX->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( MainFrame::OnTogBtnTXClickUI), NULL, this );\r
 #ifdef USE_TIMER\r
     if (m_plotTimer.IsRunning())\r
     {\r
@@ -383,18 +407,99 @@ void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)
 {\r
     if((!m_TxRunning) || (!m_RxRunning))\r
     {\r
+        m_togBtnSplit->Enable();\r
+        m_togRxID->Enable();\r
+        m_togTxID->Enable();\r
+        m_togBtnAnalog->Enable();\r
+        m_togBtnALC->Enable();\r
+        m_btnTogTX->Enable();\r
+\r
+#ifdef USE_TIMER\r
+        m_plotTimer.Start(500, wxTIMER_CONTINUOUS);\r
+#endif\r
         startRxStream();\r
         startTxStream();\r
         m_togBtnOnOff->SetLabel(wxT("Stop"));\r
     }\r
     else\r
     {\r
+        m_togBtnSplit->Disable();\r
+        m_togRxID->Disable();\r
+        m_togTxID->Disable();\r
+        m_togBtnAnalog->Disable();\r
+        m_togBtnALC->Disable();\r
+        m_btnTogTX->Disable();\r
+#ifdef USE_TIMER\r
+        m_plotTimer.Stop();\r
+#endif\r
         stopRxStream();\r
         stopTxStream();\r
         m_togBtnOnOff->SetLabel(wxT("Start"));\r
     }\r
 }\r
 \r
+//-------------------------------------------------------------------------\r
+// OnTogBtnSplitClickUI()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnTogBtnSplitClickUI(wxUpdateUIEvent& event)\r
+{\r
+    wxUnusedVar(event);\r
+//    event.Enable(false);\r
+}\r
+
+//-------------------------------------------------------------------------\r
+// OnTogBtnAnalogClickUI()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnTogBtnAnalogClickUI(wxUpdateUIEvent& event)
+{\r
+    wxUnusedVar(event);\r
+//    event.Enable(false);\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// OnTogBtnALCClickUI()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnTogBtnALCClickUI(wxUpdateUIEvent& event)
+{\r
+    wxUnusedVar(event);\r
+//    event.Enable(false);\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// OnTogBtnRxIDUI()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnTogBtnRxIDUI(wxUpdateUIEvent& event)\r
+{\r
+//    event.Enable(false);\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// OnTogBtnTxIDUI()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnTogBtnTxIDUI(wxUpdateUIEvent& event)\r
+{\r
+    wxUnusedVar(event);\r
+//    event.Enable(false);\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// OnTogBtnTXClickUI()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnTogBtnTXClickUI(wxUpdateUIEvent& event)\r
+{\r
+    wxUnusedVar(event);\r
+//    event.Enable(false);\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// OnTogBtnOnOffUI()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnTogBtnOnOffUI(wxUpdateUIEvent& event)
+{\r
+    wxUnusedVar(event);\r
+//    event.Enable(true);\r
+}\r
+\r
 //-------------------------------------------------------------------------\r
 // startRxStream()\r
 //-------------------------------------------------------------------------\r
@@ -405,26 +510,26 @@ void MainFrame::startRxStream()
         m_RxRunning = true;\r
         m_rxPa = new PortAudioWrap();
 
-        m_rxDevIn = m_rxPa->getDefaultInputDevice();                   // default input device
+        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->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
+        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->setOutputChannelCount(2);                         // stereo input
         m_rxErr = m_rxPa->setOutputSampleFormat(PA_SAMPLE_TYPE);\r
 
         m_rxErr = m_rxPa->setOutputLatency(m_rxPa->getOutputDefaultLowLatency());
@@ -461,6 +566,18 @@ void MainFrame::stopRxStream()
         m_rxPa->stop();\r
         m_rxPa->streamClose();\r
     }\r
+/*\r
+        if(m_rxPa->isActive())\r
+        {\r
+            m_rxPa->stop();\r
+            m_rxPa->streamClose();\r
+        }\r
+        if(m_rxPa->isOpen())\r
+        {\r
+            m_rxPa->streamClose();\r
+        }\r
+        m_TxRunning = false;\r
+*/\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -485,26 +602,26 @@ void MainFrame::startTxStream()
         m_TxRunning = true;\r
         m_txPa = new PortAudioWrap();
 
-        m_txDevIn = m_txPa->getDefaultInputDevice();                   // default input device
+        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->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
+        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->setOutputChannelCount(2);                         // stereo input
         m_txErr = m_txPa->setOutputSampleFormat(PA_SAMPLE_TYPE);\r
 
         m_txErr = m_txPa->setOutputLatency(m_txPa->getOutputDefaultLowLatency());
@@ -541,6 +658,17 @@ void MainFrame::stopTxStream()
         m_txPa->stop();\r
         m_txPa->streamClose();\r
     }\r
+/*\r
+        if(m_txPa->isActive())\r
+        {\r
+            m_txPa->stop();\r
+        }\r
+        if(m_txPa->isOpen())\r
+        {\r
+            m_txPa->streamClose();\r
+        }\r
+        m_TxRunning = false;\r
+*/\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -560,6 +688,7 @@ void MainFrame::abortTxStream()
 //-------------------------------------------------------------------------\r
 void MainFrame::OnOpen( wxCommandEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -567,6 +696,7 @@ void MainFrame::OnOpen( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnOpenUpdateUI( wxUpdateUIEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
 //    wxMessageBox("Got Click!", "OnOpenUpdateUI", wxOK);\r
 //    event.Skip();\r
 }\r
@@ -576,8 +706,10 @@ void MainFrame::OnOpenUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnSaveUpdateUI( wxUpdateUIEvent& event )\r
 {\r
+//    wxUnusedVar(event);\r
 //    wxMessageBox("Got Click!", "OnSaveUpdateUI", wxOK);\r
 //    event.Skip();\r
+    event.Enable(false);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -585,6 +717,17 @@ void MainFrame::OnSaveUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnClose( wxCommandEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
+\r
+    if(m_RxRunning)\r
+    {\r
+        stopRxStream();\r
+    }\r
+    if(m_TxRunning)\r
+    {\r
+        stopTxStream();\r
+    }\r
+\r
     if(m_sound != NULL)\r
     {\r
         if(m_sound->IsOk())\r
@@ -593,6 +736,7 @@ void MainFrame::OnClose( wxCommandEvent& event )
             m_sound = NULL;\r
         }\r
     }\r
+    Close();\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -600,6 +744,8 @@ void MainFrame::OnClose( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnCloseUpdateUI( wxUpdateUIEvent& event )\r
 {\r
+//    wxUnusedVar(event);\r
+    event.Enable(false);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -607,6 +753,8 @@ void MainFrame::OnCloseUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnExit( wxCommandEvent& event )\r
 {\r
+    //wxUnusedVar(event);\r
+    OnClose(event);\r
 //    wxMessageBox("Got Click!", "OnExit", wxOK);\r
 //    event.Skip();\r
 }\r
@@ -625,6 +773,8 @@ void MainFrame::OnCopy( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnCopyUpdateUI( wxUpdateUIEvent& event )\r
 {\r
+//    wxUnusedVar(event);\r
+    event.Enable(false);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -641,6 +791,8 @@ void MainFrame::OnCut( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnCutUpdateUI( wxUpdateUIEvent& event )\r
 {\r
+//    wxUnusedVar(event);\r
+    event.Enable(false);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -657,6 +809,8 @@ void MainFrame::OnPaste( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnPasteUpdateUI( wxUpdateUIEvent& event )\r
 {\r
+//    wxUnusedVar(event);\r
+    event.Enable(false);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -664,6 +818,7 @@ void MainFrame::OnPasteUpdateUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnCaptureRxStream( wxCommandEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -671,6 +826,7 @@ void MainFrame::OnCaptureRxStream( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnCaptureTxStream( wxCommandEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -678,6 +834,7 @@ void MainFrame::OnCaptureTxStream( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnPlayAudioFile( wxCommandEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
     if(m_sound != NULL)\r
     {\r
         if (wxMessageBox(wxT("Current content has not been saved! Proceed?"),wxT("Please confirm"), wxICON_QUESTION | wxYES_NO, this) == wxNO )\r
@@ -697,7 +854,7 @@ void MainFrame::OnPlayAudioFile( wxCommandEvent& event )
                                 wxFD_OPEN | wxFD_FILE_MUST_EXIST);\r
     if (openFileDialog.ShowModal() == wxID_CANCEL)\r
     {\r
-        return;     // the user changed idea...\r
+        return;     // the user changed their mind...\r
     }\r
     // proceed loading the file chosen by the user;\r
     m_sound->Play(openFileDialog.GetPath());\r
@@ -708,6 +865,7 @@ void MainFrame::OnPlayAudioFile( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnToolsAudio( wxCommandEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
     int rv = 0;\r
     AudioDlg *dlg = new AudioDlg(NULL);\r
     rv = dlg->ShowModal();\r
@@ -723,6 +881,7 @@ void MainFrame::OnToolsAudio( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnToolsAudioUI( wxUpdateUIEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -730,6 +889,7 @@ void MainFrame::OnToolsAudioUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnToolsComCfg( wxCommandEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
     int rv = 0;\r
     ComPortsDlg *dlg = new ComPortsDlg(NULL);\r
     rv = dlg->ShowModal();\r
@@ -753,6 +913,7 @@ void MainFrame::OnToolsComCfgUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnToolsOptions( wxCommandEvent& event )\r
 {\r
+    wxUnusedVar(event);\r
     int rv = 0;\r
     OptionsDlg *dlg = new OptionsDlg(NULL);\r
     rv = dlg->ShowModal();\r
@@ -768,6 +929,8 @@ void MainFrame::OnToolsOptions( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnToolsOptionsUI( wxUpdateUIEvent& event )\r
 {\r
+//    wxUnusedVar(event);\r
+    event.Enable(false);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -784,6 +947,8 @@ void MainFrame::OnHelpCheckUpdates( wxCommandEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnHelpCheckUpdatesUI( wxUpdateUIEvent& event )\r
 {\r
+//    wxUnusedVar(event);\r
+    event.Enable(false);\r
 }\r
 \r
 //-------------------------------------------------------------------------\r
@@ -791,7 +956,8 @@ void MainFrame::OnHelpCheckUpdatesUI( wxUpdateUIEvent& event )
 //-------------------------------------------------------------------------\r
 void MainFrame::OnHelpAbout( wxCommandEvent& event )\r
 {\r
-    int rv = 0;\r
+    wxUnusedVar(event);\r
+//    int rv = 0;\r
 //    AboutDlg *dlg = new AboutDlg(NULL);\r
 //    rv = dlg->ShowModal();\r
 //    if(rv == wxID_OK)\r
@@ -886,6 +1052,7 @@ int MainFrame::rxCallback(
 }
 \r
 //-------------------------------------------------------------------------\r
+\r
 // txCallback()\r
 //-------------------------------------------------------------------------\r
 int MainFrame::txCallback(\r
@@ -996,8 +1163,8 @@ void MainFrame::per_frame_rx_processing(
         // compute rx spectrum & get demod stats, and update GUI plot data
         fdmdv_get_rx_spectrum(m_pFDMDV_state, rx_spec, rx_fdm, nin_prev);
         fdmdv_get_demod_stats(m_pFDMDV_state, &stats);
-        averageData(rx_spec);\r
-        //m_panelWaterfall;\r
+//        averageData(rx_spec);\r
+        //m_panelWaterfall->;\r
         //m_panelScalar;
 //        m_panelScatter->add_new_samples(stats.rx_symbols);
 //        aTimingEst->add_new_sample(stats.rx_timing);
index f687e8c1bf48a60860f642fcbf382b5aa13b0c70..1a8c12e12315ec5c0e32ffc00ae49acd4d4c0af2 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <wx/wx.h>\r
 
+#include <wx/tglbtn.h>\r
 #include <wx/app.h>\r
 #include "wx/rawbmp.h"\r
 #include "wx/file.h"
@@ -144,6 +145,14 @@ class MainFrame : public TopFrame
         struct FDMDV    *m_pFDMDV_state;\r
         wxTimer         m_plotTimer;\r
 \r
+//        wxToggleButton* m_togRxID;\r
+//        wxToggleButton* m_togTxID;\r
+//        wxToggleButton* m_togBtnOnOff;\r
+//        wxToggleButton* m_togBtnSplit;\r
+//        wxToggleButton* m_togBtnAnalog;\r
+//        wxToggleButton* m_togBtnALC;\r
+//        wxToggleButton* m_btnTogTX;\r
+\r
         static int rxCallback(\r
                                 const void *inBuffer,\r
                                 void *outBuffer,\r
@@ -226,6 +235,14 @@ class MainFrame : public TopFrame
         void OnTogBtnTXClick( wxCommandEvent& event );\r
         void OnTogBtnOnOff( wxCommandEvent& event );
 \r
+        void OnTogBtnSplitClickUI(wxUpdateUIEvent& event);
+        void OnTogBtnAnalogClickUI(wxUpdateUIEvent& event);
+        void OnTogBtnALCClickUI(wxUpdateUIEvent& event);
+        void OnTogBtnRxIDUI(wxUpdateUIEvent& event );\r
+        void OnTogBtnTxIDUI(wxUpdateUIEvent& event );\r
+        void OnTogBtnTXClickUI(wxUpdateUIEvent& event );\r
+        void OnTogBtnOnOffUI(wxUpdateUIEvent& event );
+\r
         //System Events\r
         void OnPaint(wxPaintEvent& event);
         void OnClose( wxCloseEvent& event );
index d4915304790e6d20b23138ccec821e02496067e2..a4252506b5b4d147c91441f49c5801bc6f17acc8 100644 (file)
@@ -52,10 +52,10 @@ END_EVENT_TABLE()
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
 // Class WaterfallPlot\r
 //\r
-// @class $(Name)\r
-// @author $(User)\r
-// @date $(Date)\r
-// @file $(CurrentFileName).$(CurrentFileExt)\r
+// @class   WaterfallPlot\r
+// @author  David Witten\r
+// @date    $(Date)\r
+// @file    $(CurrentFileName).$(CurrentFileExt)\r
 // @brief\r
 //\r
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=\r
@@ -76,6 +76,12 @@ PlotWaterfall::PlotWaterfall(wxFrame* parent): PlotPanel(parent)
 //----------------------------------------------------------------\r
 // paintEvent()\r
 //\r
+// @class $(Name)\r
+// @author $(User)\r
+// @date $(Date)\r
+// @file $(CurrentFileName).$(CurrentFileExt)\r
+// @brief\r
+//\r
 // Called by the system of by wxWidgets when the panel needs\r
 // to be redrawn. You can also trigger this call by calling\r
 // Refresh()/Update().\r
index 70122f583146f0ae332c7e6ac4579a3c2e2ae7b9..db753a16d21bed38cbc2a92e8af14dc16b5db706 100644 (file)
 \r
 TopFrame::TopFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )\r
 {\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-       this->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ) );\r
-       this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-       this->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ) );\r
-       this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );\r
-\r
-       m_menubarMain = new wxMenuBar( wxMB_DOCKABLE );\r
-       file = new wxMenu();\r
-       wxMenuItem* m_menuItemOpen;\r
-       m_menuItemOpen = new wxMenuItem( file, ID_OPEN, wxString( _("&Open") ) , _("Open File"), wxITEM_NORMAL );\r
-       file->Append( m_menuItemOpen );\r
-\r
-       wxMenuItem* m_menuItemSave;\r
-       m_menuItemSave = new wxMenuItem( file, ID_SAVE, wxString( _("&Save") ) , _("Save current file"), wxITEM_NORMAL );\r
-       file->Append( m_menuItemSave );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ) );\r
+    this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOWTEXT ) );\r
+    this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_3DLIGHT ) );\r
+\r
+    m_menubarMain = new wxMenuBar( wxMB_DOCKABLE );\r
+    file = new wxMenu();\r
+    wxMenuItem* m_menuItemOpen;\r
+    m_menuItemOpen = new wxMenuItem( file, ID_OPEN, wxString( _("&Open") ) , _("Open File"), wxITEM_NORMAL );\r
+    file->Append( m_menuItemOpen );\r
+\r
+    wxMenuItem* m_menuItemSave;\r
+    m_menuItemSave = new wxMenuItem( file, ID_SAVE, wxString( _("&Save") ) , _("Save current file"), wxITEM_NORMAL );\r
+    file->Append( m_menuItemSave );\r
 \r
-       wxMenuItem* m_menuItemClose;\r
-       m_menuItemClose = new wxMenuItem( file, ID_CLOSE, wxString( _("&Close") ) , _("Close current file"), wxITEM_NORMAL );\r
-       file->Append( m_menuItemClose );\r
+    wxMenuItem* m_menuItemClose;\r
+    m_menuItemClose = new wxMenuItem( file, ID_CLOSE, wxString( _("&Close") ) , _("Close current file"), wxITEM_NORMAL );\r
+    file->Append( m_menuItemClose );\r
 \r
-       file->AppendSeparator();\r
+    file->AppendSeparator();\r
 \r
-       wxMenuItem* m_menuItemExit;\r
-       m_menuItemExit = new wxMenuItem( file, ID_EXIT, wxString( _("E&xit") ) , _("Exit Program"), wxITEM_NORMAL );\r
-       file->Append( m_menuItemExit );\r
+    wxMenuItem* m_menuItemExit;\r
+    m_menuItemExit = new wxMenuItem( file, ID_EXIT, wxString( _("E&xit") ) , _("Exit Program"), wxITEM_NORMAL );\r
+    file->Append( m_menuItemExit );\r
 \r
-       m_menubarMain->Append( file, _("&File") );\r
+    m_menubarMain->Append( file, _("&File") );\r
 \r
-       edit = new wxMenu();\r
-       wxMenuItem* m_menuItemCopy;\r
-       m_menuItemCopy = new wxMenuItem( edit, ID_COPY, wxString( _("&Copy") ) , _("Copy selection"), wxITEM_NORMAL );\r
-       edit->Append( m_menuItemCopy );\r
-       m_menuItemCopy->Enable( false );\r
+    edit = new wxMenu();\r
+    wxMenuItem* m_menuItemCopy;\r
+    m_menuItemCopy = new wxMenuItem( edit, ID_COPY, wxString( _("&Copy") ) , _("Copy selection"), wxITEM_NORMAL );\r
+    edit->Append( m_menuItemCopy );\r
+    m_menuItemCopy->Enable( false );\r
 \r
-       wxMenuItem* m_menuItemCut;\r
-       m_menuItemCut = new wxMenuItem( edit, ID_CUT, wxString( _("Cut") ) , _("Cut Selection"), wxITEM_NORMAL );\r
-       edit->Append( m_menuItemCut );\r
-       m_menuItemCut->Enable( false );\r
+    wxMenuItem* m_menuItemCut;\r
+    m_menuItemCut = new wxMenuItem( edit, ID_CUT, wxString( _("Cut") ) , _("Cut Selection"), wxITEM_NORMAL );\r
+    edit->Append( m_menuItemCut );\r
+    m_menuItemCut->Enable( false );\r
 \r
-       wxMenuItem* m_menuItemPaste;\r
-       m_menuItemPaste = new wxMenuItem( edit, ID_PASTE, wxString( _("&Paste") ) , _("Paste selection"), wxITEM_NORMAL );\r
-       edit->Append( m_menuItemPaste );\r
-       m_menuItemPaste->Enable( false );\r
+    wxMenuItem* m_menuItemPaste;\r
+    m_menuItemPaste = new wxMenuItem( edit, ID_PASTE, wxString( _("&Paste") ) , _("Paste selection"), wxITEM_NORMAL );\r
+    edit->Append( m_menuItemPaste );\r
+    m_menuItemPaste->Enable( false );\r
 \r
-       m_menubarMain->Append( edit, _("&Edit") );\r
+    m_menubarMain->Append( edit, _("&Edit") );\r
 \r
-       tools = new wxMenu();\r
-       wxMenuItem* m_menuItemAudio;\r
-       m_menuItemAudio = new wxMenuItem( tools, wxID_ANY, wxString( _("&Audio Config") ) , wxEmptyString, wxITEM_NORMAL );\r
-       tools->Append( m_menuItemAudio );\r
+    tools = new wxMenu();\r
+    wxMenuItem* m_menuItemAudio;\r
+    m_menuItemAudio = new wxMenuItem( tools, wxID_ANY, wxString( _("&Audio Config") ) , wxEmptyString, wxITEM_NORMAL );\r
+    tools->Append( m_menuItemAudio );\r
 \r
-       wxMenuItem* m_menuItemRigCtrlCfg;\r
-       m_menuItemRigCtrlCfg = new wxMenuItem( tools, wxID_ANY, wxString( _("Rig Control Config") ) , wxEmptyString, wxITEM_NORMAL );\r
-       tools->Append( m_menuItemRigCtrlCfg );\r
+    wxMenuItem* m_menuItemRigCtrlCfg;\r
+    m_menuItemRigCtrlCfg = new wxMenuItem( tools, wxID_ANY, wxString( _("Rig Control Config") ) , wxEmptyString, wxITEM_NORMAL );\r
+    tools->Append( m_menuItemRigCtrlCfg );\r
 \r
-       wxMenuItem* m_menuItemOptions;\r
-       m_menuItemOptions = new wxMenuItem( tools, ID_OPTIONS, wxString( _("Other Program &Options") ) , _("Set preferences"), wxITEM_NORMAL );\r
-       tools->Append( m_menuItemOptions );\r
+    wxMenuItem* m_menuItemOptions;\r
+    m_menuItemOptions = new wxMenuItem( tools, ID_OPTIONS, wxString( _("Other Program &Options") ) , _("Set preferences"), wxITEM_NORMAL );\r
+    tools->Append( m_menuItemOptions );\r
 \r
-       tools->AppendSeparator();\r
+    tools->AppendSeparator();\r
 \r
-       wxMenuItem* m_menuItemCaptRxStream;\r
-       m_menuItemCaptRxStream = new wxMenuItem( tools, wxID_ANY, wxString( _("Capture Rx Stream") ) + wxT('\t') + wxT("Capture receive stream to file."), wxEmptyString, wxITEM_NORMAL );\r
-       #ifdef __WXMSW__\r
-       m_menuItemCaptRxStream->SetBitmaps( wxNullBitmap );\r
-       #elif defined( __WXGTK__ )\r
-       m_menuItemCaptRxStream->SetBitmap( wxNullBitmap );\r
-       #endif\r
-       tools->Append( m_menuItemCaptRxStream );\r
+    wxMenuItem* m_menuItemCaptRxStream;\r
+    m_menuItemCaptRxStream = new wxMenuItem( tools, wxID_ANY, wxString( _("Capture Rx Stream") ) + wxT('\t') + wxT("Capture receive stream to file."), wxEmptyString, wxITEM_NORMAL );\r
+    #ifdef __WXMSW__\r
+    m_menuItemCaptRxStream->SetBitmaps( wxNullBitmap );\r
+    #elif defined( __WXGTK__ )\r
+    m_menuItemCaptRxStream->SetBitmap( wxNullBitmap );\r
+    #endif\r
+    tools->Append( m_menuItemCaptRxStream );\r
 \r
-       wxMenuItem* m_menuItemCaptTxStream;\r
-       m_menuItemCaptTxStream = new wxMenuItem( tools, wxID_ANY, wxString( _("Capture Tx Stream") ) + wxT('\t') + wxT("Capture transmit stream to file."), wxEmptyString, wxITEM_NORMAL );\r
-       #ifdef __WXMSW__\r
-       m_menuItemCaptTxStream->SetBitmaps( wxNullBitmap );\r
-       #elif defined( __WXGTK__ )\r
-       m_menuItemCaptTxStream->SetBitmap( wxNullBitmap );\r
-       #endif\r
-       tools->Append( m_menuItemCaptTxStream );\r
+    wxMenuItem* m_menuItemCaptTxStream;\r
+    m_menuItemCaptTxStream = new wxMenuItem( tools, wxID_ANY, wxString( _("Capture Tx Stream") ) + wxT('\t') + wxT("Capture transmit stream to file."), wxEmptyString, wxITEM_NORMAL );\r
+    #ifdef __WXMSW__\r
+    m_menuItemCaptTxStream->SetBitmaps( wxNullBitmap );\r
+    #elif defined( __WXGTK__ )\r
+    m_menuItemCaptTxStream->SetBitmap( wxNullBitmap );\r
+    #endif\r
+    tools->Append( m_menuItemCaptTxStream );\r
 \r
-       tools->AppendSeparator();\r
+    tools->AppendSeparator();\r
 \r
-       wxMenuItem* m_menuItemPlayAudioFile;\r
-       m_menuItemPlayAudioFile = new wxMenuItem( tools, wxID_ANY, wxString( _("Play File") ) , wxEmptyString, wxITEM_NORMAL );\r
-       tools->Append( m_menuItemPlayAudioFile );\r
+    wxMenuItem* m_menuItemPlayAudioFile;\r
+    m_menuItemPlayAudioFile = new wxMenuItem( tools, wxID_ANY, wxString( _("Play File") ) , wxEmptyString, wxITEM_NORMAL );\r
+    tools->Append( m_menuItemPlayAudioFile );\r
 \r
-       m_menubarMain->Append( tools, _("&Tools") );\r
+    m_menubarMain->Append( tools, _("&Tools") );\r
 \r
-       help = new wxMenu();\r
-       wxMenuItem* m_menuItemHelpUpdates;\r
-       m_menuItemHelpUpdates = new wxMenuItem( help, wxID_ANY, wxString( _("Check for Updates") ) , wxEmptyString, wxITEM_NORMAL );\r
-       help->Append( m_menuItemHelpUpdates );\r
-       m_menuItemHelpUpdates->Enable( false );\r
+    help = new wxMenu();\r
+    wxMenuItem* m_menuItemHelpUpdates;\r
+    m_menuItemHelpUpdates = new wxMenuItem( help, wxID_ANY, wxString( _("Check for Updates") ) , wxEmptyString, wxITEM_NORMAL );\r
+    help->Append( m_menuItemHelpUpdates );\r
+    m_menuItemHelpUpdates->Enable( false );\r
 \r
-       wxMenuItem* m_menuItemAbout;\r
-       m_menuItemAbout = new wxMenuItem( help, ID_ABOUT, wxString( _("&About") ) , _("About this program"), wxITEM_NORMAL );\r
-       help->Append( m_menuItemAbout );\r
+    wxMenuItem* m_menuItemAbout;\r
+    m_menuItemAbout = new wxMenuItem( help, ID_ABOUT, wxString( _("&About") ) , _("About this program"), wxITEM_NORMAL );\r
+    help->Append( m_menuItemAbout );\r
 \r
-       m_menubarMain->Append( help, _("&Help") );\r
+    m_menubarMain->Append( help, _("&Help") );\r
 \r
-       this->SetMenuBar( m_menubarMain );\r
+    this->SetMenuBar( m_menubarMain );\r
 \r
-       wxBoxSizer* bSizer1;\r
-       bSizer1 = new wxBoxSizer( wxHORIZONTAL );\r
+    wxBoxSizer* bSizer1;\r
+    bSizer1 = new wxBoxSizer( wxHORIZONTAL );\r
 \r
-       wxBoxSizer* leftSizer;\r
-       leftSizer = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* leftSizer;\r
+    leftSizer = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxStaticBoxSizer* snrSizer;\r
-       snrSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("SNR") ), wxVERTICAL );\r
+    wxStaticBoxSizer* snrSizer;\r
+    snrSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("SNR") ), wxVERTICAL );\r
 \r
-       m_gaugeSNR = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( 15,135 ), wxGA_SMOOTH|wxGA_VERTICAL );\r
-       m_gaugeSNR->SetToolTip( _("Display signal to noise ratio.") );\r
+    m_gaugeSNR = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( 15,135 ), wxGA_SMOOTH|wxGA_VERTICAL );\r
+    m_gaugeSNR->SetToolTip( _("Display signal to noise ratio.") );\r
 \r
-       snrSizer->Add( m_gaugeSNR, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 10 );\r
+    snrSizer->Add( m_gaugeSNR, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 10 );\r
 \r
-       wxBoxSizer* bSizer29;\r
-       bSizer29 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer29;\r
+    bSizer29 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_textSNR = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxPoint( -1,-1 ), wxSize( 35,25 ), wxTE_READONLY );\r
-       m_textSNR->SetToolTip( _("Show S/N ratio numerically.") );\r
-       m_textSNR->SetMinSize( wxSize( 35,25 ) );\r
+    m_textSNR = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxPoint( -1,-1 ), wxSize( 35,25 ), wxTE_READONLY );\r
+    m_textSNR->SetToolTip( _("Show S/N ratio numerically.") );\r
+    m_textSNR->SetMinSize( wxSize( 35,25 ) );\r
 \r
-       bSizer29->Add( m_textSNR, 0, wxALIGN_CENTER|wxALL, 1 );\r
+    bSizer29->Add( m_textSNR, 0, wxALIGN_CENTER|wxALL, 1 );\r
 \r
 \r
-       snrSizer->Add( bSizer29, 0, wxEXPAND, 1 );\r
+    snrSizer->Add( bSizer29, 0, wxEXPAND, 1 );\r
 \r
 \r
-       leftSizer->Add( snrSizer, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 1 );\r
+    leftSizer->Add( snrSizer, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 1 );\r
 \r
-       wxStaticBoxSizer* levelSizer;\r
-       levelSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Level") ), wxVERTICAL );\r
+    wxStaticBoxSizer* levelSizer;\r
+    levelSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Level") ), wxVERTICAL );\r
 \r
-       m_gaugeLevel = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( 15,135 ), wxGA_SMOOTH|wxGA_VERTICAL );\r
-       m_gaugeLevel->SetToolTip( _("Display signal level.") );\r
+    m_gaugeLevel = new wxGauge( this, wxID_ANY, 100, wxDefaultPosition, wxSize( 15,135 ), wxGA_SMOOTH|wxGA_VERTICAL );\r
+    m_gaugeLevel->SetToolTip( _("Display signal level.") );\r
 \r
-       levelSizer->Add( m_gaugeLevel, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 10 );\r
+    levelSizer->Add( m_gaugeLevel, 1, wxALIGN_CENTER_HORIZONTAL|wxALL, 10 );\r
 \r
 \r
-       leftSizer->Add( levelSizer, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 1 );\r
+    leftSizer->Add( levelSizer, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 1 );\r
 \r
 \r
-       bSizer1->Add( leftSizer, 0, wxALL|wxEXPAND, 5 );\r
+    bSizer1->Add( leftSizer, 0, wxALL|wxEXPAND, 5 );\r
 \r
-       wxBoxSizer* centerSizer;\r
-       centerSizer = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* centerSizer;\r
+    centerSizer = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxBoxSizer* upperSizer;\r
-       upperSizer = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* upperSizer;\r
+    upperSizer = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_auiNbookCtrl = new wxAuiNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_BOTTOM|wxAUI_NB_DEFAULT_STYLE );\r
-       m_auiNbookCtrl->SetFont( wxFont( 6, 70, 90, 90, false, wxEmptyString ) );\r
+    m_auiNbookCtrl = new wxAuiNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_BOTTOM|wxAUI_NB_DEFAULT_STYLE );\r
+    m_auiNbookCtrl->SetFont( wxFont( 6, 70, 90, 90, false, wxEmptyString ) );\r
 \r
 \r
-       upperSizer->Add( m_auiNbookCtrl, 1, wxALIGN_TOP|wxEXPAND, 1 );\r
+    upperSizer->Add( m_auiNbookCtrl, 1, wxALIGN_TOP|wxEXPAND, 1 );\r
 \r
 \r
-       centerSizer->Add( upperSizer, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALIGN_TOP|wxEXPAND, 0 );\r
+    centerSizer->Add( upperSizer, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALIGN_TOP|wxEXPAND, 0 );\r
 \r
-       wxBoxSizer* lowerSizer;\r
-       lowerSizer = new wxBoxSizer( wxHORIZONTAL );\r
+    wxBoxSizer* lowerSizer;\r
+    lowerSizer = new wxBoxSizer( wxHORIZONTAL );\r
 \r
-       wxBoxSizer* bSizer15;\r
-       bSizer15 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer15;\r
+    bSizer15 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_txtCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer15->Add( m_txtCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );\r
+    m_txtCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer15->Add( m_txtCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 );\r
 \r
 \r
-       lowerSizer->Add( bSizer15, 1, wxEXPAND, 5 );\r
+    lowerSizer->Add( bSizer15, 1, wxEXPAND, 5 );\r
 \r
-       wxBoxSizer* bSizer141;\r
-       bSizer141 = new wxBoxSizer( wxHORIZONTAL );\r
+    wxBoxSizer* bSizer141;\r
+    bSizer141 = new wxBoxSizer( wxHORIZONTAL );\r
 \r
-       m_togRxID = new wxToggleButton( this, wxID_ANY, _("RxID"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer141->Add( m_togRxID, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL|wxFIXED_MINSIZE, 5 );\r
+    m_togRxID = new wxToggleButton( this, wxID_ANY, _("RxID"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer141->Add( m_togRxID, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL|wxFIXED_MINSIZE, 5 );\r
 \r
-       m_togTxID = new wxToggleButton( this, wxID_ANY, _("TxID"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer141->Add( m_togTxID, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
+    m_togTxID = new wxToggleButton( this, wxID_ANY, _("TxID"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer141->Add( m_togTxID, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
 \r
 \r
-       lowerSizer->Add( bSizer141, 0, wxALIGN_RIGHT, 5 );\r
+    lowerSizer->Add( bSizer141, 0, wxALIGN_RIGHT, 5 );\r
 \r
 \r
-       centerSizer->Add( lowerSizer, 0, wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 2 );\r
+    centerSizer->Add( lowerSizer, 0, wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 2 );\r
 \r
 \r
-       bSizer1->Add( centerSizer, 4, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 1 );\r
+    bSizer1->Add( centerSizer, 4, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 1 );\r
 \r
-       wxBoxSizer* rightSizer;\r
-       rightSizer = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* rightSizer;\r
+    rightSizer = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxStaticBoxSizer* sbSizer3;\r
-       sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("SQ") ), wxVERTICAL );\r
+    wxStaticBoxSizer* sbSizer3;\r
+    sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("SQ") ), wxVERTICAL );\r
 \r
-       m_sliderSQ = new wxSlider( this, wxID_ANY, 50, 0, 100, wxDefaultPosition, wxSize( -1,100 ), wxSL_AUTOTICKS|wxSL_INVERSE|wxSL_VERTICAL );\r
-       m_sliderSQ->SetToolTip( _("Set Squelch level.") );\r
+    m_sliderSQ = new wxSlider( this, wxID_ANY, 50, 0, 100, wxDefaultPosition, wxSize( -1,100 ), wxSL_AUTOTICKS|wxSL_INVERSE|wxSL_VERTICAL );\r
+    m_sliderSQ->SetToolTip( _("Set Squelch level.") );\r
 \r
-       sbSizer3->Add( m_sliderSQ, 2, wxALIGN_CENTER|wxALL, 1 );\r
+    sbSizer3->Add( m_sliderSQ, 2, wxALIGN_CENTER|wxALL, 1 );\r
 \r
-       wxBoxSizer* bSizer131;\r
-       bSizer131 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer131;\r
+    bSizer131 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_ckboxSQ = new wxCheckBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );\r
-       m_ckboxSQ->SetToolTip( _("Activate/Deactivate Squelch") );\r
+    m_ckboxSQ = new wxCheckBox( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxCHK_2STATE );\r
+    m_ckboxSQ->SetToolTip( _("Activate/Deactivate Squelch") );\r
 \r
-       bSizer131->Add( m_ckboxSQ, 0, wxALIGN_CENTER|wxALL, 5 );\r
+    bSizer131->Add( m_ckboxSQ, 0, wxALIGN_CENTER|wxALL, 5 );\r
 \r
 \r
-       sbSizer3->Add( bSizer131, 0, wxALIGN_CENTER, 5 );\r
+    sbSizer3->Add( bSizer131, 0, wxALIGN_CENTER, 5 );\r
 \r
 \r
-       rightSizer->Add( sbSizer3, 2, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 3 );\r
+    rightSizer->Add( sbSizer3, 2, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 3 );\r
 \r
-       wxStaticBoxSizer* sbSizer5;\r
-       sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Control") ), wxVERTICAL );\r
+    wxStaticBoxSizer* sbSizer5;\r
+    sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Control") ), wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer1511;\r
-       bSizer1511 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer1511;\r
+    bSizer1511 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_togBtnOnOff = new wxToggleButton( this, wxID_ANY, _("Start"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_togBtnOnOff->SetToolTip( _("Begin receiving data.") );\r
+    m_togBtnOnOff = new wxToggleButton( this, wxID_ANY, _("Start"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_togBtnOnOff->SetToolTip( _("Begin receiving data.") );\r
 \r
-       bSizer1511->Add( m_togBtnOnOff, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    bSizer1511->Add( m_togBtnOnOff, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
 \r
 \r
-       sbSizer5->Add( bSizer1511, 0, wxEXPAND, 1 );\r
+    sbSizer5->Add( bSizer1511, 0, wxEXPAND, 1 );\r
 \r
-       wxBoxSizer* bSizer151;\r
-       bSizer151 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer151;\r
+    bSizer151 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_togBtnSplit = new wxToggleButton( this, wxID_ANY, _("Split"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_togBtnSplit->SetToolTip( _("Toggle split frequency mode.") );\r
+    m_togBtnSplit = new wxToggleButton( this, wxID_ANY, _("Split"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_togBtnSplit->SetToolTip( _("Toggle split frequency mode.") );\r
 \r
-       bSizer151->Add( m_togBtnSplit, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    bSizer151->Add( m_togBtnSplit, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
 \r
 \r
-       sbSizer5->Add( bSizer151, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 1 );\r
+    sbSizer5->Add( bSizer151, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 1 );\r
 \r
-       wxBoxSizer* bSizer13;\r
-       bSizer13 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer13;\r
+    bSizer13 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_togBtnAnalog = new wxToggleButton( this, wxID_ANY, _("Analog"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_togBtnAnalog->SetToolTip( _("Toggle analog/digital operation.") );\r
+    m_togBtnAnalog = new wxToggleButton( this, wxID_ANY, _("Analog"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_togBtnAnalog->SetToolTip( _("Toggle analog/digital operation.") );\r
 \r
-       bSizer13->Add( m_togBtnAnalog, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    bSizer13->Add( m_togBtnAnalog, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
 \r
 \r
-       sbSizer5->Add( bSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    sbSizer5->Add( bSizer13, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
 \r
-       wxBoxSizer* bSizer14;\r
-       bSizer14 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer14;\r
+    bSizer14 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_togBtnALC = new wxToggleButton( this, wxID_ANY, _("ALC"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_togBtnALC->SetToolTip( _("Toggle automatic level control mode.") );\r
+    m_togBtnALC = new wxToggleButton( this, wxID_ANY, _("ALC"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_togBtnALC->SetToolTip( _("Toggle automatic level control mode.") );\r
 \r
-       bSizer14->Add( m_togBtnALC, 0, wxALL, 1 );\r
+    bSizer14->Add( m_togBtnALC, 0, wxALL, 1 );\r
 \r
 \r
-       sbSizer5->Add( bSizer14, 0, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALL, 1 );\r
+    sbSizer5->Add( bSizer14, 0, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALL, 1 );\r
 \r
-       wxBoxSizer* bSizer11;\r
-       bSizer11 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer11;\r
+    bSizer11 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_btnTogTX = new wxToggleButton( this, wxID_ANY, _("TX"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_btnTogTX->SetToolTip( _("Switch between Receive and Transmit") );\r
+    m_btnTogTX = new wxToggleButton( this, wxID_ANY, _("TX"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_btnTogTX->SetToolTip( _("Switch between Receive and Transmit") );\r
 \r
-       bSizer11->Add( m_btnTogTX, 1, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
+    bSizer11->Add( m_btnTogTX, 1, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1 );\r
 \r
 \r
-       sbSizer5->Add( bSizer11, 2, wxEXPAND, 1 );\r
+    sbSizer5->Add( bSizer11, 2, wxEXPAND, 1 );\r
 \r
 \r
-       rightSizer->Add( sbSizer5, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 3 );\r
+    rightSizer->Add( sbSizer5, 2, wxALIGN_CENTER|wxALL|wxEXPAND, 3 );\r
 \r
 \r
-       bSizer1->Add( rightSizer, 0, wxALL|wxEXPAND, 3 );\r
+    bSizer1->Add( rightSizer, 0, wxALL|wxEXPAND, 3 );\r
 \r
 \r
-       this->SetSizer( bSizer1 );\r
-       this->Layout();\r
-       m_statusBar1 = this->CreateStatusBar( 3, wxST_SIZEGRIP, wxID_ANY );\r
+    this->SetSizer( bSizer1 );\r
+    this->Layout();\r
+    m_statusBar1 = this->CreateStatusBar( 3, wxST_SIZEGRIP, wxID_ANY );\r
 \r
-       // Connect Events\r
-       this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( TopFrame::topFrame_OnClose ) );\r
-       this->Connect( wxEVT_PAINT, wxPaintEventHandler( TopFrame::topFrame_OnPaint ) );\r
-       this->Connect( wxEVT_SIZE, wxSizeEventHandler( TopFrame::topFrame_OnSize ) );\r
-       this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::topFrame_OnUpdateUI ) );\r
-       this->Connect( m_menuItemOpen->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnOpen ) );\r
-       this->Connect( m_menuItemOpen->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnOpenUpdateUI ) );\r
-       this->Connect( m_menuItemSave->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnSave ) );\r
-       this->Connect( m_menuItemSave->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnSaveUpdateUI ) );\r
-       this->Connect( m_menuItemClose->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnClose ) );\r
-       this->Connect( m_menuItemClose->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCloseUpdateUI ) );\r
-       this->Connect( m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnExit ) );\r
-       this->Connect( m_menuItemCopy->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCopy ) );\r
-       this->Connect( m_menuItemCopy->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCopyUpdateUI ) );\r
-       this->Connect( m_menuItemCut->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCut ) );\r
-       this->Connect( m_menuItemCut->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCutUpdateUI ) );\r
-       this->Connect( m_menuItemPaste->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPaste ) );\r
-       this->Connect( m_menuItemPaste->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnPasteUpdateUI ) );\r
-       this->Connect( m_menuItemAudio->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsAudio ) );\r
-       this->Connect( m_menuItemAudio->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsAudioUI ) );\r
-       this->Connect( m_menuItemRigCtrlCfg->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsComCfg ) );\r
-       this->Connect( m_menuItemRigCtrlCfg->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsComCfgUI ) );\r
-       this->Connect( m_menuItemOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsOptions ) );\r
-       this->Connect( m_menuItemOptions->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsOptionsUI ) );\r
-       this->Connect( m_menuItemCaptRxStream->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureRxStream ) );\r
-       this->Connect( m_menuItemCaptTxStream->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureTxStream ) );\r
-       this->Connect( m_menuItemPlayAudioFile->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPlayAudioFile ) );\r
-       this->Connect( m_menuItemHelpUpdates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpCheckUpdates ) );\r
-       this->Connect( m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnHelpCheckUpdatesUI ) );\r
-       this->Connect( m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpAbout ) );\r
-       m_togRxID->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnRxID ), NULL, this );\r
-       m_togTxID->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTxID ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_LINEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_PAGEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnSliderScrollBottom ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScrollChanged ), NULL, this );\r
-       m_sliderSQ->Connect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnSliderScrollTop ), NULL, this );\r
-       m_ckboxSQ->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( TopFrame::OnCheckSQClick ), NULL, this );\r
-       m_togBtnOnOff->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnOnOff ), NULL, this );\r
-       m_togBtnSplit->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnSplitClick ), NULL, this );\r
-       m_togBtnAnalog->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnAnalogClick ), NULL, this );\r
-       m_togBtnALC->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnALCClick ), NULL, this );\r
-       m_btnTogTX->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTXClick ), NULL, this );\r
+    // Connect Events\r
+    this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( TopFrame::topFrame_OnClose ) );\r
+    this->Connect( wxEVT_PAINT, wxPaintEventHandler( TopFrame::topFrame_OnPaint ) );\r
+    this->Connect( wxEVT_SIZE, wxSizeEventHandler( TopFrame::topFrame_OnSize ) );\r
+    this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::topFrame_OnUpdateUI ) );\r
+    this->Connect( m_menuItemOpen->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnOpen ) );\r
+    this->Connect( m_menuItemOpen->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnOpenUpdateUI ) );\r
+    this->Connect( m_menuItemSave->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnSave ) );\r
+    this->Connect( m_menuItemSave->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnSaveUpdateUI ) );\r
+    this->Connect( m_menuItemClose->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnClose ) );\r
+    this->Connect( m_menuItemClose->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCloseUpdateUI ) );\r
+    this->Connect( m_menuItemExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnExit ) );\r
+    this->Connect( m_menuItemCopy->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCopy ) );\r
+    this->Connect( m_menuItemCopy->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCopyUpdateUI ) );\r
+    this->Connect( m_menuItemCut->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCut ) );\r
+    this->Connect( m_menuItemCut->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCutUpdateUI ) );\r
+    this->Connect( m_menuItemPaste->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPaste ) );\r
+    this->Connect( m_menuItemPaste->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnPasteUpdateUI ) );\r
+    this->Connect( m_menuItemAudio->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsAudio ) );\r
+    this->Connect( m_menuItemAudio->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsAudioUI ) );\r
+    this->Connect( m_menuItemRigCtrlCfg->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsComCfg ) );\r
+    this->Connect( m_menuItemRigCtrlCfg->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsComCfgUI ) );\r
+    this->Connect( m_menuItemOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsOptions ) );\r
+    this->Connect( m_menuItemOptions->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsOptionsUI ) );\r
+    this->Connect( m_menuItemCaptRxStream->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureRxStream ) );\r
+    this->Connect( m_menuItemCaptTxStream->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureTxStream ) );\r
+    this->Connect( m_menuItemPlayAudioFile->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPlayAudioFile ) );\r
+    this->Connect( m_menuItemHelpUpdates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpCheckUpdates ) );\r
+    this->Connect( m_menuItemHelpUpdates->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnHelpCheckUpdatesUI ) );\r
+    this->Connect( m_menuItemAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpAbout ) );\r
+    m_togRxID->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnRxID ), NULL, this );\r
+    m_togTxID->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTxID ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_LINEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_PAGEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnSliderScrollBottom ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScrollChanged ), NULL, this );\r
+    m_sliderSQ->Connect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnSliderScrollTop ), NULL, this );\r
+    m_ckboxSQ->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( TopFrame::OnCheckSQClick ), NULL, this );
+\r
+    m_togBtnOnOff->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnOnOff ), NULL, this );\r
+    m_togBtnSplit->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnSplitClick ), NULL, this );\r
+    m_togBtnAnalog->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnAnalogClick ), NULL, this );\r
+    m_togBtnALC->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnALCClick ), NULL, this );\r
+    m_btnTogTX->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTXClick ), NULL, this );\r
 }\r
 \r
 TopFrame::~TopFrame()\r
 {\r
-       // Disconnect Events\r
-       this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( TopFrame::topFrame_OnClose ) );\r
-       this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( TopFrame::topFrame_OnPaint ) );\r
-       this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( TopFrame::topFrame_OnSize ) );\r
-       this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::topFrame_OnUpdateUI ) );\r
-       this->Disconnect( ID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnOpen ) );\r
-       this->Disconnect( ID_OPEN, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnOpenUpdateUI ) );\r
-       this->Disconnect( ID_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnSave ) );\r
-       this->Disconnect( ID_SAVE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnSaveUpdateUI ) );\r
-       this->Disconnect( ID_CLOSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnClose ) );\r
-       this->Disconnect( ID_CLOSE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCloseUpdateUI ) );\r
-       this->Disconnect( ID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnExit ) );\r
-       this->Disconnect( ID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCopy ) );\r
-       this->Disconnect( ID_COPY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCopyUpdateUI ) );\r
-       this->Disconnect( ID_CUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCut ) );\r
-       this->Disconnect( ID_CUT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCutUpdateUI ) );\r
-       this->Disconnect( ID_PASTE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPaste ) );\r
-       this->Disconnect( ID_PASTE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnPasteUpdateUI ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsAudio ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsAudioUI ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsComCfg ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsComCfgUI ) );\r
-       this->Disconnect( ID_OPTIONS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsOptions ) );\r
-       this->Disconnect( ID_OPTIONS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsOptionsUI ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureRxStream ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureTxStream ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPlayAudioFile ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpCheckUpdates ) );\r
-       this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnHelpCheckUpdatesUI ) );\r
-       this->Disconnect( ID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpAbout ) );\r
-       m_togRxID->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnRxID ), NULL, this );\r
-       m_togTxID->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTxID ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_LINEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_PAGEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnSliderScrollBottom ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScrollChanged ), NULL, this );\r
-       m_sliderSQ->Disconnect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnSliderScrollTop ), NULL, this );\r
-       m_ckboxSQ->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( TopFrame::OnCheckSQClick ), NULL, this );\r
-       m_togBtnOnOff->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnOnOff ), NULL, this );\r
-       m_togBtnSplit->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnSplitClick ), NULL, this );\r
-       m_togBtnAnalog->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnAnalogClick ), NULL, this );\r
-       m_togBtnALC->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnALCClick ), NULL, this );\r
-       m_btnTogTX->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTXClick ), NULL, this );\r
+    // Disconnect Events\r
+    this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( TopFrame::topFrame_OnClose ) );\r
+    this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( TopFrame::topFrame_OnPaint ) );\r
+    this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( TopFrame::topFrame_OnSize ) );\r
+    this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::topFrame_OnUpdateUI ) );\r
+    this->Disconnect( ID_OPEN, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnOpen ) );\r
+    this->Disconnect( ID_OPEN, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnOpenUpdateUI ) );\r
+    this->Disconnect( ID_SAVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnSave ) );\r
+    this->Disconnect( ID_SAVE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnSaveUpdateUI ) );\r
+    this->Disconnect( ID_CLOSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnClose ) );\r
+    this->Disconnect( ID_CLOSE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCloseUpdateUI ) );\r
+    this->Disconnect( ID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnExit ) );\r
+    this->Disconnect( ID_COPY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCopy ) );\r
+    this->Disconnect( ID_COPY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCopyUpdateUI ) );\r
+    this->Disconnect( ID_CUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCut ) );\r
+    this->Disconnect( ID_CUT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnCutUpdateUI ) );\r
+    this->Disconnect( ID_PASTE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPaste ) );\r
+    this->Disconnect( ID_PASTE, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnPasteUpdateUI ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsAudio ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsAudioUI ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsComCfg ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsComCfgUI ) );\r
+    this->Disconnect( ID_OPTIONS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsOptions ) );\r
+    this->Disconnect( ID_OPTIONS, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsOptionsUI ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureRxStream ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnCaptureTxStream ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnPlayAudioFile ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpCheckUpdates ) );\r
+    this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnHelpCheckUpdatesUI ) );\r
+    this->Disconnect( ID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnHelpAbout ) );\r
+    m_togRxID->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnRxID ), NULL, this );\r
+    m_togTxID->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTxID ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_LINEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_PAGEUP, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScroll ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_BOTTOM, wxScrollEventHandler( TopFrame::OnSliderScrollBottom ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_CHANGED, wxScrollEventHandler( TopFrame::OnCmdSliderScrollChanged ), NULL, this );\r
+    m_sliderSQ->Disconnect( wxEVT_SCROLL_TOP, wxScrollEventHandler( TopFrame::OnSliderScrollTop ), NULL, this );\r
+    m_ckboxSQ->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( TopFrame::OnCheckSQClick ), NULL, this );
+\r
+    m_togBtnOnOff->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnOnOff ), NULL, this );\r
+    m_togBtnSplit->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnSplitClick ), NULL, this );\r
+    m_togBtnAnalog->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnAnalogClick ), NULL, this );\r
+    m_togBtnALC->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnALCClick ), NULL, this );\r
+    m_btnTogTX->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( TopFrame::OnTogBtnTXClick ), NULL, this );\r
 \r
 }\r
 \r
 DlgAbout::DlgAbout( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
 {\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
 \r
-       wxBoxSizer* bSizer20;\r
-       bSizer20 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer20;\r
+    bSizer20 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer21;\r
-       bSizer21 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer21;\r
+    bSizer21 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer23;\r
-       bSizer23 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer23;\r
+    bSizer23 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer25;\r
-       bSizer25 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer25;\r
+    bSizer25 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_bitmapAbout = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer25->Add( m_bitmapAbout, 1, wxALL|wxEXPAND, 5 );\r
+    m_bitmapAbout = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer25->Add( m_bitmapAbout, 1, wxALL|wxEXPAND, 5 );\r
 \r
 \r
-       bSizer23->Add( bSizer25, 1, wxEXPAND, 5 );\r
+    bSizer23->Add( bSizer25, 1, wxEXPAND, 5 );\r
 \r
-       wxBoxSizer* bSizer26;\r
-       bSizer26 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer26;\r
+    bSizer26 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_staticText1 = new wxStaticText( this, wxID_ANY, _("MyLabel"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_staticText1->Wrap( -1 );\r
-       bSizer26->Add( m_staticText1, 1, wxALL, 5 );\r
+    m_staticText1 = new wxStaticText( this, wxID_ANY, _("MyLabel"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_staticText1->Wrap( -1 );\r
+    bSizer26->Add( m_staticText1, 1, wxALL, 5 );\r
 \r
 \r
-       bSizer23->Add( bSizer26, 0, 0, 5 );\r
+    bSizer23->Add( bSizer26, 0, 0, 5 );\r
 \r
 \r
-       bSizer21->Add( bSizer23, 1, wxEXPAND, 5 );\r
+    bSizer21->Add( bSizer23, 1, wxEXPAND, 5 );\r
 \r
-       wxBoxSizer* bSizer24;\r
-       bSizer24 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer24;\r
+    bSizer24 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_textCtrl2 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer24->Add( m_textCtrl2, 1, wxALL|wxEXPAND, 5 );\r
+    m_textCtrl2 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer24->Add( m_textCtrl2, 1, wxALL|wxEXPAND, 5 );\r
 \r
 \r
-       bSizer21->Add( bSizer24, 1, wxEXPAND, 5 );\r
+    bSizer21->Add( bSizer24, 1, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer20->Add( bSizer21, 1, wxEXPAND, 5 );\r
+    bSizer20->Add( bSizer21, 1, wxEXPAND, 5 );\r
 \r
-       wxBoxSizer* bSizer22;\r
-       bSizer22 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer22;\r
+    bSizer22 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_button9 = new wxButton( this, wxID_ANY, _("MyButton"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer22->Add( m_button9, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_button9 = new wxButton( this, wxID_ANY, _("MyButton"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer22->Add( m_button9, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxALL, 5 );\r
 \r
 \r
-       bSizer20->Add( bSizer22, 0, wxALIGN_RIGHT, 5 );\r
+    bSizer20->Add( bSizer22, 0, wxALIGN_RIGHT, 5 );\r
 \r
 \r
-       this->SetSizer( bSizer20 );\r
-       this->Layout();\r
+    this->SetSizer( bSizer20 );\r
+    this->Layout();\r
 \r
-       this->Centre( wxBOTH );\r
-       this->Centre( wxBOTH );\r
+    this->Centre( wxBOTH );\r
+    this->Centre( wxBOTH );\r
 \r
-       // Connect Events\r
-       this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAbout::OnClose ) );\r
-       this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAbout::OnInitDialog ) );\r
+    // Connect Events\r
+    this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAbout::OnClose ) );\r
+    this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAbout::OnInitDialog ) );\r
 }\r
 \r
 DlgAbout::~DlgAbout()\r
 {\r
-       // Disconnect Events\r
-       this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAbout::OnClose ) );\r
-       this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAbout::OnInitDialog ) );\r
+    // Disconnect Events\r
+    this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAbout::OnClose ) );\r
+    this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAbout::OnInitDialog ) );\r
 \r
 }\r
 \r
 DlgAudio::DlgAudio( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
 {\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
 \r
-       wxBoxSizer* bSizer32;\r
-       bSizer32 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer32;\r
+    bSizer32 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_nbAudioOptions = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_panelDevices = new wxPanel( m_nbAudioOptions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
-       wxBoxSizer* bSizer34;\r
-       bSizer34 = new wxBoxSizer( wxVERTICAL );\r
+    m_nbAudioOptions = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_panelDevices = new wxPanel( m_nbAudioOptions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
+    wxBoxSizer* bSizer34;\r
+    bSizer34 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxStaticBoxSizer* sbSizer10;\r
-       sbSizer10 = new wxStaticBoxSizer( new wxStaticBox( m_panelDevices, wxID_ANY, _("PortAudio") ), wxHORIZONTAL );\r
+    wxStaticBoxSizer* sbSizer10;\r
+    sbSizer10 = new wxStaticBoxSizer( new wxStaticBox( m_panelDevices, wxID_ANY, _("PortAudio") ), wxHORIZONTAL );\r
 \r
-       wxBoxSizer* bSizer41;\r
-       bSizer41 = new wxBoxSizer( wxHORIZONTAL );\r
+    wxBoxSizer* bSizer41;\r
+    bSizer41 = new wxBoxSizer( wxHORIZONTAL );\r
 \r
-       wxGridSizer* gSizer6;\r
-       gSizer6 = new wxGridSizer( 3, 1, 0, 0 );\r
+    wxGridSizer* gSizer6;\r
+    gSizer6 = new wxGridSizer( 3, 1, 0, 0 );\r
 \r
-       gSizer6->SetMinSize( wxSize( 115,-1 ) );\r
-       m_radioBtnPortAudio = new wxRadioButton( m_panelDevices, wxID_ANY, _("PortAudio"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );\r
-       m_radioBtnPortAudio->SetValue( true );\r
-       gSizer6->Add( m_radioBtnPortAudio, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
+    gSizer6->SetMinSize( wxSize( 115,-1 ) );\r
+    m_radioBtnPortAudio = new wxRadioButton( m_panelDevices, wxID_ANY, _("PortAudio"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP );\r
+    m_radioBtnPortAudio->SetValue( true );\r
+    gSizer6->Add( m_radioBtnPortAudio, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
 \r
-       wxGridSizer* gSizer51;\r
-       gSizer51 = new wxGridSizer( 2, 2, 0, 0 );\r
+    wxGridSizer* gSizer51;\r
+    gSizer51 = new wxGridSizer( 2, 2, 0, 0 );\r
 \r
-       gSizer51->SetMinSize( wxSize( 110,-1 ) );\r
-       m_staticText151 = new wxStaticText( m_panelDevices, wxID_ANY, _("# Ch Out:"), wxDefaultPosition, wxSize( 80,-1 ), wxALIGN_RIGHT );\r
-       m_staticText151->Wrap( -1 );\r
-       m_staticText151->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
-       m_staticText151->SetMinSize( wxSize( 80,-1 ) );\r
-       m_staticText151->SetMaxSize( wxSize( 80,-1 ) );\r
+    gSizer51->SetMinSize( wxSize( 110,-1 ) );\r
+    m_staticText151 = new wxStaticText( m_panelDevices, wxID_ANY, _("# Ch Out:"), wxDefaultPosition, wxSize( 80,-1 ), wxALIGN_RIGHT );\r
+    m_staticText151->Wrap( -1 );\r
+    m_staticText151->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
+    m_staticText151->SetMinSize( wxSize( 80,-1 ) );\r
+    m_staticText151->SetMaxSize( wxSize( 80,-1 ) );\r
 \r
-       gSizer51->Add( m_staticText151, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxEXPAND, 5 );\r
+    gSizer51->Add( m_staticText151, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxEXPAND, 5 );\r
 \r
-       m_textNumChOut = new wxTextCtrl( m_panelDevices, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 30,-1 ), wxTE_READONLY );\r
-       m_textNumChOut->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
-       m_textNumChOut->SetMinSize( wxSize( 30,-1 ) );\r
-       m_textNumChOut->SetMaxSize( wxSize( 30,-1 ) );\r
+    m_textNumChOut = new wxTextCtrl( m_panelDevices, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 30,-1 ), wxTE_READONLY );\r
+    m_textNumChOut->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
+    m_textNumChOut->SetMinSize( wxSize( 30,-1 ) );\r
+    m_textNumChOut->SetMaxSize( wxSize( 30,-1 ) );\r
 \r
-       gSizer51->Add( m_textNumChOut, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL, 5 );\r
+    gSizer51->Add( m_textNumChOut, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_LEFT|wxALL, 5 );\r
 \r
-       m_staticText141 = new wxStaticText( m_panelDevices, wxID_ANY, _("# Ch In:"), wxDefaultPosition, wxSize( 80,-1 ), wxALIGN_RIGHT );\r
-       m_staticText141->Wrap( -1 );\r
-       m_staticText141->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
-       m_staticText141->SetMinSize( wxSize( 80,-1 ) );\r
-       m_staticText141->SetMaxSize( wxSize( 90,-1 ) );\r
+    m_staticText141 = new wxStaticText( m_panelDevices, wxID_ANY, _("# Ch In:"), wxDefaultPosition, wxSize( 80,-1 ), wxALIGN_RIGHT );\r
+    m_staticText141->Wrap( -1 );\r
+    m_staticText141->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
+    m_staticText141->SetMinSize( wxSize( 80,-1 ) );\r
+    m_staticText141->SetMaxSize( wxSize( 90,-1 ) );\r
 \r
-       gSizer51->Add( m_staticText141, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxEXPAND, 5 );\r
+    gSizer51->Add( m_staticText141, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL|wxEXPAND, 5 );\r
 \r
-       m_textNumChIn = new wxTextCtrl( m_panelDevices, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 30,-1 ), wxTE_READONLY );\r
-       m_textNumChIn->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
-       m_textNumChIn->SetMinSize( wxSize( 30,-1 ) );\r
-       m_textNumChIn->SetMaxSize( wxSize( 30,-1 ) );\r
+    m_textNumChIn = new wxTextCtrl( m_panelDevices, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 30,-1 ), wxTE_READONLY );\r
+    m_textNumChIn->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) );\r
+    m_textNumChIn->SetMinSize( wxSize( 30,-1 ) );\r
+    m_textNumChIn->SetMaxSize( wxSize( 30,-1 ) );\r
 \r
-       gSizer51->Add( m_textNumChIn, 0, wxALL, 4 );\r
+    gSizer51->Add( m_textNumChIn, 0, wxALL, 4 );\r
 \r
 \r
-       gSizer6->Add( gSizer51, 0, wxEXPAND, 5 );\r
+    gSizer6->Add( gSizer51, 0, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer41->Add( gSizer6, 0, wxALL, 5 );\r
+    bSizer41->Add( gSizer6, 0, wxALL, 5 );\r
 \r
-       wxGridSizer* gSizer7;\r
-       gSizer7 = new wxGridSizer( 4, 2, 0, 0 );\r
+    wxGridSizer* gSizer7;\r
+    gSizer7 = new wxGridSizer( 4, 2, 0, 0 );\r
 \r
-       m_staticText14 = new wxStaticText( m_panelDevices, wxID_ANY, _("Audio in (mic) -> codec:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
-       m_staticText14->Wrap( -1 );\r
-       gSizer7->Add( m_staticText14, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText14 = new wxStaticText( m_panelDevices, wxID_ANY, _("Audio in (mic) -> codec:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
+    m_staticText14->Wrap( -1 );\r
+    gSizer7->Add( m_staticText14, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_comboAudioCodec = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
-       gSizer7->Add( m_comboAudioCodec, 1, wxALL, 5 );\r
+    m_comboAudioCodec = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
+    gSizer7->Add( m_comboAudioCodec, 1, wxALL, 5 );\r
 \r
-       m_staticText15 = new wxStaticText( m_panelDevices, wxID_ANY, _("codec -> Radio Tx:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
-       m_staticText15->Wrap( -1 );\r
-       gSizer7->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText15 = new wxStaticText( m_panelDevices, wxID_ANY, _("codec -> Radio Tx:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
+    m_staticText15->Wrap( -1 );\r
+    gSizer7->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_comboCodecTx = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
-       gSizer7->Add( m_comboCodecTx, 1, wxALL, 5 );\r
+    m_comboCodecTx = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
+    gSizer7->Add( m_comboCodecTx, 1, wxALL, 5 );\r
 \r
-       m_staticText16 = new wxStaticText( m_panelDevices, wxID_ANY, _("Radio Rx -> codec:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
-       m_staticText16->Wrap( -1 );\r
-       gSizer7->Add( m_staticText16, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText16 = new wxStaticText( m_panelDevices, wxID_ANY, _("Radio Rx -> codec:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
+    m_staticText16->Wrap( -1 );\r
+    gSizer7->Add( m_staticText16, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_comboRadioRx = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
-       gSizer7->Add( m_comboRadioRx, 1, wxALL, 5 );\r
+    m_comboRadioRx = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
+    gSizer7->Add( m_comboRadioRx, 1, wxALL, 5 );\r
 \r
-       m_staticText17 = new wxStaticText( m_panelDevices, wxID_ANY, _("codec -> Audio out (spkr):"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
-       m_staticText17->Wrap( -1 );\r
-       gSizer7->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText17 = new wxStaticText( m_panelDevices, wxID_ANY, _("codec -> Audio out (spkr):"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
+    m_staticText17->Wrap( -1 );\r
+    gSizer7->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_comboCodecSpkr = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
-       gSizer7->Add( m_comboCodecSpkr, 0, wxALL, 5 );\r
+    m_comboCodecSpkr = new wxComboBox( m_panelDevices, wxID_ANY, _("<default>"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );\r
+    gSizer7->Add( m_comboCodecSpkr, 0, wxALL, 5 );\r
 \r
 \r
-       bSizer41->Add( gSizer7, 0, wxALL|wxEXPAND, 5 );\r
+    bSizer41->Add( gSizer7, 0, wxALL|wxEXPAND, 5 );\r
 \r
 \r
-       sbSizer10->Add( bSizer41, 1, wxEXPAND, 5 );\r
+    sbSizer10->Add( bSizer41, 1, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer34->Add( sbSizer10, 1, wxEXPAND, 5 );\r
+    bSizer34->Add( sbSizer10, 1, wxEXPAND, 5 );\r
 \r
-       wxStaticBoxSizer* sbSizer11;\r
-       sbSizer11 = new wxStaticBoxSizer( new wxStaticBox( m_panelDevices, wxID_ANY, _("File I/O") ), wxHORIZONTAL );\r
+    wxStaticBoxSizer* sbSizer11;\r
+    sbSizer11 = new wxStaticBoxSizer( new wxStaticBox( m_panelDevices, wxID_ANY, _("File I/O") ), wxHORIZONTAL );\r
 \r
-       wxBoxSizer* bSizer38;\r
-       bSizer38 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer38;\r
+    bSizer38 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_radioBtnFileOnly = new wxRadioButton( m_panelDevices, wxID_ANY, _("File Only"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer38->Add( m_radioBtnFileOnly, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
+    m_radioBtnFileOnly = new wxRadioButton( m_panelDevices, wxID_ANY, _("File Only"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer38->Add( m_radioBtnFileOnly, 1, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
 \r
 \r
-       sbSizer11->Add( bSizer38, 0, wxEXPAND, 5 );\r
+    sbSizer11->Add( bSizer38, 0, wxEXPAND, 5 );\r
 \r
-       wxBoxSizer* bSizer45;\r
-       bSizer45 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer45;\r
+    bSizer45 = new wxBoxSizer( wxVERTICAL );\r
 \r
 \r
-       sbSizer11->Add( bSizer45, 1, wxEXPAND, 5 );\r
+    sbSizer11->Add( bSizer45, 1, wxEXPAND, 5 );\r
 \r
-       wxBoxSizer* bSizer46;\r
-       bSizer46 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer46;\r
+    bSizer46 = new wxBoxSizer( wxVERTICAL );\r
 \r
 \r
-       sbSizer11->Add( bSizer46, 1, wxEXPAND, 5 );\r
+    sbSizer11->Add( bSizer46, 1, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer34->Add( sbSizer11, 1, wxEXPAND, 5 );\r
+    bSizer34->Add( sbSizer11, 1, wxEXPAND, 5 );\r
 \r
 \r
-       m_panelDevices->SetSizer( bSizer34 );\r
-       m_panelDevices->Layout();\r
-       bSizer34->Fit( m_panelDevices );\r
-       m_nbAudioOptions->AddPage( m_panelDevices, _("Devices"), true );\r
-       m_panelSettings = new wxPanel( m_nbAudioOptions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
-       wxBoxSizer* bSizer27;\r
-       bSizer27 = new wxBoxSizer( wxVERTICAL );\r
+    m_panelDevices->SetSizer( bSizer34 );\r
+    m_panelDevices->Layout();\r
+    bSizer34->Fit( m_panelDevices );\r
+    m_nbAudioOptions->AddPage( m_panelDevices, _("Devices"), true );\r
+    m_panelSettings = new wxPanel( m_nbAudioOptions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
+    wxBoxSizer* bSizer27;\r
+    bSizer27 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer271;\r
-       bSizer271 = new wxBoxSizer( wxHORIZONTAL );\r
+    wxBoxSizer* bSizer271;\r
+    bSizer271 = new wxBoxSizer( wxHORIZONTAL );\r
 \r
-       wxStaticBoxSizer* sbSizer6;\r
-       sbSizer6 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Rx Input") ), wxVERTICAL );\r
+    wxStaticBoxSizer* sbSizer6;\r
+    sbSizer6 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Rx Input") ), wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer31;\r
-       bSizer31 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer31;\r
+    bSizer31 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_lbRxInput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
-       bSizer31->Add( m_lbRxInput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
+    m_lbRxInput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
+    bSizer31->Add( m_lbRxInput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
 \r
-       m_textRxInput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer31->Add( m_textRxInput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
+    m_textRxInput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer31->Add( m_textRxInput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
 \r
 \r
-       sbSizer6->Add( bSizer31, 1, wxEXPAND, 6 );\r
+    sbSizer6->Add( bSizer31, 1, wxEXPAND, 6 );\r
 \r
 \r
-       bSizer271->Add( sbSizer6, 1, wxEXPAND, 5 );\r
+    bSizer271->Add( sbSizer6, 1, wxEXPAND, 5 );\r
 \r
-       wxStaticBoxSizer* sbSizer7;\r
-       sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Tx Output") ), wxVERTICAL );\r
+    wxStaticBoxSizer* sbSizer7;\r
+    sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Tx Output") ), wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer281;\r
-       bSizer281 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer281;\r
+    bSizer281 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_lbTxOutput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
-       bSizer281->Add( m_lbTxOutput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
+    m_lbTxOutput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
+    bSizer281->Add( m_lbTxOutput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
 \r
-       m_textTxOutput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer281->Add( m_textTxOutput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
+    m_textTxOutput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer281->Add( m_textTxOutput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
 \r
 \r
-       sbSizer7->Add( bSizer281, 1, wxEXPAND, 5 );\r
+    sbSizer7->Add( bSizer281, 1, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer271->Add( sbSizer7, 1, wxEXPAND, 6 );\r
+    bSizer271->Add( sbSizer7, 1, wxEXPAND, 6 );\r
 \r
 \r
-       bSizer27->Add( bSizer271, 1, wxEXPAND, 5 );\r
+    bSizer27->Add( bSizer271, 1, wxEXPAND, 5 );\r
 \r
-       wxBoxSizer* bSizer26;\r
-       bSizer26 = new wxBoxSizer( wxHORIZONTAL );\r
+    wxBoxSizer* bSizer26;\r
+    bSizer26 = new wxBoxSizer( wxHORIZONTAL );\r
 \r
-       wxStaticBoxSizer* sbSizer8;\r
-       sbSizer8 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Voice Input") ), wxVERTICAL );\r
+    wxStaticBoxSizer* sbSizer8;\r
+    sbSizer8 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Voice Input") ), wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer29;\r
-       bSizer29 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer29;\r
+    bSizer29 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_lbVoiceInput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
-       bSizer29->Add( m_lbVoiceInput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
+    m_lbVoiceInput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
+    bSizer29->Add( m_lbVoiceInput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
 \r
-       m_textVoiceInput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer29->Add( m_textVoiceInput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
+    m_textVoiceInput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer29->Add( m_textVoiceInput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
 \r
 \r
-       sbSizer8->Add( bSizer29, 1, wxEXPAND, 5 );\r
+    sbSizer8->Add( bSizer29, 1, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer26->Add( sbSizer8, 1, wxEXPAND, 6 );\r
+    bSizer26->Add( sbSizer8, 1, wxEXPAND, 6 );\r
 \r
-       wxStaticBoxSizer* sbSizer9;\r
-       sbSizer9 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Voice Output") ), wxVERTICAL );\r
+    wxStaticBoxSizer* sbSizer9;\r
+    sbSizer9 = new wxStaticBoxSizer( new wxStaticBox( m_panelSettings, wxID_ANY, _("Voice Output") ), wxVERTICAL );\r
 \r
-       wxBoxSizer* bSizer30;\r
-       bSizer30 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer30;\r
+    bSizer30 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_lbVoiceOutput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
-       bSizer30->Add( m_lbVoiceOutput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
+    m_lbVoiceOutput = new wxListBox( m_panelSettings, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_SINGLE );\r
+    bSizer30->Add( m_lbVoiceOutput, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 2 );\r
 \r
-       m_textVoiceOutput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       bSizer30->Add( m_textVoiceOutput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
+    m_textVoiceOutput = new wxTextCtrl( m_panelSettings, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    bSizer30->Add( m_textVoiceOutput, 0, wxALIGN_CENTER|wxALL|wxEXPAND, 2 );\r
 \r
 \r
-       sbSizer9->Add( bSizer30, 1, wxEXPAND, 1 );\r
+    sbSizer9->Add( bSizer30, 1, wxEXPAND, 1 );\r
 \r
 \r
-       bSizer26->Add( sbSizer9, 1, wxEXPAND, 6 );\r
+    bSizer26->Add( sbSizer9, 1, wxEXPAND, 6 );\r
 \r
 \r
-       bSizer27->Add( bSizer26, 1, wxEXPAND, 1 );\r
+    bSizer27->Add( bSizer26, 1, wxEXPAND, 1 );\r
 \r
 \r
-       m_panelSettings->SetSizer( bSizer27 );\r
-       m_panelSettings->Layout();\r
-       bSizer27->Fit( m_panelSettings );\r
-       m_nbAudioOptions->AddPage( m_panelSettings, _("Settings"), false );\r
+    m_panelSettings->SetSizer( bSizer27 );\r
+    m_panelSettings->Layout();\r
+    bSizer27->Fit( m_panelSettings );\r
+    m_nbAudioOptions->AddPage( m_panelSettings, _("Settings"), false );\r
 \r
-       bSizer32->Add( m_nbAudioOptions, 1, wxEXPAND | wxALL, 1 );\r
+    bSizer32->Add( m_nbAudioOptions, 1, wxEXPAND | wxALL, 1 );\r
 \r
-       wxBoxSizer* bSizer28;\r
-       bSizer28 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer28;\r
+    bSizer28 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       m_sdbSizer3 = new wxStdDialogButtonSizer();\r
-       m_sdbSizer3OK = new wxButton( this, wxID_OK );\r
-       m_sdbSizer3->AddButton( m_sdbSizer3OK );\r
-       m_sdbSizer3Apply = new wxButton( this, wxID_APPLY );\r
-       m_sdbSizer3->AddButton( m_sdbSizer3Apply );\r
-       m_sdbSizer3Cancel = new wxButton( this, wxID_CANCEL );\r
-       m_sdbSizer3->AddButton( m_sdbSizer3Cancel );\r
-       m_sdbSizer3->Realize();\r
+    m_sdbSizer3 = new wxStdDialogButtonSizer();\r
+    m_sdbSizer3OK = new wxButton( this, wxID_OK );\r
+    m_sdbSizer3->AddButton( m_sdbSizer3OK );\r
+    m_sdbSizer3Apply = new wxButton( this, wxID_APPLY );\r
+    m_sdbSizer3->AddButton( m_sdbSizer3Apply );\r
+    m_sdbSizer3Cancel = new wxButton( this, wxID_CANCEL );\r
+    m_sdbSizer3->AddButton( m_sdbSizer3Cancel );\r
+    m_sdbSizer3->Realize();\r
 \r
-       bSizer28->Add( m_sdbSizer3, 1, wxEXPAND, 5 );\r
+    bSizer28->Add( m_sdbSizer3, 1, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer32->Add( bSizer28, 0, wxEXPAND, 5 );\r
+    bSizer32->Add( bSizer28, 0, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer32->Add( 0, 15, 0, wxEXPAND, 5 );\r
+    bSizer32->Add( 0, 15, 0, wxEXPAND, 5 );\r
 \r
 \r
-       this->SetSizer( bSizer32 );\r
-       this->Layout();\r
+    this->SetSizer( bSizer32 );\r
+    this->Layout();\r
 \r
-       this->Centre( wxBOTH );\r
-       this->Centre( wxBOTH );\r
+    this->Centre( wxBOTH );\r
+    this->Centre( wxBOTH );\r
 \r
-       // Connect Events\r
-       this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAudio::OnClose ) );\r
-       this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAudio::OnInitDialog ) );\r
-       m_lbRxInput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnRxInputSelect ), NULL, this );\r
-       m_lbTxOutput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnTxOutputSelect ), NULL, this );\r
-       m_lbVoiceInput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceInputSelect ), NULL, this );\r
-       m_lbVoiceOutput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceOutputSelect ), NULL, this );\r
-       m_sdbSizer3Apply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnApply ), NULL, this );\r
-       m_sdbSizer3Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnCancel ), NULL, this );\r
-       m_sdbSizer3OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnOK ), NULL, this );\r
+    // Connect Events\r
+    this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAudio::OnClose ) );\r
+    this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAudio::OnInitDialog ) );\r
+    m_lbRxInput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnRxInputSelect ), NULL, this );\r
+    m_lbTxOutput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnTxOutputSelect ), NULL, this );\r
+    m_lbVoiceInput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceInputSelect ), NULL, this );\r
+    m_lbVoiceOutput->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceOutputSelect ), NULL, this );\r
+    m_sdbSizer3Apply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnApply ), NULL, this );\r
+    m_sdbSizer3Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnCancel ), NULL, this );\r
+    m_sdbSizer3OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnOK ), NULL, this );\r
 }\r
 \r
 DlgAudio::~DlgAudio()\r
 {\r
-       // Disconnect Events\r
-       this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAudio::OnClose ) );\r
-       this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAudio::OnInitDialog ) );\r
-       m_lbRxInput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnRxInputSelect ), NULL, this );\r
-       m_lbTxOutput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnTxOutputSelect ), NULL, this );\r
-       m_lbVoiceInput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceInputSelect ), NULL, this );\r
-       m_lbVoiceOutput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceOutputSelect ), NULL, this );\r
-       m_sdbSizer3Apply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnApply ), NULL, this );\r
-       m_sdbSizer3Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnCancel ), NULL, this );\r
-       m_sdbSizer3OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnOK ), NULL, this );\r
+    // Disconnect Events\r
+    this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgAudio::OnClose ) );\r
+    this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgAudio::OnInitDialog ) );\r
+    m_lbRxInput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnRxInputSelect ), NULL, this );\r
+    m_lbTxOutput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnTxOutputSelect ), NULL, this );\r
+    m_lbVoiceInput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceInputSelect ), NULL, this );\r
+    m_lbVoiceOutput->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DlgAudio::OnVoiceOutputSelect ), NULL, this );\r
+    m_sdbSizer3Apply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnApply ), NULL, this );\r
+    m_sdbSizer3Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnCancel ), NULL, this );\r
+    m_sdbSizer3OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgAudio::OnOK ), NULL, this );\r
 \r
 }\r
 \r
 DlgOptions::DlgOptions( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
 {\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
 \r
-       wxBoxSizer* bSizer30;\r
-       bSizer30 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer30;\r
+    bSizer30 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxStaticBoxSizer* sbSizer5;\r
-       sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Config Options") ), wxHORIZONTAL );\r
+    wxStaticBoxSizer* sbSizer5;\r
+    sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Config Options") ), wxHORIZONTAL );\r
 \r
-       wxGridSizer* gSizer2;\r
-       gSizer2 = new wxGridSizer( 6, 2, 0, 0 );\r
+    wxGridSizer* gSizer2;\r
+    gSizer2 = new wxGridSizer( 6, 2, 0, 0 );\r
 \r
-       m_staticText2 = new wxStaticText( this, wxID_ANY, _("Option #1:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_staticText2->Wrap( -1 );\r
-       gSizer2->Add( m_staticText2, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText2 = new wxStaticText( this, wxID_ANY, _("Option #1:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_staticText2->Wrap( -1 );\r
+    gSizer2->Add( m_staticText2, 1, wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_textCtrl3 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer2->Add( m_textCtrl3, 1, wxALL, 5 );\r
+    m_textCtrl3 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer2->Add( m_textCtrl3, 1, wxALL, 5 );\r
 \r
-       m_staticText3 = new wxStaticText( this, wxID_ANY, _("Option #2:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_staticText3->Wrap( -1 );\r
-       gSizer2->Add( m_staticText3, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText3 = new wxStaticText( this, wxID_ANY, _("Option #2:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_staticText3->Wrap( -1 );\r
+    gSizer2->Add( m_staticText3, 1, wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_textCtrl4 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer2->Add( m_textCtrl4, 1, wxALL, 5 );\r
+    m_textCtrl4 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer2->Add( m_textCtrl4, 1, wxALL, 5 );\r
 \r
-       m_staticText4 = new wxStaticText( this, wxID_ANY, _("Option #3:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_staticText4->Wrap( -1 );\r
-       gSizer2->Add( m_staticText4, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText4 = new wxStaticText( this, wxID_ANY, _("Option #3:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_staticText4->Wrap( -1 );\r
+    gSizer2->Add( m_staticText4, 1, wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_textCtrl5 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer2->Add( m_textCtrl5, 1, wxALL, 5 );\r
+    m_textCtrl5 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer2->Add( m_textCtrl5, 1, wxALL, 5 );\r
 \r
-       m_staticText5 = new wxStaticText( this, wxID_ANY, _("Option #4:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_staticText5->Wrap( -1 );\r
-       gSizer2->Add( m_staticText5, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText5 = new wxStaticText( this, wxID_ANY, _("Option #4:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_staticText5->Wrap( -1 );\r
+    gSizer2->Add( m_staticText5, 1, wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_textCtrl6 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer2->Add( m_textCtrl6, 1, wxALL, 5 );\r
+    m_textCtrl6 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer2->Add( m_textCtrl6, 1, wxALL, 5 );\r
 \r
-       m_staticText6 = new wxStaticText( this, wxID_ANY, _("Option #5:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_staticText6->Wrap( -1 );\r
-       gSizer2->Add( m_staticText6, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText6 = new wxStaticText( this, wxID_ANY, _("Option #5:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_staticText6->Wrap( -1 );\r
+    gSizer2->Add( m_staticText6, 1, wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_textCtrl7 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer2->Add( m_textCtrl7, 1, wxALL, 5 );\r
+    m_textCtrl7 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer2->Add( m_textCtrl7, 1, wxALL, 5 );\r
 \r
-       m_staticText7 = new wxStaticText( this, wxID_ANY, _("Option #6:"), wxDefaultPosition, wxDefaultSize, 0 );\r
-       m_staticText7->Wrap( -1 );\r
-       gSizer2->Add( m_staticText7, 1, wxALIGN_RIGHT|wxALL, 5 );\r
+    m_staticText7 = new wxStaticText( this, wxID_ANY, _("Option #6:"), wxDefaultPosition, wxDefaultSize, 0 );\r
+    m_staticText7->Wrap( -1 );\r
+    gSizer2->Add( m_staticText7, 1, wxALIGN_RIGHT|wxALL, 5 );\r
 \r
-       m_textCtrl8 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer2->Add( m_textCtrl8, 1, wxALL, 5 );\r
+    m_textCtrl8 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer2->Add( m_textCtrl8, 1, wxALL, 5 );\r
 \r
 \r
-       sbSizer5->Add( gSizer2, 1, wxEXPAND, 5 );\r
+    sbSizer5->Add( gSizer2, 1, wxEXPAND, 5 );\r
 \r
 \r
-       bSizer30->Add( sbSizer5, 1, wxEXPAND, 5 );\r
+    bSizer30->Add( sbSizer5, 1, wxEXPAND, 5 );\r
 \r
-       m_sdbSizer4 = new wxStdDialogButtonSizer();\r
-       m_sdbSizer4OK = new wxButton( this, wxID_OK );\r
-       m_sdbSizer4->AddButton( m_sdbSizer4OK );\r
-       m_sdbSizer4Cancel = new wxButton( this, wxID_CANCEL );\r
-       m_sdbSizer4->AddButton( m_sdbSizer4Cancel );\r
-       m_sdbSizer4->Realize();\r
+    m_sdbSizer4 = new wxStdDialogButtonSizer();\r
+    m_sdbSizer4OK = new wxButton( this, wxID_OK );\r
+    m_sdbSizer4->AddButton( m_sdbSizer4OK );\r
+    m_sdbSizer4Cancel = new wxButton( this, wxID_CANCEL );\r
+    m_sdbSizer4->AddButton( m_sdbSizer4Cancel );\r
+    m_sdbSizer4->Realize();\r
 \r
-       bSizer30->Add( m_sdbSizer4, 0, wxALIGN_RIGHT, 5 );\r
+    bSizer30->Add( m_sdbSizer4, 0, wxALIGN_RIGHT, 5 );\r
 \r
 \r
-       this->SetSizer( bSizer30 );\r
-       this->Layout();\r
+    this->SetSizer( bSizer30 );\r
+    this->Layout();\r
 \r
-       this->Centre( wxBOTH );\r
-       this->Centre( wxBOTH );\r
+    this->Centre( wxBOTH );\r
+    this->Centre( wxBOTH );\r
 \r
-       // Connect Events\r
-       this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgOptions::OnClose ) );\r
-       this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgOptions::OnInitDialog ) );\r
+    // Connect Events\r
+    this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgOptions::OnClose ) );\r
+    this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgOptions::OnInitDialog ) );\r
 }\r
 \r
 DlgOptions::~DlgOptions()\r
 {\r
-       // Disconnect Events\r
-       this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgOptions::OnClose ) );\r
-       this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgOptions::OnInitDialog ) );\r
+    // Disconnect Events\r
+    this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DlgOptions::OnClose ) );\r
+    this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgOptions::OnInitDialog ) );\r
 \r
 }\r
 \r
 DlgComPorts::DlgComPorts( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )
 {\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
-       this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
+    this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
 \r
-       wxBoxSizer* bSizer30;\r
-       bSizer30 = new wxBoxSizer( wxVERTICAL );\r
+    wxBoxSizer* bSizer30;\r
+    bSizer30 = new wxBoxSizer( wxVERTICAL );\r
 \r
-       wxGridSizer* gSizer3;\r
-       gSizer3 = new wxGridSizer( 6, 2, 0, 0 );\r
+    wxGridSizer* gSizer3;\r
+    gSizer3 = new wxGridSizer( 6, 2, 0, 0 );\r
 \r
-       m_staticText8 = new wxStaticText( this, wxID_ANY, _("Available Ports:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-       m_staticText8->Wrap( -1 );\r
-       gSizer3->Add( m_staticText8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText8 = new wxStaticText( this, wxID_ANY, _("Available Ports:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
+    m_staticText8->Wrap( -1 );\r
+    gSizer3->Add( m_staticText8, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
 \r
-       m_listCtrlPortSelect = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_ICON|wxLC_SINGLE_SEL );\r
-       gSizer3->Add( m_listCtrlPortSelect, 2, wxALL|wxEXPAND, 2 );\r
+    m_listCtrlPortSelect = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_ICON|wxLC_SINGLE_SEL );\r
+    gSizer3->Add( m_listCtrlPortSelect, 2, wxALL|wxEXPAND, 2 );\r
 \r
-       m_staticText9 = new wxStaticText( this, wxID_ANY, _("Use Port:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-       m_staticText9->Wrap( -1 );\r
-       gSizer3->Add( m_staticText9, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText9 = new wxStaticText( this, wxID_ANY, _("Use Port:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
+    m_staticText9->Wrap( -1 );\r
+    gSizer3->Add( m_staticText9, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
 \r
-       m_textRigCtrlPort = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer3->Add( m_textRigCtrlPort, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlPort = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer3->Add( m_textRigCtrlPort, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
 \r
-       m_staticText91 = new wxStaticText( this, wxID_ANY, _("Buad Rate:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-       m_staticText91->Wrap( -1 );\r
-       gSizer3->Add( m_staticText91, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText91 = new wxStaticText( this, wxID_ANY, _("Buad Rate:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
+    m_staticText91->Wrap( -1 );\r
+    gSizer3->Add( m_staticText91, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
 \r
-       m_textRigCtrlBaud = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer3->Add( m_textRigCtrlBaud, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlBaud = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer3->Add( m_textRigCtrlBaud, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
 \r
-       m_staticText911 = new wxStaticText( this, wxID_ANY, _("Data Bits:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-       m_staticText911->Wrap( -1 );\r
-       gSizer3->Add( m_staticText911, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText911 = new wxStaticText( this, wxID_ANY, _("Data Bits:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
+    m_staticText911->Wrap( -1 );\r
+    gSizer3->Add( m_staticText911, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
 \r
-       m_textRigCtrlDatabits = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer3->Add( m_textRigCtrlDatabits, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlDatabits = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer3->Add( m_textRigCtrlDatabits, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
 \r
-       m_staticText912 = new wxStaticText( this, wxID_ANY, _("Stop Bits:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-       m_staticText912->Wrap( -1 );\r
-       gSizer3->Add( m_staticText912, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText912 = new wxStaticText( this, wxID_ANY, _("Stop Bits:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
+    m_staticText912->Wrap( -1 );\r
+    gSizer3->Add( m_staticText912, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
 \r
-       m_textRigCtrlStopbits = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer3->Add( m_textRigCtrlStopbits, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlStopbits = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer3->Add( m_textRigCtrlStopbits, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
 \r
-       m_staticText913 = new wxStaticText( this, wxID_ANY, _("Parity:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
-       m_staticText913->Wrap( -1 );\r
-       gSizer3->Add( m_staticText913, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
+    m_staticText913 = new wxStaticText( this, wxID_ANY, _("Parity:"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
+    m_staticText913->Wrap( -1 );\r
+    gSizer3->Add( m_staticText913, 1, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxALL, 2 );\r
 \r
-       m_textRigCtrlParity = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
-       gSizer3->Add( m_textRigCtrlParity, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
+    m_textRigCtrlParity = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
+    gSizer3->Add( m_textRigCtrlParity, 1, wxALIGN_CENTER_VERTICAL|wxALL, 2 );\r
 \r
 \r
-       bSizer30->Add( gSizer3, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5 );\r
+    bSizer30->Add( gSizer3, 1, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5 );\r
 \r
-       m_sdbSizer5 = new wxStdDialogButtonSizer();\r
-       m_sdbSizer5OK = new wxButton( this, wxID_OK );\r
-       m_sdbSizer5->AddButton( m_sdbSizer5OK );\r
-       m_sdbSizer5Apply = new wxButton( this, wxID_APPLY );\r
-       m_sdbSizer5->AddButton( m_sdbSizer5Apply );\r
-       m_sdbSizer5Cancel = new wxButton( this, wxID_CANCEL );\r
-       m_sdbSizer5->AddButton( m_sdbSizer5Cancel );\r
-       m_sdbSizer5->Realize();\r
+    m_sdbSizer5 = new wxStdDialogButtonSizer();\r
+    m_sdbSizer5OK = new wxButton( this, wxID_OK );\r
+    m_sdbSizer5->AddButton( m_sdbSizer5OK );\r
+    m_sdbSizer5Apply = new wxButton( this, wxID_APPLY );\r
+    m_sdbSizer5->AddButton( m_sdbSizer5Apply );\r
+    m_sdbSizer5Cancel = new wxButton( this, wxID_CANCEL );\r
+    m_sdbSizer5->AddButton( m_sdbSizer5Cancel );\r
+    m_sdbSizer5->Realize();\r
 \r
-       bSizer30->Add( m_sdbSizer5, 0, wxEXPAND, 5 );\r
+    bSizer30->Add( m_sdbSizer5, 0, wxEXPAND, 5 );\r
 \r
 \r
-       this->SetSizer( bSizer30 );\r
-       this->Layout();\r
+    this->SetSizer( bSizer30 );\r
+    this->Layout();\r
 \r
-       this->Centre( wxBOTH );\r
-       this->Centre( wxBOTH );\r
+    this->Centre( wxBOTH );\r
+    this->Centre( wxBOTH );\r
 \r
-       // Connect Events\r
-       this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgComPorts::OnInitDialog ) );\r
-       m_sdbSizer5Apply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnApply ), NULL, this );\r
-       m_sdbSizer5Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnCancel ), NULL, this );\r
-       m_sdbSizer5OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnOK ), NULL, this );\r
-       m_listCtrlPortSelect->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DlgComPorts::OnListItemSelected ), NULL, this );\r
+    // Connect Events\r
+    this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgComPorts::OnInitDialog ) );\r
+    m_sdbSizer5Apply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnApply ), NULL, this );\r
+    m_sdbSizer5Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnCancel ), NULL, this );\r
+    m_sdbSizer5OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnOK ), NULL, this );\r
+    m_listCtrlPortSelect->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DlgComPorts::OnListItemSelected ), NULL, this );\r
 }\r
 \r
 DlgComPorts::~DlgComPorts()\r
 {\r
-       // Disconnect Events\r
-       this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgComPorts::OnInitDialog ) );
-       m_listCtrlPortSelect->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DlgComPorts::OnListItemSelected ), NULL, this );\r
-       m_sdbSizer5Apply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnApply ), NULL, this );\r
-       m_sdbSizer5Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnCancel ), NULL, this );\r
-       m_sdbSizer5OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnOK ), NULL, this );\r
+    // Disconnect Events\r
+    this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DlgComPorts::OnInitDialog ) );
+    m_listCtrlPortSelect->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( DlgComPorts::OnListItemSelected ), NULL, this );\r
+    m_sdbSizer5Apply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnApply ), NULL, this );\r
+    m_sdbSizer5Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnCancel ), NULL, this );\r
+    m_sdbSizer5OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DlgComPorts::OnOK ), NULL, this );\r
 }\r
index 64f5327c507e7bd109e2fc3db09722d9d9fcd25f..1595283e820b3d885064f086f8f2aee3784a2ac7 100644 (file)
 ///////////////////////////////////////////////////////////////////////////////\r
 class TopFrame : public wxFrame\r
 {\r
-       private:\r
-\r
-       protected:\r
-               wxMenuBar* m_menubarMain;\r
-               wxMenu* file;\r
-               wxMenu* edit;\r
-               wxMenu* tools;\r
-               wxMenu* help;\r
-               wxGauge* m_gaugeSNR;\r
-               wxTextCtrl* m_textSNR;\r
-               wxGauge* m_gaugeLevel;\r
-               wxTextCtrl* m_txtCtrl;\r
-               wxToggleButton* m_togRxID;\r
-               wxToggleButton* m_togTxID;\r
-               wxSlider* m_sliderSQ;\r
-               wxCheckBox* m_ckboxSQ;\r
-               wxToggleButton* m_togBtnOnOff;\r
-               wxToggleButton* m_togBtnSplit;\r
-               wxToggleButton* m_togBtnAnalog;\r
-               wxToggleButton* m_togBtnALC;\r
-               wxToggleButton* m_btnTogTX;\r
-               wxStatusBar* m_statusBar1;\r
-\r
-               // Virtual event handlers, overide them in your derived class\r
-               virtual void topFrame_OnClose( wxCloseEvent& event ) { event.Skip(); }\r
-               virtual void topFrame_OnPaint( wxPaintEvent& event ) { event.Skip(); }\r
-               virtual void topFrame_OnSize( wxSizeEvent& event ) { event.Skip(); }\r
-               virtual void topFrame_OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnOpen( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnOpenUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnSave( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnSaveUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnClose( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnCloseUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnExit( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnCopy( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnCopyUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnCut( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnCutUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnPaste( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnPasteUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnToolsAudio( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnToolsAudioUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnToolsComCfg( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnToolsComCfgUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnToolsOptions( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnToolsOptionsUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnCaptureRxStream( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnCaptureTxStream( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnPlayAudioFile( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnHelpCheckUpdates( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnHelpCheckUpdatesUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
-               virtual void OnHelpAbout( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnTogBtnRxID( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnTogBtnTxID( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnCmdSliderScroll( wxScrollEvent& event ) { event.Skip(); }\r
-               virtual void OnSliderScrollBottom( wxScrollEvent& event ) { event.Skip(); }\r
-               virtual void OnCmdSliderScrollChanged( wxScrollEvent& event ) { event.Skip(); }\r
-               virtual void OnSliderScrollTop( wxScrollEvent& event ) { event.Skip(); }\r
-               virtual void OnCheckSQClick( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnTogBtnOnOff( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnTogBtnSplitClick( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnTogBtnAnalogClick( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnTogBtnALCClick( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnTogBtnTXClick( wxCommandEvent& event ) { event.Skip(); }\r
-\r
-\r
-       public:\r
-               wxAuiNotebook* m_auiNbookCtrl;\r
-\r
-               TopFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("FDMDV2"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 761,500 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL );\r
-\r
-               ~TopFrame();\r
+    private:\r
+\r
+    protected:\r
+        wxMenuBar* m_menubarMain;\r
+        wxMenu* file;\r
+        wxMenu* edit;\r
+        wxMenu* tools;\r
+        wxMenu* help;\r
+        wxGauge* m_gaugeSNR;\r
+        wxTextCtrl* m_textSNR;\r
+        wxGauge* m_gaugeLevel;\r
+        wxTextCtrl* m_txtCtrl;\r
+        wxSlider* m_sliderSQ;\r
+        wxCheckBox* m_ckboxSQ;\r
+        wxStatusBar* m_statusBar1;\r
+\r
+        // Virtual event handlers, overide them in your derived class\r
+        virtual void topFrame_OnClose( wxCloseEvent& event ) { event.Skip(); }\r
+        virtual void topFrame_OnPaint( wxPaintEvent& event ) { event.Skip(); }\r
+        virtual void topFrame_OnSize( wxSizeEvent& event ) { event.Skip(); }\r
+        virtual void topFrame_OnUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnOpen( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnOpenUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnSave( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnSaveUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnClose( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnCloseUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnExit( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnCopy( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnCopyUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnCut( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnCutUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnPaste( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnPasteUpdateUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnToolsAudio( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnToolsAudioUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnToolsComCfg( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnToolsComCfgUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnToolsOptions( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnToolsOptionsUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnCaptureRxStream( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnCaptureTxStream( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnPlayAudioFile( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnHelpCheckUpdates( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnHelpCheckUpdatesUI( wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnHelpAbout( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnRxID( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnTxID( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnCmdSliderScroll( wxScrollEvent& event ) { event.Skip(); }\r
+        virtual void OnSliderScrollBottom( wxScrollEvent& event ) { event.Skip(); }\r
+        virtual void OnCmdSliderScrollChanged( wxScrollEvent& event ) { event.Skip(); }\r
+        virtual void OnSliderScrollTop( wxScrollEvent& event ) { event.Skip(); }\r
+        virtual void OnCheckSQClick( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnOnOff( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnSplitClick( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnAnalogClick( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnALCClick( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnTXClick( wxCommandEvent& event ) { event.Skip(); }\r
+
+        virtual void OnTogBtnSplitClickUI(wxUpdateUIEvent& event) { event.Skip(); }
+        virtual void OnTogBtnAnalogClickUI(wxUpdateUIEvent& event) { event.Skip(); }
+        virtual void OnTogBtnALCClickUI(wxUpdateUIEvent& event) { event.Skip(); }
+        virtual void OnTogBtnRxIDUI(wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnTxIDUI(wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnTXClickUI(wxUpdateUIEvent& event ) { event.Skip(); }\r
+        virtual void OnTogBtnOnOffUI(wxUpdateUIEvent& event ) { event.Skip(); }
+\r
+    public:\r
+        wxToggleButton* m_togRxID;\r
+        wxToggleButton* m_togTxID;\r
+        wxToggleButton* m_togBtnOnOff;\r
+        wxToggleButton* m_togBtnSplit;\r
+        wxToggleButton* m_togBtnAnalog;\r
+        wxToggleButton* m_togBtnALC;\r
+        wxToggleButton* m_btnTogTX;\r
+
+        wxAuiNotebook* m_auiNbookCtrl;\r
+\r
+        TopFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("FDMDV2"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 761,500 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL );\r
+\r
+        ~TopFrame();\r
 \r
 };\r
 \r
@@ -139,23 +147,23 @@ class TopFrame : public wxFrame
 ///////////////////////////////////////////////////////////////////////////////\r
 class DlgAbout : public wxDialog\r
 {\r
-       private:\r
+    private:\r
 \r
-       protected:\r
-               wxStaticBitmap* m_bitmapAbout;\r
-               wxStaticText* m_staticText1;\r
-               wxTextCtrl* m_textCtrl2;\r
-               wxButton* m_button9;\r
+    protected:\r
+        wxStaticBitmap* m_bitmapAbout;\r
+        wxStaticText* m_staticText1;\r
+        wxTextCtrl* m_textCtrl2;\r
+        wxButton* m_button9;\r
 \r
-               // Virtual event handlers, overide them in your derived class\r
-               virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }\r
-               virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }\r
+        // Virtual event handlers, overide them in your derived class\r
+        virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }\r
+        virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }\r
 \r
 \r
-       public:\r
+    public:\r
 \r
-               DlgAbout( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About FDMDV2"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 352,343 ), long style = wxDEFAULT_DIALOG_STYLE );\r
-               ~DlgAbout();\r
+        DlgAbout( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About FDMDV2"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 352,343 ), long style = wxDEFAULT_DIALOG_STYLE );\r
+        ~DlgAbout();\r
 \r
 };\r
 \r
@@ -164,55 +172,55 @@ class DlgAbout : public wxDialog
 ///////////////////////////////////////////////////////////////////////////////\r
 class DlgAudio : public wxDialog\r
 {\r
-       private:\r
-\r
-       protected:\r
-               wxNotebook* m_nbAudioOptions;\r
-               wxPanel* m_panelDevices;\r
-               wxRadioButton* m_radioBtnPortAudio;\r
-               wxStaticText* m_staticText151;\r
-               wxTextCtrl* m_textNumChOut;\r
-               wxStaticText* m_staticText141;\r
-               wxTextCtrl* m_textNumChIn;\r
-               wxStaticText* m_staticText14;\r
-               wxComboBox* m_comboAudioCodec;\r
-               wxStaticText* m_staticText15;\r
-               wxComboBox* m_comboCodecTx;\r
-               wxStaticText* m_staticText16;\r
-               wxComboBox* m_comboRadioRx;\r
-               wxStaticText* m_staticText17;\r
-               wxComboBox* m_comboCodecSpkr;\r
-               wxRadioButton* m_radioBtnFileOnly;\r
-               wxPanel* m_panelSettings;\r
-               wxListBox* m_lbRxInput;\r
-               wxTextCtrl* m_textRxInput;\r
-               wxListBox* m_lbTxOutput;\r
-               wxTextCtrl* m_textTxOutput;\r
-               wxListBox* m_lbVoiceInput;\r
-               wxTextCtrl* m_textVoiceInput;\r
-               wxListBox* m_lbVoiceOutput;\r
-               wxTextCtrl* m_textVoiceOutput;\r
-               wxStdDialogButtonSizer* m_sdbSizer3;\r
-               wxButton* m_sdbSizer3OK;\r
-               wxButton* m_sdbSizer3Apply;\r
-               wxButton* m_sdbSizer3Cancel;\r
-\r
-               // Virtual event handlers, overide them in your derived class\r
-               virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }\r
-               virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }\r
-               virtual void OnRxInputSelect( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnTxOutputSelect( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnVoiceInputSelect( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnVoiceOutputSelect( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnApply( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }\r
-               virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }\r
-\r
-\r
-       public:\r
-\r
-               DlgAudio( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Audio Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 555,419 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );\r
-               ~DlgAudio();\r
+    private:\r
+\r
+    protected:\r
+        wxNotebook* m_nbAudioOptions;\r
+        wxPanel* m_panelDevices;\r
+        wxRadioButton* m_radioBtnPortAudio;\r
+        wxStaticText* m_staticText151;\r
+        wxTextCtrl* m_textNumChOut;\r
+        wxStaticText* m_staticText141;\r
+        wxTextCtrl* m_textNumChIn;\r
+        wxStaticText* m_staticText14;\r
+        wxComboBox* m_comboAudioCodec;\r
+        wxStaticText* m_staticText15;\r
+        wxComboBox* m_comboCodecTx;\r
+        wxStaticText* m_staticText16;\r
+        wxComboBox* m_comboRadioRx;\r
+        wxStaticText* m_staticText17;\r
+        wxComboBox* m_comboCodecSpkr;\r
+        wxRadioButton* m_radioBtnFileOnly;\r
+        wxPanel* m_panelSettings;\r
+        wxListBox* m_lbRxInput;\r
+        wxTextCtrl* m_textRxInput;\r
+        wxListBox* m_lbTxOutput;\r
+        wxTextCtrl* m_textTxOutput;\r
+        wxListBox* m_lbVoiceInput;\r
+        wxTextCtrl* m_textVoiceInput;\r
+        wxListBox* m_lbVoiceOutput;\r
+        wxTextCtrl* m_textVoiceOutput;\r
+        wxStdDialogButtonSizer* m_sdbSizer3;\r
+        wxButton* m_sdbSizer3OK;\r
+        wxButton* m_sdbSizer3Apply;\r
+        wxButton* m_sdbSizer3Cancel;\r
+\r
+        // Virtual event handlers, overide them in your derived class\r
+        virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }\r
+        virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }\r
+        virtual void OnRxInputSelect( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnTxOutputSelect( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnVoiceInputSelect( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnVoiceOutputSelect( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnApply( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }\r
+        virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }\r
+\r
+\r
+    public:\r
+\r
+        DlgAudio( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Audio Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 555,419 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );\r
+        ~DlgAudio();\r
 \r
 };\r
 \r
@@ -221,34 +229,34 @@ class DlgAudio : public wxDialog
 ///////////////////////////////////////////////////////////////////////////////\r
 class DlgOptions : public wxDialog\r
 {\r
-       private:\r
-\r
-       protected:\r
-               wxStaticText* m_staticText2;\r
-               wxTextCtrl* m_textCtrl3;\r
-               wxStaticText* m_staticText3;\r
-               wxTextCtrl* m_textCtrl4;\r
-               wxStaticText* m_staticText4;\r
-               wxTextCtrl* m_textCtrl5;\r
-               wxStaticText* m_staticText5;\r
-               wxTextCtrl* m_textCtrl6;\r
-               wxStaticText* m_staticText6;\r
-               wxTextCtrl* m_textCtrl7;\r
-               wxStaticText* m_staticText7;\r
-               wxTextCtrl* m_textCtrl8;\r
-               wxStdDialogButtonSizer* m_sdbSizer4;\r
-               wxButton* m_sdbSizer4OK;\r
-               wxButton* m_sdbSizer4Cancel;\r
-\r
-               // Virtual event handlers, overide them in your derived class\r
-               virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }\r
-               virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }\r
-\r
-\r
-       public:\r
-\r
-               DlgOptions( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Program Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 332,364 ), long style = wxDEFAULT_DIALOG_STYLE );\r
-               ~DlgOptions();\r
+    private:\r
+\r
+    protected:\r
+        wxStaticText* m_staticText2;\r
+        wxTextCtrl* m_textCtrl3;\r
+        wxStaticText* m_staticText3;\r
+        wxTextCtrl* m_textCtrl4;\r
+        wxStaticText* m_staticText4;\r
+        wxTextCtrl* m_textCtrl5;\r
+        wxStaticText* m_staticText5;\r
+        wxTextCtrl* m_textCtrl6;\r
+        wxStaticText* m_staticText6;\r
+        wxTextCtrl* m_textCtrl7;\r
+        wxStaticText* m_staticText7;\r
+        wxTextCtrl* m_textCtrl8;\r
+        wxStdDialogButtonSizer* m_sdbSizer4;\r
+        wxButton* m_sdbSizer4OK;\r
+        wxButton* m_sdbSizer4Cancel;\r
+\r
+        // Virtual event handlers, overide them in your derived class\r
+        virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }\r
+        virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); }\r
+\r
+\r
+    public:\r
+\r
+        DlgOptions( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Program Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 332,364 ), long style = wxDEFAULT_DIALOG_STYLE );\r
+        ~DlgOptions();\r
 \r
 };\r
 \r
@@ -257,28 +265,28 @@ class DlgOptions : public wxDialog
 ///////////////////////////////////////////////////////////////////////////////\r
 class DlgComPorts : public wxDialog\r
 {\r
-       private:\r
-\r
-       protected:\r
-               wxStaticText* m_staticText8;\r
-               wxListCtrl* m_listCtrlPortSelect;\r
-               wxStaticText* m_staticText9;\r
-               wxTextCtrl* m_textRigCtrlPort;\r
-               wxStaticText* m_staticText91;\r
-               wxTextCtrl* m_textRigCtrlBaud;\r
-               wxStaticText* m_staticText911;\r
-               wxTextCtrl* m_textRigCtrlDatabits;\r
-               wxStaticText* m_staticText912;\r
-               wxTextCtrl* m_textRigCtrlStopbits;\r
-               wxStaticText* m_staticText913;\r
-               wxTextCtrl* m_textRigCtrlParity;\r
-               wxStdDialogButtonSizer* m_sdbSizer5;\r
-               wxButton* m_sdbSizer5OK;\r
-               wxButton* m_sdbSizer5Apply;\r
-               wxButton* m_sdbSizer5Cancel;\r
-\r
-               // Virtual event handlers, overide them in your derived class\r
-               virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }\r
+    private:\r
+\r
+    protected:\r
+        wxStaticText* m_staticText8;\r
+        wxListCtrl* m_listCtrlPortSelect;\r
+        wxStaticText* m_staticText9;\r
+        wxTextCtrl* m_textRigCtrlPort;\r
+        wxStaticText* m_staticText91;\r
+        wxTextCtrl* m_textRigCtrlBaud;\r
+        wxStaticText* m_staticText911;\r
+        wxTextCtrl* m_textRigCtrlDatabits;\r
+        wxStaticText* m_staticText912;\r
+        wxTextCtrl* m_textRigCtrlStopbits;\r
+        wxStaticText* m_staticText913;\r
+        wxTextCtrl* m_textRigCtrlParity;\r
+        wxStdDialogButtonSizer* m_sdbSizer5;\r
+        wxButton* m_sdbSizer5OK;\r
+        wxButton* m_sdbSizer5Apply;\r
+        wxButton* m_sdbSizer5Cancel;\r
+\r
+        // Virtual event handlers, overide them in your derived class\r
+        virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }\r
         virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }\r
         virtual void OnOK( wxCommandEvent& event ) { event.Skip(); }\r
         virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }\r
@@ -286,10 +294,10 @@ class DlgComPorts : public wxDialog
         virtual void OnApply( wxCommandEvent& event ) { event.Skip(); }\r
 \r
 \r
-       public:\r
+    public:\r
 \r
-               DlgComPorts( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Com Port"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 399,354 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );\r
-               ~DlgComPorts();\r
+        DlgComPorts( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select Com Port"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 399,354 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );\r
+        ~DlgComPorts();\r
 \r
 };\r
 \r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/blank.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/blank.ico
new file mode 100644 (file)
index 0000000..accc4cc
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/blank.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow.ICO b/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow.ICO
new file mode 100644 (file)
index 0000000..cc7c917
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow.ICO differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow16x16.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow16x16.ico
new file mode 100644 (file)
index 0000000..6ed297b
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow16x16.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow32x32.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow32x32.ico
new file mode 100644 (file)
index 0000000..ffc748e
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/inArrow32x32.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow.ICO b/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow.ICO
new file mode 100644 (file)
index 0000000..b8b46ea
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow.ICO differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow16x16.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow16x16.ico
new file mode 100644 (file)
index 0000000..dffb649
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow16x16.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow16x16.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow16x16.xpm
new file mode 100644 (file)
index 0000000..9a33ea5
--- /dev/null
@@ -0,0 +1,23 @@
+/* XPM */\r
+static char * outArrow16x16_xpm[] = {\r
+"16 16 4 1",\r
+"      c None",\r
+".     c #C0C0C0",\r
+"+     c #808080",\r
+"@     c #000000",\r
+"                ",\r
+"                ",\r
+"         .      ",\r
+"         ..     ",\r
+"         ...    ",\r
+"         ....   ",\r
+"..............  ",\r
+"+.............. ",\r
+"+++.............",\r
+"++++@@@@@@@@@@@@",\r
+"+++@@@@@@@@@@@@@",\r
+"++@@@@@@@@@@@@@ ",\r
+"          @@@@  ",\r
+"          @@@   ",\r
+"          @@    ",\r
+"          @     "};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow32x32.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow32x32.ico
new file mode 100644 (file)
index 0000000..42f8e3a
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/outArrow32x32.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/sample.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/sample.ico
new file mode 100644 (file)
index 0000000..435cca2
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/sample.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/small1.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/small1.ico
new file mode 100644 (file)
index 0000000..4cac633
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/small1.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/small1.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/small1.xpm
new file mode 100644 (file)
index 0000000..650f1b1
--- /dev/null
@@ -0,0 +1,28 @@
+/* XPM */\r
+static const char *const small1_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"16 16 6 1",\r
+". c Black",\r
+"o c #FFFFFF",\r
+"X c #000080",\r
+"O c #FFFF00",\r
+"  c None",\r
+"+ c #FF0000",\r
+/* pixels */\r
+"                ",\r
+"                ",\r
+"                ",\r
+"    .......     ",\r
+"    .XXXXX.     ",\r
+"    .oXXXX.     ",\r
+"    .oXXX.......",\r
+".....oXXX.OOOOO.",\r
+".+++.XXXX.oOOOO.",\r
+".o++......oOOOO.",\r
+".o++++.  .oOOOO.",\r
+".o++++.  .OOOOO.",\r
+".+++++.  .......",\r
+".......         ",\r
+"                ",\r
+"                "\r
+};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolbrai.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/toolbrai.ico
new file mode 100644 (file)
index 0000000..99069f7
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/toolbrai.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolbrai.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/toolbrai.xpm
new file mode 100644 (file)
index 0000000..7dc20af
--- /dev/null
@@ -0,0 +1,42 @@
+/* XPM */\r
+static const char *const toolbrai_xpm[] = {\r
+/* width height ncolors chars_per_pixel */\r
+"32 32 4 1",\r
+/* colors */\r
+"      s None  c None",\r
+".     c #000080",\r
+"+     c #ff0000",\r
+"@     c #00ffff",\r
+/* pixels */\r
+"                                ",\r
+"                                ",\r
+"                       .....    ",\r
+"     .....            .+++++.   ",\r
+"    .+++++.           .+++++.   ",\r
+"   .+++++++.          .+++++.   ",\r
+"    .+++++.            .....    ",\r
+"     .....            @         ",\r
+"        @            @          ",\r
+"         @          @           ",\r
+"          @        @            ",\r
+"           @  .....             ",\r
+"            ..+++++..           ",\r
+"           .+++++++++.          ",\r
+"           .+++++++++.          ",\r
+"           .+++++++++.          ",\r
+"           @..+++++..           ",\r
+"          @   .....@            ",\r
+"         @       @  @           ",\r
+"        @        @   @  ......  ",\r
+"       @         @    @.++++++. ",\r
+"      @          @     .++++++. ",\r
+"     @           @     .++++++. ",\r
+"  ......         @     .++++++. ",\r
+" .++++++.        @      ......  ",\r
+" .++++++.       ....            ",\r
+" .++++++.      .++++.           ",\r
+" .++++++.      .++++.           ",\r
+"  ......       .++++.           ",\r
+"               .++++.           ",\r
+"                ....            ",\r
+"                                "};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolchar.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/toolchar.ico
new file mode 100644 (file)
index 0000000..cec94e6
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/toolchar.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolchar.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/toolchar.xpm
new file mode 100644 (file)
index 0000000..0f1ac79
--- /dev/null
@@ -0,0 +1,42 @@
+/* XPM */\r
+static const char *const toolchar_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 4 1",\r
+". c Black",\r
+"X c #FFFF00",\r
+"  c None",\r
+"o c #C00000",\r
+/* pixels */\r
+"                                ",\r
+"             .....              ",\r
+"          ...XXXXX...           ",\r
+"        ..XXXXXXXXXXX..         ",\r
+"       .XXXXXXXXXXXXXXX.        ",\r
+"     ..XXXXXXXXXXXXXXXXX..      ",\r
+"     .XXXXXXXXXXXXXXXXXXXX.     ",\r
+"    .XXXXXX.XXXXXXX.XXXXXX.     ",\r
+"   .XXXXXX.X.XXXXX.X.XXXXXX.    ",\r
+"   .XXXXX.XXX.XXX.XXX.XXXXXX.   ",\r
+"  .XXXXX.XXXXXXXXXXXXX.XXXXX.   ",\r
+"  .XXXXXXXX.XXXXXXX.XXXXXXXX.   ",\r
+"  .XXXXXXXX.XXXXXXX.XXXXXXXX.   ",\r
+" .XXXXXXXXXXXXXXXXXXXXXXXXXXX.  ",\r
+" .XXXXXXXXXXXXXXXXXXXXXXXXXXX.  ",\r
+" .XXXXXXXXXXXXXXXXXXXXXXXXXXX.  ",\r
+" .XXXXXXXXXXXXXXXXXXXXXXXXXXX.  ",\r
+" .XXXXXXX.XXXXXXXXXXX.XXXXXXX.  ",\r
+"  .XXXXXX...XXXXXXX...XXXXXX.   ",\r
+"  .XXXXXX.oo..XXX..oo.XXXXXX.   ",\r
+"  .XXXXXXX.ooo...ooo.XXXXXXX.   ",\r
+"   .XXXXXXX.ooooooo.XXXXXXXX.   ",\r
+"   .XXXXXXXX..ooo..XXXXXXXX.    ",\r
+"    .XXXXXXXXX...XXXXXXXXX.     ",\r
+"     .XXXXXXXXXXXXXXXXXXXX.     ",\r
+"     ..XXXXXXXXXXXXXXXXX..      ",\r
+"       .XXXXXXXXXXXXXXX.        ",\r
+"        ..XXXXXXXXXXX..         ",\r
+"          ...XXXXX...           ",\r
+"             .....              ",\r
+"                                ",\r
+"                                "\r
+};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolchec.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/toolchec.ico
new file mode 100644 (file)
index 0000000..1989d57
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/toolchec.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolchec.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/toolchec.xpm
new file mode 100644 (file)
index 0000000..90951a7
--- /dev/null
@@ -0,0 +1,54 @@
+/* XPM */\r
+static const char *const toolchec_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 16 1",\r
+"X c Black",\r
+". c #4B4B4B",\r
+"% c #696969",\r
+": c #353535",\r
+"o c #181818",\r
+"O c #CCCCCC",\r
+"@ c #0B0B0B",\r
+"  c None",\r
+"+ c #292929",\r
+"= c #383838",\r
+"; c #747474",\r
+"# c #8B8B8B",\r
+"& c #A9A9A9",\r
+"- c #575757",\r
+"* c #B2B2B2",\r
+"$ c #959595",\r
+/* pixels */\r
+"                                ",\r
+"                                ",\r
+"                            .XX ",\r
+"                           oXXO ",\r
+"                         .XX+   ",\r
+"                        oXX@#   ",\r
+"                       oXX@     ",\r
+"                      oXX#      ",\r
+"                     @XX$       ",\r
+"                    oXX$        ",\r
+"                   oXX.         ",\r
+"                  +XXX          ",\r
+"                 %XXX           ",\r
+"                &XXX*           ",\r
+"               .XXX=            ",\r
+"               XXXo             ",\r
+"     .        @XXX              ",\r
+"   -XXo      +XXX.              ",\r
+"  XXXXX;    $XXXX               ",\r
+" .+XXXXX    XXXX.               ",\r
+"   +XXXX=  XXXX=                ",\r
+"    @XXXX *XXXX                 ",\r
+"     XXXX$XXXX$                 ",\r
+"     +XXXXXXXX                  ",\r
+"      XXXXXXX.                  ",\r
+"      oXXXXX:                   ",\r
+"      ;XXXXX.                   ",\r
+"       XXXX#                    ",\r
+"       @XX                      ",\r
+"        =                       ",\r
+"                                ",\r
+"                                "\r
+};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/tooldata.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/tooldata.ico
new file mode 100644 (file)
index 0000000..ed7ebbe
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/tooldata.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/tooldata.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/tooldata.xpm
new file mode 100644 (file)
index 0000000..d8f7d4c
--- /dev/null
@@ -0,0 +1,41 @@
+/* XPM */\r
+static const char *const tooldata_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 3 1",\r
+"  c Black",\r
+"X c #FFFFFF",\r
+". c #C0C0C0",\r
+/* pixels */\r
+"                                ",\r
+"                                ",\r
+"  ............................  ",\r
+"  ............................  ",\r
+"  ..    ..        ..        ..  ",\r
+"  ..    ..        ..        ..  ",\r
+"  ............................  ",\r
+"  ............................  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XX    XX        XX        XX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"  XXXXXXXXXXXXXXXXXXXXXXXXXXXX  ",\r
+"                                ",\r
+"                                "\r
+};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolgame.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/toolgame.ico
new file mode 100644 (file)
index 0000000..b3d6190
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/toolgame.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolgame.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/toolgame.xpm
new file mode 100644 (file)
index 0000000..7488bd8
--- /dev/null
@@ -0,0 +1,41 @@
+/* XPM */\r
+static const char *const toolgame_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 3 1",\r
+"X c #808080",\r
+"  c None",\r
+". c #FF0000",\r
+/* pixels */\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"               ..               ",\r
+"              ....              ",\r
+"             ......             ",\r
+"            ........            ",\r
+"           ..........           ",\r
+"          ............          ",\r
+"         ..............         ",\r
+"        ................        ",\r
+"       ..................       ",\r
+"      ....................      ",\r
+"     ......................     ",\r
+"    ........................    ",\r
+"   ..........................   ",\r
+"    ........................X   ",\r
+"     ......................X    ",\r
+"      ....................X     ",\r
+"       ..................X      ",\r
+"        ................X       ",\r
+"         ..............X        ",\r
+"          ............X         ",\r
+"           ..........X          ",\r
+"            ........X           ",\r
+"             ......X            ",\r
+"              ....X             ",\r
+"               ..X              ",\r
+"                                ",\r
+"                                ",\r
+"                                "\r
+};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolnote.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/toolnote.ico
new file mode 100644 (file)
index 0000000..ff0ec28
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/toolnote.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolnote.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/toolnote.xpm
new file mode 100644 (file)
index 0000000..e86035c
--- /dev/null
@@ -0,0 +1,43 @@
+/* XPM */\r
+static const char *const toolnote_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 5 1",\r
+"O c Black",\r
+"o c #FFFFFF",\r
+". c #808080",\r
+"  c None",\r
+"X c #C0C0C0",\r
+/* pixels */\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"         .  .  .  .  .          ",\r
+"      XXX.XX.XX.XX.XX.XXX       ",\r
+"      Xoo.oo.oo.oo.oo.ooX       ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XooOOO..OOOO.OOOooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XooOOOOOOoooooooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XooOOO.OOOOOOOooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XooOOOOOO.OOOoooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XooOO.OOOO.OOOOOooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XooOOO.OOOOO.OOOOoX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XoooooooooooooooooX.      ",\r
+"      XXXXXXXXXXXXXXXXXXX.      ",\r
+"        ..................      ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                "\r
+};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/tooltime.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/tooltime.ico
new file mode 100644 (file)
index 0000000..141bcaa
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/tooltime.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/tooltime.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/tooltime.xpm
new file mode 100644 (file)
index 0000000..f75477d
--- /dev/null
@@ -0,0 +1,42 @@
+/* XPM */\r
+static const char *const tooltime_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 4 1",\r
+". c Black",\r
+"o c #FFFFFF",\r
+"  c None",\r
+"X c #C0C0C0",\r
+/* pixels */\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"             .....              ",\r
+"          ...XX.oo...           ",\r
+"         .XXXoo.ooooo.          ",\r
+"       ..Xoooooooooooo..        ",\r
+"       .Xoooooo.ooooooo.        ",\r
+"      .Xooooooo.Xooooooo.       ",\r
+"     .Xoooooooo.Xoooooooo.      ",\r
+"     .Xoooooooo.Xoooooooo.      ",\r
+"     .Xoooooooo.Xoooooooo.      ",\r
+"    .Xooooooooo.Xooooooooo.     ",\r
+"    .Xooooooooo.Xooooooooo.X    ",\r
+"    ...oo.......Xooooooo...X    ",\r
+"    .oooooXXXXXXXooooooooo.X    ",\r
+"    .ooooooooooooooooooooo.X    ",\r
+"     .ooooooooooooooooooo.XX    ",\r
+"     .ooooooooooooooooooo.XX    ",\r
+"     .ooooooooooooooooooo.X     ",\r
+"      .ooooooooooooooooo.XX     ",\r
+"       .ooooooooooooooo.XX      ",\r
+"       ..ooooooooooooo..X       ",\r
+"         .ooooo.ooooo.XX        ",\r
+"          ...oo.oo...XX         ",\r
+"           XX.....XXXX          ",\r
+"             XXXXXXX            ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                "\r
+};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/tooltodo.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/tooltodo.ico
new file mode 100644 (file)
index 0000000..6b93a94
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/tooltodo.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/tooltodo.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/tooltodo.xpm
new file mode 100644 (file)
index 0000000..9ba1e31
--- /dev/null
@@ -0,0 +1,194 @@
+/* XPM */\r
+static const char *const tooltodo_xpm[] = {\r
+/* columns rows colors chars-per-pixel */\r
+"32 32 156 2",\r
+"0  c #A08020",\r
+"+. c #D0C066",\r
+"q  c #A08022",\r
+"T  c #98752D",\r
+"6. c #D0C072",\r
+"w  c #A88B28",\r
+"@. c #987540",\r
+"l  c #A08037",\r
+"~  c #A0803F",\r
+"4. c #A08048",\r
+"7  c #808080",\r
+"m  c #704012",\r
+"P  c #704013",\r
+"]  c #704014",\r
+"B  c #704016",\r
+"{  c #704017",\r
+":. c #704019",\r
+"k  c #70401B",\r
+"A  c #70401C",\r
+"W  c #70401D",\r
+".. c #70401E",\r
+"F  c #70401F",\r
+"1. c #704020",\r
+"H  c #704022",\r
+"s  c #EFEA37",\r
+")  c #704024",\r
+"5. c #704025",\r
+"}  c #784B1E",\r
+"z  c #784B22",\r
+"2. c #784B26",\r
+"/  c #784B28",\r
+"Y  c #EFEA55",\r
+"N  c #E0D547",\r
+"D  c #EFEA6C",\r
+"X. c #EFEA70",\r
+"o. c #EFEA74",\r
+"R  c #E0D554",\r
+"|  c #E0D558",\r
+"#. c #EFEA83",\r
+"y  c #E8E05D",\r
+"3. c #E0D570",\r
+"x  c #E8E069",\r
+"G  c #BFAA57",\r
+"J  c #BFAA5D",\r
+">. c #B0953D",\r
+"   c None",\r
+"<. c #B8A04D",\r
+"^  c #B8A052",\r
+"X  c #FFFF30",\r
+"o  c #FFFF34",\r
+"O  c #FFFF38",\r
+"+  c #FFFF3C",\r
+"b  c #FFFF40",\r
+"@  c #FFFF41",\r
+"'  c #FFFF43",\r
+"n  c #FFFF44",\r
+"#  c #FFFF45",\r
+"*. c #FFFF47",\r
+"L  c #FFFF48",\r
+"$  c #FFFF49",\r
+"8. c #FFFF4B",\r
+"M  c #FFFF4C",\r
+"V  c #906B27",\r
+"%  c #FFFF4D",\r
+"p. c #FFFF4F",\r
+"I  c #FFFF50",\r
+"&  c #FFFF51",\r
+"a. c #FFFF53",\r
+"U  c #FFFF54",\r
+"e  c #FFFF55",\r
+"*  c #FFFF56",\r
+"g. c #FFFF57",\r
+"[  c #FFFF58",\r
+"r  c #FFFF59",\r
+"=  c #FFFF5A",\r
+"l. c #FFFF5B",\r
+".  c #C0C0C0",\r
+"-. c #FFFF5C",\r
+"j  c #FFFF5D",\r
+"-  c #FFFF5E",\r
+"b. c #FFFF5F",\r
+"9. c #FFFF60",\r
+"C  c #FFFF61",\r
+";  c #FFFF62",\r
+"n. c #FFFF63",\r
+"0. c #FFFF64",\r
+":  c #FFFF66",\r
+"N. c #FFFF67",\r
+"s. c #FFFF68",\r
+"E  c #FFFF69",\r
+"Z  c #FFFF6A",\r
+">  c #FFFF6B",\r
+"h. c #FFFF6C",\r
+" . c #FFFF6D",\r
+"u  c #FFFF6E",\r
+",  c #FFFF6F",\r
+"z. c #FFFF70",\r
+",. c #FFFF71",\r
+"S  c #FFFF72",\r
+"<  c #FFFF73",\r
+"x. c #FFFF74",\r
+"q. c #FFFF75",\r
+"Q  c #FFFF76",\r
+"f  c #602B0B",\r
+"1  c #FFFF77",\r
+"m. c #FFFF78",\r
+"w. c #FFFF79",\r
+"!  c #FFFF7A",\r
+"2  c #FFFF7B",\r
+"B. c #FFFF7C",\r
+"d. c #FFFF7D",\r
+"e. c #FFFF7E",\r
+"i  c #FFFF7F",\r
+"3  c #FFFF80",\r
+"j. c #FFFF81",\r
+"r. c #FFFF82",\r
+"p  c #FFFF83",\r
+"4  c #FFFF84",\r
+"c. c #FFFF85",\r
+"k. c #FFFF86",\r
+"c  c #FFFF87",\r
+"5  c #FFFF88",\r
+"v. c #FFFF89",\r
+"y. c #FFFF8A",\r
+"(  c #FFFF8B",\r
+"6  c #FFFF8C",\r
+"t. c #FFFF8D",\r
+"u. c #FFFF8E",\r
+"O. c #68361C",\r
+"a  c #FFFF90",\r
+"V. c #FFFF91",\r
+"f. c #FFFF92",\r
+"$. c #68361F",\r
+"_  c #FFFF93",\r
+"v  c #FFFF94",\r
+"Z. c #FFFF95",\r
+"M. c #FFFF96",\r
+"%. c #FFFF97",\r
+"K  c #FFFF98",\r
+"A. c #FFFF99",\r
+"C. c #FFFF9A",\r
+"7. c #FFFF9B",\r
+"`  c #FFFF9C",\r
+"D. c #FFFF9D",\r
+"S. c #FFFF9E",\r
+"i. c #FFFF9F",\r
+"&. c #FFFFA0",\r
+"F. c #FFFFA1",\r
+"8  c #D0C02A",\r
+"d  c #D0C030",\r
+"g  c #D0C036",\r
+"h  c #D0C03A",\r
+";. c #C8B545",\r
+"t  c #C8B548",\r
+"=. c #987527",\r
+"9  c #A0801E",\r
+/* pixels */\r
+"                                                                ",\r
+"                                                                ",\r
+"                                                                ",\r
+"                                                                ",\r
+"                                                                ",\r
+"                                                                ",\r
+"      . . . . . . . . . . . . . . . . . . . . . . . . .         ",\r
+"      . X o O + @ # $ % & * = - ; : > , < 1 2 3 4 5 6 . 7       ",\r
+"      . o 8 9 0 q w % & e r - ; t y u < 1 2 i p 5 6 a . 7       ",\r
+"      . O s d f g h & e r j ; : k l z x 2 i p c 6 a v . 7       ",\r
+"      . + b n m M & N B V C : Z A S D F i G H J a v K . 7       ",\r
+"      . b n L P I U B Y T R E u W Q ! ~ ^ / ( ) _ K ` . 7       ",\r
+"      . ' L M ] U [ { C } |  .S ..X.o.O.+.@.#.$.%.` &.. 7       ",\r
+"      . *.M I =.[ -.;.:.>. .,.Q <.1.2.3.( 4.5.6.7.&.. . 7       ",\r
+"      . 8.I U [ -.9.0.E  .,.q.w.e.r.t.y.u._ %.7.i.. . . 7       ",\r
+"      . p.a.[ -.9.0.s. .,.q.w.d.r.t.t.u.f.%.7.. . . o . 7       ",\r
+"      . a.g.-.9.0.s.h.,.q.w.d.j.k.y.t.. . . . . o o . 7         ",\r
+"      . g.l.9.0.s.h.z.x.w.d.j.c.v.u.f.. o o o o o . 7           ",\r
+"      . l.b.n.s.h.z.x.m.d.j.c.v.t.f.M.. o o o o . 7             ",\r
+"      . b.n.N.h.z.x.m.B.j.c.v.t.V.M.C.. o o o . 7               ",\r
+"      . n.N.> z.x.m.B.3 4 v.t.V.Z.A.S.. o o . 7                 ",\r
+"      . N.> , < m.B.3 4 5 t.V.Z.A.D.. o o . 7                   ",\r
+"      . > , < 1 B.3 4 5 6 V.Z.A.D.. . o . 7                     ",\r
+"      . , < 1 2 3 4 5 6 a v A.D.F.. o . 7                       ",\r
+"      . < 1 2 i p 5 6 a v K D.F.. o . 7                         ",\r
+"      . . . . . . . . . . . . . . . 7                           ",\r
+"        7 7 7 7 7 7 7 7 7 7 7 7 7 7                             ",\r
+"                                                                ",\r
+"                                                                ",\r
+"                                                                ",\r
+"                                                                ",\r
+"                                                                "\r
+};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolword.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/toolword.ico
new file mode 100644 (file)
index 0000000..a1a8838
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/toolword.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/toolword.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/toolword.xpm
new file mode 100644 (file)
index 0000000..b2e96a1
--- /dev/null
@@ -0,0 +1,41 @@
+/* XPM */\r
+static const char *const toolword_xpm[] = {\r
+/* width height ncolors chars_per_pixel */\r
+"32 32 3 1",\r
+/* colors */\r
+"      s None  c None",\r
+".     c #000000",\r
+"+     c #ffffff",\r
+/* pixels */\r
+"                                ",\r
+"                                ",\r
+" ........           ........    ",\r
+" .++++++. ...........++++++.    ",\r
+" .++++++. .++++++++..++++++.    ",\r
+" ........ .++++++++.........    ",\r
+"          .++++++++.            ",\r
+"          ..........            ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                 .....          ",\r
+"...... ......... .+++. .........",\r
+".++++. .+++++++. .+++. .+++++++.",\r
+".++++. .+++++++. .+++. .+++++++.",\r
+".++++. .+++++++. ..... .+++++++.",\r
+"...... .........       .........",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                   ..........   ",\r
+"              ..   .++++++++.   ",\r
+"             .++.  .++++++++.   ",\r
+"            .++++. .++++++++.   ",\r
+"           .++++.  ..........   ",\r
+" ...........+++.                ",\r
+" .++++++++. .+.                 ",\r
+" .++++++++.  .                  ",\r
+" ..........                     ",\r
+"                                ",\r
+"                                "};\r
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/transparent.ico b/fdmdv2/tests/pa_enum/Release/bitmaps/transparent.ico
new file mode 100644 (file)
index 0000000..eeba306
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/bitmaps/transparent.ico differ
diff --git a/fdmdv2/tests/pa_enum/Release/bitmaps/transparent.xpm b/fdmdv2/tests/pa_enum/Release/bitmaps/transparent.xpm
new file mode 100644 (file)
index 0000000..01f4737
--- /dev/null
@@ -0,0 +1,36 @@
+/* XPM */\r
+static char * transparent_xpm[] = {\r
+"32 32 1 1",\r
+"      c None",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                ",\r
+"                                "};\r
diff --git a/fdmdv2/tests/pa_enum/Release/libgcc_s_dw2-1.dll b/fdmdv2/tests/pa_enum/Release/libgcc_s_dw2-1.dll
new file mode 100644 (file)
index 0000000..8870ba7
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/libgcc_s_dw2-1.dll differ
diff --git a/fdmdv2/tests/pa_enum/Release/libstdc++-6.dll b/fdmdv2/tests/pa_enum/Release/libstdc++-6.dll
new file mode 100644 (file)
index 0000000..f8e6c78
Binary files /dev/null and b/fdmdv2/tests/pa_enum/Release/libstdc++-6.dll differ