home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD2.img
/
d4xx
/
d483
/
med
/
med.lzh
/
MED
/
Programmers
/
MODPlayer
/
modplayer.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-05-08
|
3KB
|
78 lines
#ifdef LATTICE
LONG __asm InitPlayer(void);
void __asm RemPlayer(void);
void __asm PlayModule(register __a0 struct MMD0 *);
void __asm ContModule(register __a0 struct MMD0 *);
void __asm StopPlayer(void);
void __asm SetTempo(register __d0 UWORD);
struct MMD0 * __asm LoadModule(register __a0 char *);
void __asm RelocModule(register __a0 struct MMD0 *);
void __asm UnLoadModule(register __a0 struct MMD0 *);
/* These are the definitions for 8-channel OctaMED routines */
LONG __asm InitPlayer8(void);
void __asm RemPlayer8(void);
void __asm PlayModule8(register __a0 struct MMD0 *);
void __asm ContModule8(register __a0 struct MMD0 *);
void __asm StopPlayer8(void);
#endif
struct MMD0 {
ULONG id; /* "MMD0" */
ULONG modlen; /* module length (in bytes) */
struct MMD0song *song; /* pointer to song (see med.h) */
ULONG songlen; /* length of song (usually zero) */
struct MMD0block **blockarr; /* pointer to pointers of blocks */
ULONG blockarrlen; /* length... */
struct Soitin **smplarr; /* pointer to pointers of samples */
ULONG smplarrlen; /* len.. */
struct MMD0exp *expdata; /* pointer to expansion data (see med.h) */
ULONG expsize; /* len.. (don't care about these) */
/* Followed by some private variables that have become obsolete in V3.00... */
};
struct InstrExt { /* THIS STRUCT MAY GROW IN THE FUTURE!! */
UBYTE hold; /* to get the correct size, examine s_ext_entrsz */
UBYTE decay;
};
struct MMD0exp {
ULONG reserved; /* for future... */
struct InstrExt *exp_smp;
UWORD s_ext_entries; /* # of entries */
UWORD s_ext_entrsz; /* size of entry*/
UBYTE *annotxt; /* song name, ©, notes etc... */
ULONG annolen; /* length (including 0-byte) */
ULONG reserved2[16]; /* better have enough of these... */
};
struct MMD0sample {
UWORD rep,replen; /* offs: 0(s), 2(s) */
UBYTE midich; /* offs: 4(s) */
UBYTE midipreset; /* offs: 5(s) */
UBYTE svol; /* offs: 6(s) */
BYTE strans; /* offs: 7(s) */
};
struct MMD0song {
struct MMD0sample sample[63]; /* 63 * 8 bytes = 504 bytes */
UWORD numblocks; /* offs: 504 */
UWORD songlen; /* offs: 506 */
UBYTE playseq[256]; /* offs: 508 */
UWORD deftempo; /* offs: 764 */
BYTE playtransp; /* offs: 766 */
UBYTE flags; /* offs: 767 */
UBYTE reserved; /* offs: 768 */
UBYTE tempo2; /* offs: 769 */
UBYTE trkvol[16]; /* offs: 770 */
UBYTE mastervol; /* offs: 786 */
UBYTE numsamples; /* offs: 787 */
}; /* length = 788 bytes */
/* FLAGS of the above structure */
#define FLAG_FILTERON 0x1 /* hardware low-pass filter */
#define FLAG_JUMPINGON 0x2 /* jumping.. (not used in modules) */
#define FLAG_JUMP8TH 0x4 /* jump 8th.. " " " */
#define FLAG_INSTRSATT 0x8 /* instruments are attached (sng+samples) */
#define FLAG_VOLHEX 0x10 /* volumes are represented as hex */
#define FLAG_STSLIDE 0x20 /* no effects on 1st timing pulse (STS) */
#define FLAG_8CHANNEL 0x40 /* OctaMED 8 channel song */