Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

it_defs.h

Go to the documentation of this file.
00001 #ifndef _ITDEFS_H_
00002 #define _ITDEFS_H_
00003 
00004 #include "stdafx.h"
00005 
00006 #pragma pack(1)
00007 
00008 typedef struct tagITFILEHEADER
00009 {
00010         DWORD id;                       // 0x4D504D49
00011         CHAR songname[26];
00012         WORD reserved1;         // 0x1004
00013         WORD ordnum;
00014         WORD insnum;
00015         WORD smpnum;
00016         WORD patnum;
00017         WORD cwtv;
00018         WORD cmwt;
00019         WORD flags;
00020         WORD special;
00021         BYTE globalvol;
00022         BYTE mv;
00023         BYTE speed;
00024         BYTE tempo;
00025         BYTE sep;
00026         BYTE zero;
00027         WORD msglength;
00028         DWORD msgoffset;
00029         DWORD reserved2;
00030         BYTE chnpan[64];
00031         BYTE chnvol[64];
00032 } Q_PACKED ITFILEHEADER;
00033 
00034 
00035 typedef struct tagITENVELOPE
00036 {
00037         BYTE flags;
00038         BYTE num;
00039         BYTE lpb;
00040         BYTE lpe;
00041         BYTE slb;
00042         BYTE sle;
00043         BYTE data[25*3];
00044         BYTE reserved;
00045 } Q_PACKED ITENVELOPE;
00046 
00047 // Old Impulse Instrument Format (cmwt < 0x200)
00048 typedef struct tagITOLDINSTRUMENT
00049 {
00050         DWORD id;                       // IMPI = 0x49504D49
00051         CHAR filename[12];      // DOS file name
00052         BYTE zero;
00053         BYTE flags;
00054         BYTE vls;
00055         BYTE vle;
00056         BYTE sls;
00057         BYTE sle;
00058         WORD reserved1;
00059         WORD fadeout;
00060         BYTE nna;
00061         BYTE dnc;
00062         WORD trkvers;
00063         BYTE nos;
00064         BYTE reserved2;
00065         CHAR name[26];
00066         WORD reserved3[3];
00067         BYTE keyboard[240];
00068         BYTE volenv[200];
00069         BYTE nodes[50];
00070 } Q_PACKED ITOLDINSTRUMENT;
00071 
00072 
00073 // Impulse Instrument Format
00074 typedef struct tagITINSTRUMENT
00075 {
00076         DWORD id;
00077         CHAR filename[12];
00078         BYTE zero;
00079         BYTE nna;
00080         BYTE dct;
00081         BYTE dca;
00082         WORD fadeout;
00083         signed char pps;
00084         BYTE ppc;
00085         BYTE gbv;
00086         BYTE dfp;
00087         BYTE rv;
00088         BYTE rp;
00089         WORD trkvers;
00090         BYTE nos;
00091         BYTE reserved1;
00092         CHAR name[26];
00093         BYTE ifc;
00094         BYTE ifr;
00095         BYTE mch;
00096         BYTE mpr;
00097         WORD mbank;
00098         BYTE keyboard[240];
00099         ITENVELOPE volenv;
00100         ITENVELOPE panenv;
00101         ITENVELOPE pitchenv;
00102         BYTE dummy[4]; // was 7, but IT v2.17 saves 554 bytes
00103 } Q_PACKED ITINSTRUMENT;
00104 
00105 
00106 // IT Sample Format
00107 typedef struct ITSAMPLESTRUCT
00108 {
00109         DWORD id;               // 0x53504D49
00110         CHAR filename[12];
00111         BYTE zero;
00112         BYTE gvl;
00113         BYTE flags;
00114         BYTE vol;
00115         CHAR name[26];
00116         BYTE cvt;
00117         BYTE dfp;
00118         DWORD length;
00119         DWORD loopbegin;
00120         DWORD loopend;
00121         DWORD C5Speed;
00122         DWORD susloopbegin;
00123         DWORD susloopend;
00124         DWORD samplepointer;
00125         BYTE vis;
00126         BYTE vid;
00127         BYTE vir;
00128         BYTE vit;
00129 } Q_PACKED ITSAMPLESTRUCT;
00130 
00131 #pragma pack()
00132 
00133 extern const BYTE autovibit2xm[8];
00134 extern const BYTE autovibxm2it[8];
00135 
00136 #endif

Generated on Sat Nov 5 16:15:38 2005 for OPIE by  doxygen 1.4.2