#ifndef __SOUNDCARDDATA_H__ #define __SOUNDCARDDATA_H__ #include "GlobalVariable.h" #include /** * @brief 声卡信息管理器 * 1、这里可以设置当前声卡信息,获取当前选择的声卡信息,以免多个窗口声卡传递链特别长 * */ #define SoundCards SoundCardDataManager::getInstance() class SoundCardDataManager { SoundCardDataManager() = default; SoundCardDataManager(const SoundCardDataManager&) = delete; SoundCardDataManager& operator=(const SoundCardDataManager&) = delete; public: ~SoundCardDataManager(); static SoundCardDataManager& getInstance() { static SoundCardDataManager instance; return instance; } /* 设置声卡列表 */ void setSoundCardInfo(QMap& soundInfo); /* 获取声卡列表 */ const QMap& getSoundCardInfo() const { return m_mapSoundCardInfo; } /* 获取单个声卡信息 */ SoundCardInfo_t getOneSoundCardInfo(int nSoundCardNum) const; /* 设置当前声卡 */ bool setCurrentSoundCard(int nSoundCardNum); /* 获取当前声卡信息 */ const SoundCardInfo_t& getCurrentSoundCardInfo() const { return m_currentSoundCardInfo; } /* 根据声卡编号和录音通道编号获取声卡信息 */ SoundCardRoadInfo_t getSoundCardRoadInfo(int nSoundCardNum, int nChannelID); /* 获取当前带有声卡信息的通道列表 */ const QList& getCurrSoundCardRoadList() const; private: /* 声卡信息,key为声卡编号 */ QMap m_mapSoundCardInfo; /* 当前选择的声卡编号 */ SoundCardInfo_t m_currentSoundCardInfo; /* 带有声卡信息的通道列表,设置当前声卡信息的时候会更新 */ QList m_listSoundCardRoad; }; #endif // __SOUNDCARDDATA_H__