MusicKit
0.0.0
|
00001 /* 00002 $Id$ 00003 Defined In: The MusicKit 00004 00005 Description: 00006 Full description is in the class description below. 00007 00008 Original Author: David A. Jaffe 00009 00010 Copyright (c) 1988-1992, NeXT Computer, Inc. 00011 Portions Copyright (c) 1994 NeXT Computer, Inc. and reproduced under license from NeXT 00012 Portions Copyright (c) 1994 Stanford University. 00013 Portions Copyright (c) 1999-2004, The MusicKit Project. 00014 */ 00167 #ifndef __MK_Performer_H___ 00168 #define __MK_Performer_H___ 00169 00170 #import <Foundation/Foundation.h> 00171 #import "MKNoteSender.h" 00172 #import "MKConductor.h" 00173 00182 typedef enum _MKPerformerStatus { 00184 MK_inactive, 00189 MK_active, 00191 MK_paused 00192 } MKPerformerStatus; 00193 00194 @interface MKPerformer : NSObject 00195 { 00197 MKConductor *conductor; 00199 MKPerformerStatus status; 00201 int performCount; 00203 double timeShift; 00205 double duration; 00208 double time; 00210 double nextPerform; 00212 NSMutableArray *noteSenders; 00214 id delegate; 00215 00216 @private 00217 double _pauseOffset; // Difference between the beat when a performer is paused and its time. 00218 double _endTime; // End time for the object. Subclass should not set _endTime. 00219 MKMsgStruct *_performMsgPtr; 00220 MKMsgStruct *_deactivateMsgPtr; 00221 MKMsgStruct *_pauseForMsgPtr; 00222 } 00223 00231 - (NSArray *) noteSenders; 00232 00238 - (BOOL) isNoteSenderPresent: (MKNoteSender *) aNoteSender; 00239 00244 - disconnectNoteSenders; 00245 00250 - releaseNoteSenders; 00251 00256 - removeNoteSenders; 00257 00267 - (MKNoteSender *) noteSender; 00268 00282 - (MKNoteSender *) removeNoteSender: (MKNoteSender *) aNoteSender; 00283 00294 - (MKNoteSender *) addNoteSender: (MKNoteSender *) aNoteSender; 00295 00303 - (BOOL) setConductor: (MKConductor *) aConductor; 00304 00309 - (MKConductor *) conductor; 00310 00323 - activateSelf; 00324 00332 - perform; 00333 00343 - setTimeShift: (double) timeShift; 00344 00355 - setDuration: (double) dur; 00356 00361 - (double) timeShift; 00362 00367 - (double) duration; 00368 00373 - (int) status; 00374 00380 - (int) performCount; 00381 00397 - activate; 00398 00408 - (void) deactivate; 00409 00419 - init; 00420 00428 - pause; 00429 00436 -pauseFor: (double) beats; 00437 00445 - resume; 00446 00457 - copyWithZone: (NSZone *) zone; 00458 00469 - (double) time; 00470 00476 - setFirstTimeTag: (double) v; 00477 00483 - setLastTimeTag: (double) v; 00484 00490 - (double) firstTimeTag; 00491 00498 - (double) lastTimeTag; 00499 00506 - (void) setDelegate: (id) object; 00507 00512 - delegate; 00513 00525 - rescheduleBy: (double) aTimeIncrement; 00526 00536 - rescheduleAtTime: (double) aTime; 00537 00544 - (void) encodeWithCoder: (NSCoder *) aCoder; 00545 00551 - (id) initWithCoder: (NSCoder *) aDecoder; 00552 00557 - (BOOL) inPerformance; 00558 00559 @end 00560 00561 /* Describes the protocol that may be implemented by the delegate: */ 00562 #import "MKPerformerDelegate.h" 00563 00564 #endif