bool AEDeviceEnumerationOSX::hasDataFormat(const AEDataFormatList &list, const enum AEDataFormat format) const { for (size_t i = 0; i < list.size(); ++i) { if (list[i] == format) return true; } return false; }
AEDataFormatList AEDeviceEnumerationOSX::getFormatListForStream(UInt32 streamIdx) const { AEDataFormatList returnDataFormatList; if (streamIdx >= m_caStreamInfos.size()) return returnDataFormatList; // check the streams const StreamFormatList &formatList = m_caStreamInfos[streamIdx].formatList; for(UInt32 formatIdx = 0; formatIdx < formatList.size(); formatIdx++) { AudioStreamBasicDescription formatDesc = formatList[formatIdx].mFormat; AEDataFormatList aeFormatList = caFormatToAE(formatDesc, m_caStreamInfos[streamIdx].isDigital); for (UInt32 formatListIdx = 0; formatListIdx < aeFormatList.size(); formatListIdx++) { if (!hasDataFormat(returnDataFormatList, aeFormatList[formatListIdx])) returnDataFormatList.push_back(aeFormatList[formatListIdx]); } } return returnDataFormatList; }