#include "SoundCardData.h" /* 初始化数据,获取声卡信息 */ bool SoundCardManager::InitData() { /* 获取可用的声卡列表 */ if(AudioDevice::getAudioDevices(m_listAudioDevice)) { SPDLOG_INFO("成功获取到声卡设备信息"); } else { SPDLOG_ERROR("获取声卡设备信息失败"); } /* 打印声卡列表 */ printAudioDevices(); SPDLOG_INFO("----------------------------------------------------------------------------"); // /* 获取并打印另一种声卡信息 */ // std::list pcmDevices; // if(getPCMAudioDevice(pcmDevices)) // { // SPDLOG_INFO("成功获取到PCM设备信息"); // printAudioDeviceDesc(pcmDevices); // } else // { // SPDLOG_ERROR("获取PCM设备信息失败"); // } return true; } /* 获取声卡信息,转换成系统使用的数据类型 */ QMap SoundCardManager::getSoundCardInfo() const { QMap soundCardInfoMap; for(const auto& device : m_listAudioDevice) { SoundCardInfo_t soundCardInfo; soundCardInfo.nSoundCardNum = device.CardNumber; soundCardInfo.strSoundCardID = QString::fromStdString(device.CardID); soundCardInfo.strSoundCardName = QString::fromStdString(device.CardName); soundCardInfo.strSoundCardDriver = QString::fromStdString(device.CardDriver); for(const auto& pcmDevice : device.PCMDevices) { OneRoadInfo_t roadInfo; roadInfo.nRoadNum = pcmDevice.PCMDevice; soundCardInfo.listRoad.append(roadInfo); } soundCardInfoMap.insert(soundCardInfo.nSoundCardNum, soundCardInfo); } return soundCardInfoMap; } /* 打印声卡列表 */ void SoundCardManager::printAudioDevices() { for(const auto& device : m_listAudioDevice) { SPDLOG_INFO("声卡编号: {}, ID: {}, 名称: {}, 驱动: {}, 长名称: {}, 混音器名称: {}, 组件信息: {}", device.CardNumber, device.CardID, device.CardName, device.CardDriver, device.CardLongName, device.CardMixername, device.CardComponents); for(const auto& pcmDevice : device.PCMDevices) { SPDLOG_INFO(" PCM设备编号: {}, 子设备编号: {}, 声卡编号: {}, PCM ID: {}, 名称: {}, 子设备名称: {}", pcmDevice.PCMDevice, pcmDevice.SubDevice, pcmDevice.CardNumber, pcmDevice.PCMID, pcmDevice.PCMName, pcmDevice.PCMSubName); } } } /* 打印声卡描述列表 */ void SoundCardManager::printAudioDeviceDesc(std::list& pcmDevices) { for(const auto& device : pcmDevices) { SPDLOG_INFO("设备名称: {}, 描述: {}, IOID: {}, 声卡: {}, 设备编号: {}", device.DeviceName, device.DeviceDesc, device.IOID, device.Card, device.DevNum); } } /* 声卡信息写入数据库 */ void SoundCardManager::writeAudioDeviceToDB() { }