|
|
| version 1.12, 2003/10/24 10:58:47 | version 1.13, 2003/10/25 09:08:24 |
|---|---|
| Line 50 enum { | Line 50 enum { |
| NP2FLAG_EVT, | NP2FLAG_EVT, |
| NP2FLAG_GIJ, | NP2FLAG_GIJ, |
| NP2FLAG_FM, | NP2FLAG_FM, |
| NP2FLAG_MIDI, | NP2FLAG_COM, |
| NP2FLAG_DISK | NP2FLAG_DISK |
| }; | }; |
| Line 1047 static int flagload_disk(NP2FFILE f, con | Line 1047 static int flagload_disk(NP2FFILE f, con |
| // ----- | // ----- |
| #ifdef _MIDICH | static int flagsave_com(NP2FFILE f, const STENTRY *t) { |
| static int flagsave_midi(NP2FFILE f, const STENTRY *t) { | |
| UINT device; | UINT device; |
| COMMNG cm; | COMMNG cm; |
| int ret; | int ret; |
| _MIDICH mch[16]; | COMFLAG flag; |
| device = (UINT)t->arg1; | device = (UINT)t->arg1; |
| switch(device) { | switch(device) { |
| Line 1070 static int flagsave_midi(NP2FFILE f, con | Line 1069 static int flagsave_midi(NP2FFILE f, con |
| break; | break; |
| } | } |
| ret = NP2FLAG_SUCCESS; | ret = NP2FLAG_SUCCESS; |
| if ((cm != NULL) && (cm->msg(cm, COMMSG_MIDISTATGET, (long)mch))) { | if (cm) { |
| ret = flagsave_create(f, t); | flag = (COMFLAG)cm->msg(cm, COMMSG_GETFLAG, 0); |
| if (ret != NP2FLAG_FAILURE) { | if (flag) { |
| ret |= flagsave_save(f, mch, sizeof(mch)); | ret = flagsave_create(f, t); |
| ret |= flagsave_close(f); | if (ret != NP2FLAG_FAILURE) { |
| ret |= flagsave_save(f, flag, flag->size); | |
| ret |= flagsave_close(f); | |
| } | |
| _MFREE(flag); | |
| } | } |
| } | } |
| return(ret); | return(ret); |
| } | } |
| static int flagload_midi(NP2FFILE f, const STENTRY *t) { | static int flagload_com(NP2FFILE f, const STENTRY *t) { |
| _MIDICH mch[16]; | UINT device; |
| UINT device; | COMMNG cm; |
| COMMNG cm; | int ret; |
| int ret; | _COMFLAG fhdr; |
| COMFLAG flag; | |
| ret = flagload_load(f, mch, sizeof(mch)); | ret = flagload_load(f, &fhdr, sizeof(fhdr)); |
| if (ret != NP2FLAG_FAILURE) { | if (ret != NP2FLAG_SUCCESS) { |
| device = (UINT)t->arg1; | goto flcom_err1; |
| switch(device) { | } |
| case 0: | if (fhdr.size < sizeof(fhdr)) { |
| commng_destroy(cm_mpu98); | goto flcom_err1; |
| cm = commng_create(COMCREATE_MPU98II); | } |
| cm_mpu98 = cm; | flag = (COMFLAG)_MALLOC(fhdr.size, "com stat flag"); |
| break; | if (flag == NULL) { |
| goto flcom_err1; | |
| } | |
| CopyMemory(flag, &fhdr, sizeof(fhdr)); | |
| ret |= flagload_load(f, flag + 1, fhdr.size - sizeof(fhdr)); | |
| if (ret != NP2FLAG_SUCCESS) { | |
| goto flcom_err2; | |
| } | |
| case 1: | device = (UINT)t->arg1; |
| commng_destroy(cm_rs232c); | switch(device) { |
| cm = commng_create(COMCREATE_SERIAL); | case 0: |
| cm_rs232c = cm; | commng_destroy(cm_mpu98); |
| break; | cm = commng_create(COMCREATE_MPU98II); |
| cm_mpu98 = cm; | |
| break; | |
| default: | case 1: |
| cm = NULL; | commng_destroy(cm_rs232c); |
| break; | cm = commng_create(COMCREATE_SERIAL); |
| } | cm_rs232c = cm; |
| if (cm) { | break; |
| cm->msg(cm, COMMSG_MIDISTATSET, (long)mch); | |
| } | default: |
| cm = NULL; | |
| break; | |
| } | } |
| if (cm) { | |
| cm->msg(cm, COMMSG_SETFLAG, (long)flag); | |
| } | |
| flcom_err2: | |
| _MFREE(flag); | |
| flcom_err1: | |
| return(ret); | return(ret); |
| } | } |
| #endif | |
| // ---- | // ---- |
| Line 1194 int statsave_save(const char *filename) | Line 1216 int statsave_save(const char *filename) |
| ret |= flagsave_disk(&f, &np2tbl[i]); | ret |= flagsave_disk(&f, &np2tbl[i]); |
| break; | break; |
| #if defined(MIDICH) | case NP2FLAG_COM: |
| case NP2FLAG_MIDI: | ret |= flagsave_com(&f, &np2tbl[i]); |
| ret |= flagsave_midi(&f, &np2tbl[i]); | |
| break; | break; |
| #endif | |
| } | } |
| } | } |
| flagclose(&f); | flagclose(&f); |
| Line 1254 int statsave_check(const char *filename, | Line 1274 int statsave_check(const char *filename, |
| case NP2FLAG_EXT: | case NP2FLAG_EXT: |
| case NP2FLAG_EVT: | case NP2FLAG_EVT: |
| case NP2FLAG_GIJ: | case NP2FLAG_GIJ: |
| #if defined(MIDICH) | case NP2FLAG_COM: |
| case NP2FLAG_MIDI: | |
| #endif | |
| ret |= flagcheck_veronly(&f, &np2tbl[i], &e); | ret |= flagcheck_veronly(&f, &np2tbl[i], &e); |
| break; | break; |
| Line 1357 int statsave_load(const char *filename) | Line 1375 int statsave_load(const char *filename) |
| ret |= flagload_disk(&f, &np2tbl[i]); | ret |= flagload_disk(&f, &np2tbl[i]); |
| break; | break; |
| #if defined(MIDICH) | case NP2FLAG_COM: |
| case NP2FLAG_MIDI: | ret |= flagload_com(&f, &np2tbl[i]); |
| ret |= flagload_midi(&f, &np2tbl[i]); | |
| break; | break; |
| #endif | |
| default: | default: |
| ret |= NP2FLAG_WARNING; | ret |= NP2FLAG_WARNING; |