|
|
| version 1.2, 2003/11/28 16:29:57 | version 1.6, 2011/01/15 18:55:47 |
|---|---|
| Line 6 | Line 6 |
| #include "mimpidef.h" | #include "mimpidef.h" |
| #include "sound.h" | #include "sound.h" |
| #if defined(VERMOUTH_LIB) | |
| #include "vermouth.h" | #include "vermouth.h" |
| #if defined(VERMOUTH_LIB) | |
| extern MIDIMOD vermouth_module; | extern MIDIMOD vermouth_module; |
| const char cmmidi_vermouth[] = "VERMOUTH"; | const char cmmidi_vermouth[] = "VERMOUTH"; |
| Line 68 enum { | Line 68 enum { |
| CMMIDI_MIDIOUT = 0x01, | CMMIDI_MIDIOUT = 0x01, |
| CMMIDI_MIDIIN = 0x02, | CMMIDI_MIDIIN = 0x02, |
| CMMIDI_MIDIINSTART = 0x04, | CMMIDI_MIDIINSTART = 0x04, |
| #if defined(VERMOUTH_LIB) | |
| CMMIDI_VERMOUTH = 0x08, | CMMIDI_VERMOUTH = 0x08, |
| #endif | |
| MIDICTRL_READY = 0, | MIDICTRL_READY = 0, |
| MIDICTRL_2BYTES, | MIDICTRL_2BYTES, |
| Line 97 struct _cmmidi { | Line 95 struct _cmmidi { |
| int hmidiin; | int hmidiin; |
| int hmidiout; | int hmidiout; |
| struct timeval hmidiout_nextstart; | struct timeval hmidiout_nextstart; |
| #if defined(VERMOUTH_LIB) | |
| MIDIHDL vermouth; | MIDIHDL vermouth; |
| #endif | |
| UINT midictrl; | UINT midictrl; |
| UINT midisyscnt; | UINT midisyscnt; |
| Line 256 static void | Line 252 static void |
| midiout_none(CMMIDI midi, UINT32 msg, UINT cnt) | midiout_none(CMMIDI midi, UINT32 msg, UINT cnt) |
| { | { |
| UNUSED(midi); | /* Nothing to do */ |
| UNUSED(msg); | |
| UNUSED(cnt); | |
| } | } |
| static void | static void |
| Line 279 static void | Line 273 static void |
| midiout_vermouth(CMMIDI midi, UINT32 msg, UINT cnt) | midiout_vermouth(CMMIDI midi, UINT32 msg, UINT cnt) |
| { | { |
| UNUSED(cnt); | |
| sound_sync(); | sound_sync(); |
| midiout_shortmsg(midi->vermouth, msg); | midiout_shortmsg(midi->vermouth, msg); |
| } | } |
| Line 480 midiwrite(COMMNG self, BYTE data) | Line 472 midiwrite(COMMNG self, BYTE data) |
| } | } |
| break; | break; |
| } | } |
| } else { /* Key-on¤Î¤ß¤Êµ¤¤¬¤·¤¿¤ó¤À¤±¤É˺¤ì¤¿¡Ä */ | } else { /* Key-on¤Î¤ß¤Êµ¤¤¬¤·¤¿¤ó¤À¤±¤É˺¤ì¤¿¡Ä */ |
| /* running status */ | /* running status */ |
| midi->buffer[0] = midi->midilast; | midi->buffer[0] = midi->midilast; |
| midi->mpos = 1; | midi->mpos = 1; |
| Line 527 midiwrite(COMMNG self, BYTE data) | Line 519 midiwrite(COMMNG self, BYTE data) |
| if (midi->buffer[1] == 123) { | if (midi->buffer[1] == 123) { |
| mch->press = 0; | mch->press = 0; |
| mch->bend = 0x4000; | mch->bend = 0x4000; |
| mch->ctrl[1] = 0; // Modulation | mch->ctrl[1+1] = 0; // Modulation |
| mch->ctrl[5] = 127; // Explession | mch->ctrl[5+1] = 127; // Explession |
| mch->ctrl[6] = 0; // Hold | mch->ctrl[6+1] = 0; // Hold |
| mch->ctrl[7] = 0; // Portament | mch->ctrl[7+1] = 0; // Portament |
| mch->ctrl[8] = 0; // Sostenute | mch->ctrl[8+1] = 0; // Sostenute |
| mch->ctrl[9] = 0; // Soft | mch->ctrl[9+1] = 0; // Soft |
| } else { | } else { |
| mch->ctrl[midictrlindex[midi->buffer[1]]] = midi->buffer[2]; | mch->ctrl[midictrlindex[midi->buffer[1]]] = midi->buffer[2]; |
| } | } |
| Line 562 midiwrite(COMMNG self, BYTE data) | Line 554 midiwrite(COMMNG self, BYTE data) |
| #endif | #endif |
| midi->midictrl = MIDICTRL_READY; | midi->midictrl = MIDICTRL_READY; |
| return midi->mpos; | return midi->mpos; |
| } else if (midi->mpos >= MIDI_BUFFER) { // ¡¢¥§¡£¥·¡¢¥ß¡£¥·¡¢¥æ¡¢ú£¥· | } else if (midi->mpos >= MIDI_BUFFER) { // åá´å¦¾å᡼å㥷åᥪåâºå¦¾ |
| midi->midictrl = MIDICTRL_READY; | midi->midictrl = MIDICTRL_READY; |
| } | } |
| break; | break; |
| Line 570 midiwrite(COMMNG self, BYTE data) | Line 562 midiwrite(COMMNG self, BYTE data) |
| case MIDICTRL_TIMECODE: | case MIDICTRL_TIMECODE: |
| if (midi->mpos >= 2) { | if (midi->mpos >= 2) { |
| if ((data == 0x7e) || (data == 0x7f)) { | if ((data == 0x7e) || (data == 0x7f)) { |
| // exclusive¡¢¥Í¥Ë¥¢¡¢¥¯¡¢¥Ì¡¢¡¢¡¢¡¢¥Í¥ò¡£¥È | // exclusiveåᥣéð¸å¡øåᥡåá¨å¡ää |
| midi->midictrl = MIDICTRL_EXCLUSIVE; | midi->midictrl = MIDICTRL_EXCLUSIVE; |
| } else { | } else { |
| midi->midictrl = MIDICTRL_READY; | midi->midictrl = MIDICTRL_READY; |
| Line 593 static BYTE | Line 585 static BYTE |
| midigetstat(COMMNG self) | midigetstat(COMMNG self) |
| { | { |
| UNUSED(self); | |
| return 0x00; | return 0x00; |
| } | } |