AEAudioUnitChannel.h
Go to the documentation of this file.
1 //
2 // AEAudioUnitChannel.h
3 // TheAmazingAudioEngine
4 //
5 // Created by Michael Tyson on 01/02/2013.
6 //
7 // This software is provided 'as-is', without any express or implied
8 // warranty. In no event will the authors be held liable for any damages
9 // arising from the use of this software.
10 //
11 // Permission is granted to anyone to use this software for any purpose,
12 // including commercial applications, and to alter it and redistribute it
13 // freely, subject to the following restrictions:
14 //
15 // 1. The origin of this software must not be misrepresented; you must not
16 // claim that you wrote the original software. If you use this software
17 // in a product, an acknowledgment in the product documentation would be
18 // appreciated but is not required.
19 //
20 // 2. Altered source versions must be plainly marked as such, and must not be
21 // misrepresented as being the original software.
22 //
23 // 3. This notice may not be removed or altered from any source distribution.
24 //
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #import <Foundation/Foundation.h>
31 #import "AEAudioController.h"
32 
41 @interface AEAudioUnitChannel : NSObject <AEAudioPlayable>
42 
49 - (id)initWithComponentDescription:(AudioComponentDescription)audioComponentDescription;
50 
59 - (id)initWithComponentDescription:(AudioComponentDescription)audioComponentDescription
60  preInitializeBlock:(void(^)(AudioUnit audioUnit))preInitializeBlock;
61 
71 AudioUnit AEAudioUnitChannelGetAudioUnit(__unsafe_unretained AEAudioUnitChannel * channel);
72 
79 - (double)getParameterValueForId:(AudioUnitParameterID)parameterId;
80 
91 - (void)setParameterValue:(double)value forId:(AudioUnitParameterID)parameterId;
92 
98 @property (nonatomic, assign) float volume;
99 
105 @property (nonatomic, assign) float pan;
106 
107 /*
108  * Whether channel is currently playing
109  *
110  * If this is NO, then the track will be silenced and no further render callbacks
111  * will be performed until set to YES again.
112  */
113 @property (nonatomic, assign) BOOL channelIsPlaying;
114 
115 /*
116  * Whether channel is muted
117  *
118  * If YES, track will be silenced, but render callbacks will continue to be performed.
119  */
120 @property (nonatomic, assign) BOOL channelIsMuted;
121 
125 @property (nonatomic, readonly) AudioUnit audioUnit;
126 
130 @property (nonatomic, readonly) AUNode audioGraphNode;
131 
132 @end
133 
134 #ifdef __cplusplus
135 }
136 #endif