--Author: John Maxwell --last modified: November 28, 1981 8:46 AM DIRECTORY MusicDefs: FROM "MusicDefs"; Piece: DEFINITIONS IMPORTS MusicDefs = BEGIN OPEN MusicDefs; default:INTEGER = 1000; AddSync:PROCEDURE[p:PiecePTR,s:SyncPTR]; CleanUpNotes:PROCEDURE[p:PiecePTR]; CleanUpSyncs:PROCEDURE[p:PiecePTR]; Copy:PROCEDURE[time1,time2:Time] RETURNS[PiecePTR]; Delete:PROCEDURE[begin,end:Time]; DeleteSync:PROCEDURE[s:SyncPTR]; Insert:PROCEDURE[begin:Time,new:PiecePTR]; -- new gets deleted when done MaxToc:PROCEDURE[piece:PiecePTR,time1,time2:Time,duration:BOOLEAN] RETURNS[Time]; Merge:PROCEDURE[begin,end:Time,p:PiecePTR]; -- new gets deleted when done NearestNote:PROCEDURE[x,y:INTEGER_default] RETURNS[NotePTR]; NearestObject:PROCEDURE[x,y:INTEGER_default] RETURNS[obj:ObjectType,p:UnspecifiedPTR]; NearestSync:PROCEDURE[p:PiecePTR,t:Time,notesOnly:BOOLEAN_FALSE] RETURNS[index:CARDINAL]; RemoveSync:PROCEDURE[p:PiecePTR,s:SyncPTR]; Replace:PROCEDURE[delete1,delete2,copy1,copy2:Time]; Sort:PROCEDURE[p:PiecePTR]; --INLINE Procedures Length:PROCEDURE[p:PiecePTR] RETURNS[CARDINAL] = INLINE {IF p=NIL THEN RETURN[0]; IF p=MusicDefs.score THEN RETURN[scoreLength]; FOR i:CARDINAL IN [0..maxPieceLength] DO IF i=maxPieceLength THEN RETURN[i]; IF p[i]=NIL THEN RETURN[i]; ENDLOOP; ERROR}; END.. (1792)\198b8B34b12B24b12B24b4B48b6B28b10B23b6B67b6B76b5B69b11B50b13B74b11B79b10B34b7B46b4B46b6B291b