MusicKit
0.0.0
|
00001 00002 // 00003 // $Id$ 00004 // 00005 // Description: 00006 // See the header description below. 00007 // 00008 // Original Author: SKoT McDonald, <skot@tomandandy.com> 00009 // 00010 // Copyright (c) 2001, The MusicKit Project. All rights reserved. 00011 // 00012 // Permission is granted to use and modify this code for commercial and 00013 // non-commercial purposes so long as the author attribution and copyright 00014 // messages remain intact and accompany all relevant code. 00015 // 00017 00018 #ifndef __SND_PLAYER_H__ 00019 #define __SND_PLAYER_H__ 00020 00021 #import <Foundation/Foundation.h> 00022 #import "SndStreamClient.h" 00023 #import "SndPerformance.h" 00024 00033 @interface SndPlayer : SndStreamClient 00034 { 00036 NSMutableArray *toBePlayed; 00038 NSMutableArray *playing; 00042 NSRecursiveLock *playingLock; 00046 BOOL remainConnectedToManager; 00052 NSMutableArray *removalArray; 00057 SndAudioBuffer *nativelyFormattedStreamingBuffer; 00058 00062 BOOL autoStartManager; 00069 SndPerformance *preemptingPerformance; 00070 } 00071 00078 + player; 00085 + (SndPlayer*) defaultSndPlayer; 00090 - init; 00094 - (void) dealloc; 00099 - (NSString *) description; 00105 - (SndPerformance *) playSnd: (Snd*) s; 00106 00113 - (SndPerformance *) playSnd: (Snd*) s withTimeOffset: (double) inSeconds; 00114 00123 - (SndPerformance *) playSnd: (Snd *) s 00124 withTimeOffset: (double) inSeconds 00125 beginAtIndex: (unsigned long) beginAtIndex 00126 endAtIndex: (unsigned long) endIndex; 00127 00136 - (SndPerformance *) playSnd: (Snd *) s 00137 atTimeInSeconds: (double) playT 00138 beginAtIndex: (unsigned long) beginAtIndex 00139 endAtIndex: (unsigned long) endAtIndex; 00140 00149 - (SndPerformance *) playSnd: (Snd *) s 00150 atTimeInSeconds: (double) playT 00151 startPositionInSeconds: (double) startpos 00152 durationInSeconds: (double) d; 00159 - stopSnd: (Snd*) s withTimeOffset: (double) inSeconds; 00165 - stopSnd: (Snd *) s; 00178 - stopPerformance: (SndPerformance *) performance inFuture: (double) inSeconds; 00190 - pauseSnd: (Snd*) s; 00198 - (void) processBuffers; 00212 - setRemainConnectedToManager: (BOOL) b; 00213 00222 - (BOOL) remainConnectedToManager; 00223 00230 - addPerformance: (SndPerformance*) aPerformance; 00231 00239 - (double) preemptQueuedStream; 00240 00248 - setAutoStartManager: (BOOL) yesOrNo; 00249 00257 - (BOOL) autoStartManager; 00258 00259 @end 00260 00262 00263 #endif