SoundCardData.cpp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #include "SoundCardData.h"
  2. SoundCardDataManager::~SoundCardDataManager()
  3. {
  4. }
  5. /* 设置声卡列表 */
  6. void SoundCardDataManager::setSoundCardInfo(QMap<int, SoundCardInfo_t>& soundInfo)
  7. {
  8. m_mapSoundCardInfo.clear();
  9. m_mapSoundCardInfo = soundInfo;
  10. }
  11. /* 获取单个声卡信息 */
  12. SoundCardInfo_t SoundCardDataManager::getOneSoundCardInfo(int nSoundCardNum) const
  13. {
  14. auto it = m_mapSoundCardInfo.find(nSoundCardNum);
  15. if(it != m_mapSoundCardInfo.end())
  16. {
  17. return it.value(); // 返回找到的声卡信息
  18. }
  19. SoundCardInfo_t emptyInfo;
  20. emptyInfo.nSoundCardNum = -1; // 未找到时返回无效信息
  21. emptyInfo.strSoundCardID = "";
  22. emptyInfo.strSoundCardName = "";
  23. return emptyInfo;
  24. }
  25. /* 设置当前声卡 */
  26. bool SoundCardDataManager::setCurrentSoundCard(int nSoundCardNum)
  27. {
  28. auto it = m_mapSoundCardInfo.find(nSoundCardNum);
  29. if(it == m_mapSoundCardInfo.end())
  30. {
  31. return false;
  32. }
  33. m_currentSoundCardInfo = it.value(); // 设置当前声卡信息
  34. m_listSoundCardRoad.clear(); // 清空现有的通道列表
  35. const SoundCardInfo_t& soundCardInfo = it.value();
  36. for(const auto& road : soundCardInfo.listRoad)
  37. {
  38. SoundCardRoadInfo_t roadInfo;
  39. roadInfo.nSoundCardNum = soundCardInfo.nSoundCardNum;
  40. roadInfo.strSoundCardID = soundCardInfo.strSoundCardID;
  41. roadInfo.strSoundCardName = soundCardInfo.strSoundCardName;
  42. roadInfo.roadInfo = road; // 设置通道信息
  43. m_listSoundCardRoad.append(roadInfo); // 添加到列表中
  44. }
  45. return true;
  46. }
  47. /* 根据声卡编号和录音通道编号获取声卡信息 */
  48. SoundCardRoadInfo_t SoundCardDataManager::getSoundCardRoadInfo(int nSoundCardNum, int nChannelID)
  49. {
  50. for(const auto& soundCard : m_mapSoundCardInfo)
  51. {
  52. if(nSoundCardNum == soundCard.nSoundCardNum)
  53. {
  54. for(const auto& road : soundCard.listRoad)
  55. {
  56. if(road.nRoadNum == nChannelID)
  57. {
  58. SoundCardRoadInfo_t roadInfo;
  59. roadInfo.nSoundCardNum = soundCard.nSoundCardNum;
  60. roadInfo.strSoundCardID = soundCard.strSoundCardID;
  61. roadInfo.strSoundCardName = soundCard.strSoundCardName;
  62. roadInfo.roadInfo = road; // 设置通道信息
  63. return roadInfo; // 返回找到的声卡通道信息
  64. }
  65. }
  66. }
  67. }
  68. SoundCardRoadInfo_t emptyInfo;
  69. emptyInfo.nSoundCardNum = -1; // 未找到时返回无效信息
  70. emptyInfo.strSoundCardID = "";
  71. emptyInfo.strSoundCardName = "";
  72. emptyInfo.roadInfo.nRoadNum = -1;
  73. return emptyInfo;
  74. }
  75. /* 获取带有声卡信息的通道列表 */
  76. const QList<SoundCardRoadInfo_t>& SoundCardDataManager::getCurrSoundCardRoadList() const
  77. {
  78. return m_listSoundCardRoad;
  79. }