cog/Frameworks/playptmod/playptmod/playptmod.h

73 lines
1.9 KiB
C

#ifndef _PLAYPTMOD_H_
#define _PLAYPTMOD_H_
#ifdef __cplusplus
extern "C" {
#endif
enum
{
FORMAT_MK, // ProTracker 1.x
FORMAT_MK2, // ProTracker 2.x (if tune has >64 patterns)
FORMAT_FLT4, // StarTrekker
FORMAT_FLT8,
FORMAT_NCHN, // FastTracker II (only 1-9 channel MODs)
FORMAT_NNCH, // FastTracker II (10-32 channel MODs)
FORMAT_16CN, // FastTracker II (16 channel MODs)
FORMAT_32CN, // FastTracker II (32 channel MODs)
FORMAT_STK, // The Ultimate SoundTracker (15 samples)
FORMAT_NT, // NoiseTracker 1.0
FORMAT_FEST, // NoiseTracker (special ones)
FORMAT_MTM, // MultiTracker
FORMAT_UNKNOWN
};
void * playptmod_Create(int samplingFrequency);
#define PTMOD_OPTION_CLAMP_PERIODS 0
/* Set before loading module, or notes will be clamped accordingly
1 (default) = Amiga / Protracker range
* 0 = MSDOS / MTM / extended range */
#define PTMOD_OPTION_VSYNC_TIMING 1
/* 0 (default) = Speed command 20 or higher sets tempo
* 1 = Speed command always sets speed */
void playptmod_Config(void *p, int option, int value);
int playptmod_LoadMem(void *p, const unsigned char *buf, unsigned long bufLength);
int playptmod_Load(void *p, const char *filename);
int playptmod_GetFormat(void *p);
void playptmod_Play(void *p, unsigned int startOrder);
void playptmod_Stop(void *p);
void playptmod_Render(void *p, signed int *target, int length);
void playptmod_Render16(void *p, signed short *target, int length);
void playptmod_Mute(void *p, int channel, int mute);
unsigned int playptmod_LoopCounter(void *p);
typedef struct _ptmi
{
unsigned char order;
unsigned char pattern;
unsigned char row;
unsigned char speed;
unsigned char tempo;
unsigned char channelsPlaying;
} playptmod_info;
void playptmod_GetInfo(void *p, playptmod_info *i);
void playptmod_Free(void *p);
#ifdef __cplusplus
}
#endif
#endif