中间件底层,websocket

DialogCfgSys.cpp 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. // DialogSysCfg.cpp : 实现文件
  2. //
  3. #include "stdafx.h"
  4. #include "FirstStep.h"
  5. #include "DialogCfgSys.h"
  6. #include "Config.h"
  7. // CDialogSysCfg 对话框
  8. IMPLEMENT_DYNAMIC(CDialogCfgSys, CCfgDialog)
  9. CDialogCfgSys::CDialogCfgSys(CWnd* pParent /*=NULL*/)
  10. : CCfgDialog(2, CDialogCfgSys::IDD, pParent)
  11. {
  12. }
  13. CDialogCfgSys::~CDialogCfgSys()
  14. {
  15. }
  16. bool CDialogCfgSys::__isIvrFlowExisted( const CString& IvrFlow )
  17. {
  18. CString FlowName;
  19. for(int i = 0; i < m_ListFlow.GetCount(); ++i)
  20. {
  21. m_ListFlow.GetText(i, FlowName);
  22. if(FlowName == IvrFlow)
  23. return true;
  24. }
  25. return false;
  26. }
  27. void CDialogCfgSys::DoDataExchange(CDataExchange* pDX)
  28. {
  29. CCfgDialog::DoDataExchange(pDX);
  30. DDX_Control(pDX, IDC_EDTEX_RCD_PATH, m_EdtexRcdPath);
  31. DDX_Control(pDX, IDC_CMB_DEV_TYPE, m_CmbDevType);
  32. DDX_Control(pDX, IDC_CMB_PP_TYPE, m_CmbPPType);
  33. DDX_Control(pDX, IDC_CMB_QUEUE_TYPE, m_CmbQueueType);
  34. DDX_Control(pDX, IDC_CMB_RCD_TYPE, m_CmbRcdType);
  35. DDX_Control(pDX, IDC_EDT_ACD_PORT, m_EdtAcdPort);
  36. DDX_Control(pDX, IDC_EDT_AGENT_LOCK_PERIOD, m_EdtAgentLockPeriod);
  37. DDX_Control(pDX, IDC_EDT_CTI_PORT, m_EdtCtiPort);
  38. DDX_Control(pDX, IDC_EDT_FLOW_COUNT, m_EdtFlowCount);
  39. DDX_Control(pDX, IDC_EDT_PPT, m_EdtPpt);
  40. DDX_Control(pDX, IDC_EDTEX_FLOW, m_EdtexFlowPath);
  41. DDX_Control(pDX, IDC_EDTEX_LEAVEWORD, m_EdtexLeaveword);
  42. DDX_Control(pDX, IDC_EDTEX_LOG_PATH, m_EdtexLogPath);
  43. DDX_Control(pDX, IDC_IPADDR_CTI, m_AddrCti);
  44. DDX_Control(pDX, IDC_LIST_FLOW, m_ListFlow);
  45. DDX_Control(pDX, IDC_CMB_TTS_TYPE, m_CmbTtsType);
  46. DDX_Control(pDX, IDC_EDT_MAX_CONCURRENCY, m_EdtMaxConcurrency);
  47. DDX_Control(pDX, IDC_EDTEX_TTS_BUF_PATH, m_EdtexTtsBufPath);
  48. DDX_Control(pDX, IDC_CMB_RCD_FORMAT, m_CmdRcdFormat);
  49. }
  50. BEGIN_MESSAGE_MAP(CDialogCfgSys, CCfgDialog)
  51. ON_WM_SHOWWINDOW()
  52. ON_BN_CLICKED(IDC_BTN_ADD, &CDialogCfgSys::OnBnClickedBtnAdd)
  53. ON_BN_CLICKED(IDC_BTN_DEL, &CDialogCfgSys::OnBnClickedBtnDel)
  54. END_MESSAGE_MAP()
  55. // CDialogSysCfg 消息处理程序
  56. BOOL CDialogCfgSys::OnInitDialog()
  57. {
  58. CCfgDialog::OnInitDialog();
  59. // TODO: 在此添加额外的初始化
  60. CConfig& config = CConfig::GetInstance();
  61. // CTI配置
  62. m_AddrCti.SetWindowText(config.ctiAddr());
  63. m_EdtCtiPort.SetWindowText(config.ctiPort());
  64. m_CmbRcdType.InsertString(0, RCD_TYPE_TRUNK);
  65. m_CmbRcdType.InsertString(1, RCD_TYPE_PARALLEL);
  66. m_CmbRcdType.SetCurSel(config.recType());
  67. m_EdtexRcdPath.SetWindowText(config.recPath());
  68. m_CmdRcdFormat.InsertString(0, _T("mp3"));
  69. m_CmdRcdFormat.InsertString(1, _T("wav"));
  70. m_CmdRcdFormat.SetCurSel(config.recFormat());
  71. m_CmbDevType.InsertString(DEV_TYPE_IPO, DEVICE_TYPE_IPO);
  72. m_CmbDevType.InsertString(DEV_TYPE_EHANGCOM, DEVICE_TYPE_EHANGCOM);
  73. m_CmbDevType.InsertString(DEV_TYPE_FS, DEVICE_TYPE_FS);
  74. m_CmbDevType.SetCurSel(config.devType());
  75. // ACD配置
  76. m_EdtAcdPort.SetWindowText(config.acdPort());
  77. m_EdtAgentLockPeriod.SetWindowText(config.agentLockedPeriod());
  78. m_CmbPPType.InsertString(0, PP_TYPE_AUTO);
  79. m_CmbPPType.InsertString(1, PP_TYPE_MANUAL);
  80. m_CmbPPType.SetCurSel(config.ppTriggeredType());
  81. m_EdtPpt.SetWindowText(config.ppTime());
  82. m_CmbQueueType.InsertString(0, QUEUE_TYPE_VIP);
  83. m_CmbQueueType.InsertString(1, QUEUE_TYPE_FIFS);
  84. m_CmbQueueType.SetCurSel(config.queueType());
  85. // IVR配置
  86. m_EdtexLeaveword.SetWindowText(config.leaveWordPath());
  87. m_EdtFlowCount.SetWindowText(config.ivrFlowCount());
  88. IvrFlowList& List = config.ivrFlowList();
  89. POSITION Pos = List.GetHeadPosition();
  90. while(Pos != NULL)
  91. {
  92. m_ListFlow.AddString(List.GetNext(Pos));
  93. }
  94. // 其他配置
  95. m_EdtexLogPath.SetWindowText(config.logFilePath());
  96. m_EdtMaxConcurrency.SetWindowText(config.maxConcurrency());
  97. m_CmbTtsType.InsertString(TTS_NONE, TTS_TYPE_NONE);
  98. m_CmbTtsType.InsertString(TTS_IFLY, TTS_TYPE_IFLY);
  99. m_CmbTtsType.InsertString(TTS_JT, TTS_TYPE_JT);
  100. m_CmbTtsType.InsertString(TTS_IBM, TTS_TYPE_IBM);
  101. m_CmbTtsType.SetCurSel(config.ttsType());
  102. m_EdtexTtsBufPath.SetWindowText(config.ttsBufferPath());
  103. return TRUE; // return TRUE unless you set the focus to a control
  104. // 异常: OCX 属性页应返回 FALSE
  105. }
  106. void CDialogCfgSys::OnShowWindow(BOOL bShow, UINT nStatus)
  107. {
  108. CCfgDialog::OnShowWindow(bShow, nStatus);
  109. // TODO: 在此处添加消息处理程序代码
  110. if(bShow)
  111. m_AddrCti.SetFocus();
  112. }
  113. void CDialogCfgSys::OnBnClickedBtnAdd()
  114. {
  115. // TODO: 在此添加控件通知处理程序代码
  116. CString FlowName;
  117. m_EdtexFlowPath.GetWindowText(FlowName);
  118. if(!FlowName.IsEmpty())
  119. {
  120. if(__isIvrFlowExisted(FlowName))
  121. {
  122. MessageBox(_T("该流程已添加"), MSGBOX_TIP_CAPTION);
  123. }
  124. else
  125. {
  126. m_ListFlow.AddString(FlowName);
  127. m_EdtexFlowPath.SetWindowText(_T(""));
  128. }
  129. }
  130. }
  131. void CDialogCfgSys::OnBnClickedBtnDel()
  132. {
  133. // TODO: 在此添加控件通知处理程序代码
  134. CString FlowName;
  135. int Sel = m_ListFlow.GetCurSel();
  136. if(Sel == LB_ERR)
  137. return;
  138. m_ListFlow.DeleteString(Sel);
  139. }
  140. BOOL CDialogCfgSys::PreTranslateMessage(MSG* pMsg)
  141. {
  142. // TODO: 在此添加专用代码和/或调用基类
  143. if((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN))
  144. return TRUE;
  145. return CCfgDialog::PreTranslateMessage(pMsg);
  146. }
  147. /*****************************************************************
  148. **【函数名称】 upload
  149. **【函数功能】 上传配置项
  150. **【参数】
  151. **【返回值】
  152. ****************************************************************/
  153. void CDialogCfgSys::upload( void )
  154. {
  155. CString CfgInfo;
  156. CConfig& config = CConfig::GetInstance();
  157. // CTI
  158. m_AddrCti.GetWindowText(CfgInfo);
  159. config.ctiAddr() = CfgInfo;
  160. m_EdtCtiPort.GetWindowText(CfgInfo);
  161. config.ctiPort() = CfgInfo;
  162. config.recType() = (RecordType)m_CmbRcdType.GetCurSel();
  163. config.recFormat() = (RecordFormat)m_CmdRcdFormat.GetCurSel();
  164. m_EdtexRcdPath.GetWindowText(CfgInfo);
  165. config.recPath() = CfgInfo;
  166. config.devType() = (DEV_TYPE)m_CmbDevType.GetCurSel();
  167. // ACD
  168. m_EdtAcdPort.GetWindowText(CfgInfo);
  169. config.acdPort() = CfgInfo;
  170. m_EdtAgentLockPeriod.GetWindowText(CfgInfo);
  171. config.agentLockedPeriod() = CfgInfo;
  172. config.ppTriggeredType() = (PPTriggeredType)m_CmbPPType.GetCurSel();
  173. m_EdtPpt.GetWindowText(CfgInfo);
  174. config.ppTime() = CfgInfo;
  175. config.queueType() = (QUEUE_TYPE)m_CmbQueueType.GetCurSel();
  176. // IVR
  177. m_EdtexLeaveword.GetWindowText(CfgInfo);
  178. config.leaveWordPath() = CfgInfo;
  179. m_EdtFlowCount.GetWindowText(CfgInfo);
  180. config.ivrFlowCount() = CfgInfo;
  181. config.ivrFlowList().RemoveAll();
  182. for(int i = 0; i < m_ListFlow.GetCount(); ++i)
  183. {
  184. m_ListFlow.GetText(i, CfgInfo);
  185. config.ivrFlowList().AddTail(CfgInfo);
  186. }
  187. // other
  188. m_EdtexLogPath.GetWindowText(CfgInfo);
  189. config.logFilePath() = CfgInfo;
  190. m_EdtMaxConcurrency.GetWindowText(CfgInfo);
  191. config.maxConcurrency() = CfgInfo;
  192. m_EdtexTtsBufPath.GetWindowText(CfgInfo);
  193. config.ttsBufferPath() = CfgInfo;
  194. config.ttsType() = (TTS_TYPE)m_CmbTtsType.GetCurSel();
  195. }