setinfomanager.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. #include "setinfomanager.h"
  2. #include <QLayout>
  3. #include "LHLogInit.h"
  4. #include "LHQLogAPI.h"
  5. #include "FromWebAPI.h"
  6. #include "spdlog/spdlog.h"
  7. #include "GlobalInfo.h"
  8. #include "GlobalVariable.h"
  9. #include "CompareItemData.h"
  10. #include "setinfowidget.h"
  11. SetInfoManager::SetInfoManager(QObject *parent)
  12. : QObject(parent)
  13. , m_pWgtSet(nullptr)
  14. {
  15. }
  16. SetInfoManager::~SetInfoManager()
  17. {
  18. }
  19. /* 初始化,初始化所有参数变量 */
  20. int SetInfoManager::Init(const stInitData* pData)
  21. {
  22. m_initData = *pData;
  23. initLog("ACAServerSetting", g_apiLhQLog);
  24. /* 初始化默认对比项参数 */
  25. setDefaultCompareItem();
  26. /* 初始化对比项数据管理器 */
  27. if(!CIData.init())
  28. {
  29. SPDLOG_ERROR("对比项数据初始化失败");
  30. return -1;
  31. }
  32. /* 初始化webAPI */
  33. if(!initWebAPI())
  34. {
  35. return -1;
  36. }
  37. return 0;
  38. }
  39. int SetInfoManager::CreateWindow(int nSkinType, QWidget* parent)
  40. {
  41. // 设置皮肤
  42. // LHStyleManager::Instance()->SetSkinStyle(nSkinType);
  43. // 创建配置界面
  44. if(m_pWgtSet == nullptr)
  45. {
  46. m_pWgtSet = new SetInfoWidget(parent);
  47. if(parent->layout())
  48. {
  49. parent->layout()->addWidget(m_pWgtSet);
  50. }
  51. m_pWgtSet->setWebAPI(m_fromWebAPI);
  52. }
  53. return 0;
  54. }
  55. int SetInfoManager::ShowWindow(int nSkinType, int nServiceID, bool bShowWindow)
  56. {
  57. if(m_pWgtSet)
  58. {
  59. if(bShowWindow)
  60. {
  61. // 设置皮肤
  62. // LHStyleManager::Instance()->SetSkinStyle(nSkinType);
  63. m_pWgtSet->show();
  64. }
  65. else
  66. {
  67. m_pWgtSet->hide();
  68. }
  69. }
  70. return 0;
  71. }
  72. /* 释放内存 */
  73. int SetInfoManager::Release()
  74. {
  75. if(m_pWgtSet)
  76. {
  77. m_pWgtSet->deleteLater();
  78. m_pWgtSet = nullptr;
  79. }
  80. if(m_fromWebAPI)
  81. {
  82. delete m_fromWebAPI;
  83. m_fromWebAPI = nullptr;
  84. }
  85. return 0;
  86. }
  87. /* 生成默认的对比项参数 */
  88. void SetInfoManager::setDefaultCompareItem()
  89. {
  90. CompareItemInfo_t defaultItem;
  91. /* 对比项名称不需要设置 */
  92. /* 是否启用该对比项 */
  93. defaultItem.isEnable = true;
  94. /* 设置主通道和第二通道信息 */
  95. CompareItemRoadInfo_t mainRoad;
  96. mainRoad.isEnableRecord = true; // 主通道默认开启录音
  97. mainRoad.nCompareRoadNum = 1; // 主通道编号为1
  98. mainRoad.strCompareRoadName = "主通道"; // 主通道名称
  99. mainRoad.scRoadInfo.nSoundCardNum = 0; // 默认声卡编号为0
  100. mainRoad.scRoadInfo.roadInfo.nRoadNum = 0; // 默认通道编号为0
  101. defaultItem.listRoads.append(mainRoad);
  102. CompareItemRoadInfo_t secondRoad;
  103. secondRoad.isEnableRecord = true; // 第二通道默认开启录音
  104. secondRoad.nCompareRoadNum = 2; // 第二通道编号为2
  105. secondRoad.strCompareRoadName = "第2通道"; // 第二通道名称
  106. secondRoad.scRoadInfo.nSoundCardNum = 0; // 默认声卡编号为0
  107. secondRoad.scRoadInfo.roadInfo.nRoadNum = 1; // 默认通道编号为1
  108. defaultItem.listRoads.append(secondRoad);
  109. /* 初始化静音、过载、反相参数 */
  110. defaultItem.paramMute.isEnable = true; // 静音检测默认开启
  111. defaultItem.paramMute.threshold.nThreshold = 64; // 静音检测默认阈值
  112. defaultItem.paramMute.nLen = 8; // 静音检测默认长度
  113. defaultItem.paramMute.nSensibility = 80; // 静音检测默认灵敏度
  114. defaultItem.paramOverload.isEnable = true; // 过载检测默认开启
  115. defaultItem.paramOverload.threshold.nThreshold = 4; // 过载检测默认
  116. defaultItem.paramOverload.nLen = 30; // 过载检测默认长度
  117. defaultItem.paramOverload.nSensibility = 20; // 过载检测
  118. defaultItem.paramPhase.isEnable = true; // 反相检测默认开启
  119. defaultItem.paramPhase.threshold.dThreshold = 0.75; // 反相检测默认阈值
  120. defaultItem.paramPhase.nLen = 60; // 反相检测默认长度
  121. defaultItem.paramPhase.nSensibility = 60; // 反相检测默认灵敏度
  122. /* 设置全局默认对比项 */
  123. GInfo.setDefaultCompareItem(defaultItem);
  124. }
  125. /* 初始化WebAPI */
  126. bool SetInfoManager::initWebAPI()
  127. {
  128. if(m_fromWebAPI == nullptr)
  129. {
  130. m_fromWebAPI = new FromWebAPI();
  131. if(!m_fromWebAPI->initWebApi(m_initData.strWebAddr, m_initData.strDBID, ""))
  132. {
  133. SPDLOG_ERROR("WebAPI 初始化失败");
  134. delete m_fromWebAPI;
  135. m_fromWebAPI = nullptr;
  136. return false;
  137. }
  138. }
  139. return true;
  140. }