#include "SoundCardData.h" SoundCardDataManager::~SoundCardDataManager() { m_listSoundCard.clear(); } /* 初始化声卡列表 */ void SoundCardDataManager::initSoundCardList(QList& listSoundCard) { m_listSoundCard.clear(); m_listSoundCard = listSoundCard; for(const auto& soundCard : m_listSoundCard) { SoundCardRoadInfo_t roadInfo; roadInfo.nSoundCardNum = soundCard.nSoundCardNum; roadInfo.strSoundCardID = soundCard.strSoundCardID; roadInfo.strSoundCardName = soundCard.strSoundCardName; for(const auto& road : soundCard.listRoad) { roadInfo.roadInfo = road; // 直接使用通道信息 m_listSoundCardRoad.append(roadInfo); } } } /* 根据声卡编号和录音通道编号获取声卡信息 */ SoundCardRoadInfo_t SoundCardDataManager::getSoundCardRoadInfo(int nSoundCardNum, int nChannelID) { for(const auto& soundCard : m_listSoundCardRoad) { if(soundCard.nSoundCardNum == nSoundCardNum && soundCard.roadInfo.nChannelID == nChannelID) { return soundCard; // 找到匹配的声卡和通道信息 } } SoundCardRoadInfo_t emptyInfo; emptyInfo.nSoundCardNum = -1; // 未找到时返回无效信息 emptyInfo.strSoundCardID = ""; emptyInfo.strSoundCardName = ""; emptyInfo.roadInfo.nRoadNum = -1; return emptyInfo; } /* 获取带有声卡信息的通道列表 */ const QList& SoundCardDataManager::getSoundCardRoadList() const { return m_listSoundCardRoad; }