|
|
| version 1.11, 2006/12/16 12:11:07 | version 1.13, 2011/02/04 00:39:34 |
|---|---|
| Line 1 | Line 1 |
| #if !defined(_WIN32_WCE) && !defined(SLZAURUS) | #if !defined(_WIN32_WCE) && !defined(SLZAURUS) |
| #define ENABLE_TREMOLO | #define ENABLE_TREMOLO |
| #define ENABLE_VIRLATE | #define ENABLE_VIRLATE |
| #else | #else |
| #define MIDI_GMONLY | #define MIDI_GMONLY |
| #endif | #endif |
| #define ENABLE_GSRX | #define ENABLE_GSRX |
| #define PANPOT_REVA | #define PANPOT_REVA |
| // #define VOLUME_ACURVE | // #define VOLUME_ACURVE |
| #define ENABLE_PORTB | #define ENABLE_PORTB |
| #ifndef VERMOUTHCL | #ifndef VERMOUTHCL |
| #define VERMOUTHCL | #define VERMOUTHCL |
| #endif | #endif |
| struct _midimodule; | struct _midimodule; |
| typedef struct _midimodule _MIDIMOD; | typedef struct _midimodule _MIDIMOD; |
| typedef struct _midimodule *MIDIMOD; | typedef struct _midimodule *MIDIMOD; |
| struct _midictrl; | struct _midictrl; |
| typedef struct _midictrl _MIDIHDL; | typedef struct _midictrl _MIDIHDL; |
| typedef struct _midictrl *MIDIHDL; | typedef struct _midictrl *MIDIHDL; |
| enum { | enum { |
| MIDIOUT_SUCCESS = 0, | MIDIOUT_SUCCESS = 0, |
| MIDIOUT_FAILURE = -1, | MIDIOUT_FAILURE = -1, |
| MIDIOUT_ABORT = -2 | MIDIOUT_ABORT = -2 |
| }; | }; |
| #define VOICE_MAX 24 | #define CHANNEL_MAX 16 |
| #define VOICE_MAX 24 | |
| #define SAMP_SHIFT 12 | |
| #define SAMP_LIMIT ((1 << (SAMP_SHIFT + 1)) - 1) | #define SAMP_SHIFT 12 |
| #define SAMP_LIMIT ((1 << (SAMP_SHIFT + 1)) - 1) | |
| #define FREQ_SHIFT 12 | |
| #define FREQ_MASK ((1 << FREQ_SHIFT) - 1) | #define FREQ_SHIFT 12 |
| #define FREQ_MASK ((1 << FREQ_SHIFT) - 1) | |
| #define ENV_RATE 22 | |
| #define ENVRATE_SHIFT 10 | #define ENV_RATE 22 |
| #define ENVRATE_SHIFT 10 | |
| #define TRESWEEP_SHIFT 16 | |
| #define TRERATE_SHIFT 5 | #define TRESWEEP_SHIFT 16 |
| #define TRESWEEP_TUNE 38 | #define TRERATE_SHIFT 5 |
| #define TRERATE_TUNE 38 | #define TRESWEEP_TUNE 38 |
| #define TRERATE_TUNE 38 | |
| #define VIBSWEEP_SHIFT 16 | |
| #define VIBRATE_SHIFT 6 | #define VIBSWEEP_SHIFT 16 |
| #define VIBSWEEP_TUNE 38 | #define VIBRATE_SHIFT 6 |
| #define VIBRATE_TUNE 38 | #define VIBSWEEP_TUNE 38 |
| #define VIBRATE_TUNE 38 | |
| #define REL_COUNT 20 | |
| #define REL_COUNT 20 | |
| #if defined(MIDI_GMONLY) | |
| #define MIDI_BANKS 1 | #if defined(MIDI_GMONLY) |
| #else | #define MIDI_BANKS 1 |
| #define MIDI_BANKS 128 | #else |
| #endif | #define MIDI_BANKS 128 |
| #endif | |
| #include "midimod.h" | |
| #include "midinst.h" | #include "midimod.h" |
| #include "midvoice.h" | #include "midinst.h" |
| #include "midtable.h" | #include "midvoice.h" |
| #include "midtable.h" | |
| struct _midimodule { | |
| UINT samprate; | struct _midimodule { |
| UINT lockcount; | UINT samprate; |
| INSTRUMENT *tone[MIDI_BANKS * 2]; | UINT lockcount; |
| TONECFG tonecfg[MIDI_BANKS * 2]; | INSTRUMENT *tone[MIDI_BANKS * 2]; |
| TONECFG tonecfg[MIDI_BANKS * 2]; | |
| PATHLIST pathlist; | |
| LISTARRAY pathtbl; | PATHLIST pathlist; |
| LISTARRAY namelist; | LISTARRAY pathtbl; |
| }; | LISTARRAY namelist; |
| }; | |
| struct _midictrl { | |
| UINT samprate; | struct _midictrl { |
| UINT worksize; | UINT samprate; |
| int level; | UINT worksize; |
| UINT8 status; | int level; |
| SINT8 gain; | UINT8 status; |
| UINT8 master; | SINT8 gain; |
| UINT8 moduleid; | UINT8 master; |
| UINT8 moduleid; | |
| MIDIMOD module; | |
| INSTRUMENT *bank0[2]; | MIDIMOD module; |
| INSTRUMENT *bank0[2]; | |
| SINT32 *sampbuf; | |
| SAMPLE resampbuf; | SINT32 *sampbuf; |
| SAMPLE resampbuf; | |
| #if defined(ENABLE_PORTB) | |
| MIDIHDL portb; | #if defined(ENABLE_PORTB) |
| #endif // defined(ENABLE_PORTB); | MIDIHDL portb; |
| #endif // defined(ENABLE_PORTB); | |
| _CHANNEL channel[16]; | |
| _VOICE voice[VOICE_MAX]; | _CHANNEL channel[CHANNEL_MAX]; |
| }; | _VOICE voice[VOICE_MAX]; |
| }; | |
| struct _miditoneloadparam { | |
| void *userdata; | struct _miditoneloadparam { |
| UINT totaltones; | void *userdata; |
| UINT progress; | UINT totaltones; |
| UINT bank; | UINT progress; |
| UINT num; | UINT bank; |
| }; | UINT num; |
| }; | |
| #ifndef VERMOUTH_EXPORTS | |
| #define VEXTERN | #ifndef VERMOUTH_EXPORTS |
| #define VEXPORT VERMOUTHCL | #define VEXTERN |
| #else | #define VEXPORT VERMOUTHCL |
| #define VEXTERN __declspec(dllexport) | #else |
| #define VEXPORT WINAPI | #define VEXTERN __declspec(dllexport) |
| #endif | #define VEXPORT WINAPI |
| #endif | |
| #ifdef __cplusplus | |
| extern "C" { | #ifdef __cplusplus |
| #endif | extern "C" { |
| #endif | |
| VEXTERN UINT VEXPORT midiout_getver(char *string, int leng); | |
| VEXTERN _MIDIHDL * VEXPORT midiout_create(MIDIMOD module, UINT worksize); | VEXTERN UINT VEXPORT midiout_getver(char *string, int leng); |
| VEXTERN void VEXPORT midiout_destroy(MIDIHDL hdl); | VEXTERN _MIDIHDL * VEXPORT midiout_create(MIDIMOD mod, UINT worksize); |
| VEXTERN void VEXPORT midiout_shortmsg(MIDIHDL hdl, UINT32 msg); | VEXTERN void VEXPORT midiout_destroy(MIDIHDL hdl); |
| VEXTERN void VEXPORT midiout_longmsg(MIDIHDL hdl, const UINT8 *msg, UINT size); | VEXTERN void VEXPORT midiout_shortmsg(MIDIHDL hdl, UINT32 msg); |
| VEXTERN const SINT32 * VEXPORT midiout_get(MIDIHDL hdl, UINT *samples); | VEXTERN void VEXPORT midiout_longmsg(MIDIHDL hdl, const UINT8 *msg, UINT size); |
| VEXTERN UINT VEXPORT midiout_get16(MIDIHDL hdl, SINT16 *pcm, UINT size); | VEXTERN const SINT32 * VEXPORT midiout_get(MIDIHDL hdl, UINT *samples); |
| VEXTERN UINT VEXPORT midiout_get32(MIDIHDL hdl, SINT32 *pcm, UINT size); | VEXTERN UINT VEXPORT midiout_get16(MIDIHDL hdl, SINT16 *pcm, UINT size); |
| VEXTERN void VEXPORT midiout_setgain(MIDIHDL hdl, int gain); | VEXTERN UINT VEXPORT midiout_get32(MIDIHDL hdl, SINT32 *pcm, UINT size); |
| VEXTERN void VEXPORT midiout_setmoduleid(MIDIHDL hdl, UINT8 moduleid); | VEXTERN void VEXPORT midiout_setgain(MIDIHDL hdl, int gain); |
| VEXTERN void VEXPORT midiout_setportb(MIDIHDL hdl, MIDIHDL portb); | VEXTERN void VEXPORT midiout_setmoduleid(MIDIHDL hdl, UINT8 moduleid); |
| VEXTERN void VEXPORT midiout_setportb(MIDIHDL hdl, MIDIHDL portb); | |
| VEXTERN _MIDIMOD * VEXPORT midimod_create(UINT samprate); | |
| VEXTERN void VEXPORT midimod_destroy(MIDIMOD hdl); | VEXTERN _MIDIMOD * VEXPORT midimod_create(UINT samprate); |
| VEXTERN BRESULT VEXPORT midimod_cfgload(MIDIMOD hdl, const OEMCHAR *filename); | VEXTERN void VEXPORT midimod_destroy(MIDIMOD mod); |
| VEXTERN void VEXPORT midimod_loadprogram(MIDIMOD hdl, UINT num); | VEXTERN BRESULT VEXPORT midimod_cfgload(MIDIMOD mod, const OEMCHAR *filename); |
| VEXTERN void VEXPORT midimod_loadrhythm(MIDIMOD hdl, UINT num); | VEXTERN void VEXPORT midimod_loadprogram(MIDIMOD mod, UINT num); |
| VEXTERN void VEXPORT midimod_loadgm(MIDIMOD hdl); | VEXTERN void VEXPORT midimod_loadrhythm(MIDIMOD mod, UINT num); |
| VEXTERN void VEXPORT midimod_loadall(MIDIMOD hdl); | VEXTERN void VEXPORT midimod_loadgm(MIDIMOD mod); |
| VEXTERN void VEXPORT midimod_loadallex(MIDIMOD hdl, FNMIDIOUTLAEXCB cb, void *userdata); | VEXTERN void VEXPORT midimod_loadall(MIDIMOD mod); |
| VEXTERN int VEXPORT midimod_loadallex(MIDIMOD mod, FNMIDIOUTLAEXCB cb, | |
| #ifdef __cplusplus | void *userdata); |
| } | |
| #endif | #ifdef __cplusplus |
| } | |
| #endif | |