--- np2/sound/vermouth/midiout.h 2003/11/21 06:51:14 1.3 +++ np2/sound/vermouth/midiout.h 2006/12/16 09:43:24 1.10 @@ -1,10 +1,14 @@ -#define MIDI_GMONLY - #if !defined(_WIN32_WCE) && !defined(SLZAURUS) #define ENABLE_TREMOLO #define ENABLE_VIRLATE +#else +#define MIDI_GMONLY #endif +#define ENABLE_GSRX +#define PANPOT_REVA +// #define VOLUME_ACURVE +#define ENABLE_PORTB struct _midimodule; typedef struct _midimodule _MIDIMOD; @@ -16,7 +20,8 @@ typedef struct _midictrl *MIDIHDL; enum { MIDIOUT_SUCCESS = 0, - MIDIOUT_FAILURE = -1 + MIDIOUT_FAILURE = -1, + MIDIOUT_ABORT = -2 }; #define VOICE_MAX 24 @@ -56,6 +61,7 @@ enum { struct _midimodule { UINT samprate; + UINT lockcount; INSTRUMENT *tone[MIDI_BANKS * 2]; TONECFG tonecfg[MIDI_BANKS * 2]; @@ -69,9 +75,10 @@ struct _midictrl { UINT samprate; UINT worksize; int level; - BYTE status; - char gain; - BYTE master; + UINT8 status; + SINT8 gain; + UINT8 master; + UINT8 moduleid; MIDIMOD module; INSTRUMENT *bank0[2]; @@ -79,36 +86,55 @@ struct _midictrl { SINT32 *sampbuf; SAMPLE resampbuf; +#if defined(ENABLE_PORTB) + MIDIHDL portb; +#endif // defined(ENABLE_PORTB); + _CHANNEL channel[16]; _VOICE voice[VOICE_MAX]; }; -#ifndef VERMOUTH_OVL_EXPORTS -#define AEXTERN -#define AEXPORT +struct _miditoneloadparam { + void *userdata; + UINT totaltones; + UINT progress; + UINT bank; + UINT num; +}; +typedef struct _miditoneloadparam MIDIOUTLAEXPARAM; +typedef int (*FNMIDIOUTLAEXCB)(MIDIOUTLAEXPARAM *param); + +#ifndef VERMOUTH_EXPORTS +#define VEXTERN +#define VEXPORT #else -#define AEXTERN __declspec(dllexport) -#define AEXPORT WINAPI +#define VEXTERN __declspec(dllexport) +#define VEXPORT WINAPI #endif #ifdef __cplusplus extern "C" { #endif -AEXTERN UINT AEXPORT midiout_getver(char *string, int leng); - -AEXTERN _MIDIMOD AEXPORT * midimod_create(UINT samprate); -AEXTERN void AEXPORT midimod_destroy(MIDIMOD hdl); -AEXTERN void AEXPORT midimod_loadprogram(MIDIMOD hdl, UINT num); -AEXTERN void AEXPORT midimod_loadrhythm(MIDIMOD hdl, UINT num); - -AEXTERN _MIDIHDL AEXPORT * midiout_create(MIDIMOD module, UINT worksize); -AEXTERN void AEXPORT midiout_destroy(MIDIHDL hdl); -AEXTERN void AEXPORT midiout_shortmsg(MIDIHDL hdl, UINT32 msg); -AEXTERN void AEXPORT midiout_longmsg(MIDIHDL hdl, const BYTE *msg, UINT size); -AEXTERN const SINT32 AEXPORT * midiout_get(MIDIHDL hdl, UINT *samples); -AEXTERN UINT AEXPORT midiout_get32(MIDIHDL hdl, SINT32 *pcm, UINT size); -AEXTERN void AEXPORT midiout_setgain(MIDIHDL hdl, int gain); +VEXTERN UINT VEXPORT midiout_getver(char *string, int leng); +VEXTERN _MIDIHDL * VEXPORT midiout_create(MIDIMOD module, UINT worksize); +VEXTERN void VEXPORT midiout_destroy(MIDIHDL hdl); +VEXTERN void VEXPORT midiout_shortmsg(MIDIHDL hdl, UINT32 msg); +VEXTERN void VEXPORT midiout_longmsg(MIDIHDL hdl, const UINT8 *msg, UINT size); +VEXTERN const SINT32 * VEXPORT midiout_get(MIDIHDL hdl, UINT *samples); +VEXTERN UINT VEXPORT midiout_get16(MIDIHDL hdl, SINT16 *pcm, UINT size); +VEXTERN UINT VEXPORT midiout_get32(MIDIHDL hdl, SINT32 *pcm, UINT size); +VEXTERN void VEXPORT midiout_setgain(MIDIHDL hdl, int gain); +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 void VEXPORT midimod_loadprogram(MIDIMOD hdl, UINT num); +VEXTERN void VEXPORT midimod_loadrhythm(MIDIMOD hdl, UINT num); +VEXTERN void VEXPORT midimod_loadgm(MIDIMOD hdl); +VEXTERN void VEXPORT midimod_loadall(MIDIMOD hdl); +VEXTERN void VEXPORT midimod_loadallex(MIDIMOD hdl, FNMIDIOUTLAEXCB cb, void *userdata); #ifdef __cplusplus }