/* Header for module TP_Heap1, generated by p2c */

#ifndef TP_HEAP1_H
#define TP_HEAP1_H

#ifndef TP_DECL_H
#include "tp_decl.h"
#endif
/* p2c: tp_heap1.pas, line 5:
 * Note: Turbo Pascal conditional compilation directive was ignored [218] */
/*$IFDEF PC*/
/*$ENDIF*/
#ifndef TP_MISC_H
#include "tp_misc.h"
#endif
/* p2c: tp_debug.pas, line 49:
 * Note: Turbo Pascal conditional compilation directive was ignored [218] */

#ifndef TP_DEBUG_H
#include "tp_debug.h"
#endif

#ifdef TP_HEAP1_G
# define vextern
#else
# define vextern extern
#endif

Void Append (HeapRecord *ThisList, NoteRecord *N);
Void InitNotePool(void);
Void KillNotePool(void);
Void KillNoteLists (void);
Void KillList(HeapRecord *ThisList);
boolean Empty (HeapRecord ThisList);
Void InsertOnTop(HeapRecord *ThisList, NoteRecord *N);
Void Insert (HeapRecord *ThisList, NoteRecord *Nin, NoteRecord *N);
Void Re_move(HeapRecord *ThisList, NoteRecord *N);
Void FirstNote (HeapRecord ThisList, NoteRecord **N);
Void LastNote (HeapRecord ThisList, NoteRecord **N);
Void NextNote (NoteRecord *N, NoteRecord **P);
Void PrevNote (NoteRecord *N, NoteRecord **P);
Void ResetNoteRec (NoteRecord *N);
Void BringFreeNote(NoteRecord *N);
boolean EqualsNote (NoteRecord *N, uchar ThisNote);
Void Exchange (HeapRecord *ThisList, NoteRecord **N1,
	      NoteRecord **N2);
Char *NoteList2String (Char *Result, HeapRecord ThisList);
Char *ChordNoteList2String (Char *Result, HeapRecord ThisList);
NoteRecord *GetFreeNote(void);
void _TP_Heap1_init(void);
#undef vextern
#endif /*TP_HEAP1_H*/

/* End. */

