/* TieTracking.h */

#ifndef Included_TieTracking_h
#define Included_TieTracking_h

/* TieTracking module depends on */
/* MiscInfo.h */
/* Audit */
/* Debug */
/* Definitions */
/* NoteObject */
/* Array */
/* Memory */

struct TieTrackRec;
typedef struct TieTrackRec TieTrackRec;

/* forwards */
struct NoteObjectRec;

/* create a new tie tracking record */
TieTrackRec*			NewTieTracker(void);

/* dump the tie tracker thing */
void							DisposeTieTracker(TieTrackRec* TieTracker);

/* find out if there is a tie source in the object for the destination. */
/* the pair is removed from the list */
MyBoolean					GetTieSourceFromDestination(TieTrackRec* TieTracker,
										long* SourcePixelX, long* SourcePixelY,
										struct NoteObjectRec** SourceNote,
										struct NoteObjectRec* CurrentNote);

/* add a new tie pair to the list of tie pairs */
MyBoolean					AddTiePairToTieTracker(TieTrackRec* TieTracker,
										struct NoteObjectRec* SourceNote, long SourcePixelX,
										long SourcePixelY, struct NoteObjectRec* DestinationNote);

#endif
