#include "SoundCardData.h" SoundCardDataManager::~SoundCardDataManager() { } /* 设置声卡列表 */ void SoundCardDataManager::setSoundCardInfo(QMap& soundInfo) { m_mapSoundCardInfo.clear(); m_mapSoundCardInfo = soundInfo; } /* 获取单个声卡信息 */ SoundCardInfo_t SoundCardDataManager::getOneSoundCardInfo(int nSoundCardNum) const { auto it = m_mapSoundCardInfo.find(nSoundCardNum); if(it != m_mapSoundCardInfo.end()) { return it.value(); // 返回找到的声卡信息 } SoundCardInfo_t emptyInfo; emptyInfo.nSoundCardNum = -1; // 未找到时返回无效信息 emptyInfo.strSoundCardID = ""; emptyInfo.strSoundCardName = ""; return emptyInfo; } /* 设置当前声卡 */ bool SoundCardDataManager::setCurrentSoundCard(int nSoundCardNum) { auto it = m_mapSoundCardInfo.find(nSoundCardNum); if(it == m_mapSoundCardInfo.end()) { return false; } m_currentSoundCardInfo = it.value(); // 设置当前声卡信息 m_listSoundCardRoad.clear(); // 清空现有的通道列表 const SoundCardInfo_t& soundCardInfo = it.value(); for(const auto& road : soundCardInfo.listRoad) { SoundCardRoadInfo_t roadInfo; roadInfo.nSoundCardNum = soundCardInfo.nSoundCardNum; roadInfo.strSoundCardID = soundCardInfo.strSoundCardID; roadInfo.strSoundCardName = soundCardInfo.strSoundCardName; roadInfo.roadInfo = road; // 设置通道信息 m_listSoundCardRoad.append(roadInfo); // 添加到列表中 } return true; } /* 根据声卡编号和录音通道编号获取声卡信息 */ SoundCardRoadInfo_t SoundCardDataManager::getSoundCardRoadInfo(int nSoundCardNum, int nChannelID) { for(const auto& soundCard : m_mapSoundCardInfo) { if(nSoundCardNum == soundCard.nSoundCardNum) { for(const auto& road : soundCard.listRoad) { if(road.nRoadNum == nChannelID) { SoundCardRoadInfo_t roadInfo; roadInfo.nSoundCardNum = soundCard.nSoundCardNum; roadInfo.strSoundCardID = soundCard.strSoundCardID; roadInfo.strSoundCardName = soundCard.strSoundCardName; roadInfo.roadInfo = road; // 设置通道信息 return roadInfo; // 返回找到的声卡通道信息 } } } } SoundCardRoadInfo_t emptyInfo; emptyInfo.nSoundCardNum = -1; // 未找到时返回无效信息 emptyInfo.strSoundCardID = ""; emptyInfo.strSoundCardName = ""; emptyInfo.roadInfo.nRoadNum = -1; return emptyInfo; } /* 获取带有声卡信息的通道列表 */ const QList& SoundCardDataManager::getCurrSoundCardRoadList() const { return m_listSoundCardRoad; }