Rules for Tools/struct Edit
struct Edit
struct Edit {
struct Edit *next; /* Next in list of edit windows. */
struct Track *track; /* Track that may own this. */
struct RastPort *rp;
struct Clip *clip; /* Clip that we are editing. */
struct Clip cut; /* Cut clip. */
struct Clip undo; /* Undo clip. */
struct Window *window; /* This window. */
struct Window *notewindow; /* The note display window. */
struct NewWindow *newwindow;
struct NewWindow *newnotewindow;
struct NoteEvent *displaynote;/* First event displayed. */
long cursor; /* Cursor for single step entry. */
long listenstart; /* Starting offset for listen. */
long listenend; /* Ending offset for listen. */
struct NoteEvent *fillsequence;/* Temp list for filling notes. */
struct NoteRef *boxlist; /* For box operations. */
struct Tool *edittool;
struct ChordEvent *newchord;
struct StringEvent *newlyric;
struct KeyEvent *newkey;
struct RhythmEvent *newrhythm;
struct DynamicsEvent *newdynamics;
struct TimeSigEvent *newtimesig;
struct NoteEvent *selectnote;/* Note currently selected. */
struct NoteEvent *lastselectnote;/* Note previously selected. */
char title[20];
short x,y;
unsigned short width; /* Width of display box. */
unsigned short height; /* Height of display box. */
unsigned short leftedge; /* Left edge of note display. */
unsigned short rightedge; /* Right edge of box, w coords.*/
unsigned short topedge; /* Top edge of box. */
unsigned short bottomedge; /* Bottom edge of box. */
unsigned long leftstart; /* Distance from window to start*/
of seq. */
long datawidth; /* Width of entire sequence. */
long listcount; /* Length of list. */
long listindent; /* Distance in of index into list. */
struct NoteEvent *listfirst;/* First event displayed in list. */
struct NoteEvent *listlast; /* Last event displayed in list. */
long boxleft,boxright;
unsigned short dataheight; /* Height of entire sequence. */
short boxtop, boxbottom;
short lyricbase;
short chordbase;
short keybase;
short rhythmbase;
short dynamicsbase;
short timesigbase;
short tabbase;
short notationbase;
short staffbase;
short pianobase; /* Height from top to bottom of notes. */
short velocitybase; /* Same for velocity display. */
short controlbase; /* And the rest... */
short pbendbase;
short mtouchbase;
short ptouchbase;
short patchbase;
short sysexbase;
char lastpbend;
char lastcontrol;
char lastmtouch;
char lastpatch;
long pbendtime;
long controltime;
long mtouchtime;
long patchtime;
char inedit; /* Currently open. */
short selectdata; /* Data associated with selected note. */
char shiftkey; /* Shift key is down. */
enum emenu menukey; /* Previously, a key to select a menu had
been pushed */
char selecttype; /* Which display note selected in. */
char lastselecttype; /* Which display last note selected was in. */
long basetime; /* Base time for changing event time. */
long inctime; /* Increment or decrement value. */
long listenpoint; /* Start of listen region. */
short itemheight; /* Height to display list item. */
short notelen; /* Keep track of note length when drawing. */
long refreshstart,refreshend;/* Where to start and finish
notation refresh. */
short toprange;
short bottomrange; /* Range for notating one staff. */
short centerrange; /* Range for notating one staff. */
short trebletop; /* Y position of top staff line. */
short treblebottom; /* Y position of bottom staff line. */
short basstop; /* Y position of top staff line. */
short bassbottom; /* Y position of bottom staff line. */
short oldtopedge, oldbottomedge, oldleftedge, oldrightedge,
oldnotationbase;
short initialpos;
short comparepos;
/* Start of saved data */
long editmode; /* What mode the mouse editor is in. */
long showbits; /* Which items to show. */
long modebits; /* Preference flags. */
long begin, end; /* Region markers. */
short windowleftedge, windowtopedge, windowwidth, windowheight;
short listwindowleftedge, listwindowtopedge, listwindowheight;
short notewindowleftedge, notewindowtopedge;
short toolid;
short shift;
unsigned short topstart; /* Distance from window to top of data. */
short listshow; /* Number of items visible. */
unsigned char controlnum; /* Control number of displayed cc. */
char centernote; /* Center note for staff. */
char useclip; /* Flag to use clipboard. */
char listedit; /* Flag to use list editor. */
char inserttype; /* Type of inserted note. */
char insertalter; /* Special flags (triplets, etc.) */
short insertlength; /* Resultimg length. */
short insertduration; /* Resulting duration. */
char insertdtype; /* Duration type. */
char insertvtype; /* Velocity type. */
unsigned char insertvelocity;/* Resulting value. */
short notatequant; /* Notation quantization. */
char notateres; /* Notation quantization. */
char notatekey; /* Notation key. */
char notatetrans; /* Notation offset. */
char transid; /* Id of transposition. */
short notatebits; /* Notation preferences. */
char transcenter; /* Tranposed center note. */
char lownote; /* The lowest displayed note. */
char highnote; /* The highest displayed note. */
short trbits; /* Notation transcription options. */
char tabstrings; /* how many strings in tablature */
char string[12]; /* up to 12 strings, value for each*/ string */
char highfret; /* Highest fret number */
char ntbits; /* Notation options. */
unsigned short noteconvert[NT_LEN][NL_LEN][NR_LEN];
/* represents: [Notetype][Length][Range]*/
* i.e. [triplet][n8][low] = 155; [triplet][n8][high] = 160;
*/
char tabposition; /* the position to notate if position notation
is requested */
short stringbits; /* which strings are active to be notated upon */
short tabresolution;
short selectmask; /* For selective Toolize */
char selectlower;
char selectupper;
};