SoundCardData.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. void SoundCardManager::printAudioDevices()
  30. {
  31. for(const auto& device : m_listAudioDevice)
  32. {
  33. SPDLOG_INFO("声卡编号: {}, ID: {}, 名称: {}, 驱动: {}, 长名称: {}, 混音器名称: {}, 组件信息: {}",
  34. device.CardNumber, device.CardID, device.CardName, device.CardDriver,
  35. device.CardLongName, device.CardMixername, device.CardComponents);
  36. for(const auto& pcmDevice : device.PCMDevices)
  37. {
  38. SPDLOG_INFO(" PCM设备编号: {}, 子设备编号: {}, 声卡编号: {}, PCM ID: {}, 名称: {}, 子设备名称: {}",
  39. pcmDevice.PCMDevice, pcmDevice.SubDevice, pcmDevice.CardNumber,
  40. pcmDevice.PCMID, pcmDevice.PCMName, pcmDevice.PCMSubName);
  41. }
  42. }
  43. }
  44. /* 打印声卡描述列表 */
  45. void SoundCardManager::printAudioDeviceDesc(std::list<AudioDeviceDesc_t>& pcmDevices)
  46. {
  47. for(const auto& device : pcmDevices)
  48. {
  49. SPDLOG_INFO("设备名称: {}, 描述: {}, IOID: {}, 声卡: {}, 设备编号: {}",
  50. device.DeviceName, device.DeviceDesc, device.IOID,
  51. device.Card, device.DevNum);
  52. }
  53. }