SoundCardData.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef __SOUNDCARDDATA_H__
  2. #define __SOUNDCARDDATA_H__
  3. #include "GlobalVariable.h"
  4. #include <qlist.h>
  5. /**
  6. * @brief 声卡信息管理器
  7. * 1、这里可以设置当前声卡信息,获取当前选择的声卡信息,以免多个窗口声卡传递链特别长
  8. *
  9. */
  10. #define SoundCards SoundCardDataManager::getInstance()
  11. class SoundCardDataManager
  12. {
  13. SoundCardDataManager() = default;
  14. SoundCardDataManager(const SoundCardDataManager&) = delete;
  15. SoundCardDataManager& operator=(const SoundCardDataManager&) = delete;
  16. public:
  17. ~SoundCardDataManager();
  18. static SoundCardDataManager& getInstance()
  19. {
  20. static SoundCardDataManager instance;
  21. return instance;
  22. }
  23. /* 设置声卡列表 */
  24. void setSoundCardInfo(QMap<int, SoundCardInfo_t>& soundInfo);
  25. /* 获取声卡列表 */
  26. const QMap<int, SoundCardInfo_t>& getSoundCardInfo() const { return m_mapSoundCardInfo; }
  27. /* 获取单个声卡信息 */
  28. SoundCardInfo_t getOneSoundCardInfo(int nSoundCardNum) const;
  29. /* 设置当前声卡 */
  30. bool setCurrentSoundCard(int nSoundCardNum);
  31. /* 获取当前声卡信息 */
  32. const SoundCardInfo_t& getCurrentSoundCardInfo() const { return m_currentSoundCardInfo; }
  33. /* 根据声卡编号和录音通道编号获取声卡信息 */
  34. SoundCardRoadInfo_t getSoundCardRoadInfo(int nSoundCardNum, int nChannelID);
  35. /* 获取当前带有声卡信息的通道列表 */
  36. const QList<SoundCardRoadInfo_t>& getCurrSoundCardRoadList() const;
  37. private:
  38. /* 声卡信息,key为声卡编号 */
  39. QMap<int, SoundCardInfo_t> m_mapSoundCardInfo;
  40. /* 当前选择的声卡编号 */
  41. SoundCardInfo_t m_currentSoundCardInfo;
  42. /* 带有声卡信息的通道列表,设置当前声卡信息的时候会更新 */
  43. QList<SoundCardRoadInfo_t> m_listSoundCardRoad;
  44. };
  45. #endif // __SOUNDCARDDATA_H__