73 lines
1.9 KiB
C
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
|