PortAudio  2.0
pa_mac_core.h
Go to the documentation of this file.
1 #ifndef PA_MAC_CORE_H
2 #define PA_MAC_CORE_H
3 /*
4  * PortAudio Portable Real-Time Audio Library
5  * Macintosh Core Audio specific extensions
6  * portaudio.h should be included before this file.
7  *
8  * Copyright (c) 2005-2006 Bjorn Roche
9  *
10  * Permission is hereby granted, free of charge, to any person obtaining
11  * a copy of this software and associated documentation files
12  * (the "Software"), to deal in the Software without restriction,
13  * including without limitation the rights to use, copy, modify, merge,
14  * publish, distribute, sublicense, and/or sell copies of the Software,
15  * and to permit persons to whom the Software is furnished to do so,
16  * subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be
19  * included in all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
24  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
25  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
26  * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28  */
29 
30 /*
31  * The text above constitutes the entire PortAudio license; however,
32  * the PortAudio community also makes the following non-binding requests:
33  *
34  * Any person wishing to distribute modifications to the Software is
35  * requested to send the modifications to the original developer so that
36  * they can be incorporated into the canonical version. It is also
37  * requested that these non-binding requests be included along with the
38  * license above.
39  */
40 
46 #include "portaudio.h"
47 
48 #include <AudioUnit/AudioUnit.h>
49 #include <AudioToolbox/AudioToolbox.h>
50 
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54 
55 
63 typedef struct
64 {
65  unsigned long size;
67  unsigned long version;
68  unsigned long flags;
69  SInt32 const * channelMap;
70  unsigned long channelMapSize;
72 
84 void PaMacCore_SetupStreamInfo( PaMacCoreStreamInfo *data, unsigned long flags );
85 
91 void PaMacCore_SetupChannelMap( PaMacCoreStreamInfo *data, const SInt32 * const channelMap, unsigned long channelMapSize );
92 
100 AudioDeviceID PaMacCore_GetStreamInputDevice( PaStream* s );
101 
109 AudioDeviceID PaMacCore_GetStreamOutputDevice( PaStream* s );
110 
125 const char *PaMacCore_GetChannelName( int device, int channelIndex, bool input );
126 
127 
137  long *minBufferSizeFrames, long *maxBufferSizeFrames );
138 
139 
154 #define paMacCoreChangeDeviceParameters (0x01)
155 
159 #define paMacCoreFailIfConversionRequired (0x02)
160 
163 #define paMacCoreConversionQualityMin (0x0100)
164 #define paMacCoreConversionQualityMedium (0x0200)
165 #define paMacCoreConversionQualityLow (0x0300)
166 #define paMacCoreConversionQualityHigh (0x0400)
167 #define paMacCoreConversionQualityMax (0x0000)
168 
177 #define paMacCorePlayNice (0x00)
178 
180 #define paMacCorePro (0x01)
181 
182 #define paMacCoreMinimizeCPUButPlayNice (0x0100)
183 
184 #define paMacCoreMinimizeCPU (0x0101)
185 
186 
187 #ifdef __cplusplus
188 }
189 #endif
191 #endif