#ifndef PIANOMETER_PROTOS_H
#define PIANOMETER_PROTOS_H

#include "PianoMeter.h"

                              /* message.c */

LONG __stdargs Message(UBYTE *Msg,UBYTE *Options,...);
LONG           MessageA(UBYTE *Msg,UBYTE *Options,APTR Args);
LONG __stdargs AsyncMessage(struct Globals *glob, TaskFlag flg, UBYTE *Msg,UBYTE *Options,...);

                               /* async.c */

BOOL StartAsyncTask(struct Globals *glob, struct Prefs *pref, UBYTE *TaskName, TaskFlag flg, APTR AsyncFunction, APTR UserData, ULONG UDLength);

BOOL AllocAsync(struct Globals *glob, TaskFlag flg);
void FreeAsync(struct Globals *glob, TaskFlag flg);
BOOL AskAsync(struct Globals *glob);
void WaitAsync(struct Globals *glob);

                              /* libopen.c */

BOOL OpenLibs(void);
void CloseLibs(void);

                               /* stubs.c */

LONG DoCustomClassMethod (struct IClass *cl, Msg msg);
void __stdargs _XCEXIT(LONG lcode);
struct MidiNode *CreateMidi(Tag tag, ...);
BOOL SetMidiAttrs(struct MidiNode *mi, Tag tag, ...);
struct MidiLink *AddMidiLink(struct MidiNode *mi, LONG type, Tag tag, ...);
BOOL SetMidiLinkAttrs(struct MidiLink *mi, Tag tag, ...);


                              /* SPrintf.a */

APTR __stdargs SPrintf(char *, const char *, ...);
APTR __stdargs VSPrintf(char *, const char *, va_list);

#endif /* PIANOMETER_PROTOS_H */
