From: Robert J. <rjo...@us...> - 2006-07-31 10:57:56
|
Update of /cvsroot/openh323/opal/samples/openphone In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv32065 Modified Files: main.cxx main.h openphone.wxg openphone.xrc Log Message: Added play of WAV file on incoming calls. Index: main.cxx =================================================================== RCS file: /cvsroot/openh323/opal/samples/openphone/main.cxx,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** main.cxx 31 Jul 2006 08:05:24 -0000 1.3 --- main.cxx 31 Jul 2006 10:57:52 -0000 1.4 *************** *** 26,29 **** --- 26,32 ---- * * $Log$ + * Revision 1.4 2006/07/31 10:57:52 rjongbloed + * Added play of WAV file on incoming calls. + * * Revision 1.3 2006/07/31 08:05:24 rjongbloed * Fixed unix version of icons. *************** *** 150,153 **** --- 153,157 ---- #include <wx/xrc/xmlres.h> + #include <opal/transcoders.h> #include <opal/ivr.h> #include <lids/lidep.h> *************** *** 156,160 **** #ifdef OPAL_STATIC_LINK #define H323_STATIC_LIB - #include <codec/allcodecs.h> #include <lids/alllids.h> #endif --- 160,163 ---- *************** *** 176,181 **** extern void InitXmlResource(); // From resource.cpp whichis compiled openphone.xrc ! #define DEF_FIELD(name) static const char name##Key[] = #name static const char AppearanceGroup[] = "/Appearance"; --- 179,185 ---- extern void InitXmlResource(); // From resource.cpp whichis compiled openphone.xrc ! // Definitions of the configuration file section and key names + #define DEF_FIELD(name) static const char name##Key[] = #name static const char AppearanceGroup[] = "/Appearance"; *************** *** 190,193 **** --- 194,198 ---- DEF_FIELD(Username); DEF_FIELD(DisplayName); + DEF_FIELD(RingSoundDeviceName); DEF_FIELD(RingSoundFileName); DEF_FIELD(AutoAnswer); *************** *** 334,338 **** MyManager * main = new MyManager(); SetTopWindow(main); ! return main->Initialise(); } --- 339,346 ---- MyManager * main = new MyManager(); SetTopWindow(main); ! wxBeginBusyCursor(); ! bool ok = main->Initialise(); ! wxEndBusyCursor(); ! return ok; } *************** *** 393,396 **** --- 401,406 ---- m_imageListSmall = new wxImageList(16, 16, true); m_imageListSmall->Add(wxICON(SmallPhone)); + + m_RingSoundTimer.SetNotifier(PCREATE_NOTIFIER(OnRingSoundAgain)); } *************** *** 435,441 **** SetSize(w, h); ! // Make the content of the main window, speed dial and log panes m_splitter = new wxSplitterWindow(this, SplitterID, wxDefaultPosition, wxDefaultSize, wxSP_3D); m_logWindow = new wxTextCtrl(m_splitter, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, --- 445,452 ---- SetSize(w, h); ! // Make the content of the main window, speed dial and log panes inside a splitter m_splitter = new wxSplitterWindow(this, SplitterID, wxDefaultPosition, wxDefaultSize, wxSP_3D); + // Log window - gets informative text m_logWindow = new wxTextCtrl(m_splitter, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, *************** *** 445,448 **** --- 456,460 ---- m_logWindow->SetBackgroundColour(wxColour(0,0,0)); // Black + // Speed dial window - icons for each speed dial int i; if (!config->Read(ActiveViewKey, &i) || i < 0 || i >= e_NumViews) *************** *** 456,465 **** --- 468,480 ---- RecreateSpeedDials((SpeedDialViews)i); + // Speed dial panel switches to answer panel on ring m_answerPanel = new AnswerPanel(*this, m_splitter); m_answerPanel->Show(false); + // Speed dial panel switches to calling panel on dial m_callingPanel = new CallingPanel(*this, m_splitter); m_callingPanel->Show(false); + // Speed dial/Answer/Calling panel switches to "in call" panel on successful call establishment m_inCallPanel = new InCallPanel(*this, m_splitter); m_inCallPanel->Show(false); *************** *** 521,524 **** --- 536,544 ---- if (config->Read(DisplayNameKey, &str) && !str.IsEmpty()) SetDefaultDisplayName(str); + + if (!config->Read(RingSoundDeviceNameKey, &m_RingSoundDeviceName)) + m_RingSoundDeviceName = PSoundChannel::GetDefaultDevice(PSoundChannel::Player); + config->Read(RingSoundFileNameKey, &m_RingSoundFileName); + config->Read(AutoAnswerKey, &m_autoAnswer); #if P_EXPAT *************** *** 540,545 **** if (config->Read(NATRouterKey, &str)) SetTranslationAddress(str); ! if (config->Read(STUNServerKey, &str) && !str.IsEmpty()) LogWindow << "STUN server \"" << str << "\" replies " << SetSTUNServer(str) << endl; //////////////////////////////////////// --- 560,567 ---- if (config->Read(NATRouterKey, &str)) SetTranslationAddress(str); ! if (config->Read(STUNServerKey, &str) && !str.IsEmpty()) { ! LogWindow << "STUN server \"" << str << "\" being contacted ..." << endl; LogWindow << "STUN server \"" << str << "\" replies " << SetSTUNServer(str) << endl; + } //////////////////////////////////////// *************** *** 864,867 **** --- 886,891 ---- void MyManager::OnClose(wxCloseEvent& /*event*/) { + ::wxBeginBusyCursor(); + wxConfigBase * config = wxConfig::Get(); config->SetPath(AppearanceGroup); *************** *** 1126,1129 **** --- 1150,1154 ---- return; + StopRingSound(); SetState(AnsweringState); pcssEP->AcceptIncomingConnection(m_currentConnectionToken); *************** *** 1163,1166 **** --- 1188,1198 ---- LogWindow << "\nIncoming call at " << now.AsString("w h:mma") << " from " << connection.GetRemotePartyName() << endl; + + if (!m_RingSoundFileName.empty()) { + m_RingSoundChannel.Open(m_RingSoundDeviceName, PSoundChannel::Player); + m_RingSoundChannel.PlayFile(m_RingSoundFileName.c_str(), FALSE); + m_RingSoundTimer.RunContinuous(5000); + } + SetState(RingingState); } *************** *** 1168,1171 **** --- 1200,1216 ---- + void MyManager::OnRingSoundAgain(PTimer &, INT) + { + m_RingSoundChannel.PlayFile(m_RingSoundFileName.c_str(), FALSE); + } + + + void MyManager::StopRingSound() + { + m_RingSoundTimer.Stop(); + m_RingSoundChannel.Close(); + } + + void MyManager::OnEstablishedCall(OpalCall & call) { *************** *** 1178,1181 **** --- 1223,1228 ---- void MyManager::OnClearedCall(OpalCall & call) { + StopRingSound(); + PString remoteName = '"' + call.GetPartyB() + '"'; switch (call.GetCallEndReason()) { *************** *** 1428,1431 **** --- 1475,1480 ---- //////////////////////////////////////// // Codec fields + EVT_BUTTON(XRCID("BrowseSoundFile"), OptionsDialog::BrowseSoundFile) + EVT_BUTTON(XRCID("PlaySoundFile"), OptionsDialog::PlaySoundFile) EVT_BUTTON(XRCID("AddCodec"), OptionsDialog::AddCodec) EVT_BUTTON(XRCID("RemoveCodec"), OptionsDialog::RemoveCodec) *************** *** 1465,1469 **** INIT_FIELD(Username, m_manager.GetDefaultUserName()); INIT_FIELD(DisplayName, m_manager.GetDefaultDisplayName()); ! INIT_FIELD(RingSoundFileName, ""); INIT_FIELD(AutoAnswer, m_manager.m_autoAnswer); #if P_EXPAT --- 1514,1526 ---- INIT_FIELD(Username, m_manager.GetDefaultUserName()); INIT_FIELD(DisplayName, m_manager.GetDefaultDisplayName()); ! ! PStringList devices = PSoundChannel::GetDeviceNames(PSoundChannel::Player); ! wxComboBox * combo = (wxComboBox *)FindWindowByName(RingSoundDeviceNameKey); ! combo->SetValidator(wxGenericValidator(&m_RingSoundDeviceName)); ! for (i = 0; i < devices.GetSize(); i++) ! combo->Append((const char *)devices[i]); ! m_RingSoundDeviceName = m_manager.m_RingSoundDeviceName; ! INIT_FIELD(RingSoundFileName, m_manager.m_RingSoundFileName); ! INIT_FIELD(AutoAnswer, m_manager.m_autoAnswer); #if P_EXPAT *************** *** 1498,1504 **** // Fill sound player combo box with available devices and set selection ! wxComboBox * combo = (wxComboBox *)FindWindowByName(SoundPlayerKey); combo->SetValidator(wxGenericValidator(&m_SoundPlayer)); - PStringList devices = PSoundChannel::GetDeviceNames(PSoundChannel::Player); for (i = 0; i < devices.GetSize(); i++) combo->Append((const char *)devices[i]); --- 1555,1560 ---- // Fill sound player combo box with available devices and set selection ! combo = (wxComboBox *)FindWindowByName(SoundPlayerKey); combo->SetValidator(wxGenericValidator(&m_SoundPlayer)); for (i = 0; i < devices.GetSize(); i++) combo->Append((const char *)devices[i]); *************** *** 1709,1712 **** --- 1765,1770 ---- return false; + ::wxBeginBusyCursor(); + wxConfigBase * config = wxConfig::Get(); *************** *** 1716,1719 **** --- 1774,1778 ---- SAVE_FIELD(Username, m_manager.SetDefaultUserName); SAVE_FIELD(DisplayName, m_manager.SetDefaultDisplayName); + SAVE_FIELD(RingSoundFileName, m_manager.m_RingSoundFileName = ); SAVE_FIELD(AutoAnswer, m_manager.m_autoAnswer = ); #if P_EXPAT *************** *** 1906,1909 **** --- 1965,1970 ---- #endif // PTRACING + ::wxEndBusyCursor(); + return true; } *************** *** 1915,1918 **** --- 1976,1989 ---- void OptionsDialog::BrowseSoundFile(wxCommandEvent & /*event*/) { + wxString newFile = wxFileSelector("Sound file to play on incoming calls", + "", + m_RingSoundFileName, + ".wav", + "WAV files (*.wav)|*.wav", + wxOPEN|wxFILE_MUST_EXIST); + if (!newFile.empty()) { + m_RingSoundFileName = newFile; + TransferDataToWindow(); + } } *************** *** 1920,1923 **** --- 1991,1996 ---- void OptionsDialog::PlaySoundFile(wxCommandEvent & /*event*/) { + PSoundChannel speaker(m_manager.m_RingSoundDeviceName, PSoundChannel::Player); + speaker.PlayFile(m_RingSoundFileName.c_str()); } Index: openphone.wxg =================================================================== RCS file: /cvsroot/openh323/opal/samples/openphone/openphone.wxg,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** openphone.wxg 31 Aug 2005 13:21:20 -0000 1.16 --- openphone.wxg 31 Jul 2006 10:57:52 -0000 1.17 *************** *** 1,4 **** <?xml version="1.0"?> ! <!-- generated by wxGlade 0.3.5.1 on Sun Aug 28 21:32:01 2005 --> <application path="C:\Work\opal\samples\openphone\openphone.xrc" name="app" class="" option="0" language="XRC" top_window="CallDialog" encoding="ISO-8859-1" use_gettext="0" overwrite="0" use_new_namespace="1"> --- 1,4 ---- <?xml version="1.0"?> ! <!-- generated by wxGlade 0.3.5.1 on Mon Jul 31 19:46:40 2006 --> <application path="C:\Work\opal\samples\openphone\openphone.xrc" name="app" class="" option="0" language="XRC" top_window="CallDialog" encoding="ISO-8859-1" use_gettext="0" overwrite="0" use_new_namespace="1"> *************** *** 207,211 **** <title>Options</title> <centered>1</centered> ! <size>400, 250d</size> <object class="wxBoxSizer" name="sizer_4" base="EditBoxSizer"> <orient>wxVERTICAL</orient> --- 207,211 ---- <title>Options</title> <centered>1</centered> ! <size>400, 248d</size> <object class="wxBoxSizer" name="sizer_4" base="EditBoxSizer"> <orient>wxVERTICAL</orient> *************** *** 286,293 **** <orient>wxHORIZONTAL</orient> <object class="sizeritem"> ! <flag>wxALIGN_CENTER_VERTICAL</flag> <border>0</border> <option>1</option> ! <object class="wxTextCtrl" name="RingSoundFileName" base="EditTextCtrl"> </object> </object> --- 286,311 ---- <orient>wxHORIZONTAL</orient> <object class="sizeritem"> ! <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL</flag> <border>0</border> <option>1</option> ! <object class="wxBoxSizer" name="sizer_62" base="EditBoxSizer"> ! <orient>wxVERTICAL</orient> ! <object class="sizeritem"> ! <flag>wxTOP|wxEXPAND|wxFIXED_MINSIZE</flag> ! <border>12</border> ! <option>0</option> ! <object class="wxChoice" name="RingSoundDeviceName" base="EditChoice"> ! <selection>0</selection> ! <choices> ! </choices> ! </object> ! </object> ! <object class="sizeritem"> ! <flag>wxTOP|wxEXPAND|wxALIGN_CENTER_VERTICAL</flag> ! <border>12</border> ! <option>0</option> ! <object class="wxTextCtrl" name="RingSoundFileName" base="EditTextCtrl"> ! </object> ! </object> </object> </object> *************** *** 299,315 **** <orient>wxVERTICAL</orient> <object class="sizeritem"> ! <flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> ! <border>4</border> <option>0</option> ! <object class="wxButton" name="BrowseSoundFile" base="EditButton"> ! <label>Browse</label> </object> </object> <object class="sizeritem"> ! <flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> <border>4</border> <option>0</option> ! <object class="wxButton" name="PlaySoundFile" base="EditButton"> ! <label>Play</label> </object> </object> --- 317,333 ---- <orient>wxVERTICAL</orient> <object class="sizeritem"> ! <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> ! <border>12</border> <option>0</option> ! <object class="wxButton" name="PlaySoundFile" base="EditButton"> ! <label>Play</label> </object> </object> <object class="sizeritem"> ! <flag>wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> <border>4</border> <option>0</option> ! <object class="wxButton" name="BrowseSoundFile" base="EditButton"> ! <label>Browse</label> </object> </object> Index: openphone.xrc =================================================================== RCS file: /cvsroot/openh323/opal/samples/openphone/openphone.xrc,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** openphone.xrc 31 Aug 2005 13:21:20 -0000 1.7 --- openphone.xrc 31 Jul 2006 10:57:52 -0000 1.8 *************** *** 1,82 **** <?xml version="1.0" encoding="ISO-8859-1"?> ! <!-- generated by wxGlade 0.3.5.1 on Sun Aug 28 21:32:04 2005 --> <resource version="2.3.0.1"> ! <object class="wxMenuBar" name="PopUpMenu"> ! <object class="wxMenu" name="PopUpMenu"> ! <label>PopUpMenu</label> ! <object class="wxMenuItem" name="CallSpeedDial"> ! <label>C_all</label> ! </object> ! <object class="separator"/> ! <object class="wxMenuItem" name="MenuCut"> ! <label>Cu_t</label> </object> ! <object class="wxMenuItem" name="MenuCopy"> ! <label>_Copy</label> </object> ! <object class="wxMenuItem" name="MenuPaste"> ! <label>_Paste</label> </object> ! <object class="wxMenuItem" name="MenuDelete"> ! <label>_Delete</label> </object> ! <object class="separator"/> ! <object class="wxMenuItem" name="EditSpeedDial"> ! <label>_Edit ...</label> </object> </object> </object> ! <object class="wxDialog" name="CallDialog" subclass="CallDialog"> ! <style>wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTHICK_FRAME</style> ! <title>Call Remote</title> <object class="wxBoxSizer"> ! <orient>wxVERTICAL</orient> ! <object class="sizeritem"> <option>1</option> - <flag>wxEXPAND</flag> - <object class="wxBoxSizer"> - <orient>wxHORIZONTAL</orient> - <object class="sizeritem"> - <flag>wxLEFT|wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> - <border>20</border> - <object class="wxStaticText" name="AddressLabel"> - <label>Address:</label> - </object> - </object> - <object class="sizeritem"> - <option>1</option> - <flag>wxRIGHT|wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> - <border>20</border> - <object class="wxComboBox" name="Address"> - <size>160, 12d</size> - <selection>0</selection> - <content> - </content> - </object> - </object> - </object> </object> <object class="sizeritem"> ! <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> ! <object class="wxBoxSizer"> ! <orient>wxHORIZONTAL</orient> ! <object class="sizeritem"> ! <flag>wxALL|wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL</flag> ! <border>16</border> ! <object class="wxButton" name="wxID_OK"> ! <default>1</default> ! <label>OK</label> ! </object> ! </object> ! <object class="sizeritem"> ! <flag>wxALL|wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> ! <border>16</border> ! <object class="wxButton" name="wxID_CANCEL"> ! <label>Cancel</label> ! </object> ! </object> </object> </object> </object> </object> --- 1,81 ---- <?xml version="1.0" encoding="ISO-8859-1"?> ! <!-- generated by wxGlade 0.3.5.1 on Mon Jul 31 19:46:42 2006 --> <resource version="2.3.0.1"> ! <object class="wxPanel" name="AnswerPanel" subclass="AnswerPanel"> ! <style>wxTAB_TRAVERSAL</style> ! <object class="wxBoxSizer"> ! <orient>wxHORIZONTAL</orient> ! <object class="spacer"> ! <size>20, 20</size> ! <option>1</option> </object> ! <object class="sizeritem"> ! <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> ! <border>24</border> ! <object class="wxButton" name="AnswerCall"> ! <size>80, 18d</size> ! <label>Answer</label> ! <font> ! <style>normal</style> ! <family>default</family> ! <weight>normal</weight> ! <underlined>0</underlined> ! <size>12</size> ! </font> ! </object> </object> ! <object class="spacer"> ! <size>20, 20</size> ! <option>1</option> </object> ! <object class="sizeritem"> ! <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> ! <border>24</border> ! <object class="wxButton" name="RejectCall"> ! <size>80, 19d</size> ! <label>Reject</label> ! <font> ! <style>normal</style> ! <family>default</family> ! <weight>normal</weight> ! <underlined>0</underlined> ! <size>12</size> ! </font> ! </object> </object> ! <object class="spacer"> ! <size>20, 20</size> ! <option>1</option> </object> </object> </object> ! <object class="wxPanel" name="CallingPanel" subclass="CallingPanel"> ! <style>wxTAB_TRAVERSAL</style> <object class="wxBoxSizer"> ! <orient>wxHORIZONTAL</orient> ! <object class="spacer"> ! <size>20, 20</size> <option>1</option> </object> <object class="sizeritem"> ! <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> ! <border>20</border> ! <object class="wxButton" name="HangUpCall"> ! <size>80, 19d</size> ! <label>Hang Up</label> ! <font> ! <style>normal</style> ! <family>default</family> ! <weight>normal</weight> ! <underlined>0</underlined> ! <size>12</size> ! </font> </object> </object> + <object class="spacer"> + <size>20, 20</size> + <option>1</option> + </object> </object> </object> *************** *** 285,362 **** </object> </object> ! <object class="wxPanel" name="AnswerPanel" subclass="AnswerPanel"> ! <style>wxTAB_TRAVERSAL</style> <object class="wxBoxSizer"> <orient>wxHORIZONTAL</orient> - <object class="spacer"> - <size>20, 20</size> - <option>1</option> - </object> <object class="sizeritem"> - <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> - <border>24</border> - <object class="wxButton" name="AnswerCall"> - <size>80, 18d</size> - <label>Answer</label> - <font> - <style>normal</style> - <family>default</family> - <weight>normal</weight> - <underlined>0</underlined> - <size>12</size> - </font> - </object> - </object> - <object class="spacer"> - <size>20, 20</size> <option>1</option> </object> <object class="sizeritem"> ! <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> ! <border>24</border> ! <object class="wxButton" name="RejectCall"> ! <size>80, 19d</size> ! <label>Reject</label> ! <font> ! <style>normal</style> ! <family>default</family> ! <weight>normal</weight> ! <underlined>0</underlined> ! <size>12</size> ! </font> </object> </object> - <object class="spacer"> - <size>20, 20</size> - <option>1</option> - </object> </object> </object> ! <object class="wxPanel" name="CallingPanel" subclass="CallingPanel"> ! <style>wxTAB_TRAVERSAL</style> <object class="wxBoxSizer"> ! <orient>wxHORIZONTAL</orient> ! <object class="spacer"> ! <size>20, 20</size> <option>1</option> </object> <object class="sizeritem"> ! <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> ! <border>20</border> ! <object class="wxButton" name="HangUpCall"> ! <size>80, 19d</size> ! <label>Hang Up</label> ! <font> ! <style>normal</style> ! <family>default</family> ! <weight>normal</weight> ! <underlined>0</underlined> ! <size>12</size> ! </font> </object> </object> ! <object class="spacer"> ! <size>20, 20</size> ! <option>1</option> </object> </object> --- 284,589 ---- </object> </object> ! <object class="wxPanel" name="InCallPanel" subclass="InCallPanel"> ! <style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style> <object class="wxBoxSizer"> <orient>wxHORIZONTAL</orient> <object class="sizeritem"> <option>1</option> + <flag>wxEXPAND</flag> + <object class="wxBoxSizer"> + <orient>wxVERTICAL</orient> + <object class="sizeritem"> + <option>1</option> + <flag>wxEXPAND</flag> + <object class="wxBoxSizer"> + <orient>wxHORIZONTAL</orient> + <object class="spacer"> + <size>20, 20</size> + <option>1</option> + </object> + <object class="sizeritem"> + <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> + <border>16</border> + <object class="wxButton" name="HangUp"> + <size>80, 20d</size> + <label>Hang Up</label> + <font> + <style>normal</style> + <family>default</family> + <weight>normal</weight> + <underlined>0</underlined> + <size>10</size> + </font> + </object> + </object> + <object class="spacer"> + <size>20, 20</size> + <option>1</option> + </object> + <object class="sizeritem"> + <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> + <border>16</border> + <object class="wxButton" name="Transfer"> + <size>80, 20d</size> + <label>Hold/Transfer</label> + <font> + <style>normal</style> + <family>default</family> + <weight>normal</weight> + <underlined>0</underlined> + <size>10</size> + </font> + </object> + </object> + <object class="spacer"> + <size>20, 20</size> + <option>1</option> + </object> + </object> + </object> + <object class="sizeritem"> + <option>1</option> + <flag>wxEXPAND</flag> + <object class="wxBoxSizer"> + <orient>wxHORIZONTAL</orient> + <object class="sizeritem"> + <option>1</option> + <flag>wxEXPAND</flag> + <object class="wxBoxSizer"> + <orient>wxVERTICAL</orient> + <object class="sizeritem"> + <flag>wxLEFT|wxRIGHT</flag> + <border>16</border> + <object class="wxCheckBox" name="SpeakerMute"> + <label>Speaker</label> + </object> + </object> + <object class="sizeritem"> + <flag>wxTOP|wxBOTTOM|wxEXPAND</flag> + <border>4</border> + <object class="wxGauge" name="SpeakerGuage"> + <style>wxGA_HORIZONTAL|wxGA_SMOOTH</style> + <range>100</range> + <size>120, 12d</size> + </object> + </object> + <object class="sizeritem"> + <flag>wxEXPAND</flag> + <object class="wxSlider" name="SpeakerVolume"> + <style>wxSL_HORIZONTAL</style> + <min>0</min> + <max> 100</max> + <size>120, 16d</size> + </object> + </object> + </object> + </object> + <object class="sizeritem"> + <option>1</option> + <flag>wxEXPAND</flag> + <object class="wxBoxSizer"> + <orient>wxVERTICAL</orient> + <object class="sizeritem"> + <flag>wxLEFT|wxRIGHT</flag> + <border>16</border> + <object class="wxCheckBox" name="MicrophoneMute"> + <label>Microphone</label> + </object> + </object> + <object class="sizeritem"> + <flag>wxTOP|wxBOTTOM|wxEXPAND</flag> + <border>4</border> + <object class="wxGauge" name="MicrophoneGuage"> + <style>wxGA_HORIZONTAL|wxGA_SMOOTH</style> + <range>100</range> + <size>120, 12d</size> + </object> + </object> + <object class="sizeritem"> + <flag>wxEXPAND</flag> + <object class="wxSlider" name="MicrophoneVolume"> + <style>wxSL_HORIZONTAL</style> + <min>0</min> + <max> 100</max> + <size>120, 16d</size> + </object> + </object> + </object> + </object> + </object> + </object> + </object> </object> <object class="sizeritem"> ! <flag>wxALL|wxALIGN_CENTER_VERTICAL</flag> ! <border>8</border> ! <object class="wxBoxSizer"> ! <orient>wxVERTICAL</orient> ! <object class="sizeritem"> ! <flag>wxEXPAND</flag> ! <object class="wxGridSizer"> ! <hgap>0</hgap> ! <rows>4</rows> ! <cols>3</cols> ! <vgap>0</vgap> ! <object class="sizeritem"> ! <object class="wxButton" name="Input1"> ! <size>20, 16d</size> ! <label>1</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input2"> ! <size>20, 16d</size> ! <label>2</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input3"> ! <size>20, 16d</size> ! <label>3</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input4"> ! <size>20, 16d</size> ! <label>4</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input5"> ! <size>20, 16d</size> ! <label>5</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input6"> ! <size>20, 16d</size> ! <label>6</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input7"> ! <size>20, 16d</size> ! <label>7</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input8"> ! <size>20, 16d</size> ! <label>8</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input9"> ! <size>20, 16d</size> ! <label>9</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="InputStar"> ! <size>20, 16d</size> ! <label>*</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="Input0"> ! <size>20, 16d</size> ! <label>0</label> ! </object> ! </object> ! <object class="sizeritem"> ! <object class="wxButton" name="InputHash"> ! <size>20, 16d</size> ! <label>#</label> ! </object> ! </object> ! </object> ! </object> ! <object class="sizeritem"> ! <flag>wxEXPAND</flag> ! <object class="wxButton" name="InputFlash"> ! <label>Hook Flash</label> ! </object> ! </object> </object> </object> </object> </object> ! <object class="wxDialog" name="CallDialog" subclass="CallDialog"> ! <style>wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTHICK_FRAME</style> ! <title>Call Remote</title> <object class="wxBoxSizer"> ! <orient>wxVERTICAL</orient> ! <object class="sizeritem"> <option>1</option> + <flag>wxEXPAND</flag> + <object class="wxBoxSizer"> + <orient>wxHORIZONTAL</orient> + <object class="sizeritem"> + <flag>wxLEFT|wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> + <border>20</border> + <object class="wxStaticText" name="AddressLabel"> + <label>Address:</label> + </object> + </object> + <object class="sizeritem"> + <option>1</option> + <flag>wxRIGHT|wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> + <border>20</border> + <object class="wxComboBox" name="Address"> + <size>160, 12d</size> + <selection>0</selection> + <content> + </content> + </object> + </object> + </object> </object> <object class="sizeritem"> ! <flag>wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> ! <object class="wxBoxSizer"> ! <orient>wxHORIZONTAL</orient> ! <object class="sizeritem"> ! <flag>wxALL|wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL</flag> ! <border>16</border> ! <object class="wxButton" name="wxID_OK"> ! <default>1</default> ! <label>OK</label> ! </object> ! </object> ! <object class="sizeritem"> ! <flag>wxALL|wxALIGN_BOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> ! <border>16</border> ! <object class="wxButton" name="wxID_CANCEL"> ! <label>Cancel</label> ! </object> ! </object> </object> </object> ! </object> ! </object> ! <object class="wxMenuBar" name="PopUpMenu"> ! <object class="wxMenu" name="PopUpMenu"> ! <label>PopUpMenu</label> ! <object class="wxMenuItem" name="CallSpeedDial"> ! <label>C_all</label> ! </object> ! <object class="separator"/> ! <object class="wxMenuItem" name="MenuCut"> ! <label>Cu_t</label> ! </object> ! <object class="wxMenuItem" name="MenuCopy"> ! <label>_Copy</label> ! </object> ! <object class="wxMenuItem" name="MenuPaste"> ! <label>_Paste</label> ! </object> ! <object class="wxMenuItem" name="MenuDelete"> ! <label>_Delete</label> ! </object> ! <object class="separator"/> ! <object class="wxMenuItem" name="EditSpeedDial"> ! <label>_Edit ...</label> </object> </object> *************** *** 365,369 **** <centered>1</centered> <style>wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTHICK_FRAME</style> ! <size>400, 250d</size> <title>Options</title> <object class="wxBoxSizer"> --- 592,596 ---- <centered>1</centered> <style>wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTHICK_FRAME</style> ! <size>400, 248d</size> <title>Options</title> <object class="wxBoxSizer"> *************** *** 429,434 **** <object class="sizeritem"> <option>1</option> ! <flag>wxALIGN_CENTER_VERTICAL</flag> ! <object class="wxTextCtrl" name="RingSoundFileName"> </object> </object> --- 656,677 ---- <object class="sizeritem"> <option>1</option> ! <flag>wxEXPAND|wxALIGN_CENTER_VERTICAL</flag> ! <object class="wxBoxSizer"> ! <orient>wxVERTICAL</orient> ! <object class="sizeritem"> ! <flag>wxTOP|wxEXPAND|wxFIXED_MINSIZE</flag> ! <border>12</border> ! <object class="wxChoice" name="RingSoundDeviceName"> ! <selection>0</selection> ! <content> ! </content> ! </object> ! </object> ! <object class="sizeritem"> ! <flag>wxTOP|wxEXPAND|wxALIGN_CENTER_VERTICAL</flag> ! <border>12</border> ! <object class="wxTextCtrl" name="RingSoundFileName"> ! </object> ! </object> </object> </object> *************** *** 439,453 **** <orient>wxVERTICAL</orient> <object class="sizeritem"> ! <flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> ! <border>4</border> ! <object class="wxButton" name="BrowseSoundFile"> ! <label>Browse</label> </object> </object> <object class="sizeritem"> ! <flag>wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> <border>4</border> ! <object class="wxButton" name="PlaySoundFile"> ! <label>Play</label> </object> </object> --- 682,696 ---- <orient>wxVERTICAL</orient> <object class="sizeritem"> ! <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> ! <border>12</border> ! <object class="wxButton" name="PlaySoundFile"> ! <label>Play</label> </object> </object> <object class="sizeritem"> ! <flag>wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> <border>4</border> ! <object class="wxButton" name="BrowseSoundFile"> ! <label>Browse</label> </object> </object> *************** *** 2088,2317 **** </object> </object> - <object class="wxPanel" name="InCallPanel" subclass="InCallPanel"> - <style>wxSUNKEN_BORDER|wxTAB_TRAVERSAL</style> - <object class="wxBoxSizer"> - <orient>wxHORIZONTAL</orient> - <object class="sizeritem"> - <option>1</option> - <flag>wxEXPAND</flag> - <object class="wxBoxSizer"> - <orient>wxVERTICAL</orient> - <object class="sizeritem"> - <option>1</option> - <flag>wxEXPAND</flag> - <object class="wxBoxSizer"> - <orient>wxHORIZONTAL</orient> - <object class="spacer"> - <size>20, 20</size> - <option>1</option> - </object> - <object class="sizeritem"> - <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> - <border>16</border> - <object class="wxButton" name="HangUp"> - <size>80, 20d</size> - <label>Hang Up</label> - <font> - <style>normal</style> - <family>default</family> - <weight>normal</weight> - <underlined>0</underlined> - <size>10</size> - </font> - </object> - </object> - <object class="spacer"> - <size>20, 20</size> - <option>1</option> - </object> - <object class="sizeritem"> - <flag>wxTOP|wxBOTTOM|wxALIGN_CENTER_VERTICAL</flag> - <border>16</border> - <object class="wxButton" name="Transfer"> - <size>80, 20d</size> - <label>Hold/Transfer</label> - <font> - <style>normal</style> - <family>default</family> - <weight>normal</weight> - <underlined>0</underlined> - <size>10</size> - </font> - </object> - </object> - <object class="spacer"> - <size>20, 20</size> - <option>1</option> - </object> - </object> - </object> - <object class="sizeritem"> - <option>1</option> - <flag>wxEXPAND</flag> - <object class="wxBoxSizer"> - <orient>wxHORIZONTAL</orient> - <object class="sizeritem"> - <option>1</option> - <flag>wxEXPAND</flag> - <object class="wxBoxSizer"> - <orient>wxVERTICAL</orient> - <object class="sizeritem"> - <flag>wxLEFT|wxRIGHT</flag> - <border>16</border> - <object class="wxCheckBox" name="SpeakerMute"> - <label>Speaker</label> - </object> - </object> - <object class="sizeritem"> - <flag>wxTOP|wxBOTTOM|wxEXPAND</flag> - <border>4</border> - <object class="wxGauge" name="SpeakerGuage"> - <style>wxGA_HORIZONTAL|wxGA_SMOOTH</style> - <range>100</range> - <size>120, 12d</size> - </object> - </object> - <object class="sizeritem"> - <flag>wxEXPAND</flag> - <object class="wxSlider" name="SpeakerVolume"> - <style>wxSL_HORIZONTAL</style> - <min>0</min> - <max> 100</max> - <size>120, 16d</size> - </object> - </object> - </object> - </object> - <object class="sizeritem"> - <option>1</option> - <flag>wxEXPAND</flag> - <object class="wxBoxSizer"> - <orient>wxVERTICAL</orient> - <object class="sizeritem"> - <flag>wxLEFT|wxRIGHT</flag> - <border>16</border> - <object class="wxCheckBox" name="MicrophoneMute"> - <label>Microphone</label> - </object> - </object> - <object class="sizeritem"> - <flag>wxTOP|wxBOTTOM|wxEXPAND</flag> - <border>4</border> - <object class="wxGauge" name="MicrophoneGuage"> - <style>wxGA_HORIZONTAL|wxGA_SMOOTH</style> - <range>100</range> - <size>120, 12d</size> - </object> - </object> - <object class="sizeritem"> - <flag>wxEXPAND</flag> - <object class="wxSlider" name="MicrophoneVolume"> - <style>wxSL_HORIZONTAL</style> - <min>0</min> - <max> 100</max> - <size>120, 16d</size> - </object> - </object> - </object> - </object> - </object> - </object> - </object> - </object> - <object class="sizeritem"> - <flag>wxALL|wxALIGN_CENTER_VERTICAL</flag> - <border>8</border> - <object class="wxBoxSizer"> - <orient>wxVERTICAL</orient> - <object class="sizeritem"> - <flag>wxEXPAND</flag> - <object class="wxGridSizer"> - <hgap>0</hgap> - <rows>4</rows> - <cols>3</cols> - <vgap>0</vgap> - <object class="sizeritem"> - <object class="wxButton" name="Input1"> - <size>20, 16d</size> - <label>1</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input2"> - <size>20, 16d</size> - <label>2</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input3"> - <size>20, 16d</size> - <label>3</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input4"> - <size>20, 16d</size> - <label>4</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input5"> - <size>20, 16d</size> - <label>5</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input6"> - <size>20, 16d</size> - <label>6</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input7"> - <size>20, 16d</size> - <label>7</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input8"> - <size>20, 16d</size> - <label>8</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input9"> - <size>20, 16d</size> - <label>9</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="InputStar"> - <size>20, 16d</size> - <label>*</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="Input0"> - <size>20, 16d</size> - <label>0</label> - </object> - </object> - <object class="sizeritem"> - <object class="wxButton" name="InputHash"> - <size>20, 16d</size> - <label>#</label> - </object> - </object> - </object> - ... [truncated message content] |