00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
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;
00218 double _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
00562 #import "MKPerformerDelegate.h"
00563
00564 #endif