SoundCardData.cpp 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #include "SoundCardData.h"
  2. /* 初始化数据,获取声卡信息 */
  3. bool SoundCardManager::InitData()
  4. {
  5. /* 获取可用的声卡列表 */
  6. if(AudioDevice::getAudioDevices(m_listAudioDevice))
  7. {
  8. SPDLOG_INFO("成功获取到声卡设备信息");
  9. } else
  10. {
  11. SPDLOG_ERROR("获取声卡设备信息失败");
  12. }
  13. /* 打印声卡列表 */
  14. printAudioDevices();
  15. SPDLOG_INFO("----------------------------------------------------------------------------");
  16. // /* 获取并打印另一种声卡信息 */
  17. // std::list<AudioDeviceDesc_t> pcmDevices;
  18. // if(getPCMAudioDevice(pcmDevices))
  19. // {
  20. // SPDLOG_INFO("成功获取到PCM设备信息");
  21. // printAudioDeviceDesc(pcmDevices);
  22. // } else
  23. // {
  24. // SPDLOG_ERROR("获取PCM设备信息失败");
  25. // }
  26. return true;
  27. }
  28. /* 获取声卡信息,转换成系统使用的数据类型 */
  29. QMap<int, SoundCardInfo_t> SoundCardManager::getSoundCardInfo() const
  30. {
  31. QMap<int, SoundCardInfo_t> soundCardInfoMap;
  32. for(const auto& device : m_listAudioDevice)
  33. {
  34. SoundCardInfo_t soundCardInfo;
  35. soundCardInfo.nSoundCardNum = device.CardNumber;
  36. soundCardInfo.strSoundCardID = QString::fromStdString(device.CardID);
  37. soundCardInfo.strSoundCardName = QString::fromStdString(device.CardName);
  38. soundCardInfo.strSoundCardDriver = QString::fromStdString(device.CardDriver);
  39. for(const auto& pcmDevice : device.PCMDevices)
  40. {
  41. OneRoadInfo_t roadInfo;
  42. roadInfo.nRoadNum = pcmDevice.PCMDevice;
  43. soundCardInfo.listRoad.append(roadInfo);
  44. }
  45. soundCardInfoMap.insert(soundCardInfo.nSoundCardNum, soundCardInfo);
  46. }
  47. return soundCardInfoMap;
  48. }
  49. /* 打印声卡列表 */
  50. void SoundCardManager::printAudioDevices()
  51. {
  52. for(const auto& device : m_listAudioDevice)
  53. {
  54. SPDLOG_INFO("声卡编号: {}, ID: {}, 名称: {}, 驱动: {}, 长名称: {}, 混音器名称: {}, 组件信息: {}",
  55. device.CardNumber, device.CardID, device.CardName, device.CardDriver,
  56. device.CardLongName, device.CardMixername, device.CardComponents);
  57. for(const auto& pcmDevice : device.PCMDevices)
  58. {
  59. SPDLOG_INFO(" PCM设备编号: {}, 子设备编号: {}, 声卡编号: {}, PCM ID: {}, 名称: {}, 子设备名称: {}",
  60. pcmDevice.PCMDevice, pcmDevice.SubDevice, pcmDevice.CardNumber,
  61. pcmDevice.PCMID, pcmDevice.PCMName, pcmDevice.PCMSubName);
  62. }
  63. }
  64. }
  65. /* 打印声卡描述列表 */
  66. void SoundCardManager::printAudioDeviceDesc(std::list<AudioDeviceDesc_t>& pcmDevices)
  67. {
  68. for(const auto& device : pcmDevices)
  69. {
  70. SPDLOG_INFO("设备名称: {}, 描述: {}, IOID: {}, 声卡: {}, 设备编号: {}",
  71. device.DeviceName, device.DeviceDesc, device.IOID,
  72. device.Card, device.DevNum);
  73. }
  74. }
  75. /* 声卡信息写入数据库 */
  76. void SoundCardManager::writeAudioDeviceToDB()
  77. {
  78. }