MusicKit  0.0.0
SndPlayer.h
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