MusicKit
0.0.0
|
00001 /* 00002 $Id$ 00003 Defined In: The MusicKit 00004 00005 Description: 00006 See the discussion 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-2003, The MusicKit Project. 00014 00015 Modification history in CVS at musickit.org 00016 */ 00017 00018 @class MKNote; 00019 @class MKScore; 00020 @class MKNoteSender; 00021 00180 #ifndef __MK_Part_H___ 00181 #define __MK_Part_H___ 00182 00183 #import <Foundation/NSObject.h> 00184 00185 @interface MKPart : NSObject 00186 { 00188 MKScore *score; 00190 NSMutableArray *notes; 00192 MKNote *info; 00194 unsigned int noteCount; 00196 BOOL isSorted; 00197 00198 @private 00199 MKNoteSender *_aNoteSender; /* Used only by MKScorefilePerformers. */ 00200 NSMutableArray *_activePerformanceObjs; 00201 int _highestOrderTag; /* For disambiguating binary search on identical time tagged MKNotes. */ 00202 } 00203 00208 + (MKPart *) part; 00209 00215 + partWithName: (NSString *) partName; 00216 00225 - sort; 00226 00234 - (BOOL) isSorted; 00235 00251 - combineNotes; 00252 00264 - splitNotes; 00265 00275 - addToScore: (MKScore *) newScore; 00276 00285 - removeFromScore; 00286 00292 - init; 00293 00297 - (void) dealloc; 00298 00309 - releaseNotes; 00310 00322 - releaseSelfOnly; 00323 00337 - firstTimeTag: (double) firstTimeTag lastTimeTag: (double) lastTimeTag; 00338 00346 - (MKPart *) addNote: (MKNote *) aNote; 00347 00357 - (MKNote *) addNoteCopy: (MKNote *) aNote; 00358 00368 - (MKNote *) removeNote: (MKNote *) aNote; 00369 00376 - removeNotes: (NSArray *) aNoteList; 00377 00381 - (void) removeAllNotes; 00382 00399 - addNoteCopies: (NSArray *) aNoteList timeShift: (double) shift; 00400 00416 - addNotes: (NSArray *) aNoteList timeShift: (double) shift; 00417 00428 - shiftTime: (double) shift; 00429 00435 - scaleTime: (double) scale; 00436 00443 - (unsigned) noteCount; 00444 00451 - (BOOL) containsNote: (MKNote *) aNote; 00452 00457 - (BOOL) hasSoundingNotes; 00458 00465 - (BOOL) isEmpty; 00466 00477 - (MKNote *) atTime: (double) timeTag; 00478 00487 - (MKNote *) atOrAfterTime: (double) timeTag; 00488 00494 - (MKNote *) atOrBeforeTime: (double) timeTag; 00495 00505 - (MKNote *) nth: (unsigned) n; 00506 00516 - (MKNote *) atOrAfterTime: (double) timeTag nth: (unsigned) n; 00517 00527 - (MKNote *) atTime: (double) timeTag nth: (unsigned) n; 00528 00541 - (MKNote *) next: (MKNote *) aNote; 00542 00549 - (double) earliestNoteTime; 00550 00558 - copyWithZone: (NSZone *) zone; 00559 00571 - copy; 00572 00583 - (NSArray *) notes; 00584 00593 - (NSMutableArray *) notesNoCopy; 00594 00602 - (MKScore *) score; 00603 00610 - (MKNote *) infoNote; 00611 00660 - (void) setInfoNote: (MKNote *) aNote; 00661 00666 - (NSString *) partName; 00667 00674 - (void) setPartName: (NSString *) newPartName; 00675 00683 - (BOOL) isNamed: (NSString *) partNameToFind; 00684 00685 - (void) encodeWithCoder: (NSCoder *) aCoder; 00686 - (id) initWithCoder: (NSCoder *) aDecoder; 00687 00688 - (NSString *) description; 00689 00690 @end 00691 00692 #endif