MusicKit  0.0.0
MKScorefilePerformer.h
00001 /*
00002   $Id$
00003   Defined In: The MusicKit
00004 
00005   Description:
00006     See 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 CCRMA, Stanford University
00013   Portions Copyright (c) 1999-2001, The MusicKit Project.
00014 */
00041 #ifndef __MK_ScorefilePerformer_H___
00042 #define __MK_ScorefilePerformer_H___
00043 
00044 #import "MKFilePerformer.h"
00045 
00046 @interface MKScorefilePerformer : MKFilePerformer
00047 {
00049     NSMutableData *scorefilePrintStream;
00051     MKNote *info;
00052 
00053 @private
00054     void *_p;
00055     NSMutableArray *_partStubs;
00056 }
00057  
00058 
00067 - init;
00068 
00069 +(NSString *)fileExtension;
00070  /* Obsolete (see fileExtensions)
00071   */
00072 
00082 + (NSArray *) fileExtensions;
00083 
00089 - (MKNote *) infoNote;
00090 
00104 - initializeFile; 
00105 
00114 - finishFile; 
00115 
00121 - (NSMutableData *) scorefilePrintStream;
00122 
00136 - (MKNote *) nextNote; 
00137 
00145 - (MKNote *) infoNoteForNoteSender: (MKNoteSender *) aNoteSender;
00146 
00154 - performNote: (MKNote *) aNote; 
00155 
00165 - (MKNoteSender *) midiNoteSender: (int) aChan;
00166 
00167  /* 
00168   * Frees the receiver, its MKNoteSenders, and its info MKNote.  If the
00169   * receiver is active, this does nothing and returns self. Otherwise,
00170   * returns nil. You never call this directly, it is called by the release
00171   * mechanism of NSObject.
00172   */
00173 - (void) dealloc;
00174 
00175  /* 
00176   * Creates and returns a new MKScorefilePerformer as a copy of the
00177   * receiver.  The info receiver's info MKNote is also copied.
00178   */
00179 - copyWithZone: (NSZone *) zone;
00180 
00181 /* 
00182  You never send this message directly.  
00183  Should be invoked via NSArchiver. 
00184  Invokes superclass write:, which archives MKNoteSenders.
00185  Then archives info and part infos gleaned from the Scorefile.
00186  */
00187 - (void) encodeWithCoder: (NSCoder *) aCoder;
00188 
00189 /* 
00190  You never send this message directly.  
00191  Should be invoked via NSArchiver. 
00192  Note that -init is not sent to newly unarchived objects.
00193  */
00194 - (id) initWithCoder: (NSCoder *) aDecoder;
00195 
00196 @end
00197 
00198 #endif