11 #include "cores/AudioEngine/Sinks/osx/CoreAudioDevice.h" 12 #include "cores/AudioEngine/Utils/AEAudioFormat.h" 13 #include "cores/AudioEngine/Utils/AEDeviceInfo.h" 21 AudioDeviceID audioDeviceId;
22 unsigned int streamIndex;
23 unsigned int sourceId;
25 typedef std::vector< std::pair<struct CADeviceInstance, CAEDeviceInfo> > CADeviceList;
51 CADeviceList GetDeviceInfoList()
const;
66 unsigned int GetNumPlanes()
const;
85 bool FindSuitableFormatForStream(UInt32 &streamIdx,
const AEAudioFormat &format,
bool virt,
86 AudioStreamBasicDescription &outputFormat,
87 AudioStreamID &outputStream)
const;
103 void GetAEChannelMap(
CAEChannelInfo &channelMap,
unsigned int channelsPerFrame)
const;
118 float ScoreFormat(
const AudioStreamBasicDescription &formatDesc,
const AEAudioFormat &format)
const;
126 bool isDigitalDevice()
const;
135 void hasPassthroughOrDigitalFormats(
const StreamFormatList &formatList,
136 bool &hasPassthroughFormats,
137 bool &hasDigitalFormat)
const;
147 enum AEDeviceType getDeviceType(
bool hasPassthroughFormats,
bool isDigital,
148 UInt32 numChannels, UInt32 transportType)
const;
153 void fillStreamList();
164 float scoreSampleRate(Float64 destinationRate,
unsigned int sourceRate)
const;
166 bool hasSampleRate(
const AESampleRateList &list,
const unsigned int samplerate)
const;
167 bool hasDataFormat(
const AEDataFormatList &list,
const enum AEDataFormat format)
const;
168 bool hasDataType(
const AEDataTypeList &list, CAEStreamInfo::DataType type)
const;
179 AEDataFormatList caFormatToAE(
const AudioStreamBasicDescription &formatDesc,
bool isDigital)
const;
180 AEDataTypeList caFormatToAEType(
const AudioStreamBasicDescription &formatDesc,
bool isDigital)
const;
188 enum AEChannel caChannelToAEChannel(
const AudioChannelLabel &CAChannelLabel)
const;
197 AEDataFormatList getFormatListForStream(UInt32 streamIdx)
const;
199 AEDataTypeList getTypeListForStream(UInt32 streamIdx)
const;
213 AESampleRateList getSampleRateListForStream(UInt32 streamIdx)
const;
220 std::string getDeviceNameForStream(UInt32 streamIdx)
const;
228 std::string getExtraDisplayNameForStream(UInt32 streamIdx)
const;
230 AudioDeviceID m_deviceID;
231 bool m_isPlanar =
false;
232 std::string m_deviceName;
236 AudioStreamID streamID;
237 StreamFormatList formatList;
238 StreamFormatList formatListVirt;
241 bool hasPassthroughFormats;
242 enum AEDeviceType deviceType;
244 std::vector<caStreamInfo> m_caStreamInfos;
bool IsPlanar() const
Checks if the m_deviceID belongs to a planar or non-planar device.
Definition: AEDeviceEnumerationOSX.h:72
std::string GetMasterDeviceName() const
Returns the device name which belongs to m_deviceID without any stream/source suffixes.
Definition: AEDeviceEnumerationOSX.h:93
Definition: CoreAudioDevice.h:25
Definition: AEDeviceEnumerationOSX.h:19
Definition: AEChannelInfo.h:19
Definition: AEDeviceEnumerationOSX.h:34