15 #include <CoreAudio/CoreAudio.h> 17 typedef std::vector<SInt32> CoreAudioChannelList;
18 typedef std::list<AudioChannelLayoutTag> AudioChannelLayoutList;
20 const AudioChannelLayoutTag g_LayoutMap[] =
22 kAudioChannelLayoutTag_Stereo,
23 kAudioChannelLayoutTag_Stereo,
24 kAudioChannelLayoutTag_DVD_4,
25 kAudioChannelLayoutTag_MPEG_3_0_A,
26 kAudioChannelLayoutTag_DVD_10,
27 kAudioChannelLayoutTag_DVD_3,
28 kAudioChannelLayoutTag_DVD_6,
29 kAudioChannelLayoutTag_MPEG_5_0_A,
30 kAudioChannelLayoutTag_MPEG_5_1_A,
31 kAudioChannelLayoutTag_AudioUnit_7_0,
32 kAudioChannelLayoutTag_MPEG_7_1_A,
35 const AudioChannelLabel g_LabelMap[] =
37 kAudioChannelLabel_Unused,
38 kAudioChannelLabel_Left,
39 kAudioChannelLabel_Right,
40 kAudioChannelLabel_Center,
41 kAudioChannelLabel_LFEScreen,
42 kAudioChannelLabel_LeftSurroundDirect,
43 kAudioChannelLabel_RightSurroundDirect,
44 kAudioChannelLabel_LeftCenter,
45 kAudioChannelLabel_RightCenter,
46 kAudioChannelLabel_CenterSurround,
47 kAudioChannelLabel_LeftSurround,
48 kAudioChannelLabel_RightSurround,
49 kAudioChannelLabel_VerticalHeightLeft,
50 kAudioChannelLabel_VerticalHeightRight,
51 kAudioChannelLabel_VerticalHeightCenter,
52 kAudioChannelLabel_TopCenterSurround,
53 kAudioChannelLabel_TopBackLeft,
54 kAudioChannelLabel_TopBackRight,
55 kAudioChannelLabel_TopBackCenter
65 operator AudioChannelLayout*() {
return m_pLayout;}
67 bool CopyLayout(AudioChannelLayout &layout);
68 bool CopyLayoutForStereo(UInt32 layout[2]);
69 static UInt32 GetChannelCountForLayout(AudioChannelLayout &layout);
70 static const char* ChannelLabelToString(UInt32 label);
71 static const char* ChannelLayoutToString(AudioChannelLayout &layout, std::string &str);
72 bool AllChannelUnknown();
74 AudioChannelLayout* m_pLayout;
Definition: CoreAudioChannelLayout.h:58