diff src/modplug/it_defs.h @ 136:6b5a52635b3b trunk

[svn] - like with so many other things, modplug is now maintained by us.
author nenolod
date Sun, 29 Oct 2006 01:04:52 -0700
parents
children 032053ca08ab 3673c7ec4ea2
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/modplug/it_defs.h	Sun Oct 29 01:04:52 2006 -0700
@@ -0,0 +1,134 @@
+#ifndef _ITDEFS_H_
+#define _ITDEFS_H_
+
+#pragma pack(1)
+
+typedef struct tagITFILEHEADER
+{
+	DWORD id;			// 0x4D504D49
+	CHAR songname[26];
+	WORD reserved1;		// 0x1004
+	WORD ordnum;
+	WORD insnum;
+	WORD smpnum;
+	WORD patnum;
+	WORD cwtv;
+	WORD cmwt;
+	WORD flags;
+	WORD special;
+	BYTE globalvol;
+	BYTE mv;
+	BYTE speed;
+	BYTE tempo;
+	BYTE sep;
+	BYTE zero;
+	WORD msglength;
+	DWORD msgoffset;
+	DWORD reserved2;
+	BYTE chnpan[64];
+	BYTE chnvol[64];
+} ITFILEHEADER;
+
+
+typedef struct tagITENVELOPE
+{
+	BYTE flags;
+	BYTE num;
+	BYTE lpb;
+	BYTE lpe;
+	BYTE slb;
+	BYTE sle;
+	BYTE data[25*3];
+	BYTE reserved;
+} ITENVELOPE;
+
+// Old Impulse Instrument Format (cmwt < 0x200)
+typedef struct tagITOLDINSTRUMENT
+{
+	DWORD id;			// IMPI = 0x49504D49
+	CHAR filename[12];	// DOS file name
+	BYTE zero;
+	BYTE flags;
+	BYTE vls;
+	BYTE vle;
+	BYTE sls;
+	BYTE sle;
+	WORD reserved1;
+	WORD fadeout;
+	BYTE nna;
+	BYTE dnc;
+	WORD trkvers;
+	BYTE nos;
+	BYTE reserved2;
+	CHAR name[26];
+	WORD reserved3[3];
+	BYTE keyboard[240];
+	BYTE volenv[200];
+	BYTE nodes[50];
+} ITOLDINSTRUMENT;
+
+
+// Impulse Instrument Format
+typedef struct tagITINSTRUMENT
+{
+	DWORD id;
+	CHAR filename[12];
+	BYTE zero;
+	BYTE nna;
+	BYTE dct;
+	BYTE dca;
+	WORD fadeout;
+	signed char pps;
+	BYTE ppc;
+	BYTE gbv;
+	BYTE dfp;
+	BYTE rv;
+	BYTE rp;
+	WORD trkvers;
+	BYTE nos;
+	BYTE reserved1;
+	CHAR name[26];
+	BYTE ifc;
+	BYTE ifr;
+	BYTE mch;
+	BYTE mpr;
+	WORD mbank;
+	BYTE keyboard[240];
+	ITENVELOPE volenv;
+	ITENVELOPE panenv;
+	ITENVELOPE pitchenv;
+	BYTE dummy[4]; // was 7, but IT v2.17 saves 554 bytes
+} ITINSTRUMENT;
+
+
+// IT Sample Format
+typedef struct ITSAMPLESTRUCT
+{
+	DWORD id;		// 0x53504D49
+	CHAR filename[12];
+	BYTE zero;
+	BYTE gvl;
+	BYTE flags;
+	BYTE vol;
+	CHAR name[26];
+	BYTE cvt;
+	BYTE dfp;
+	DWORD length;
+	DWORD loopbegin;
+	DWORD loopend;
+	DWORD C5Speed;
+	DWORD susloopbegin;
+	DWORD susloopend;
+	DWORD samplepointer;
+	BYTE vis;
+	BYTE vid;
+	BYTE vir;
+	BYTE vit;
+} ITSAMPLESTRUCT;
+
+#pragma pack()
+
+extern BYTE autovibit2xm[8];
+extern BYTE autovibxm2it[8];
+
+#endif