#ifndef FP_DEF_H
#define FP_DEF_H
#include "math.h"
#if !defined (__APPLE__) && !defined (__linux__)
#include "mmsystem.h"
#endif
#define WaveT_Bits 14
#define WaveT_Size (1 << WaveT_Bits)
#define WaveT_Shift (32-WaveT_Bits)
#define WaveT_Step 1 << WaveT_Shift
#define WaveT_PMask (0xFFFFFFFF >> WaveT_Shift)
#define WaveT_FMask (0xFFFFFFFF >> WaveT_Bits)
#define MIDIMsg_PortMask 0xFFFFFF;
#define MIDIMsg_Null 0xFFFFFFFF;
const int FromMIDI_Max = 65536; const int FromMIDI_Half = 32768;
typedef float TWaveT[WaveT_Size];
typedef TWaveT *PWaveT;
typedef float TWAV32FS[1][2];
typedef TWAV32FS *PWAV32FS;
typedef float TWAV32FM[1];
typedef TWAV32FM *PWAV32FM;
typedef struct
{
unsigned char Status;
unsigned char Data1;
unsigned char Data2;
unsigned char Port;
} TMIDIOutMsg, *PMIDIOutMsg;
typedef struct
{
#if !defined (__APPLE__) && !defined (__linux__)
WAVEFORMATEX WaveFormatEx;
#endif
union
{
struct
{
unsigned short wValidBitsPerSample; unsigned long dwChannelMask; #if !defined (__APPLE__) && !defined (__linux__)
GUID SubFormat;
#endif
} stream;
unsigned short wSamplesPerBlock; unsigned short wReserved; };
} TWaveFormatExtensible, *PWaveFormatExtensible;
typedef struct
{
int Bar;
int Step;
int Tick;
} TSongTime, *PSongTime;
typedef struct
{
int StepsPerBar;
int StepsPerBeat;
int PPQ;
} TTimeSigInfo, *PTimeSigInfo;
#endif