|
|
| version 1.9, 2006/12/16 09:43:24 | version 1.11, 2006/12/16 22:23:24 |
|---|---|
| Line 42 static const OEMCHAR file_timiditycfg[] | Line 42 static const OEMCHAR file_timiditycfg[] |
| static const OEMCHAR str_basedir[] = OEMTEXT("${basedir}"); | static const OEMCHAR str_basedir[] = OEMTEXT("${basedir}"); |
| static void pathadd(MIDIMOD mod, const OEMCHAR *path) { | static void VERMOUTHCL pathadd(MIDIMOD mod, const OEMCHAR *path) { |
| _PATHLIST pl; | _PATHLIST pl; |
| PATHLIST p; | PATHLIST p; |
| Line 74 static void pathadd(MIDIMOD mod, const O | Line 74 static void pathadd(MIDIMOD mod, const O |
| } | } |
| } | } |
| static void pathaddex(MIDIMOD mod, const OEMCHAR *path) { | static void VERMOUTHCL pathaddex(MIDIMOD mod, const OEMCHAR *path) { |
| OEMCHAR _path[MAX_PATH]; | OEMCHAR _path[MAX_PATH]; |
| Line 89 static void pathaddex(MIDIMOD mod, const | Line 89 static void pathaddex(MIDIMOD mod, const |
| } | } |
| } | } |
| static int cfggetarg(OEMCHAR *str, OEMCHAR *arg[], int maxarg) { | static int VERMOUTHCL cfggetarg(OEMCHAR *str, OEMCHAR *arg[], int maxarg) { |
| int ret; | int ret; |
| BOOL quot; | BOOL quot; |
| Line 141 cga_done: | Line 141 cga_done: |
| return(ret); | return(ret); |
| } | } |
| static OEMCHAR *seachr(const OEMCHAR *str, OEMCHAR sepa) { | static OEMCHAR *VERMOUTHCL seachr(const OEMCHAR *str, OEMCHAR sepa) { |
| OEMCHAR c; | OEMCHAR c; |
| Line 163 enum { | Line 163 enum { |
| VAL_SIGN = 2 | VAL_SIGN = 2 |
| }; | }; |
| static BRESULT cfggetval(const OEMCHAR *str, int *val) { | static BRESULT VERMOUTHCL cfggetval(const OEMCHAR *str, int *val) { |
| int ret; | int ret; |
| int flag; | int flag; |
| Line 208 static BRESULT cfggetval(const OEMCHAR * | Line 208 static BRESULT cfggetval(const OEMCHAR * |
| // ---- | // ---- |
| static void settone(MIDIMOD mod, int bank, int argc, OEMCHAR *argv[]) { | static void VERMOUTHCL settone(MIDIMOD mod, int bank, int argc, |
| OEMCHAR *argv[]) { | |
| int val; | int val; |
| TONECFG tone; | TONECFG tone; |
| Line 332 static void settone(MIDIMOD mod, int ban | Line 333 static void settone(MIDIMOD mod, int ban |
| // ---- | // ---- |
| BRESULT cfgfile_getfile(MIDIMOD mod, const OEMCHAR *filename, | BRESULT VERMOUTHCL midimod_getfile(MIDIMOD mod, const OEMCHAR *filename, |
| OEMCHAR *path, int size) { | OEMCHAR *path, int size) { |
| PATHLIST p; | PATHLIST p; |
| Line 361 fpgf_exit: | Line 362 fpgf_exit: |
| return(FAILURE); | return(FAILURE); |
| } | } |
| BRESULT cfgfile_load(MIDIMOD mod, const OEMCHAR *filename, int depth) { | static BRESULT VERMOUTHCL cfgfile_load(MIDIMOD mod, const OEMCHAR *filename, |
| int depth) { | |
| TEXTFILEH tfh; | TEXTFILEH tfh; |
| OEMCHAR buf[1024]; | OEMCHAR buf[1024]; |
| Line 375 BRESULT cfgfile_load(MIDIMOD mod, const | Line 377 BRESULT cfgfile_load(MIDIMOD mod, const |
| bank = -1; | bank = -1; |
| if ((depth >= 16) || | if ((depth >= 16) || |
| (cfgfile_getfile(mod, filename, buf, NELEMENTS(buf)) != SUCCESS)) { | (midimod_getfile(mod, filename, buf, NELEMENTS(buf)) != SUCCESS)) { |
| goto cfl_err; | goto cfl_err; |
| } | } |
| // TRACEOUT(("open: %s", buf)); | // TRACEOUT(("open: %s", buf)); |
| Line 484 mmcre_err1: | Line 486 mmcre_err1: |
| return(NULL); | return(NULL); |
| } | } |
| void midimod_lock(MIDIMOD hdl) { | void VERMOUTHCL midimod_lock(MIDIMOD mod) { |
| hdl->lockcount++; | mod->lockcount++; |
| } | } |
| void midimod_unlock(MIDIMOD hdl) { | void VERMOUTHCL midimod_unlock(MIDIMOD mod) { |
| UINT r; | UINT r; |
| TONECFG bank; | TONECFG bank; |
| if (!hdl->lockcount) { | if (!mod->lockcount) { |
| return; | return; |
| } | } |
| hdl->lockcount--; | mod->lockcount--; |
| if (hdl->lockcount) { | if (mod->lockcount) { |
| return; | return; |
| } | } |
| r = 128; | r = 128; |
| do { | do { |
| r--; | r--; |
| inst_bankfree(hdl, r); | inst_bankfree(mod, r); |
| } while(r > 0); | } while(r > 0); |
| for (r=2; r<(MIDI_BANKS*2); r++) { | for (r=2; r<(MIDI_BANKS*2); r++) { |
| bank = hdl->tonecfg[r]; | bank = mod->tonecfg[r]; |
| if (bank) { | if (bank) { |
| _MFREE(bank); | _MFREE(bank); |
| } | } |
| } | } |
| listarray_destroy(hdl->namelist); | listarray_destroy(mod->namelist); |
| listarray_destroy(hdl->pathtbl); | listarray_destroy(mod->pathtbl); |
| _MFREE(hdl); | _MFREE(mod); |
| } | } |
| VEXTERN void VEXPORT midimod_destroy(MIDIMOD hdl) { | VEXTERN void VEXPORT midimod_destroy(MIDIMOD mod) { |
| if (hdl) { | if (mod) { |
| midimod_unlock(hdl); | midimod_unlock(mod); |
| } | } |
| } | } |
| VEXTERN void VEXPORT midimod_loadprogram(MIDIMOD hdl, UINT num) { | VEXTERN BRESULT VEXPORT midimod_cfgload(MIDIMOD mod, |
| const OEMCHAR *filename) { | |
| return(cfgfile_load(mod, filename, 0)); | |
| } | |
| VEXTERN void VEXPORT midimod_loadprogram(MIDIMOD mod, UINT num) { | |
| UINT bank; | UINT bank; |
| if (hdl != NULL) { | if (mod != NULL) { |
| bank = (num >> 8) & 0x7f; | bank = (num >> 8) & 0x7f; |
| num &= 0x7f; | num &= 0x7f; |
| if (inst_singleload(hdl, bank << 1, num) != MIDIOUT_SUCCESS) { | if (inst_singleload(mod, bank << 1, num) != MIDIOUT_SUCCESS) { |
| inst_singleload(hdl, 0, num); | inst_singleload(mod, 0, num); |
| } | } |
| } | } |
| } | } |
| VEXTERN void VEXPORT midimod_loadrhythm(MIDIMOD hdl, UINT num) { | VEXTERN void VEXPORT midimod_loadrhythm(MIDIMOD mod, UINT num) { |
| UINT bank; | UINT bank; |
| if (hdl != NULL) { | if (mod != NULL) { |
| bank = (num >> 8) & 0x7f; | bank = (num >> 8) & 0x7f; |
| num &= 0x7f; | num &= 0x7f; |
| if (inst_singleload(hdl, (bank << 1) + 1, num) != MIDIOUT_SUCCESS) { | if (inst_singleload(mod, (bank << 1) + 1, num) != MIDIOUT_SUCCESS) { |
| inst_singleload(hdl, 1, num); | inst_singleload(mod, 1, num); |
| } | } |
| } | } |
| } | } |
| VEXTERN void VEXPORT midimod_loadgm(MIDIMOD hdl) { | VEXTERN void VEXPORT midimod_loadgm(MIDIMOD mod) { |
| if (hdl) { | if (mod) { |
| inst_bankload(hdl, 0); | inst_bankload(mod, 0); |
| inst_bankload(hdl, 1); | inst_bankload(mod, 1); |
| } | } |
| } | } |
| VEXTERN void VEXPORT midimod_loadall(MIDIMOD hdl) { | VEXTERN void VEXPORT midimod_loadall(MIDIMOD mod) { |
| UINT b; | UINT b; |
| if (hdl) { | if (mod) { |
| for (b=0; b<(MIDI_BANKS*2); b++) { | for (b=0; b<(MIDI_BANKS*2); b++) { |
| inst_bankload(hdl, b); | inst_bankload(mod, b); |
| } | } |
| } | } |
| } | } |
| VEXTERN void VEXPORT midimod_loadallex(MIDIMOD hdl, FNMIDIOUTLAEXCB cb, void *userdata) { | VEXTERN void VEXPORT midimod_loadallex(MIDIMOD mod, FNMIDIOUTLAEXCB cb, |
| void *userdata) { | |
| MIDIOUTLAEXPARAM param; | MIDIOUTLAEXPARAM param; |
| UINT b; | UINT b; |
| if (hdl) { | if (mod) { |
| ZeroMemory(¶m, sizeof(param)); | ZeroMemory(¶m, sizeof(param)); |
| param.userdata = userdata; | param.userdata = userdata; |
| for (b=0; b<(MIDI_BANKS*2); b++) { | for (b=0; b<(MIDI_BANKS*2); b++) { |
| param.totaltones += inst_gettones(hdl, b); | param.totaltones += inst_gettones(mod, b); |
| } | } |
| for (b=0; b<(MIDI_BANKS*2); b++) { | for (b=0; b<(MIDI_BANKS*2); b++) { |
| param.bank = b; | param.bank = b; |
| inst_bankloadex(hdl, b, cb, ¶m); | inst_bankloadex(mod, b, cb, ¶m); |
| } | } |
| } | } |
| } | } |