summaryrefslogtreecommitdiffstats
path: root/gst/modplug
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2005-12-06 19:55:58 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2005-12-06 19:55:58 +0000
commitbdb814f6ef56edca67e1241eb16df22fdd8ab17c (patch)
tree7b43c9dfbf67b852503d263a322064f0101bf591 /gst/modplug
parent04ad447fcfa1502907339a6a68e975bb6d35536a (diff)
downloadgst-plugins-bad-bdb814f6ef56edca67e1241eb16df22fdd8ab17c.tar.gz
gst-plugins-bad-bdb814f6ef56edca67e1241eb16df22fdd8ab17c.tar.bz2
gst-plugins-bad-bdb814f6ef56edca67e1241eb16df22fdd8ab17c.zip
expand tabs
Original commit message from CVS: expand tabs
Diffstat (limited to 'gst/modplug')
-rw-r--r--gst/modplug/gstmodplug.h2
-rw-r--r--gst/modplug/libmodplug/it_defs.h194
-rw-r--r--gst/modplug/libmodplug/modplug.h52
-rw-r--r--gst/modplug/libmodplug/sndfile.h1430
-rw-r--r--gst/modplug/libmodplug/stdafx.h8
5 files changed, 843 insertions, 843 deletions
diff --git a/gst/modplug/gstmodplug.h b/gst/modplug/gstmodplug.h
index c4a98b86..faddc0cd 100644
--- a/gst/modplug/gstmodplug.h
+++ b/gst/modplug/gstmodplug.h
@@ -27,7 +27,7 @@ extern "C" {
#include <gst/gst.h>
#include <gst/bytestream/bytestream.h>
-
+
#define GST_TYPE_MODPLUG \
(gst_modplug_get_type())
diff --git a/gst/modplug/libmodplug/it_defs.h b/gst/modplug/libmodplug/it_defs.h
index 732ce45c..3bc3ef35 100644
--- a/gst/modplug/libmodplug/it_defs.h
+++ b/gst/modplug/libmodplug/it_defs.h
@@ -5,125 +5,125 @@
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];
+ 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;
+ 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];
+ 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 */
+ 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;
+ 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()
diff --git a/gst/modplug/libmodplug/modplug.h b/gst/modplug/libmodplug/modplug.h
index fd8ec02f..ead6d627 100644
--- a/gst/modplug/libmodplug/modplug.h
+++ b/gst/modplug/libmodplug/modplug.h
@@ -43,40 +43,40 @@ void ModPlug_Seek(ModPlugFile* file, int millisecond);
enum _ModPlug_Flags
{
- MODPLUG_ENABLE_OVERSAMPLING = 1 << 0, /* Enable oversampling (*highly* recommended) */
- MODPLUG_ENABLE_NOISE_REDUCTION = 1 << 1, /* Enable noise reduction */
- MODPLUG_ENABLE_REVERB = 1 << 2, /* Enable reverb */
- MODPLUG_ENABLE_MEGABASS = 1 << 3, /* Enable megabass */
- MODPLUG_ENABLE_SURROUND = 1 << 4 /* Enable surround sound. */
+ MODPLUG_ENABLE_OVERSAMPLING = 1 << 0, /* Enable oversampling (*highly* recommended) */
+ MODPLUG_ENABLE_NOISE_REDUCTION = 1 << 1, /* Enable noise reduction */
+ MODPLUG_ENABLE_REVERB = 1 << 2, /* Enable reverb */
+ MODPLUG_ENABLE_MEGABASS = 1 << 3, /* Enable megabass */
+ MODPLUG_ENABLE_SURROUND = 1 << 4 /* Enable surround sound. */
};
enum _ModPlug_ResamplingMode
{
- MODPLUG_RESAMPLE_NEAREST = 0, /* No interpolation (very fast, extremely bad sound quality) */
- MODPLUG_RESAMPLE_LINEAR = 1, /* Linear interpolation (fast, good quality) */
- MODPLUG_RESAMPLE_SPLINE = 2, /* Cubic spline interpolation (high quality) */
- MODPLUG_RESAMPLE_FIR = 3 /* 8-tap fir filter (extremely high quality) */
+ MODPLUG_RESAMPLE_NEAREST = 0, /* No interpolation (very fast, extremely bad sound quality) */
+ MODPLUG_RESAMPLE_LINEAR = 1, /* Linear interpolation (fast, good quality) */
+ MODPLUG_RESAMPLE_SPLINE = 2, /* Cubic spline interpolation (high quality) */
+ MODPLUG_RESAMPLE_FIR = 3 /* 8-tap fir filter (extremely high quality) */
};
typedef struct _ModPlug_Settings
{
- int mFlags; /* One or more of the MODPLUG_ENABLE_* flags above, bitwise-OR'ed */
-
- /* Note that ModPlug always decodes sound at 44100kHz, 32 bit, stereo and then
- * down-mixes to the settings you choose. */
- int mChannels; /* Number of channels - 1 for mono or 2 for stereo */
- int mBits; /* Bits per sample - 8, 16, or 32 */
- int mFrequency; /* Sampling rate - 11025, 22050, or 44100 */
- int mResamplingMode; /* One of MODPLUG_RESAMPLE_*, above */
-
- int mReverbDepth; /* Reverb level 0(quiet)-100(loud) */
- int mReverbDelay; /* Reverb delay in ms, usually 40-200ms */
- int mBassAmount; /* XBass level 0(quiet)-100(loud) */
- int mBassRange; /* XBass cutoff in Hz 10-100 */
- int mSurroundDepth; /* Surround level 0(quiet)-100(heavy) */
- int mSurroundDelay; /* Surround delay in ms, usually 5-40ms */
- int mLoopCount; /* Number of times to loop. Zero prevents looping.
- -1 loops forever. */
+ int mFlags; /* One or more of the MODPLUG_ENABLE_* flags above, bitwise-OR'ed */
+
+ /* Note that ModPlug always decodes sound at 44100kHz, 32 bit, stereo and then
+ * down-mixes to the settings you choose. */
+ int mChannels; /* Number of channels - 1 for mono or 2 for stereo */
+ int mBits; /* Bits per sample - 8, 16, or 32 */
+ int mFrequency; /* Sampling rate - 11025, 22050, or 44100 */
+ int mResamplingMode; /* One of MODPLUG_RESAMPLE_*, above */
+
+ int mReverbDepth; /* Reverb level 0(quiet)-100(loud) */
+ int mReverbDelay; /* Reverb delay in ms, usually 40-200ms */
+ int mBassAmount; /* XBass level 0(quiet)-100(loud) */
+ int mBassRange; /* XBass cutoff in Hz 10-100 */
+ int mSurroundDepth; /* Surround level 0(quiet)-100(heavy) */
+ int mSurroundDelay; /* Surround delay in ms, usually 5-40ms */
+ int mLoopCount; /* Number of times to loop. Zero prevents looping.
+ -1 loops forever. */
} ModPlug_Settings;
/* Get and set the mod decoder settings. All options, except for channels, bits-per-sample,
diff --git a/gst/modplug/libmodplug/sndfile.h b/gst/modplug/libmodplug/sndfile.h
index 0fe6f459..0bfb51f2 100644
--- a/gst/modplug/libmodplug/sndfile.h
+++ b/gst/modplug/libmodplug/sndfile.h
@@ -12,500 +12,500 @@
typedef const BYTE * LPCBYTE;
#endif
-#define MOD_AMIGAC2 0x1AB
-#define MAX_SAMPLE_LENGTH 16000000
-#define MAX_SAMPLE_RATE 50000
-#define MAX_ORDERS 256
-#define MAX_PATTERNS 240
-#define MAX_SAMPLES 240
-#define MAX_INSTRUMENTS MAX_SAMPLES
+#define MOD_AMIGAC2 0x1AB
+#define MAX_SAMPLE_LENGTH 16000000
+#define MAX_SAMPLE_RATE 50000
+#define MAX_ORDERS 256
+#define MAX_PATTERNS 240
+#define MAX_SAMPLES 240
+#define MAX_INSTRUMENTS MAX_SAMPLES
#ifdef FASTSOUNDLIB
-#define MAX_CHANNELS 80
+#define MAX_CHANNELS 80
#else
-#define MAX_CHANNELS 128
+#define MAX_CHANNELS 128
#endif
-#define MAX_BASECHANNELS 64
-#define MAX_ENVPOINTS 32
-#define MIN_PERIOD 0x0020
-#define MAX_PERIOD 0xFFFF
-#define MAX_PATTERNNAME 32
-#define MAX_CHANNELNAME 20
-#define MAX_INFONAME 80
-#define MAX_EQ_BANDS 6
-#define MAX_MIXPLUGINS 8
-
-
-#define MOD_TYPE_NONE 0x00
-#define MOD_TYPE_MOD 0x01
-#define MOD_TYPE_S3M 0x02
-#define MOD_TYPE_XM 0x04
-#define MOD_TYPE_MED 0x08
-#define MOD_TYPE_MTM 0x10
-#define MOD_TYPE_IT 0x20
-#define MOD_TYPE_669 0x40
-#define MOD_TYPE_ULT 0x80
-#define MOD_TYPE_STM 0x100
-#define MOD_TYPE_FAR 0x200
-#define MOD_TYPE_WAV 0x400
-#define MOD_TYPE_AMF 0x800
-#define MOD_TYPE_AMS 0x1000
-#define MOD_TYPE_DSM 0x2000
-#define MOD_TYPE_MDL 0x4000
-#define MOD_TYPE_OKT 0x8000
-#define MOD_TYPE_MID 0x10000
-#define MOD_TYPE_DMF 0x20000
-#define MOD_TYPE_PTM 0x40000
-#define MOD_TYPE_DBM 0x80000
-#define MOD_TYPE_MT2 0x100000
-#define MOD_TYPE_AMF0 0x200000
-#define MOD_TYPE_PSM 0x400000
-#define MOD_TYPE_J2B 0x800000
-#define MOD_TYPE_UMX 0x80000000 /* Fake type */
-#define MAX_MODTYPE 23
+#define MAX_BASECHANNELS 64
+#define MAX_ENVPOINTS 32
+#define MIN_PERIOD 0x0020
+#define MAX_PERIOD 0xFFFF
+#define MAX_PATTERNNAME 32
+#define MAX_CHANNELNAME 20
+#define MAX_INFONAME 80
+#define MAX_EQ_BANDS 6
+#define MAX_MIXPLUGINS 8
+
+
+#define MOD_TYPE_NONE 0x00
+#define MOD_TYPE_MOD 0x01
+#define MOD_TYPE_S3M 0x02
+#define MOD_TYPE_XM 0x04
+#define MOD_TYPE_MED 0x08
+#define MOD_TYPE_MTM 0x10
+#define MOD_TYPE_IT 0x20
+#define MOD_TYPE_669 0x40
+#define MOD_TYPE_ULT 0x80
+#define MOD_TYPE_STM 0x100
+#define MOD_TYPE_FAR 0x200
+#define MOD_TYPE_WAV 0x400
+#define MOD_TYPE_AMF 0x800
+#define MOD_TYPE_AMS 0x1000
+#define MOD_TYPE_DSM 0x2000
+#define MOD_TYPE_MDL 0x4000
+#define MOD_TYPE_OKT 0x8000
+#define MOD_TYPE_MID 0x10000
+#define MOD_TYPE_DMF 0x20000
+#define MOD_TYPE_PTM 0x40000
+#define MOD_TYPE_DBM 0x80000
+#define MOD_TYPE_MT2 0x100000
+#define MOD_TYPE_AMF0 0x200000
+#define MOD_TYPE_PSM 0x400000
+#define MOD_TYPE_J2B 0x800000
+#define MOD_TYPE_UMX 0x80000000 /* Fake type */
+#define MAX_MODTYPE 23
/* Channel flags: */
-/* Bits 0-7: Sample Flags */
-#define CHN_16BIT 0x01
-#define CHN_LOOP 0x02
-#define CHN_PINGPONGLOOP 0x04
-#define CHN_SUSTAINLOOP 0x08
-#define CHN_PINGPONGSUSTAIN 0x10
-#define CHN_PANNING 0x20
-#define CHN_STEREO 0x40
-#define CHN_PINGPONGFLAG 0x80
-/* Bits 8-31: Channel Flags */
-#define CHN_MUTE 0x100
-#define CHN_KEYOFF 0x200
-#define CHN_NOTEFADE 0x400
-#define CHN_SURROUND 0x800
-#define CHN_NOIDO 0x1000
-#define CHN_HQSRC 0x2000
-#define CHN_FILTER 0x4000
-#define CHN_VOLUMERAMP 0x8000
-#define CHN_VIBRATO 0x10000
-#define CHN_TREMOLO 0x20000
-#define CHN_PANBRELLO 0x40000
-#define CHN_PORTAMENTO 0x80000
-#define CHN_GLISSANDO 0x100000
-#define CHN_VOLENV 0x200000
-#define CHN_PANENV 0x400000
-#define CHN_PITCHENV 0x800000
-#define CHN_FASTVOLRAMP 0x1000000
-#define CHN_EXTRALOUD 0x2000000
-#define CHN_REVERB 0x4000000
-#define CHN_NOREVERB 0x8000000
-
-
-#define ENV_VOLUME 0x0001
-#define ENV_VOLSUSTAIN 0x0002
-#define ENV_VOLLOOP 0x0004
-#define ENV_PANNING 0x0008
-#define ENV_PANSUSTAIN 0x0010
-#define ENV_PANLOOP 0x0020
-#define ENV_PITCH 0x0040
-#define ENV_PITCHSUSTAIN 0x0080
-#define ENV_PITCHLOOP 0x0100
-#define ENV_SETPANNING 0x0200
-#define ENV_FILTER 0x0400
-#define ENV_VOLCARRY 0x0800
-#define ENV_PANCARRY 0x1000
-#define ENV_PITCHCARRY 0x2000
-
-#define CMD_NONE 0
-#define CMD_ARPEGGIO 1
-#define CMD_PORTAMENTOUP 2
-#define CMD_PORTAMENTODOWN 3
-#define CMD_TONEPORTAMENTO 4
-#define CMD_VIBRATO 5
-#define CMD_TONEPORTAVOL 6
-#define CMD_VIBRATOVOL 7
-#define CMD_TREMOLO 8
-#define CMD_PANNING8 9
-#define CMD_OFFSET 10
-#define CMD_VOLUMESLIDE 11
-#define CMD_POSITIONJUMP 12
-#define CMD_VOLUME 13
-#define CMD_PATTERNBREAK 14
-#define CMD_RETRIG 15
-#define CMD_SPEED 16
-#define CMD_TEMPO 17
-#define CMD_TREMOR 18
-#define CMD_MODCMDEX 19
-#define CMD_S3MCMDEX 20
-#define CMD_CHANNELVOLUME 21
-#define CMD_CHANNELVOLSLIDE 22
-#define CMD_GLOBALVOLUME 23
-#define CMD_GLOBALVOLSLIDE 24
-#define CMD_KEYOFF 25
-#define CMD_FINEVIBRATO 26
-#define CMD_PANBRELLO 27
-#define CMD_XFINEPORTAUPDOWN 28
-#define CMD_PANNINGSLIDE 29
-#define CMD_SETENVPOSITION 30
-#define CMD_MIDI 31
+/* Bits 0-7: Sample Flags */
+#define CHN_16BIT 0x01
+#define CHN_LOOP 0x02
+#define CHN_PINGPONGLOOP 0x04
+#define CHN_SUSTAINLOOP 0x08
+#define CHN_PINGPONGSUSTAIN 0x10
+#define CHN_PANNING 0x20
+#define CHN_STEREO 0x40
+#define CHN_PINGPONGFLAG 0x80
+/* Bits 8-31: Channel Flags */
+#define CHN_MUTE 0x100
+#define CHN_KEYOFF 0x200
+#define CHN_NOTEFADE 0x400
+#define CHN_SURROUND 0x800
+#define CHN_NOIDO 0x1000
+#define CHN_HQSRC 0x2000
+#define CHN_FILTER 0x4000
+#define CHN_VOLUMERAMP 0x8000
+#define CHN_VIBRATO 0x10000
+#define CHN_TREMOLO 0x20000
+#define CHN_PANBRELLO 0x40000
+#define CHN_PORTAMENTO 0x80000
+#define CHN_GLISSANDO 0x100000
+#define CHN_VOLENV 0x200000
+#define CHN_PANENV 0x400000
+#define CHN_PITCHENV 0x800000
+#define CHN_FASTVOLRAMP 0x1000000
+#define CHN_EXTRALOUD 0x2000000
+#define CHN_REVERB 0x4000000
+#define CHN_NOREVERB 0x8000000
+
+
+#define ENV_VOLUME 0x0001
+#define ENV_VOLSUSTAIN 0x0002
+#define ENV_VOLLOOP 0x0004
+#define ENV_PANNING 0x0008
+#define ENV_PANSUSTAIN 0x0010
+#define ENV_PANLOOP 0x0020
+#define ENV_PITCH 0x0040
+#define ENV_PITCHSUSTAIN 0x0080
+#define ENV_PITCHLOOP 0x0100
+#define ENV_SETPANNING 0x0200
+#define ENV_FILTER 0x0400
+#define ENV_VOLCARRY 0x0800
+#define ENV_PANCARRY 0x1000
+#define ENV_PITCHCARRY 0x2000
+
+#define CMD_NONE 0
+#define CMD_ARPEGGIO 1
+#define CMD_PORTAMENTOUP 2
+#define CMD_PORTAMENTODOWN 3
+#define CMD_TONEPORTAMENTO 4
+#define CMD_VIBRATO 5
+#define CMD_TONEPORTAVOL 6
+#define CMD_VIBRATOVOL 7
+#define CMD_TREMOLO 8
+#define CMD_PANNING8 9
+#define CMD_OFFSET 10
+#define CMD_VOLUMESLIDE 11
+#define CMD_POSITIONJUMP 12
+#define CMD_VOLUME 13
+#define CMD_PATTERNBREAK 14
+#define CMD_RETRIG 15
+#define CMD_SPEED 16
+#define CMD_TEMPO 17
+#define CMD_TREMOR 18
+#define CMD_MODCMDEX 19
+#define CMD_S3MCMDEX 20
+#define CMD_CHANNELVOLUME 21
+#define CMD_CHANNELVOLSLIDE 22
+#define CMD_GLOBALVOLUME 23
+#define CMD_GLOBALVOLSLIDE 24
+#define CMD_KEYOFF 25
+#define CMD_FINEVIBRATO 26
+#define CMD_PANBRELLO 27
+#define CMD_XFINEPORTAUPDOWN 28
+#define CMD_PANNINGSLIDE 29
+#define CMD_SETENVPOSITION 30
+#define CMD_MIDI 31
/* Volume Column commands */
-#define VOLCMD_VOLUME 1
-#define VOLCMD_PANNING 2
-#define VOLCMD_VOLSLIDEUP 3
-#define VOLCMD_VOLSLIDEDOWN 4
-#define VOLCMD_FINEVOLUP 5
-#define VOLCMD_FINEVOLDOWN 6
-#define VOLCMD_VIBRATOSPEED 7
-#define VOLCMD_VIBRATO 8
-#define VOLCMD_PANSLIDELEFT 9
-#define VOLCMD_PANSLIDERIGHT 10
-#define VOLCMD_TONEPORTAMENTO 11
-#define VOLCMD_PORTAUP 12
-#define VOLCMD_PORTADOWN 13
-
-#define RSF_16BIT 0x04
-#define RSF_STEREO 0x08
-
-#define RS_PCM8S 0 /* 8-bit signed */
-#define RS_PCM8U 1 /* 8-bit unsigned */
-#define RS_PCM8D 2 /* 8-bit delta values */
-#define RS_ADPCM4 3 /* 4-bit ADPCM-packed */
-#define RS_PCM16D 4 /* 16-bit delta values */
-#define RS_PCM16S 5 /* 16-bit signed */
-#define RS_PCM16U 6 /* 16-bit unsigned */
-#define RS_PCM16M 7 /* 16-bit motorola order */
-#define RS_STPCM8S (RS_PCM8S|RSF_STEREO) /* stereo 8-bit signed */
-#define RS_STPCM8U (RS_PCM8U|RSF_STEREO) /* stereo 8-bit unsigned */
-#define RS_STPCM8D (RS_PCM8D|RSF_STEREO) /* stereo 8-bit delta values */
-#define RS_STPCM16S (RS_PCM16S|RSF_STEREO) /* stereo 16-bit signed */
-#define RS_STPCM16U (RS_PCM16U|RSF_STEREO) /* stereo 16-bit unsigned */
-#define RS_STPCM16D (RS_PCM16D|RSF_STEREO) /* stereo 16-bit delta values */
-#define RS_STPCM16M (RS_PCM16M|RSF_STEREO) /* stereo 16-bit signed big endian */
+#define VOLCMD_VOLUME 1
+#define VOLCMD_PANNING 2
+#define VOLCMD_VOLSLIDEUP 3
+#define VOLCMD_VOLSLIDEDOWN 4
+#define VOLCMD_FINEVOLUP 5
+#define VOLCMD_FINEVOLDOWN 6
+#define VOLCMD_VIBRATOSPEED 7
+#define VOLCMD_VIBRATO 8
+#define VOLCMD_PANSLIDELEFT 9
+#define VOLCMD_PANSLIDERIGHT 10
+#define VOLCMD_TONEPORTAMENTO 11
+#define VOLCMD_PORTAUP 12
+#define VOLCMD_PORTADOWN 13
+
+#define RSF_16BIT 0x04
+#define RSF_STEREO 0x08
+
+#define RS_PCM8S 0 /* 8-bit signed */
+#define RS_PCM8U 1 /* 8-bit unsigned */
+#define RS_PCM8D 2 /* 8-bit delta values */
+#define RS_ADPCM4 3 /* 4-bit ADPCM-packed */
+#define RS_PCM16D 4 /* 16-bit delta values */
+#define RS_PCM16S 5 /* 16-bit signed */
+#define RS_PCM16U 6 /* 16-bit unsigned */
+#define RS_PCM16M 7 /* 16-bit motorola order */
+#define RS_STPCM8S (RS_PCM8S|RSF_STEREO) /* stereo 8-bit signed */
+#define RS_STPCM8U (RS_PCM8U|RSF_STEREO) /* stereo 8-bit unsigned */
+#define RS_STPCM8D (RS_PCM8D|RSF_STEREO) /* stereo 8-bit delta values */
+#define RS_STPCM16S (RS_PCM16S|RSF_STEREO) /* stereo 16-bit signed */
+#define RS_STPCM16U (RS_PCM16U|RSF_STEREO) /* stereo 16-bit unsigned */
+#define RS_STPCM16D (RS_PCM16D|RSF_STEREO) /* stereo 16-bit delta values */
+#define RS_STPCM16M (RS_PCM16M|RSF_STEREO) /* stereo 16-bit signed big endian */
/* IT 2.14 compressed samples */
-#define RS_IT2148 0x10
-#define RS_IT21416 0x14
-#define RS_IT2158 0x12
-#define RS_IT21516 0x16
+#define RS_IT2148 0x10
+#define RS_IT21416 0x14
+#define RS_IT2158 0x12
+#define RS_IT21516 0x16
/* AMS Packed Samples */
-#define RS_AMS8 0x11
-#define RS_AMS16 0x15
+#define RS_AMS8 0x11
+#define RS_AMS16 0x15
/* DMF Huffman compression */
-#define RS_DMF8 0x13
-#define RS_DMF16 0x17
+#define RS_DMF8 0x13
+#define RS_DMF16 0x17
/* MDL Huffman compression */
-#define RS_MDL8 0x20
-#define RS_MDL16 0x24
-#define RS_PTM8DTO16 0x25
+#define RS_MDL8 0x20
+#define RS_MDL16 0x24
+#define RS_PTM8DTO16 0x25
/* Stereo Interleaved Samples */
-#define RS_STIPCM8S (RS_PCM8S|0x40|RSF_STEREO) /* stereo 8-bit signed */
-#define RS_STIPCM8U (RS_PCM8U|0x40|RSF_STEREO) /* stereo 8-bit unsigned */
-#define RS_STIPCM16S (RS_PCM16S|0x40|RSF_STEREO) /* stereo 16-bit signed */
-#define RS_STIPCM16U (RS_PCM16U|0x40|RSF_STEREO) /* stereo 16-bit unsigned */
-#define RS_STIPCM16M (RS_PCM16M|0x40|RSF_STEREO) /* stereo 16-bit signed big endian */
+#define RS_STIPCM8S (RS_PCM8S|0x40|RSF_STEREO) /* stereo 8-bit signed */
+#define RS_STIPCM8U (RS_PCM8U|0x40|RSF_STEREO) /* stereo 8-bit unsigned */
+#define RS_STIPCM16S (RS_PCM16S|0x40|RSF_STEREO) /* stereo 16-bit signed */
+#define RS_STIPCM16U (RS_PCM16U|0x40|RSF_STEREO) /* stereo 16-bit unsigned */
+#define RS_STIPCM16M (RS_PCM16M|0x40|RSF_STEREO) /* stereo 16-bit signed big endian */
/* 24-bit signed */
-#define RS_PCM24S (RS_PCM16S|0x80) /* mono 24-bit signed */
-#define RS_STIPCM24S (RS_PCM16S|0x80|RSF_STEREO) /* stereo 24-bit signed */
-#define RS_PCM32S (RS_PCM16S|0xC0) /* mono 24-bit signed */
-#define RS_STIPCM32S (RS_PCM16S|0xC0|RSF_STEREO) /* stereo 24-bit signed */
+#define RS_PCM24S (RS_PCM16S|0x80) /* mono 24-bit signed */
+#define RS_STIPCM24S (RS_PCM16S|0x80|RSF_STEREO) /* stereo 24-bit signed */
+#define RS_PCM32S (RS_PCM16S|0xC0) /* mono 24-bit signed */
+#define RS_STIPCM32S (RS_PCM16S|0xC0|RSF_STEREO) /* stereo 24-bit signed */
/* NNA types */
-#define NNA_NOTECUT 0
-#define NNA_CONTINUE 1
-#define NNA_NOTEOFF 2
-#define NNA_NOTEFADE 3
+#define NNA_NOTECUT 0
+#define NNA_CONTINUE 1
+#define NNA_NOTEOFF 2
+#define NNA_NOTEFADE 3
/* DCT types */
-#define DCT_NONE 0
-#define DCT_NOTE 1
-#define DCT_SAMPLE 2
-#define DCT_INSTRUMENT 3
+#define DCT_NONE 0
+#define DCT_NOTE 1
+#define DCT_SAMPLE 2
+#define DCT_INSTRUMENT 3
/* DNA types */
-#define DNA_NOTECUT 0
-#define DNA_NOTEOFF 1
-#define DNA_NOTEFADE 2
+#define DNA_NOTECUT 0
+#define DNA_NOTEOFF 1
+#define DNA_NOTEFADE 2
/* Mixer Hardware-Dependent features */
-#define SYSMIX_ENABLEMMX 0x01
-#define SYSMIX_WINDOWSNT 0x02
-#define SYSMIX_SLOWCPU 0x04
-#define SYSMIX_FASTCPU 0x08
+#define SYSMIX_ENABLEMMX 0x01
+#define SYSMIX_WINDOWSNT 0x02
+#define SYSMIX_SLOWCPU 0x04
+#define SYSMIX_FASTCPU 0x08
/* Module flags */
-#define SONG_EMBEDMIDICFG 0x0001
-#define SONG_FASTVOLSLIDES 0x0002
-#define SONG_ITOLDEFFECTS 0x0004
-#define SONG_ITCOMPATMODE 0x0008
-#define SONG_LINEARSLIDES 0x0010
-#define SONG_PATTERNLOOP 0x0020
-#define SONG_STEP 0x0040
-#define SONG_PAUSED 0x0080
-#define SONG_FADINGSONG 0x0100
-#define SONG_ENDREACHED 0x0200
-#define SONG_GLOBALFADE 0x0400
-#define SONG_CPUVERYHIGH 0x0800
-#define SONG_FIRSTTICK 0x1000
-#define SONG_MPTFILTERMODE 0x2000
-#define SONG_SURROUNDPAN 0x4000
-#define SONG_EXFILTERRANGE 0x8000
-#define SONG_AMIGALIMITS 0x10000
+#define SONG_EMBEDMIDICFG 0x0001
+#define SONG_FASTVOLSLIDES 0x0002
+#define SONG_ITOLDEFFECTS 0x0004
+#define SONG_ITCOMPATMODE 0x0008
+#define SONG_LINEARSLIDES 0x0010
+#define SONG_PATTERNLOOP 0x0020
+#define SONG_STEP 0x0040
+#define SONG_PAUSED 0x0080
+#define SONG_FADINGSONG 0x0100
+#define SONG_ENDREACHED 0x0200
+#define SONG_GLOBALFADE 0x0400
+#define SONG_CPUVERYHIGH 0x0800
+#define SONG_FIRSTTICK 0x1000
+#define SONG_MPTFILTERMODE 0x2000
+#define SONG_SURROUNDPAN 0x4000
+#define SONG_EXFILTERRANGE 0x8000
+#define SONG_AMIGALIMITS 0x10000
/* Global Options (Renderer) */
-#define SNDMIX_REVERSESTEREO 0x0001
-#define SNDMIX_NOISEREDUCTION 0x0002
-#define SNDMIX_AGC 0x0004
-#define SNDMIX_NORESAMPLING 0x0008
-#define SNDMIX_HQRESAMPLER 0x0010
-#define SNDMIX_MEGABASS 0x0020
-#define SNDMIX_SURROUND 0x0040
-#define SNDMIX_REVERB 0x0080
-#define SNDMIX_EQ 0x0100
-#define SNDMIX_SOFTPANNING 0x0200
-#define SNDMIX_ULTRAHQSRCMODE 0x0400
+#define SNDMIX_REVERSESTEREO 0x0001
+#define SNDMIX_NOISEREDUCTION 0x0002
+#define SNDMIX_AGC 0x0004
+#define SNDMIX_NORESAMPLING 0x0008
+#define SNDMIX_HQRESAMPLER 0x0010
+#define SNDMIX_MEGABASS 0x0020
+#define SNDMIX_SURROUND 0x0040
+#define SNDMIX_REVERB 0x0080
+#define SNDMIX_EQ 0x0100
+#define SNDMIX_SOFTPANNING 0x0200
+#define SNDMIX_ULTRAHQSRCMODE 0x0400
/* Misc Flags (can safely be turned on or off) */
-#define SNDMIX_DIRECTTODISK 0x10000
-#define SNDMIX_ENABLEMMX 0x20000
-#define SNDMIX_NOBACKWARDJUMPS 0x40000
-#define SNDMIX_MAXDEFAULTPAN 0x80000 /* Used by the MOD loader */
+#define SNDMIX_DIRECTTODISK 0x10000
+#define SNDMIX_ENABLEMMX 0x20000
+#define SNDMIX_NOBACKWARDJUMPS 0x40000
+#define SNDMIX_MAXDEFAULTPAN 0x80000 /* Used by the MOD loader */
/* Reverb Types (GM2 Presets) */
enum {
- REVERBTYPE_SMALLROOM,
- REVERBTYPE_MEDIUMROOM,
- REVERBTYPE_LARGEROOM,
- REVERBTYPE_SMALLHALL,
- REVERBTYPE_MEDIUMHALL,
- REVERBTYPE_LARGEHALL,
- NUM_REVERBTYPES
+ REVERBTYPE_SMALLROOM,
+ REVERBTYPE_MEDIUMROOM,
+ REVERBTYPE_LARGEROOM,
+ REVERBTYPE_SMALLHALL,
+ REVERBTYPE_MEDIUMHALL,
+ REVERBTYPE_LARGEHALL,
+ NUM_REVERBTYPES
};
enum {
- SRCMODE_NEAREST,
- SRCMODE_LINEAR,
- SRCMODE_SPLINE,
- SRCMODE_POLYPHASE,
- NUM_SRC_MODES
+ SRCMODE_NEAREST,
+ SRCMODE_LINEAR,
+ SRCMODE_SPLINE,
+ SRCMODE_POLYPHASE,
+ NUM_SRC_MODES
};
/* Sample Struct */
typedef struct _MODINSTRUMENT
{
- UINT nLength,nLoopStart,nLoopEnd;
- UINT nSustainStart, nSustainEnd;
- signed char *pSample;
- UINT nC4Speed;
- WORD nPan;
- WORD nVolume;
- WORD nGlobalVol;
- WORD uFlags;
- signed char RelativeTone;
- signed char nFineTune;
- BYTE nVibType;
- BYTE nVibSweep;
- BYTE nVibDepth;
- BYTE nVibRate;
- CHAR name[22];
+ UINT nLength,nLoopStart,nLoopEnd;
+ UINT nSustainStart, nSustainEnd;
+ signed char *pSample;
+ UINT nC4Speed;
+ WORD nPan;
+ WORD nVolume;
+ WORD nGlobalVol;
+ WORD uFlags;
+ signed char RelativeTone;
+ signed char nFineTune;
+ BYTE nVibType;
+ BYTE nVibSweep;
+ BYTE nVibDepth;
+ BYTE nVibRate;
+ CHAR name[22];
} MODINSTRUMENT;
/* Instrument Struct */
typedef struct _INSTRUMENTHEADER
{
- UINT nFadeOut;
- DWORD dwFlags;
- WORD nGlobalVol;
- WORD nPan;
- WORD VolPoints[MAX_ENVPOINTS];
- WORD PanPoints[MAX_ENVPOINTS];
- WORD PitchPoints[MAX_ENVPOINTS];
- BYTE VolEnv[MAX_ENVPOINTS];
- BYTE PanEnv[MAX_ENVPOINTS];
- BYTE PitchEnv[MAX_ENVPOINTS];
- BYTE Keyboard[128];
- BYTE NoteMap[128];
-
- BYTE nVolEnv;
- BYTE nPanEnv;
- BYTE nPitchEnv;
- BYTE nVolLoopStart;
- BYTE nVolLoopEnd;
- BYTE nVolSustainBegin;
- BYTE nVolSustainEnd;
- BYTE nPanLoopStart;
- BYTE nPanLoopEnd;
- BYTE nPanSustainBegin;
- BYTE nPanSustainEnd;
- BYTE nPitchLoopStart;
- BYTE nPitchLoopEnd;
- BYTE nPitchSustainBegin;
- BYTE nPitchSustainEnd;
- BYTE nNNA;
- BYTE nDCT;
- BYTE nDNA;
- BYTE nPanSwing;
- BYTE nVolSwing;
- BYTE nIFC;
- BYTE nIFR;
- WORD wMidiBank;
- BYTE nMidiProgram;
- BYTE nMidiChannel;
- BYTE nMidiDrumKey;
- signed char nPPS;
- unsigned char nPPC;
- CHAR name[32];
- CHAR filename[12];
+ UINT nFadeOut;
+ DWORD dwFlags;
+ WORD nGlobalVol;
+ WORD nPan;
+ WORD VolPoints[MAX_ENVPOINTS];
+ WORD PanPoints[MAX_ENVPOINTS];
+ WORD PitchPoints[MAX_ENVPOINTS];
+ BYTE VolEnv[MAX_ENVPOINTS];
+ BYTE PanEnv[MAX_ENVPOINTS];
+ BYTE PitchEnv[MAX_ENVPOINTS];
+ BYTE Keyboard[128];
+ BYTE NoteMap[128];
+
+ BYTE nVolEnv;
+ BYTE nPanEnv;
+ BYTE nPitchEnv;
+ BYTE nVolLoopStart;
+ BYTE nVolLoopEnd;
+ BYTE nVolSustainBegin;
+ BYTE nVolSustainEnd;
+ BYTE nPanLoopStart;
+ BYTE nPanLoopEnd;
+ BYTE nPanSustainBegin;
+ BYTE nPanSustainEnd;
+ BYTE nPitchLoopStart;
+ BYTE nPitchLoopEnd;
+ BYTE nPitchSustainBegin;
+ BYTE nPitchSustainEnd;
+ BYTE nNNA;
+ BYTE nDCT;
+ BYTE nDNA;
+ BYTE nPanSwing;
+ BYTE nVolSwing;
+ BYTE nIFC;
+ BYTE nIFR;
+ WORD wMidiBank;
+ BYTE nMidiProgram;
+ BYTE nMidiChannel;
+ BYTE nMidiDrumKey;
+ signed char nPPS;
+ unsigned char nPPC;
+ CHAR name[32];
+ CHAR filename[12];
} INSTRUMENTHEADER;
/* Channel Struct */
typedef struct _MODCHANNEL
{
- /* First 32-bytes: Most used mixing information: don't change it */
- signed char * pCurrentSample;
- DWORD nPos;
- DWORD nPosLo; /* actually 16-bit */
- LONG nInc; /* 16.16 */
- LONG nRightVol;
- LONG nLeftVol;
- LONG nRightRamp;
- LONG nLeftRamp;
- /* 2nd cache line */
- DWORD nLength;
- DWORD dwFlags;
- DWORD nLoopStart;
- DWORD nLoopEnd;
- LONG nRampRightVol;
- LONG nRampLeftVol;
- LONG nFilter_Y1, nFilter_Y2, nFilter_Y3, nFilter_Y4;
- LONG nFilter_A0, nFilter_B0, nFilter_B1;
- LONG nROfs, nLOfs;
- LONG nRampLength;
- /* Information not used in the mixer */
- signed char * pSample;
- LONG nNewRightVol, nNewLeftVol;
- LONG nRealVolume, nRealPan;
- LONG nVolume, nPan, nFadeOutVol;
- LONG nPeriod, nC4Speed, nPortamentoDest;
- INSTRUMENTHEADER *pHeader;
- MODINSTRUMENT *pInstrument;
- DWORD nVolEnvPosition, nPanEnvPosition, nPitchEnvPosition;
- DWORD nMasterChn, nVUMeter;
- LONG nGlobalVol, nInsVol;
- LONG nFineTune, nTranspose;
- LONG nPortamentoSlide, nAutoVibDepth;
- UINT nAutoVibPos, nVibratoPos, nTremoloPos, nPanbrelloPos;
- /* 16-bit members */
- signed short nVolSwing, nPanSwing;
- /* 8-bit members */
- BYTE nNote, nNNA;
- BYTE nNewNote, nNewIns, nCommand, nArpeggio;
- BYTE nOldVolumeSlide, nOldFineVolUpDown;
- BYTE nOldPortaUpDown, nOldFinePortaUpDown;
- BYTE nOldPanSlide, nOldChnVolSlide;
- BYTE nVibratoType, nVibratoSpeed, nVibratoDepth;
- BYTE nTremoloType, nTremoloSpeed, nTremoloDepth;
- BYTE nPanbrelloType, nPanbrelloSpeed, nPanbrelloDepth;
- BYTE nOldCmdEx, nOldVolParam, nOldTempo;
- BYTE nOldOffset, nOldHiOffset;
- BYTE nCutOff, nResonance;
- BYTE nRetrigCount, nRetrigParam;
- BYTE nTremorCount, nTremorParam;
- BYTE nPatternLoop, nPatternLoopCount;
- BYTE nRowNote, nRowInstr;
- BYTE nRowVolCmd, nRowVolume;
- BYTE nRowCommand, nRowParam;
- BYTE nLeftVU, nRightVU;
- BYTE nActiveMacro, nPadding;
+ /* First 32-bytes: Most used mixing information: don't change it */
+ signed char * pCurrentSample;
+ DWORD nPos;
+ DWORD nPosLo; /* actually 16-bit */
+ LONG nInc; /* 16.16 */
+ LONG nRightVol;
+ LONG nLeftVol;
+ LONG nRightRamp;
+ LONG nLeftRamp;
+ /* 2nd cache line */
+ DWORD nLength;
+ DWORD dwFlags;
+ DWORD nLoopStart;
+ DWORD nLoopEnd;
+ LONG nRampRightVol;
+ LONG nRampLeftVol;
+ LONG nFilter_Y1, nFilter_Y2, nFilter_Y3, nFilter_Y4;
+ LONG nFilter_A0, nFilter_B0, nFilter_B1;
+ LONG nROfs, nLOfs;
+ LONG nRampLength;
+ /* Information not used in the mixer */
+ signed char * pSample;
+ LONG nNewRightVol, nNewLeftVol;
+ LONG nRealVolume, nRealPan;
+ LONG nVolume, nPan, nFadeOutVol;
+ LONG nPeriod, nC4Speed, nPortamentoDest;
+ INSTRUMENTHEADER *pHeader;
+ MODINSTRUMENT *pInstrument;
+ DWORD nVolEnvPosition, nPanEnvPosition, nPitchEnvPosition;
+ DWORD nMasterChn, nVUMeter;
+ LONG nGlobalVol, nInsVol;
+ LONG nFineTune, nTranspose;
+ LONG nPortamentoSlide, nAutoVibDepth;
+ UINT nAutoVibPos, nVibratoPos, nTremoloPos, nPanbrelloPos;
+ /* 16-bit members */
+ signed short nVolSwing, nPanSwing;
+ /* 8-bit members */
+ BYTE nNote, nNNA;
+ BYTE nNewNote, nNewIns, nCommand, nArpeggio;
+ BYTE nOldVolumeSlide, nOldFineVolUpDown;
+ BYTE nOldPortaUpDown, nOldFinePortaUpDown;
+ BYTE nOldPanSlide, nOldChnVolSlide;
+ BYTE nVibratoType, nVibratoSpeed, nVibratoDepth;
+ BYTE nTremoloType, nTremoloSpeed, nTremoloDepth;
+ BYTE nPanbrelloType, nPanbrelloSpeed, nPanbrelloDepth;
+ BYTE nOldCmdEx, nOldVolParam, nOldTempo;
+ BYTE nOldOffset, nOldHiOffset;
+ BYTE nCutOff, nResonance;
+ BYTE nRetrigCount, nRetrigParam;
+ BYTE nTremorCount, nTremorParam;
+ BYTE nPatternLoop, nPatternLoopCount;
+ BYTE nRowNote, nRowInstr;
+ BYTE nRowVolCmd, nRowVolume;
+ BYTE nRowCommand, nRowParam;
+ BYTE nLeftVU, nRightVU;
+ BYTE nActiveMacro, nPadding;
} MODCHANNEL;
typedef struct _MODCHANNELSETTINGS
{
- UINT nPan;
- UINT nVolume;
- DWORD dwFlags;
- UINT nMixPlugin;
+ UINT nPan;
+ UINT nVolume;
+ DWORD dwFlags;
+ UINT nMixPlugin;
char szName[MAX_CHANNELNAME]; /* changed from CHAR */
} MODCHANNELSETTINGS;
typedef struct _MODCOMMAND
{
- BYTE note;
- BYTE instr;
- BYTE volcmd;
- BYTE command;
- BYTE vol;
- BYTE param;
+ BYTE note;
+ BYTE instr;
+ BYTE volcmd;
+ BYTE command;
+ BYTE vol;
+ BYTE param;
} MODCOMMAND, *LPMODCOMMAND;
/*////////////////////////////////////////////////////////////////// */
/* Mix Plugins */
-#define MIXPLUG_MIXREADY 0x01 /* Set when cleared */
+#define MIXPLUG_MIXREADY 0x01 /* Set when cleared */
class IMixPlugin
{
public:
- virtual int AddRef() = 0;
- virtual int Release() = 0;
- virtual void SaveAllParameters() = 0;
- virtual void RestoreAllParameters() = 0;
- virtual void Process(float *pOutL, float *pOutR, unsigned long nSamples) = 0;
- virtual void Init(unsigned long nFreq, int bReset) = 0;
- virtual void MidiSend(DWORD dwMidiCode) = 0;
- virtual void MidiCommand(UINT nMidiCh, UINT nMidiProg, UINT note, UINT vol) = 0;
+ virtual int AddRef() = 0;
+ virtual int Release() = 0;
+ virtual void SaveAllParameters() = 0;
+ virtual void RestoreAllParameters() = 0;
+ virtual void Process(float *pOutL, float *pOutR, unsigned long nSamples) = 0;
+ virtual void Init(unsigned long nFreq, int bReset) = 0;
+ virtual void MidiSend(DWORD dwMidiCode) = 0;
+ virtual void MidiCommand(UINT nMidiCh, UINT nMidiProg, UINT note, UINT vol) = 0;
};
-#define MIXPLUG_INPUTF_MASTEREFFECT 0x01 /* Apply to master mix */
-#define MIXPLUG_INPUTF_BYPASS 0x02 /* Bypass effect */
-#define MIXPLUG_INPUTF_WETMIX 0x04 /* Wet Mix (dry added) */
+#define MIXPLUG_INPUTF_MASTEREFFECT 0x01 /* Apply to master mix */
+#define MIXPLUG_INPUTF_BYPASS 0x02 /* Bypass effect */
+#define MIXPLUG_INPUTF_WETMIX 0x04 /* Wet Mix (dry added) */
typedef struct _SNDMIXPLUGINSTATE
{
- DWORD dwFlags; /* MIXPLUG_XXXX */
- LONG nVolDecayL, nVolDecayR; /* Buffer click removal */
- int *pMixBuffer; /* Stereo effect send buffer */
- float *pOutBufferL; /* Temp storage for int -> float conversion */
- float *pOutBufferR;
+ DWORD dwFlags; /* MIXPLUG_XXXX */
+ LONG nVolDecayL, nVolDecayR; /* Buffer click removal */
+ int *pMixBuffer; /* Stereo effect send buffer */
+ float *pOutBufferL; /* Temp storage for int -> float conversion */
+ float *pOutBufferR;
} SNDMIXPLUGINSTATE, *PSNDMIXPLUGINSTATE;
typedef struct _SNDMIXPLUGININFO
{
- DWORD dwPluginId1;
- DWORD dwPluginId2;
- DWORD dwInputRouting; /* MIXPLUG_INPUTF_XXXX */
- DWORD dwOutputRouting; /* 0=mix 0x80+=fx */
- DWORD dwReserved[4]; /* Reserved for routing info */
- CHAR szName[32];
- CHAR szLibraryName[64]; /* original DLL name */
+ DWORD dwPluginId1;
+ DWORD dwPluginId2;
+ DWORD dwInputRouting; /* MIXPLUG_INPUTF_XXXX */
+ DWORD dwOutputRouting; /* 0=mix 0x80+=fx */
+ DWORD dwReserved[4]; /* Reserved for routing info */
+ CHAR szName[32];
+ CHAR szLibraryName[64]; /* original DLL name */
} SNDMIXPLUGININFO, *PSNDMIXPLUGININFO; /* Size should be 128 */
typedef struct _SNDMIXPLUGIN
{
- IMixPlugin *pMixPlugin;
- PSNDMIXPLUGINSTATE pMixState;
- ULONG nPluginDataSize;
- PVOID pPluginData;
- SNDMIXPLUGININFO Info;
+ IMixPlugin *pMixPlugin;
+ PSNDMIXPLUGINSTATE pMixState;
+ ULONG nPluginDataSize;
+ PVOID pPluginData;
+ SNDMIXPLUGININFO Info;
} SNDMIXPLUGIN, *PSNDMIXPLUGIN;
-typedef BOOL (*PMIXPLUGINCREATEPROC)(PSNDMIXPLUGIN);
+typedef BOOL (*PMIXPLUGINCREATEPROC)(PSNDMIXPLUGIN);
/*////////////////////////////////////////////////////////////////// */
enum {
- MIDIOUT_START=0,
- MIDIOUT_STOP,
- MIDIOUT_TICK,
- MIDIOUT_NOTEON,
- MIDIOUT_NOTEOFF,
- MIDIOUT_VOLUME,
- MIDIOUT_PAN,
- MIDIOUT_BANKSEL,
- MIDIOUT_PROGRAM
+ MIDIOUT_START=0,
+ MIDIOUT_STOP,
+ MIDIOUT_TICK,
+ MIDIOUT_NOTEON,
+ MIDIOUT_NOTEOFF,
+ MIDIOUT_VOLUME,
+ MIDIOUT_PAN,
+ MIDIOUT_BANKSEL,
+ MIDIOUT_PROGRAM
};
@@ -525,251 +525,251 @@ typedef VOID (* LPSNDMIXHOOKPROC)(int *, unsigned long, unsigned long); /* buffe
class CSoundFile
/*============== */
{
-public: /* Static Members */
- static UINT m_nXBassDepth, m_nXBassRange;
- static UINT m_nReverbDepth, m_nReverbDelay, gnReverbType;
- static UINT m_nProLogicDepth, m_nProLogicDelay;
- static UINT m_nStereoSeparation;
- static UINT m_nMaxMixChannels;
- static LONG m_nStreamVolume;
- static DWORD gdwSysInfo, gdwSoundSetup, gdwMixingFreq, gnBitsPerSample, gnChannels;
- static UINT gnAGC, gnVolumeRampSamples, gnVUMeter, gnCPUUsage;
- static LPSNDMIXHOOKPROC gpSndMixHook;
- static PMIXPLUGINCREATEPROC gpMixPluginCreateProc;
-
-public: /* for Editing */
- MODCHANNEL Chn[MAX_CHANNELS]; /* Channels */
- UINT ChnMix[MAX_CHANNELS]; /* Channels to be mixed */
- MODINSTRUMENT Ins[MAX_SAMPLES]; /* Instruments */
- INSTRUMENTHEADER *Headers[MAX_INSTRUMENTS]; /* Instrument Headers */
- MODCHANNELSETTINGS ChnSettings[MAX_BASECHANNELS]; /* Channels settings */
- MODCOMMAND *Patterns[MAX_PATTERNS]; /* Patterns */
- WORD PatternSize[MAX_PATTERNS]; /* Patterns Lengths */
- BYTE Order[MAX_ORDERS]; /* Pattern Orders */
- MODMIDICFG m_MidiCfg; /* Midi macro config table */
- SNDMIXPLUGIN m_MixPlugins[MAX_MIXPLUGINS]; /* Mix plugins */
- UINT m_nDefaultSpeed, m_nDefaultTempo, m_nDefaultGlobalVolume;
- DWORD m_dwSongFlags; /* Song flags SONG_XXXX */
- UINT m_nChannels, m_nMixChannels, m_nMixStat, m_nBufferCount;
- UINT m_nType, m_nSamples, m_nInstruments;
- UINT m_nTickCount, m_nTotalCount, m_nPatternDelay, m_nFrameDelay;
- UINT m_nMusicSpeed, m_nMusicTempo;
- UINT m_nNextRow, m_nRow;
- UINT m_nPattern,m_nCurrentPattern,m_nNextPattern,m_nRestartPos;
- UINT m_nMasterVolume, m_nGlobalVolume, m_nSongPreAmp;
- UINT m_nFreqFactor, m_nTempoFactor, m_nOldGlbVolSlide;
- LONG m_nMinPeriod, m_nMaxPeriod, m_nRepeatCount, m_nInitialRepeatCount;
- DWORD m_nGlobalFadeSamples, m_nGlobalFadeMaxSamples;
- UINT m_nMaxOrderPosition;
- UINT m_nPatternNames;
- LPSTR m_lpszSongComments, m_lpszPatternNames;
- char m_szNames[MAX_INSTRUMENTS][32]; /* changed from CHAR */
- CHAR CompressionTable[16];
+public: /* Static Members */
+ static UINT m_nXBassDepth, m_nXBassRange;
+ static UINT m_nReverbDepth, m_nReverbDelay, gnReverbType;
+ static UINT m_nProLogicDepth, m_nProLogicDelay;
+ static UINT m_nStereoSeparation;
+ static UINT m_nMaxMixChannels;
+ static LONG m_nStreamVolume;
+ static DWORD gdwSysInfo, gdwSoundSetup, gdwMixingFreq, gnBitsPerSample, gnChannels;
+ static UINT gnAGC, gnVolumeRampSamples, gnVUMeter, gnCPUUsage;
+ static LPSNDMIXHOOKPROC gpSndMixHook;
+ static PMIXPLUGINCREATEPROC gpMixPluginCreateProc;
+
+public: /* for Editing */
+ MODCHANNEL Chn[MAX_CHANNELS]; /* Channels */
+ UINT ChnMix[MAX_CHANNELS]; /* Channels to be mixed */
+ MODINSTRUMENT Ins[MAX_SAMPLES]; /* Instruments */
+ INSTRUMENTHEADER *Headers[MAX_INSTRUMENTS]; /* Instrument Headers */
+ MODCHANNELSETTINGS ChnSettings[MAX_BASECHANNELS]; /* Channels settings */
+ MODCOMMAND *Patterns[MAX_PATTERNS]; /* Patterns */
+ WORD PatternSize[MAX_PATTERNS]; /* Patterns Lengths */
+ BYTE Order[MAX_ORDERS]; /* Pattern Orders */
+ MODMIDICFG m_MidiCfg; /* Midi macro config table */
+ SNDMIXPLUGIN m_MixPlugins[MAX_MIXPLUGINS]; /* Mix plugins */
+ UINT m_nDefaultSpeed, m_nDefaultTempo, m_nDefaultGlobalVolume;
+ DWORD m_dwSongFlags; /* Song flags SONG_XXXX */
+ UINT m_nChannels, m_nMixChannels, m_nMixStat, m_nBufferCount;
+ UINT m_nType, m_nSamples, m_nInstruments;
+ UINT m_nTickCount, m_nTotalCount, m_nPatternDelay, m_nFrameDelay;
+ UINT m_nMusicSpeed, m_nMusicTempo;
+ UINT m_nNextRow, m_nRow;
+ UINT m_nPattern,m_nCurrentPattern,m_nNextPattern,m_nRestartPos;
+ UINT m_nMasterVolume, m_nGlobalVolume, m_nSongPreAmp;
+ UINT m_nFreqFactor, m_nTempoFactor, m_nOldGlbVolSlide;
+ LONG m_nMinPeriod, m_nMaxPeriod, m_nRepeatCount, m_nInitialRepeatCount;
+ DWORD m_nGlobalFadeSamples, m_nGlobalFadeMaxSamples;
+ UINT m_nMaxOrderPosition;
+ UINT m_nPatternNames;
+ LPSTR m_lpszSongComments, m_lpszPatternNames;
+ char m_szNames[MAX_INSTRUMENTS][32]; /* changed from CHAR */
+ CHAR CompressionTable[16];
public:
- CSoundFile();
- ~CSoundFile();
+ CSoundFile();
+ ~CSoundFile();
public:
- BOOL Create(LPCBYTE lpStream, DWORD dwMemLength=0);
- BOOL Destroy();
- UINT GetType() const { return m_nType; }
- UINT GetNumChannels() const;
- UINT GetLogicalChannels() const { return m_nChannels; }
- BOOL SetMasterVolume(UINT vol, BOOL bAdjustAGC=FALSE);
- UINT GetMasterVolume() const { return m_nMasterVolume; }
- UINT GetNumPatterns() const;
- UINT GetNumInstruments() const;
- UINT GetNumSamples() const { return m_nSamples; }
- UINT GetCurrentPos() const;
- UINT GetCurrentPattern() const { return m_nPattern; }
- UINT GetCurrentOrder() const { return m_nCurrentPattern; }
- UINT GetSongComments(LPSTR s, UINT cbsize, UINT linesize=32);
- UINT GetRawSongComments(LPSTR s, UINT cbsize, UINT linesize=32);
- UINT GetMaxPosition() const;
- void SetCurrentPos(UINT nPos);
- void SetCurrentOrder(UINT nOrder);
- void GetTitle(LPSTR s) const { lstrcpyn(s,m_szNames[0],32); }
- LPCSTR GetTitle() const { return m_szNames[0]; }
- UINT GetSampleName(UINT nSample,LPSTR s=NULL) const;
- UINT GetInstrumentName(UINT nInstr,LPSTR s=NULL) const;
- UINT GetMusicSpeed() const { return m_nMusicSpeed; }
- UINT GetMusicTempo() const { return m_nMusicTempo; }
- DWORD GetLength(BOOL bAdjust, BOOL bTotal=FALSE);
- DWORD GetSongTime() { return GetLength(FALSE, TRUE); }
- void SetRepeatCount(int n) { m_nRepeatCount = n; m_nInitialRepeatCount = n; }
- int GetRepeatCount() const { return m_nRepeatCount; }
- BOOL IsPaused() const { return (m_dwSongFlags & SONG_PAUSED) ? TRUE : FALSE; }
- void LoopPattern(int nPat, int nRow=0);
- void CheckCPUUsage(UINT nCPU);
- BOOL SetPatternName(UINT nPat, LPCSTR lpszName);
- BOOL GetPatternName(UINT nPat, LPSTR lpszName, UINT cbSize=MAX_PATTERNNAME) const;
- /* Module Loaders */
- BOOL ReadXM(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadS3M(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadMod(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadMed(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadMTM(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadSTM(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadIT(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL Read669(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadUlt(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadWav(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadDSM(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadFAR(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadAMS(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadAMS2(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadMDL(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadOKT(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadDMF(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadPTM(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadDBM(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadAMF(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadMT2(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadPSM(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadJ2B(LPCBYTE lpStream, DWORD dwMemLength);
- BOOL ReadUMX(LPCBYTE lpStream, DWORD dwMemLength);
- /* Save Functions */
+ BOOL Create(LPCBYTE lpStream, DWORD dwMemLength=0);
+ BOOL Destroy();
+ UINT GetType() const { return m_nType; }
+ UINT GetNumChannels() const;
+ UINT GetLogicalChannels() const { return m_nChannels; }
+ BOOL SetMasterVolume(UINT vol, BOOL bAdjustAGC=FALSE);
+ UINT GetMasterVolume() const { return m_nMasterVolume; }
+ UINT GetNumPatterns() const;
+ UINT GetNumInstruments() const;
+ UINT GetNumSamples() const { return m_nSamples; }
+ UINT GetCurrentPos() const;
+ UINT GetCurrentPattern() const { return m_nPattern; }
+ UINT GetCurrentOrder() const { return m_nCurrentPattern; }
+ UINT GetSongComments(LPSTR s, UINT cbsize, UINT linesize=32);
+ UINT GetRawSongComments(LPSTR s, UINT cbsize, UINT linesize=32);
+ UINT GetMaxPosition() const;
+ void SetCurrentPos(UINT nPos);
+ void SetCurrentOrder(UINT nOrder);
+ void GetTitle(LPSTR s) const { lstrcpyn(s,m_szNames[0],32); }
+ LPCSTR GetTitle() const { return m_szNames[0]; }
+ UINT GetSampleName(UINT nSample,LPSTR s=NULL) const;
+ UINT GetInstrumentName(UINT nInstr,LPSTR s=NULL) const;
+ UINT GetMusicSpeed() const { return m_nMusicSpeed; }
+ UINT GetMusicTempo() const { return m_nMusicTempo; }
+ DWORD GetLength(BOOL bAdjust, BOOL bTotal=FALSE);
+ DWORD GetSongTime() { return GetLength(FALSE, TRUE); }
+ void SetRepeatCount(int n) { m_nRepeatCount = n; m_nInitialRepeatCount = n; }
+ int GetRepeatCount() const { return m_nRepeatCount; }
+ BOOL IsPaused() const { return (m_dwSongFlags & SONG_PAUSED) ? TRUE : FALSE; }
+ void LoopPattern(int nPat, int nRow=0);
+ void CheckCPUUsage(UINT nCPU);
+ BOOL SetPatternName(UINT nPat, LPCSTR lpszName);
+ BOOL GetPatternName(UINT nPat, LPSTR lpszName, UINT cbSize=MAX_PATTERNNAME) const;
+ /* Module Loaders */
+ BOOL ReadXM(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadS3M(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadMod(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadMed(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadMTM(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadSTM(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadIT(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL Read669(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadUlt(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadWav(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadDSM(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadFAR(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadAMS(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadAMS2(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadMDL(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadOKT(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadDMF(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadPTM(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadDBM(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadAMF(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadMT2(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadPSM(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadJ2B(LPCBYTE lpStream, DWORD dwMemLength);
+ BOOL ReadUMX(LPCBYTE lpStream, DWORD dwMemLength);
+ /* Save Functions */
#ifndef MODPLUG_NO_FILESAVE
- UINT WriteSample(FILE *f, MODINSTRUMENT *pins, UINT nFlags, UINT nMaxLen=0);
- BOOL SaveXM(LPCSTR lpszFileName, UINT nPacking=0);
- BOOL SaveS3M(LPCSTR lpszFileName, UINT nPacking=0);
- BOOL SaveMod(LPCSTR lpszFileName, UINT nPacking=0);
- BOOL SaveIT(LPCSTR lpszFileName, UINT nPacking=0);
+ UINT WriteSample(FILE *f, MODINSTRUMENT *pins, UINT nFlags, UINT nMaxLen=0);
+ BOOL SaveXM(LPCSTR lpszFileName, UINT nPacking=0);
+ BOOL SaveS3M(LPCSTR lpszFileName, UINT nPacking=0);
+ BOOL SaveMod(LPCSTR lpszFileName, UINT nPacking=0);
+ BOOL SaveIT(LPCSTR lpszFileName, UINT nPacking=0);
#endif /* MODPLUG_NO_FILESAVE */
- /* MOD Convert function */
- UINT GetBestSaveFormat() const;
- UINT GetSaveFormats() const;
- void ConvertModCommand(MODCOMMAND *) const;
- void S3MConvert(MODCOMMAND *m, BOOL bIT) const;
- void S3MSaveConvert(UINT *pcmd, UINT *pprm, BOOL bIT) const;
- WORD ModSaveCommand(const MODCOMMAND *m, BOOL bXM) const;
+ /* MOD Convert function */
+ UINT GetBestSaveFormat() const;
+ UINT GetSaveFormats() const;
+ void ConvertModCommand(MODCOMMAND *) const;
+ void S3MConvert(MODCOMMAND *m, BOOL bIT) const;
+ void S3MSaveConvert(UINT *pcmd, UINT *pprm, BOOL bIT) const;
+ WORD ModSaveCommand(const MODCOMMAND *m, BOOL bXM) const;
public:
- /* Real-time sound functions */
- VOID ResetChannels();
+ /* Real-time sound functions */
+ VOID ResetChannels();
- UINT Read(LPVOID lpBuffer, UINT cbBuffer);
- UINT CreateStereoMix(int count);
- BOOL FadeSong(UINT msec);
- BOOL GlobalFadeSong(UINT msec);
- UINT GetTotalTickCount() const { return m_nTotalCount; }
- VOID ResetTotalTickCount() { m_nTotalCount = 0; }
+ UINT Read(LPVOID lpBuffer, UINT cbBuffer);
+ UINT CreateStereoMix(int count);
+ BOOL FadeSong(UINT msec);
+ BOOL GlobalFadeSong(UINT msec);
+ UINT GetTotalTickCount() const { return m_nTotalCount; }
+ VOID ResetTotalTickCount() { m_nTotalCount = 0; }
public:
- /* Mixer Config */
- static BOOL InitPlayer(BOOL bReset=FALSE);
- static BOOL SetWaveConfig(UINT nRate,UINT nBits,UINT nChannels,BOOL bMMX=FALSE);
- static BOOL SetResamplingMode(UINT nMode); /* SRCMODE_XXXX */
- static BOOL IsStereo() { return (gnChannels > 1) ? TRUE : FALSE; }
- static DWORD GetSampleRate() { return gdwMixingFreq; }
- static DWORD GetBitsPerSample() { return gnBitsPerSample; }
- static DWORD InitSysInfo();
- static DWORD GetSysInfo() { return gdwSysInfo; }
- /* AGC */
- static BOOL GetAGC() { return (gdwSoundSetup & SNDMIX_AGC) ? TRUE : FALSE; }
- static void SetAGC(BOOL b);
- static void ResetAGC();
- static void ProcessAGC(int count);
-
- /*GCCFIX -- added these functions back in! */
- static BOOL SetWaveConfigEx(BOOL bSurround,BOOL bNoOverSampling,BOOL bReverb,BOOL hqido,BOOL bMegaBass,BOOL bNR,BOOL bEQ);
- /* DSP Effects */
- static void InitializeDSP(BOOL bReset);
- static void ProcessStereoDSP(int count);
- static void ProcessMonoDSP(int count);
- /* [Reverb level 0(quiet)-100(loud)], [delay in ms, usually 40-200ms] */
- static BOOL SetReverbParameters(UINT nDepth, UINT nDelay);
- /* [XBass level 0(quiet)-100(loud)], [cutoff in Hz 10-100] */
- static BOOL SetXBassParameters(UINT nDepth, UINT nRange);
- /* [Surround level 0(quiet)-100(heavy)] [delay in ms, usually 5-40ms] */
- static BOOL SetSurroundParameters(UINT nDepth, UINT nDelay);
+ /* Mixer Config */
+ static BOOL InitPlayer(BOOL bReset=FALSE);
+ static BOOL SetWaveConfig(UINT nRate,UINT nBits,UINT nChannels,BOOL bMMX=FALSE);
+ static BOOL SetResamplingMode(UINT nMode); /* SRCMODE_XXXX */
+ static BOOL IsStereo() { return (gnChannels > 1) ? TRUE : FALSE; }
+ static DWORD GetSampleRate() { return gdwMixingFreq; }
+ static DWORD GetBitsPerSample() { return gnBitsPerSample; }
+ static DWORD InitSysInfo();
+ static DWORD GetSysInfo() { return gdwSysInfo; }
+ /* AGC */
+ static BOOL GetAGC() { return (gdwSoundSetup & SNDMIX_AGC) ? TRUE : FALSE; }
+ static void SetAGC(BOOL b);
+ static void ResetAGC();
+ static void ProcessAGC(int count);
+
+ /*GCCFIX -- added these functions back in! */
+ static BOOL SetWaveConfigEx(BOOL bSurround,BOOL bNoOverSampling,BOOL bReverb,BOOL hqido,BOOL bMegaBass,BOOL bNR,BOOL bEQ);
+ /* DSP Effects */
+ static void InitializeDSP(BOOL bReset);
+ static void ProcessStereoDSP(int count);
+ static void ProcessMonoDSP(int count);
+ /* [Reverb level 0(quiet)-100(loud)], [delay in ms, usually 40-200ms] */
+ static BOOL SetReverbParameters(UINT nDepth, UINT nDelay);
+ /* [XBass level 0(quiet)-100(loud)], [cutoff in Hz 10-100] */
+ static BOOL SetXBassParameters(UINT nDepth, UINT nRange);
+ /* [Surround level 0(quiet)-100(heavy)] [delay in ms, usually 5-40ms] */
+ static BOOL SetSurroundParameters(UINT nDepth, UINT nDelay);
public:
- BOOL ReadNote();
- BOOL ProcessRow();
- BOOL ProcessEffects();
- UINT GetNNAChannel(UINT nChn) const;
- void CheckNNA(UINT nChn, UINT instr, int note, BOOL bForceCut);
- void NoteChange(UINT nChn, int note, BOOL bPorta=FALSE, BOOL bResetEnv=TRUE);
- void InstrumentChange(MODCHANNEL *pChn, UINT instr, BOOL bPorta=FALSE,BOOL bUpdVol=TRUE,BOOL bResetEnv=TRUE);
- /* Channel Effects */
- void PortamentoUp(MODCHANNEL *pChn, UINT param);
- void PortamentoDown(MODCHANNEL *pChn, UINT param);
- void FinePortamentoUp(MODCHANNEL *pChn, UINT param);
- void FinePortamentoDown(MODCHANNEL *pChn, UINT param);
- void ExtraFinePortamentoUp(MODCHANNEL *pChn, UINT param);
- void ExtraFinePortamentoDown(MODCHANNEL *pChn, UINT param);
- void TonePortamento(MODCHANNEL *pChn, UINT param);
- void Vibrato(MODCHANNEL *pChn, UINT param);
- void FineVibrato(MODCHANNEL *pChn, UINT param);
- void VolumeSlide(MODCHANNEL *pChn, UINT param);
- void PanningSlide(MODCHANNEL *pChn, UINT param);
- void ChannelVolSlide(MODCHANNEL *pChn, UINT param);
- void FineVolumeUp(MODCHANNEL *pChn, UINT param);
- void FineVolumeDown(MODCHANNEL *pChn, UINT param);
- void Tremolo(MODCHANNEL *pChn, UINT param);
- void Panbrello(MODCHANNEL *pChn, UINT param);
- void RetrigNote(UINT nChn, UINT param);
- void NoteCut(UINT nChn, UINT nTick);
- void KeyOff(UINT nChn);
- int PatternLoop(MODCHANNEL *, UINT param);
- void ExtendedMODCommands(UINT nChn, UINT param);
- void ExtendedS3MCommands(UINT nChn, UINT param);
- void ExtendedChannelEffect(MODCHANNEL *, UINT param);
- void ProcessMidiMacro(UINT nChn, LPCSTR pszMidiMacro, UINT param=0);
- void SetupChannelFilter(MODCHANNEL *pChn, BOOL bReset, int flt_modifier=256) const;
- /* Low-Level effect processing */
- void DoFreqSlide(MODCHANNEL *pChn, LONG nFreqSlide);
- /* Global Effects */
- void SetTempo(UINT param);
- void SetSpeed(UINT param);
- void GlobalVolSlide(UINT param);
- DWORD IsSongFinished(UINT nOrder, UINT nRow) const;
- BOOL IsValidBackwardJump(UINT nStartOrder, UINT nStartRow, UINT nJumpOrder, UINT nJumpRow) const;
- /* Read/Write sample functions */
- signed char GetDeltaValue(signed char prev, UINT n) const { return (signed char)(prev + CompressionTable[n & 0x0F]); }
- UINT PackSample(int &sample, int next);
- BOOL CanPackSample(LPSTR pSample, UINT nLen, UINT nPacking, BYTE *result=NULL);
- UINT ReadSample(MODINSTRUMENT *pIns, UINT nFlags, LPCSTR pMemFile, DWORD dwMemLength);
- BOOL DestroySample(UINT nSample);
- BOOL DestroyInstrument(UINT nInstr);
- BOOL IsSampleUsed(UINT nSample);
- BOOL IsInstrumentUsed(UINT nInstr);
- BOOL RemoveInstrumentSamples(UINT nInstr);
- UINT DetectUnusedSamples(BOOL *);
- BOOL RemoveSelectedSamples(BOOL *);
- void AdjustSampleLoop(MODINSTRUMENT *pIns);
- /* I/O from another sound file */
- BOOL ReadInstrumentFromSong(UINT nInstr, CSoundFile *, UINT nSrcInstrument);
- BOOL ReadSampleFromSong(UINT nSample, CSoundFile *, UINT nSrcSample);
- /* Period/Note functions */
- UINT GetNoteFromPeriod(UINT period) const;
- UINT GetPeriodFromNote(UINT note, int nFineTune, UINT nC4Speed) const;
- UINT GetFreqFromPeriod(UINT period, UINT nC4Speed, int nPeriodFrac=0) const;
- /* Misc functions */
- MODINSTRUMENT *GetSample(UINT n) { return Ins+n; }
- void ResetMidiCfg();
- UINT MapMidiInstrument(DWORD dwProgram, UINT nChannel, UINT nNote);
- BOOL ITInstrToMPT(const void *p, INSTRUMENTHEADER *penv, UINT trkvers);
- UINT SaveMixPlugins(FILE *f=NULL, BOOL bUpdate=TRUE);
- UINT LoadMixPlugins(const void *pData, UINT nLen);
+ BOOL ReadNote();
+ BOOL ProcessRow();
+ BOOL ProcessEffects();
+ UINT GetNNAChannel(UINT nChn) const;
+ void CheckNNA(UINT nChn, UINT instr, int note, BOOL bForceCut);
+ void NoteChange(UINT nChn, int note, BOOL bPorta=FALSE, BOOL bResetEnv=TRUE);
+ void InstrumentChange(MODCHANNEL *pChn, UINT instr, BOOL bPorta=FALSE,BOOL bUpdVol=TRUE,BOOL bResetEnv=TRUE);
+ /* Channel Effects */
+ void PortamentoUp(MODCHANNEL *pChn, UINT param);
+ void PortamentoDown(MODCHANNEL *pChn, UINT param);
+ void FinePortamentoUp(MODCHANNEL *pChn, UINT param);
+ void FinePortamentoDown(MODCHANNEL *pChn, UINT param);
+ void ExtraFinePortamentoUp(MODCHANNEL *pChn, UINT param);
+ void ExtraFinePortamentoDown(MODCHANNEL *pChn, UINT param);
+ void TonePortamento(MODCHANNEL *pChn, UINT param);
+ void Vibrato(MODCHANNEL *pChn, UINT param);
+ void FineVibrato(MODCHANNEL *pChn, UINT param);
+ void VolumeSlide(MODCHANNEL *pChn, UINT param);
+ void PanningSlide(MODCHANNEL *pChn, UINT param);
+ void ChannelVolSlide(MODCHANNEL *pChn, UINT param);
+ void FineVolumeUp(MODCHANNEL *pChn, UINT param);
+ void FineVolumeDown(MODCHANNEL *pChn, UINT param);
+ void Tremolo(MODCHANNEL *pChn, UINT param);
+ void Panbrello(MODCHANNEL *pChn, UINT param);
+ void RetrigNote(UINT nChn, UINT param);
+ void NoteCut(UINT nChn, UINT nTick);
+ void KeyOff(UINT nChn);
+ int PatternLoop(MODCHANNEL *, UINT param);
+ void ExtendedMODCommands(UINT nChn, UINT param);
+ void ExtendedS3MCommands(UINT nChn, UINT param);
+ void ExtendedChannelEffect(MODCHANNEL *, UINT param);
+ void ProcessMidiMacro(UINT nChn, LPCSTR pszMidiMacro, UINT param=0);
+ void SetupChannelFilter(MODCHANNEL *pChn, BOOL bReset, int flt_modifier=256) const;
+ /* Low-Level effect processing */
+ void DoFreqSlide(MODCHANNEL *pChn, LONG nFreqSlide);
+ /* Global Effects */
+ void SetTempo(UINT param);
+ void SetSpeed(UINT param);
+ void GlobalVolSlide(UINT param);
+ DWORD IsSongFinished(UINT nOrder, UINT nRow) const;
+ BOOL IsValidBackwardJump(UINT nStartOrder, UINT nStartRow, UINT nJumpOrder, UINT nJumpRow) const;
+ /* Read/Write sample functions */
+ signed char GetDeltaValue(signed char prev, UINT n) const { return (signed char)(prev + CompressionTable[n & 0x0F]); }
+ UINT PackSample(int &sample, int next);
+ BOOL CanPackSample(LPSTR pSample, UINT nLen, UINT nPacking, BYTE *result=NULL);
+ UINT ReadSample(MODINSTRUMENT *pIns, UINT nFlags, LPCSTR pMemFile, DWORD dwMemLength);
+ BOOL DestroySample(UINT nSample);
+ BOOL DestroyInstrument(UINT nInstr);
+ BOOL IsSampleUsed(UINT nSample);
+ BOOL IsInstrumentUsed(UINT nInstr);
+ BOOL RemoveInstrumentSamples(UINT nInstr);
+ UINT DetectUnusedSamples(BOOL *);
+ BOOL RemoveSelectedSamples(BOOL *);
+ void AdjustSampleLoop(MODINSTRUMENT *pIns);
+ /* I/O from another sound file */
+ BOOL ReadInstrumentFromSong(UINT nInstr, CSoundFile *, UINT nSrcInstrument);
+ BOOL ReadSampleFromSong(UINT nSample, CSoundFile *, UINT nSrcSample);
+ /* Period/Note functions */
+ UINT GetNoteFromPeriod(UINT period) const;
+ UINT GetPeriodFromNote(UINT note, int nFineTune, UINT nC4Speed) const;
+ UINT GetFreqFromPeriod(UINT period, UINT nC4Speed, int nPeriodFrac=0) const;
+ /* Misc functions */
+ MODINSTRUMENT *GetSample(UINT n) { return Ins+n; }
+ void ResetMidiCfg();
+ UINT MapMidiInstrument(DWORD dwProgram, UINT nChannel, UINT nNote);
+ BOOL ITInstrToMPT(const void *p, INSTRUMENTHEADER *penv, UINT trkvers);
+ UINT SaveMixPlugins(FILE *f=NULL, BOOL bUpdate=TRUE);
+ UINT LoadMixPlugins(const void *pData, UINT nLen);
#ifndef NO_FILTER
- DWORD CutOffToFrequency(UINT nCutOff, int flt_modifier=256) const; /* [0-255] => [1-10KHz] */
+ DWORD CutOffToFrequency(UINT nCutOff, int flt_modifier=256) const; /* [0-255] => [1-10KHz] */
#endif
- /* Static helper functions */
+ /* Static helper functions */
public:
- static DWORD TransposeToFrequency(int transp, int ftune=0);
- static int FrequencyToTranspose(DWORD freq);
- static void FrequencyToTranspose(MODINSTRUMENT *psmp);
+ static DWORD TransposeToFrequency(int transp, int ftune=0);
+ static int FrequencyToTranspose(DWORD freq);
+ static void FrequencyToTranspose(MODINSTRUMENT *psmp);
- /* System-Dependant functions */
+ /* System-Dependant functions */
public:
- static MODCOMMAND *AllocatePattern(UINT rows, UINT nchns);
- static signed char* AllocateSample(UINT nbytes);
- static void FreePattern(LPVOID pat);
- static void FreeSample(LPVOID p);
- static UINT Normalize24BitBuffer(LPBYTE pbuffer, UINT cbsizebytes, DWORD lmax24, DWORD dwByteInc);
+ static MODCOMMAND *AllocatePattern(UINT rows, UINT nchns);
+ static signed char* AllocateSample(UINT nbytes);
+ static void FreePattern(LPVOID pat);
+ static void FreeSample(LPVOID p);
+ static UINT Normalize24BitBuffer(LPBYTE pbuffer, UINT cbsizebytes, DWORD lmax24, DWORD dwByteInc);
};
@@ -783,117 +783,117 @@ public:
#pragma pack(1)
/* Standard IFF chunks IDs */
-#define IFFID_FORM 0x4d524f46
-#define IFFID_RIFF 0x46464952
-#define IFFID_WAVE 0x45564157
-#define IFFID_LIST 0x5453494C
-#define IFFID_INFO 0x4F464E49
+#define IFFID_FORM 0x4d524f46
+#define IFFID_RIFF 0x46464952
+#define IFFID_WAVE 0x45564157
+#define IFFID_LIST 0x5453494C
+#define IFFID_INFO 0x4F464E49
/* IFF Info fields */
-#define IFFID_ICOP 0x504F4349
-#define IFFID_IART 0x54524149
-#define IFFID_IPRD 0x44525049
-#define IFFID_INAM 0x4D414E49
-#define IFFID_ICMT 0x544D4349
-#define IFFID_IENG 0x474E4549
-#define IFFID_ISFT 0x54465349
-#define IFFID_ISBJ 0x4A425349
-#define IFFID_IGNR 0x524E4749
-#define IFFID_ICRD 0x44524349
+#define IFFID_ICOP 0x504F4349
+#define IFFID_IART 0x54524149
+#define IFFID_IPRD 0x44525049
+#define IFFID_INAM 0x4D414E49
+#define IFFID_ICMT 0x544D4349
+#define IFFID_IENG 0x474E4549
+#define IFFID_ISFT 0x54465349
+#define IFFID_ISBJ 0x4A425349
+#define IFFID_IGNR 0x524E4749
+#define IFFID_ICRD 0x44524349
/* Wave IFF chunks IDs */
-#define IFFID_wave 0x65766177
-#define IFFID_fmt 0x20746D66
-#define IFFID_wsmp 0x706D7377
-#define IFFID_pcm 0x206d6370
-#define IFFID_data 0x61746164
-#define IFFID_smpl 0x6C706D73
-#define IFFID_xtra 0x61727478
+#define IFFID_wave 0x65766177
+#define IFFID_fmt 0x20746D66
+#define IFFID_wsmp 0x706D7377
+#define IFFID_pcm 0x206d6370
+#define IFFID_data 0x61746164
+#define IFFID_smpl 0x6C706D73
+#define IFFID_xtra 0x61727478
typedef struct WAVEFILEHEADER
{
- DWORD id_RIFF; /* "RIFF" */
- DWORD filesize; /* file length-8 */
- DWORD id_WAVE;
+ DWORD id_RIFF; /* "RIFF" */
+ DWORD filesize; /* file length-8 */
+ DWORD id_WAVE;
} WAVEFILEHEADER;
typedef struct WAVEFORMATHEADER
{
- DWORD id_fmt; /* "fmt " */
- DWORD hdrlen; /* 16 */
- WORD format; /* 1 */
- WORD channels; /* 1:mono, 2:stereo */
- DWORD freqHz; /* sampling freq */
- DWORD bytessec; /* bytes/sec=freqHz*samplesize */
- WORD samplesize; /* sizeof(sample) */
- WORD bitspersample; /* bits per sample (8/16) */
+ DWORD id_fmt; /* "fmt " */
+ DWORD hdrlen; /* 16 */
+ WORD format; /* 1 */
+ WORD channels; /* 1:mono, 2:stereo */
+ DWORD freqHz; /* sampling freq */
+ DWORD bytessec; /* bytes/sec=freqHz*samplesize */
+ WORD samplesize; /* sizeof(sample) */
+ WORD bitspersample; /* bits per sample (8/16) */
} WAVEFORMATHEADER;
typedef struct WAVEDATAHEADER
{
- DWORD id_data; /* "data" */
- DWORD length; /* length of data */
+ DWORD id_data; /* "data" */
+ DWORD length; /* length of data */
} WAVEDATAHEADER;
typedef struct WAVESMPLHEADER
{
- /* SMPL */
- DWORD smpl_id; /* "smpl" -> 0x6C706D73 */
- DWORD smpl_len; /* length of smpl: 3Ch (54h with sustain loop) */
- DWORD dwManufacturer;
- DWORD dwProduct;
- DWORD dwSamplePeriod; /* 1000000000/freqHz */
- DWORD dwBaseNote; /* 3Ch = C-4 -> 60 + RelativeTone */
- DWORD dwPitchFraction;
- DWORD dwSMPTEFormat;
- DWORD dwSMPTEOffset;
- DWORD dwSampleLoops; /* number of loops */
- DWORD cbSamplerData;
+ /* SMPL */
+ DWORD smpl_id; /* "smpl" -> 0x6C706D73 */
+ DWORD smpl_len; /* length of smpl: 3Ch (54h with sustain loop) */
+ DWORD dwManufacturer;
+ DWORD dwProduct;
+ DWORD dwSamplePeriod; /* 1000000000/freqHz */
+ DWORD dwBaseNote; /* 3Ch = C-4 -> 60 + RelativeTone */
+ DWORD dwPitchFraction;
+ DWORD dwSMPTEFormat;
+ DWORD dwSMPTEOffset;
+ DWORD dwSampleLoops; /* number of loops */
+ DWORD cbSamplerData;
} WAVESMPLHEADER;
typedef struct SAMPLELOOPSTRUCT
{
- DWORD dwIdentifier;
- DWORD dwLoopType; /* 0=normal, 1=bidi */
- DWORD dwLoopStart;
- DWORD dwLoopEnd; /* Byte offset ? */
- DWORD dwFraction;
- DWORD dwPlayCount; /* Loop Count, 0=infinite */
+ DWORD dwIdentifier;
+ DWORD dwLoopType; /* 0=normal, 1=bidi */
+ DWORD dwLoopStart;
+ DWORD dwLoopEnd; /* Byte offset ? */
+ DWORD dwFraction;
+ DWORD dwPlayCount; /* Loop Count, 0=infinite */
} SAMPLELOOPSTRUCT;
typedef struct WAVESAMPLERINFO
{
- WAVESMPLHEADER wsiHdr;
- SAMPLELOOPSTRUCT wsiLoops[2];
+ WAVESMPLHEADER wsiHdr;
+ SAMPLELOOPSTRUCT wsiLoops[2];
} WAVESAMPLERINFO;
typedef struct WAVELISTHEADER
{
- DWORD list_id; /* "LIST" -> 0x5453494C */
- DWORD list_len;
- DWORD info; /* "INFO" */
+ DWORD list_id; /* "LIST" -> 0x5453494C */
+ DWORD list_len;
+ DWORD info; /* "INFO" */
} WAVELISTHEADER;
typedef struct WAVEEXTRAHEADER
{
- DWORD xtra_id; /* "xtra" -> 0x61727478 */
- DWORD xtra_len;
- DWORD dwFlags;
- WORD wPan;
- WORD wVolume;
- WORD wGlobalVol;
- WORD wReserved;
- BYTE nVibType;
- BYTE nVibSweep;
- BYTE nVibDepth;
- BYTE nVibRate;
+ DWORD xtra_id; /* "xtra" -> 0x61727478 */
+ DWORD xtra_len;
+ DWORD dwFlags;
+ WORD wPan;
+ WORD wVolume;
+ WORD wGlobalVol;
+ WORD wReserved;
+ BYTE nVibType;
+ BYTE nVibSweep;
+ BYTE nVibDepth;
+ BYTE nVibRate;
} WAVEEXTRAHEADER;
#pragma pack()
@@ -901,27 +901,27 @@ typedef struct WAVEEXTRAHEADER
/*///////////////////////////////////////////////////////// */
/* Low-level Mixing functions */
-#define MIXBUFFERSIZE 512
-#define MIXING_ATTENUATION 4
-#define MIXING_CLIPMIN (-0x08000000)
-#define MIXING_CLIPMAX (0x07FFFFFF)
-#define VOLUMERAMPPRECISION 12
-#define FADESONGDELAY 100
-#define EQ_BUFFERSIZE (MIXBUFFERSIZE)
-#define AGC_PRECISION 9
-#define AGC_UNITY (1 << AGC_PRECISION)
+#define MIXBUFFERSIZE 512
+#define MIXING_ATTENUATION 4
+#define MIXING_CLIPMIN (-0x08000000)
+#define MIXING_CLIPMAX (0x07FFFFFF)
+#define VOLUMERAMPPRECISION 12
+#define FADESONGDELAY 100
+#define EQ_BUFFERSIZE (MIXBUFFERSIZE)
+#define AGC_PRECISION 9
+#define AGC_UNITY (1 << AGC_PRECISION)
/* Calling conventions */
#ifdef MSC_VER
-#define MPPASMCALL __cdecl
-#define MPPFASTCALL __fastcall
+#define MPPASMCALL __cdecl
+#define MPPFASTCALL __fastcall
#else
#define MPPASMCALL
#define MPPFASTCALL
#endif
-#define MOD2XMFineTune(k) ((int)( (signed char)((k)<<4) ))
-#define XM2MODFineTune(k) ((int)( (k>>4)&0x0f ))
+#define MOD2XMFineTune(k) ((int)( (signed char)((k)<<4) ))
+#define XM2MODFineTune(k) ((int)( (k>>4)&0x0f ))
int _muldiv(long a, long b, long c);
int _muldivr(long a, long b, long c);
@@ -932,8 +932,8 @@ int _muldivr(long a, long b, long c);
/* Swap bytes in 16 bit value. */
#ifdef __GNUC__
# define bswap_16(x) \
- (__extension__ \
- ({ unsigned short int __bsx = (x); \
+ (__extension__ \
+ ({ unsigned short int __bsx = (x); \
((((__bsx) >> 8) & 0xff) | (((__bsx) & 0xff) << 8)); }))
#else
static inline unsigned short int
@@ -946,16 +946,16 @@ bswap_16 (unsigned short int __bsx)
/* Swap bytes in 32 bit value. */
#ifdef __GNUC__
# define bswap_32(x) \
- (__extension__ \
- ({ unsigned int __bsx = (x); \
+ (__extension__ \
+ ({ unsigned int __bsx = (x); \
((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >> 8) | \
- (((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24)); }))
+ (((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24)); }))
#else
static inline unsigned int
bswap_32 (unsigned int __bsx)
{
return ((((__bsx) & 0xff000000) >> 24) | (((__bsx) & 0x00ff0000) >> 8) |
- (((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24));
+ (((__bsx) & 0x0000ff00) << 8) | (((__bsx) & 0x000000ff) << 24));
}
#endif
diff --git a/gst/modplug/libmodplug/stdafx.h b/gst/modplug/libmodplug/stdafx.h
index dc71ea8f..1659f89c 100644
--- a/gst/modplug/libmodplug/stdafx.h
+++ b/gst/modplug/libmodplug/stdafx.h
@@ -79,15 +79,15 @@ inline void ProcessPlugins(int n) {}
#define GlobalFreePtr(p) free((void *)(p))
-#define strnicmp(a,b,c) strncasecmp(a,b,c)
-#define wsprintf sprintf
+#define strnicmp(a,b,c) strncasecmp(a,b,c)
+#define wsprintf sprintf
#ifndef FALSE
-#define FALSE false
+#define FALSE false
#endif
#ifndef TRUE
-#define TRUE true
+#define TRUE true
#endif
#endif /* MSC_VER */