<event name="OnSetFocus"></event>\r
<event name="OnSize">topFrame_OnSize</event>\r
<event name="OnUpdateUI">topFrame_OnUpdateUI</event>\r
- <object class="wxMenuBar" expanded="0">\r
+ <object class="wxMenuBar" expanded="1">\r
<property name="BottomDockable">1</property>\r
<property name="LeftDockable">1</property>\r
<property name="RightDockable">1</property>\r
<event name="OnUpdateUI">OnPasteUpdateUI</event>\r
</object>\r
</object>\r
- <object class="wxMenu" expanded="0">\r
+ <object class="wxMenu" expanded="1">\r
<property name="label">&Tools</property>\r
<property name="name">tools</property>\r
<property name="permission">protected</property>\r
<property name="help"></property>\r
<property name="id">wxID_ANY</property>\r
<property name="kind">wxITEM_NORMAL</property>\r
- <property name="label">&Audio</property>\r
+ <property name="label">&Audio Config</property>\r
<property name="name">m_menuItemAudio</property>\r
<property name="permission">none</property>\r
<property name="shortcut"></property>\r
<property name="help"></property>\r
<property name="id">wxID_ANY</property>\r
<property name="kind">wxITEM_NORMAL</property>\r
- <property name="label">Com Port Config</property>\r
- <property name="name">m_menuItemComCfg</property>\r
+ <property name="label">Rig Control Config</property>\r
+ <property name="name">m_menuItemRigCtrlCfg</property>\r
<property name="permission">none</property>\r
<property name="shortcut"></property>\r
<property name="unchecked_bitmap"></property>\r
<property name="help">Set preferences</property>\r
<property name="id">ID_OPTIONS</property>\r
<property name="kind">wxITEM_NORMAL</property>\r
- <property name="label">&Options</property>\r
+ <property name="label">Other Program &Options</property>\r
<property name="name">m_menuItemOptions</property>\r
<property name="permission">none</property>\r
<property name="shortcut"></property>\r
<event name="OnMenuSelection">OnToolsOptions</event>\r
<event name="OnUpdateUI">OnToolsOptionsUI</event>\r
</object>\r
+ <object class="separator" expanded="1">\r
+ <property name="name">m_separator2</property>\r
+ <property name="permission">none</property>\r
+ </object>\r
+ <object class="wxMenuItem" expanded="0">\r
+ <property name="bitmap">Load From Art Provider; </property>\r
+ <property name="checked">0</property>\r
+ <property name="enabled">1</property>\r
+ <property name="help"></property>\r
+ <property name="id">wxID_ANY</property>\r
+ <property name="kind">wxITEM_NORMAL</property>\r
+ <property name="label">Capture Rx Stream</property>\r
+ <property name="name">m_menuItemCaptRxStream</property>\r
+ <property name="permission">none</property>\r
+ <property name="shortcut">Capture receive stream to file.</property>\r
+ <property name="unchecked_bitmap"></property>\r
+ <event name="OnMenuSelection">OnCaptureRxStream</event>\r
+ <event name="OnUpdateUI"></event>\r
+ </object>\r
+ <object class="wxMenuItem" expanded="0">\r
+ <property name="bitmap">Load From Art Provider; </property>\r
+ <property name="checked">0</property>\r
+ <property name="enabled">1</property>\r
+ <property name="help"></property>\r
+ <property name="id">wxID_ANY</property>\r
+ <property name="kind">wxITEM_NORMAL</property>\r
+ <property name="label">Capture Tx Stream</property>\r
+ <property name="name">m_menuItemCaptTxStream</property>\r
+ <property name="permission">none</property>\r
+ <property name="shortcut">Capture transmit stream to file.</property>\r
+ <property name="unchecked_bitmap"></property>\r
+ <event name="OnMenuSelection">OnCaptureTxStream</event>\r
+ <event name="OnUpdateUI"></event>\r
+ </object>\r
+ <object class="separator" expanded="1">\r
+ <property name="name">m_separator3</property>\r
+ <property name="permission">none</property>\r
+ </object>\r
+ <object class="wxMenuItem" expanded="1">\r
+ <property name="bitmap"></property>\r
+ <property name="checked">0</property>\r
+ <property name="enabled">1</property>\r
+ <property name="help"></property>\r
+ <property name="id">wxID_ANY</property>\r
+ <property name="kind">wxITEM_NORMAL</property>\r
+ <property name="label">Play File</property>\r
+ <property name="name">m_menuItemPlayAudioFile</property>\r
+ <property name="permission">none</property>\r
+ <property name="shortcut"></property>\r
+ <property name="unchecked_bitmap"></property>\r
+ <event name="OnMenuSelection">OnPlayAudioFile</event>\r
+ <event name="OnUpdateUI"></event>\r
+ </object>\r
</object>\r
<object class="wxMenu" expanded="0">\r
<property name="label">&Help</property>\r
\r
#include <wx/wx.h>
#include "topFrame.h"\r
-#include "extern/include/portaudio.h"
-#include "extern/include/portaudiocpp/PortAudioCpp.hxx"
+\r
+#include "portaudio.h"
+#include "portaudiocpp/PortAudioCpp.hxx"
#ifdef WIN32
-#include "extern/include/portaudiocpp/AsioDeviceAdapter.hxx"
+#include "portaudiocpp/AsioDeviceAdapter.hxx"
#endif
\r
class AudioDlg : public DlgAudio\r
CurrentFilePath :=\r
CurrentFileFullPath :=\r
User :=wittend\r
-Date :=6/17/2012\r
+Date :=6/18/2012\r
CodeLitePath :="C:\Program Files\CodeLite"\r
LinkerName :=g++\r
ArchiveTool :=ar rcus\r
CmpOptions := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
C_CmpOptions := -O2 -Wall $(shell wx-config --cxxflags --unicode=yes --debug=no) $(Preprocessors)\r
LinkOptions := -mwindows -s $(shell wx-config --debug=no --libs --unicode=yes)\r
-IncludePath := $(IncludeSwitch). $(IncludeSwitch)./extern/include \r
+IncludePath := $(IncludeSwitch). $(IncludeSwitch)/bin/MinGW/msys/1.0/local/include $(IncludeSwitch)../codec2-dev/src \r
IncludePCH := \r
RcIncludePath := \r
Libs := $(LibrarySwitch)sndfile-1 $(LibrarySwitch)codec2 $(LibrarySwitch)portaudio $(LibrarySwitch)portaudiocpp \r
-LibPath := $(LibraryPathSwitch). $(LibraryPathSwitch)./libsndfile/bin $(LibraryPathSwitch)./extern/lib \r
+LibPath := $(LibraryPathSwitch). $(LibraryPathSwitch)/bin/MinGW/msys/1.0/local/lib \r
\r
\r
##\r
<File Name="dlg_comports.h"/>
<File Name="fdmdv2_plot.h"/>
<File Name="fdmdv2_main.h"/>
- <File Name="extern/include/codec2.h"/>
- <File Name="extern/include/portaudio.h"/>
<File Name="extern/include/rig.h"/>
<File Name="extern/include/rig_dll.h"/>
<File Name="extern/include/riglist.h"/>
<File Name="extern/include/portaudiocpp/SystemHostApiIterator.hxx"/>
</VirtualDirectory>
<File Name="paclass.h"/>
+ <File Name="../codec2-dev/src/codec2.h"/>
+ <File Name="../codec2-dev/src/fdmdv.h"/>
</VirtualDirectory>
<VirtualDirectory Name="resources">
<File Name="FDMDV2.fbp"/>
</Configuration>
<Configuration Name="Release" CompilerType="gnu g++" DebuggerType="GNU gdb debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
<Compiler Options="-O2;-Wall;$(shell wx-config --cxxflags --unicode=yes --debug=no)" C_Options="-O2;-Wall;$(shell wx-config --cxxflags --unicode=yes --debug=no)" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" UseDifferentPCHFlags="no" PCHFlags="">
- <IncludePath Value="./extern/include"/>
+ <IncludePath Value="/bin/MinGW/msys/1.0/local/include"/>
+ <IncludePath Value="../codec2-dev/src"/>
<Preprocessor Value="__WX__"/>
</Compiler>
<Linker Options="-mwindows;-s;$(shell wx-config --debug=no --libs --unicode=yes)" Required="yes">
- <LibraryPath Value="./libsndfile/bin"/>
- <LibraryPath Value="./extern/lib"/>
+ <LibraryPath Value="/bin/MinGW/msys/1.0/local/lib"/>
<Library Value="libsndfile-1.dll"/>
<Library Value="libcodec2.a"/>
<Library Value="libportaudio.a"/>
// rxCallback()\r
//-------------------------------------------------------------------------\r
static int rxCallback(\r
- const void *inBuffer,\r
- void *outBuffer,\r
- unsigned long framesPerBuffer,\r
- const PaStreamCallbackTimeInfo *outTime,\r
- PaStreamCallbackFlags statusFlags,\r
- void *userData\r
- )\r
+ const void *inBuffer,\r
+ void *outBuffer,\r
+ unsigned long framesPerBuffer,\r
+ const PaStreamCallbackTimeInfo *outTime,\r
+ PaStreamCallbackFlags statusFlags,\r
+ void *userData\r
+ )\r
{\r
float *out = (float *) outBuffer;\r
float *in = (float *) inBuffer;\r
//-------------------------------------------------------------------------\r
// txCallback()\r
//-------------------------------------------------------------------------\r
-static int txCallback( const void *inBuffer,\r
- void *outBuffer,\r
- unsigned long framesPerBuffer,\r
- const PaStreamCallbackTimeInfo *outTime,\r
- PaStreamCallbackFlags statusFlags,\r
- void *userData\r
- )\r
+static int txCallback(\r
+ const void *inBuffer,\r
+ void *outBuffer,\r
+ unsigned long framesPerBuffer,\r
+ const PaStreamCallbackTimeInfo *outTime,\r
+ PaStreamCallbackFlags statusFlags,\r
+ void *userData\r
+ )\r
{\r
float *out = (float *) outBuffer;\r
float *in = (float *) inBuffer;\r
}\r
}\r
\r
-/*\r
-//-------------------------------------------------------------------------\r
-// OnTogBtnOnOff()\r
-//-------------------------------------------------------------------------\r
-void MainFrame::OnTogBtnOnOff(wxCommandEvent& event)\r
-{\r
- if(!m_radioRunning)\r
- {\r
- m_radioRunning = true;\r
- pa = new PortAudioWrap();
-// err = pa->init();
-
- inputDevice = pa->getDefaultInputDevice(); // default input device
- if(inputDevice == paNoDevice)
- {
- wxMessageBox(wxT("Error: No default input device."), wxT("Error"), wxOK);\r
- return;\r
- }
- err = pa->setInputDevice(inputDevice);
- err = pa->setInputChannelCount(2); // stereo input
- err = pa->setInputSampleFormat(PA_SAMPLE_TYPE);
- err = pa->setInputLatency(pa->getInputDefaultLowLatency());\r
- pa->setInputHostApiStreamInfo(NULL);
-
- outputDevice = pa->getDefaultOutputDevice(); // default output device
- if (outputDevice == paNoDevice)
- {
- wxMessageBox(wxT("Error: No default output device."), wxT("Error"), wxOK);\r
- return;\r
- }
- err = pa->setOutputDevice(outputDevice);
- err = pa->setOutputChannelCount(2); // stereo input
- err = pa->setOutputSampleFormat(PA_SAMPLE_TYPE);\r
-
- err = pa->setOutputLatency(pa->getOutputDefaultLowLatency());
- pa->setOutputHostApiStreamInfo(NULL);
-
- err = pa->setFramesPerBuffer(FRAMES_PER_BUFFER);
- err = pa->setSampleRate(SAMPLE_RATE);
- err = pa->setStreamFlags(0);
- err = pa->setCallback(txCallback);
- err = pa->streamOpen();
-
- if(err != paNoError)
- {
- wxMessageBox(wxT("Open/Setup error."), wxT("Error"), wxOK);\r
- return;\r
- }
- err = pa->streamStart();
- if(err != paNoError)
- {
- wxMessageBox(wxT("Stream Start Error."), wxT("Error"), wxOK);\r
- return;\r
- }
- m_togBtnOnOff->SetLabel(wxT("Stop"));\r
- }\r
- else\r
- {\r
- m_radioRunning = false;\r
- pa->stop();\r
-// pa->abort();\r
-// delete pa;
- //pa->terminate();\r
- m_togBtnOnOff->SetLabel(wxT("Start"));\r
- }\r
-}\r
-*/\r
-\r
//-------------------------------------------------------------------------\r
// startRxStream()\r
//-------------------------------------------------------------------------\r
wxMessageBox(wxT("Rx Stream Start Error."), wxT("Error"), wxOK);\r
return;\r
}
-// OnTogBtnOnOff->SetLabel(wxT("Stop"));\r
}\r
}\r
\r
m_RxRunning = false;\r
m_rxPa->stop();\r
m_rxPa->streamClose();\r
-// OnTogBtnOnOff->SetLabel(wxT("Start"));\r
}\r
}\r
\r
{\r
m_RxRunning = false;\r
m_rxPa->abort();\r
-// OnTogBtnOnOff->SetLabel(wxT("Start"));\r
}\r
}\r
\r
//-------------------------------------------------------------------------\r
void MainFrame::OnOpen( wxCommandEvent& event )\r
{\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
- {\r
- return;\r
- }\r
- }\r
- wxFileDialog openFileDialog(this,\r
- wxT("Open Sound file"),\r
- wxEmptyString,\r
- wxEmptyString,\r
- wxT("WAV files (*.wav)|*.wav|")\r
- wxT("RAW files (*.raw)|*.raw|")\r
- wxT("SPEEX files (*.spx)|*.spx|")\r
- wxT("FLAC files (*.flc)|*.flc|")\r
- wxT("All files (*.*)|*.*|"),\r
- wxFD_OPEN | wxFD_FILE_MUST_EXIST);\r
- if (openFileDialog.ShowModal() == wxID_CANCEL)\r
- {\r
- return; // the user changed idea...\r
- }\r
- // proceed loading the file chosen by the user;\r
- m_sound->Play(openFileDialog.GetPath());\r
-/*\r
- // this can be done with e.g. wxWidgets input streams:\r
- wxFileInputStream input_stream(openFileDialog.Getpa->h());\r
- if (!input_stream.IsOk())\r
- {\r
- wxLogError("Cannot open file '%s'.", openFileDialog.Getpa->h());\r
- return;\r
- }\r
-*/\r
}\r
\r
//-------------------------------------------------------------------------\r
{\r
}\r
\r
+//-------------------------------------------------------------------------\r
+// OnCaptureRxStream()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnCaptureRxStream( wxCommandEvent& event )\r
+{\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// OnCaptureTxStream()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnCaptureTxStream( wxCommandEvent& event )\r
+{\r
+}\r
+\r
+//-------------------------------------------------------------------------\r
+// OnPlayAudioFile()\r
+//-------------------------------------------------------------------------\r
+void MainFrame::OnPlayAudioFile( wxCommandEvent& event )\r
+{\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
+ {\r
+ return;\r
+ }\r
+ }\r
+ wxFileDialog openFileDialog(this,\r
+ wxT("Open Sound file"),\r
+ wxEmptyString,\r
+ wxEmptyString,\r
+ wxT("WAV files (*.wav)|*.wav|")\r
+ wxT("RAW files (*.raw)|*.raw|")\r
+ wxT("SPEEX files (*.spx)|*.spx|")\r
+ wxT("FLAC files (*.flc)|*.flc|")\r
+ wxT("All files (*.*)|*.*|"),\r
+ wxFD_OPEN | wxFD_FILE_MUST_EXIST);\r
+ if (openFileDialog.ShowModal() == wxID_CANCEL)\r
+ {\r
+ return; // the user changed idea...\r
+ }\r
+ // proceed loading the file chosen by the user;\r
+ m_sound->Play(openFileDialog.GetPath());\r
+}\r
+\r
//-------------------------------------------------------------------------\r
// OnToolsAudio()\r
//-------------------------------------------------------------------------\r
dlg->ShowModal();\r
}\r
\r
-\r
//-------------------------------------------------------------------------\r
// LoadUserImage()\r
//-------------------------------------------------------------------------\r
{\r
// This one guesses image format from filename extension\r
// (it may fail if the extension is not recognized):\r
- image.SaveFile(savefilename);\r
+ //image.SaveFile(savefilename);\r
}\r
}\r
#include "wx/versioninfo.h"
#include <wx/sound.h>
#include <wx/thread.h>
-#include "libsndfile/include/sndfile.h"\r
-#include "extern/include/portaudio.h"
+\r
+#include "sndfile.h"\r
+#include "portaudio.h"
#include "paclass.h"
-//#include "extern/include/portaudiocpp/PortAudioCpp.hxx"
+\r
+#include "codec2.h"
+#include "fdmdv.h"
\r
#include "topFrame.h"
-#include "C:\Users\wittend\Projects\Radio\codec2-dev\src\codec2.h"
-#include "C:\Users\wittend\Projects\Radio\codec2-dev\src\fdmdv.h"
#include "dlg_about.h"\r
#include "dlg_audio.h"\r
#include "dlg_options.h"\r
#include "dlg_comports.h"\r
#include "fdmdv2_plot.h"
-//#include "fdmdv2_thread_audio.h"
-
-#define WAV_FILE wxT("doggrowl.wav")
\r
enum
{
DrawPanel* m_panelWaterfall;\r
DrawPanel* m_panelExtra1;\r
DrawPanel* m_panelExtra2;\r
-// bool m_radioRunning;\r
bool m_SquelchActive;\r
bool m_RxRunning;\r
bool m_TxRunning;\r
PaDeviceIndex m_txDevOut;
PaError m_rxErr;
PaError m_txErr;
+ wxSound *m_sound;
-// PortAudioWrap stream;\r
-// portaudio::AutoSystem autoSys;\r
-// portaudio::System *sys; // = portaudio::System::instance();\r
-// StreamParameters\r
-\r
void DoStartThread();\r
void DoPauseThread();\r
\r
void OnToolsComCfgUI( wxUpdateUIEvent& event );\r
void OnToolsOptions( wxCommandEvent& event );\r
void OnToolsOptionsUI( wxUpdateUIEvent& event );\r
+ void OnCaptureRxStream( wxCommandEvent& event );\r
+ void OnCaptureTxStream( wxCommandEvent& event );\r
+ void OnPlayAudioFile( wxCommandEvent& event );\r
void OnHelpCheckUpdates( wxCommandEvent& event );\r
void OnHelpCheckUpdatesUI( wxUpdateUIEvent& event );\r
void OnHelpAbout( wxCommandEvent& event );\r
private:
bool CreateSound(wxSound& snd) const;
- wxSound* m_sound;
wxString m_soundFile;
#ifdef __WXMSW__
wxString m_soundRes;
.PHONY: clean All
All:
- @echo ----------Building project:[ fdmdv2 - Release ]----------
- @"mingw32-make.exe" -j 2 -f "fdmdv2.mk"
+ @echo ----------Building project:[ test_sndfile - Release ]----------
+ @cd "libsndfile\Projects\w32-mingw" && "mingw32-make.exe" -j 2 -f "test_sndfile.mk"
clean:
- @echo ----------Cleaning project:[ fdmdv2 - Release ]----------
- @"mingw32-make.exe" -j 2 -f "fdmdv2.mk" clean
+ @echo ----------Cleaning project:[ test_sndfile - Release ]----------
+ @cd "libsndfile\Projects\w32-mingw" && "mingw32-make.exe" -j 2 -f "test_sndfile.mk" clean
CurrentFilePath :=\r
CurrentFileFullPath :=\r
User :=wittend\r
-Date :=6/16/2012\r
+Date :=6/18/2012\r
CodeLitePath :="C:\Program Files\CodeLite"\r
LinkerName :=g++\r
ArchiveTool :=ar rcus\r
CurrentFilePath :=\r
CurrentFileFullPath :=\r
User :=wittend\r
-Date :=6/15/2012\r
+Date :=6/18/2012\r
CodeLitePath :="C:\Program Files\CodeLite"\r
LinkerName :=g++\r
ArchiveTool :=ar rcus\r
CurrentFilePath :=\r
CurrentFileFullPath :=\r
User :=wittend\r
-Date :=6/15/2012\r
+Date :=6/18/2012\r
CodeLitePath :="C:\Program Files\CodeLite"\r
LinkerName :=g++\r
ArchiveTool :=ar rcus\r
CurrentFilePath :=\r
CurrentFileFullPath :=\r
User :=wittend\r
-Date :=6/15/2012\r
+Date :=6/18/2012\r
CodeLitePath :="C:\Program Files\CodeLite"\r
LinkerName :=g++\r
ArchiveTool :=ar rcus\r
CurrentFilePath :=\r
CurrentFileFullPath :=\r
User :=wittend\r
-Date :=6/15/2012\r
+Date :=6/18/2012\r
CodeLitePath :="C:\Program Files\CodeLite"\r
LinkerName :=g++\r
ArchiveTool :=ar rcus\r
return paNoError;
}
-int PortAudioWrap::getOutputChannelCount()
+const int PortAudioWrap::getOutputChannelCount()
{
return outputBuffer.channelCount;
}
PaError setOutputDevice(PaDeviceIndex dev);\r
PaError setOutputChannelCount(int count);
- int getOutputChannelCount();
+ const int getOutputChannelCount();
PaError setOutputSampleFormat(PaSampleFormat format);
PaError setOutputLatency(PaTime latency);
void setOutputHostApiStreamInfo(void *info = NULL);
\r
tools = new wxMenu();\r
wxMenuItem* m_menuItemAudio;\r
- m_menuItemAudio = new wxMenuItem( tools, wxID_ANY, wxString( _("&Audio") ) , wxEmptyString, wxITEM_NORMAL );\r
+ m_menuItemAudio = new wxMenuItem( tools, wxID_ANY, wxString( _("&Audio Config") ) , wxEmptyString, wxITEM_NORMAL );\r
tools->Append( m_menuItemAudio );\r
\r
- wxMenuItem* m_menuItemComCfg;\r
- m_menuItemComCfg = new wxMenuItem( tools, wxID_ANY, wxString( _("Com Port Config") ) , wxEmptyString, wxITEM_NORMAL );\r
- tools->Append( m_menuItemComCfg );\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( _("&Options") ) , _("Set preferences"), wxITEM_NORMAL );\r
+ m_menuItemOptions = new wxMenuItem( tools, ID_OPTIONS, wxString( _("Other Program &Options") ) , _("Set preferences"), wxITEM_NORMAL );\r
tools->Append( m_menuItemOptions );\r
\r
+ tools->AppendSeparator();\r
+ \r
+ wxMenuItem* m_menuItemCaptRxStream;\r
+ m_menuItemCaptRxStream = new wxMenuItem( tools, wxID_ANY, wxString( _("Capture Rx Stream") ) + wxT('\t') + wxT("Capture receive stream to file."), wxEmptyString, wxITEM_NORMAL );\r
+ #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
+ \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
+ \r
m_menubarMain->Append( tools, _("&Tools") ); \r
\r
help = new wxMenu();\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_menuItemComCfg->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( TopFrame::OnToolsComCfg ) );\r
- this->Connect( m_menuItemComCfg->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( TopFrame::OnToolsComCfgUI ) );\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
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
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
self.m_menubarMain.Append( self.edit, _(u"&Edit") ) \r
\r
self.tools = wx.Menu()\r
- self.m_menuItemAudio = wx.MenuItem( self.tools, wx.ID_ANY, _(u"&Audio"), wx.EmptyString, wx.ITEM_NORMAL )\r
+ self.m_menuItemAudio = wx.MenuItem( self.tools, wx.ID_ANY, _(u"&Audio Config"), wx.EmptyString, wx.ITEM_NORMAL )\r
self.tools.AppendItem( self.m_menuItemAudio )\r
\r
- self.m_menuItemComCfg = wx.MenuItem( self.tools, wx.ID_ANY, _(u"Com Port Config"), wx.EmptyString, wx.ITEM_NORMAL )\r
- self.tools.AppendItem( self.m_menuItemComCfg )\r
+ self.m_menuItemRigCtrlCfg = wx.MenuItem( self.tools, wx.ID_ANY, _(u"Rig Control Config"), wx.EmptyString, wx.ITEM_NORMAL )\r
+ self.tools.AppendItem( self.m_menuItemRigCtrlCfg )\r
\r
- self.m_menuItemOptions = wx.MenuItem( self.tools, ID_OPTIONS, _(u"&Options"), _(u"Set preferences"), wx.ITEM_NORMAL )\r
+ self.m_menuItemOptions = wx.MenuItem( self.tools, ID_OPTIONS, _(u"Other Program &Options"), _(u"Set preferences"), wx.ITEM_NORMAL )\r
self.tools.AppendItem( self.m_menuItemOptions )\r
\r
+ self.tools.AppendSeparator()\r
+ \r
+ self.m_menuItemCaptRxStream = wx.MenuItem( self.tools, wx.ID_ANY, _(u"Capture Rx Stream")+ u"\t" + u"Capture receive stream to file.", wx.EmptyString, wx.ITEM_NORMAL )\r
+ self.m_menuItemCaptRxStream.SetBitmap( wx.NullBitmap )\r
+ self.tools.AppendItem( self.m_menuItemCaptRxStream )\r
+ \r
+ self.m_menuItemCaptTxStream = wx.MenuItem( self.tools, wx.ID_ANY, _(u"Capture Tx Stream")+ u"\t" + u"Capture transmit stream to file.", wx.EmptyString, wx.ITEM_NORMAL )\r
+ self.m_menuItemCaptTxStream.SetBitmap( wx.NullBitmap )\r
+ self.tools.AppendItem( self.m_menuItemCaptTxStream )\r
+ \r
+ self.tools.AppendSeparator()\r
+ \r
+ self.m_menuItemPlayAudioFile = wx.MenuItem( self.tools, wx.ID_ANY, _(u"Play File"), wx.EmptyString, wx.ITEM_NORMAL )\r
+ self.tools.AppendItem( self.m_menuItemPlayAudioFile )\r
+ \r
self.m_menubarMain.Append( self.tools, _(u"&Tools") ) \r
\r
self.help = wx.Menu()\r
self.Bind( wx.EVT_UPDATE_UI, self.OnPasteUpdateUI, id = self.m_menuItemPaste.GetId() )\r
self.Bind( wx.EVT_MENU, self.OnToolsAudio, id = self.m_menuItemAudio.GetId() )\r
self.Bind( wx.EVT_UPDATE_UI, self.OnToolsAudioUI, id = self.m_menuItemAudio.GetId() )\r
- self.Bind( wx.EVT_MENU, self.OnToolsComCfg, id = self.m_menuItemComCfg.GetId() )\r
- self.Bind( wx.EVT_UPDATE_UI, self.OnToolsComCfgUI, id = self.m_menuItemComCfg.GetId() )\r
+ self.Bind( wx.EVT_MENU, self.OnToolsComCfg, id = self.m_menuItemRigCtrlCfg.GetId() )\r
+ self.Bind( wx.EVT_UPDATE_UI, self.OnToolsComCfgUI, id = self.m_menuItemRigCtrlCfg.GetId() )\r
self.Bind( wx.EVT_MENU, self.OnToolsOptions, id = self.m_menuItemOptions.GetId() )\r
self.Bind( wx.EVT_UPDATE_UI, self.OnToolsOptionsUI, id = self.m_menuItemOptions.GetId() )\r
+ self.Bind( wx.EVT_MENU, self.OnCaptureRxStream, id = self.m_menuItemCaptRxStream.GetId() )\r
+ self.Bind( wx.EVT_MENU, self.OnCaptureTxStream, id = self.m_menuItemCaptTxStream.GetId() )\r
+ self.Bind( wx.EVT_MENU, self.OnPlayAudioFile, id = self.m_menuItemPlayAudioFile.GetId() )\r
self.Bind( wx.EVT_MENU, self.OnHelpCheckUpdates, id = self.m_menuItemHelpUpdates.GetId() )\r
self.Bind( wx.EVT_UPDATE_UI, self.OnHelpCheckUpdatesUI, id = self.m_menuItemHelpUpdates.GetId() )\r
self.Bind( wx.EVT_MENU, self.OnHelpAbout, id = self.m_menuItemAbout.GetId() )\r
def OnToolsOptionsUI( self, event ):\r
event.Skip()\r
\r
+ def OnCaptureRxStream( self, event ):\r
+ event.Skip()\r
+ \r
+ def OnCaptureTxStream( self, event ):\r
+ event.Skip()\r
+ \r
+ def OnPlayAudioFile( self, event ):\r
+ event.Skip()\r
+ \r
def OnHelpCheckUpdates( self, event ):\r
event.Skip()\r
\r
<object class="wxMenu" name="tools">\r
<label>_Tools</label>\r
<object class="wxMenuItem" name="m_menuItemAudio">\r
- <label>_Audio</label>\r
+ <label>_Audio Config</label>\r
<help></help>\r
</object>\r
- <object class="wxMenuItem" name="m_menuItemComCfg">\r
- <label>Com Port Config</label>\r
+ <object class="wxMenuItem" name="m_menuItemRigCtrlCfg">\r
+ <label>Rig Control Config</label>\r
<help></help>\r
</object>\r
<object class="wxMenuItem" name="m_menuItemOptions">\r
- <label>_Options</label>\r
+ <label>Other Program _Options</label>\r
<help>Set preferences</help>\r
</object>\r
+ <object class="separator" />\r
+ <object class="wxMenuItem" name="m_menuItemCaptRxStream">\r
+ <label>Capture Rx Stream\tCapture receive stream to file.</label>\r
+ <help></help>\r
+ <bitmap stock_id="" stock_client="">undefined.png</bitmap>\r
+ </object>\r
+ <object class="wxMenuItem" name="m_menuItemCaptTxStream">\r
+ <label>Capture Tx Stream\tCapture transmit stream to file.</label>\r
+ <help></help>\r
+ <bitmap stock_id="" stock_client="">undefined.png</bitmap>\r
+ </object>\r
+ <object class="separator" />\r
+ <object class="wxMenuItem" name="m_menuItemPlayAudioFile">\r
+ <label>Play File</label>\r
+ <help></help>\r
+ </object>\r
</object>\r
<object class="wxMenu" name="help">\r
<label>_Help</label>\r