Merge pull request #26287 from CrystalP/ref-savefilestatejob
[xbmc.git] / xbmc / cores / AudioEngine / Utils / AEDeviceInfo.cpp
blob87dc678f5f3ff89b2b7fd03209546ed83627ef64
1 /*
2 * Copyright (C) 2012-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
7 */
9 #include "AEDeviceInfo.h"
11 #include "AEUtil.h"
13 #include <sstream>
15 CAEDeviceInfo::operator std::string()
17 std::stringstream ss;
18 ss << "m_deviceName : " << m_deviceName << '\n';
19 ss << "m_displayName : " << m_displayName << '\n';
20 ss << "m_displayNameExtra: " << m_displayNameExtra << '\n';
21 ss << "m_deviceType : " << DeviceTypeToString(m_deviceType) + '\n';
22 ss << "m_channels : " << (std::string)m_channels << '\n';
24 ss << "m_sampleRates : ";
25 for (AESampleRateList::iterator itt = m_sampleRates.begin(); itt != m_sampleRates.end(); ++itt)
27 if (itt != m_sampleRates.begin())
28 ss << ',';
29 ss << *itt;
31 ss << '\n';
33 ss << "m_dataFormats : ";
34 for (AEDataFormatList::iterator itt = m_dataFormats.begin(); itt != m_dataFormats.end(); ++itt)
36 if (itt != m_dataFormats.begin())
37 ss << ',';
38 ss << CAEUtil::DataFormatToStr(*itt);
40 ss << '\n';
42 ss << "m_streamTypes : ";
43 for (AEDataTypeList::iterator itt = m_streamTypes.begin(); itt != m_streamTypes.end(); ++itt)
45 if (itt != m_streamTypes.begin())
46 ss << ',';
47 ss << CAEUtil::StreamTypeToStr(*itt);
49 if (m_streamTypes.empty())
50 ss << "No passthrough capabilities";
51 ss << '\n';
53 return ss.str();
56 std::string CAEDeviceInfo::DeviceTypeToString(enum AEDeviceType deviceType)
58 switch (deviceType)
60 case AE_DEVTYPE_PCM : return "AE_DEVTYPE_PCM" ; break;
61 case AE_DEVTYPE_IEC958: return "AE_DEVTYPE_IEC958"; break;
62 case AE_DEVTYPE_HDMI : return "AE_DEVTYPE_HDMI" ; break;
63 case AE_DEVTYPE_DP : return "AE_DEVTYPE_DP" ; break;
65 return "INVALID";
68 std::string CAEDeviceInfo::GetFriendlyName() const
70 return (m_deviceName != m_displayName) ? m_displayName : m_displayNameExtra;
73 std::string CAEDeviceInfo::ToDeviceString(const std::string& driver) const
75 std::string device = driver.empty() ? m_deviceName : driver + ":" + m_deviceName;
77 const std::string fn = GetFriendlyName();
78 if (!fn.empty())
79 device += "|" + fn;
81 return device;