MusicKit
0.0.0
|
00001 /* 00002 $Id$ 00003 Defined In: The MusicKit 00004 00005 Description: 00006 Defines structures and function prototypes for _MKParameter. 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-2000 The MusicKit Project. 00014 */ 00015 /* 00016 Modification history: 00017 00018 $Log$ 00019 Revision 1.9 2006/02/05 17:57:10 leighsmith 00020 Cleaned up prototypes for Xcode 2.2 as it is much more strict about mixing id with a defined type 00021 00022 Revision 1.8 2002/04/16 15:07:38 sbrandon 00023 removed a couple of defunct imports 00024 00025 Revision 1.7 2000/10/11 02:55:13 leigh 00026 added import of MKNote.h to fix tokens.h import 00027 00028 Revision 1.6 2000/10/01 07:00:29 leigh 00029 Added full prototypes of functions, moved _MKKeyNumPrintfunc to TuningSystemPrivate.h 00030 00031 Revision 1.5 2000/06/09 14:59:57 leigh 00032 Removed objc.h 00033 00034 Revision 1.4 2000/05/06 00:30:48 leigh 00035 Better typing of _MKParAsInt() 00036 00037 Revision 1.3 2000/02/07 00:30:14 leigh 00038 removed _MKHighestPar() 00039 00040 Revision 1.2 1999/07/29 01:25:59 leigh 00041 Added Win32 compatibility, CVS logs, SBs changes 00042 00043 daj/04/23/90 - Created from _musickit.h 00044 08/13/90/daj - Added _MKParNameStr(). 00045 */ 00046 #ifndef __MK__parameter_H___ 00047 #define __MK__parameter_H___ 00048 00049 #import <Foundation/Foundation.h> 00050 #import "params.h" 00051 #import "MKNote.h" 00052 #import "tokens.h" // for _MKToken 00053 00054 typedef union __MKParameterUnion { 00055 /* Used for Parameters and scoreFile parsing. */ 00056 id symbol; /* This type is needed for scorefile parsing. 00057 Also used for storing envelopes and wavetables. */ 00058 double rval; 00059 NSString *sval; 00060 int ival; 00061 } _MKParameterUnion; 00062 00063 typedef struct __MKParameter 00064 { 00065 _MKParameterUnion _uVal; /* Value. */ 00066 short _uType; /* Type of union. */ 00067 short parNum; /* Number of this parameter. */ 00068 } 00069 _MKParameter; 00070 00071 #define _MK_FIRSTAPPPAR (MK_MKPARBITVECTS * 32) 00072 00073 /* _MKParameter and _MKParName object 'methods' */ 00074 extern id _MKParNameObj(int aPar); 00075 extern NSString *_MKParNameStr(int aPar); 00076 extern BOOL _MKParInit(void); 00077 extern _MKParameter *_MKNewStringPar(NSString * value, int parNum); 00078 extern _MKParameter *_MKNewDoublePar(double value, int parNum); 00079 extern _MKParameter *_MKNewIntPar(int value, int parNum); 00080 extern _MKParameter *_MKNewObjPar(id value, int parNum, _MKToken type); 00081 extern _MKParameter *_MKSetDoublePar(_MKParameter * param, double value); 00082 extern double _MKParAsDouble(_MKParameter *param); 00083 extern _MKParameter *_MKSetIntPar(_MKParameter *param, int value); 00084 extern int _MKParAsInt(_MKParameter *param); 00085 extern _MKParameter *_MKSetStringPar(_MKParameter *param, NSString *value); 00086 extern NSString *_MKParAsString(_MKParameter *param); 00087 extern _MKParameter *_MKSetObjPar(_MKParameter *param, id value, _MKToken type); 00088 extern id _MKParAsObj(_MKParameter *param); 00089 // These should be statically typed 00090 extern id _MKParAsEnv(_MKParameter *param); 00091 extern id _MKParAsWave(_MKParameter *param); 00092 extern _MKParameterUnion *_MKParRaw(_MKParameter *param); 00093 extern NSString * _MKParAsStringNoCopy(_MKParameter *param); 00094 extern BOOL _MKIsParPublic(_MKParameter *param); 00095 extern _MKParameter * _MKCopyParameter(_MKParameter *aPar); 00096 00097 #import "_scorefile.h" 00098 00099 extern void _MKParWriteStdValueOn(_MKParameter *rcvr, NSMutableData *aStream, _MKScoreOutStruct *p); 00100 extern void _MKParWriteOn(_MKParameter *rcvr, NSMutableData *aStream, _MKScoreOutStruct *p); 00101 extern void _MKParWriteValueOn(_MKParameter *rcvr, NSMutableData *aStream, _MKScoreOutStruct *p); 00102 extern void _MKArchiveParOn(_MKParameter *param, NSCoder *aTypedStream); /*sb: NSCoder originally converted as NSArchiver */ 00103 extern void _MKUnarchiveParOn(_MKParameter *param, NSCoder *aTypedStream); /*sb: originally converted as NSArchiver */ 00104 extern id _MKDummyParameter(); 00105 extern BOOL _MKIsPar(unsigned aPar); 00106 extern BOOL _MKIsPrivatePar(unsigned aPar); 00107 00108 typedef enum __MKPrivPar { 00109 _MK_dur = ((int)MK_privatePars + 1), 00110 _MK_maxPrivPar /* Must be <= MK_appPars */ 00111 } 00112 _MKPrivPar; 00113 00114 extern _MKParameter *_MKFreeParameter(_MKParameter *param); 00115 00116 #endif