#ifndef _TimTypes_H
#define _TimTypes_H

#include <stdint.h>

#ifndef NULL
#define NULL (void*) 0
#endif

#ifndef bool
#define bool int
#define true 1
#define false 0
#endif

#define IGNORE(x) x = x;

#define ErrNum_UnsupportedFormat 0x0081b000
#define ErrNum_PlayerError       0x0081b001
#define ErrNum_ParamsError       0x0081b002
#define ErrNum_InputError        0x0081b003
#define ErrNum_CodecError        0x0081b004
#define ErrNum_InternalError     0x0081b005

typedef struct Channel Channel;
typedef struct ChannelDefault ChannelDefault; // Song.h
typedef struct Controller Controller;
typedef struct GlobHdr GlobHdr;               // GlobHdr.h
typedef struct Envelope Envelope;             // Instrument.h
typedef struct NoteMap NoteMap;
typedef struct Instrument Instrument;
typedef struct Note Note;
typedef struct NoteHandler NoteHandler;
typedef struct Pattern Pattern;               // Song.h
typedef struct Sample Sample;                 // Instrument.h
typedef struct SubSong SubSong;               // Song.h
typedef struct SongHdr SongHdr;               // Song.h
typedef struct ISong ISong;
typedef struct IFX IFX;                       // IFX.h
typedef struct LoaderData LoaderData;         // Loaders.h

#endif
