Fixed midi input code. Currently only MPU401 (standalone) and SB cards have MIDI Input capabilities, es1371 and GUS will be done for a later time.

This commit is contained in:
TC1995
2020-01-02 18:19:22 +01:00
parent 9562a20a63
commit e8dd8c3774
8 changed files with 199 additions and 249 deletions

View File

@@ -189,12 +189,6 @@ sb_log(const char *fmt, ...)
#endif
static void
sb_dsp_set_midi_in(sb_dsp_t *src_dsp_midi_in)
{
dspin = src_dsp_midi_in;
}
/* sb 1, 1.5, 2, 2 mvc do not have a mixer, so signal is hardwired */
static void sb_get_buffer_sb2(int32_t *buffer, int len, void *p)
{
@@ -1049,9 +1043,9 @@ void *sb_1_init()
}
sound_add_handler(sb_get_buffer_sb2, sb);
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}
@@ -1080,9 +1074,9 @@ void *sb_15_init()
}
sound_add_handler(sb_get_buffer_sb2, sb);
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}
@@ -1108,9 +1102,9 @@ void *sb_mcv_init()
sb->pos_regs[0] = 0x84;
sb->pos_regs[1] = 0x50;
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}
@@ -1159,9 +1153,9 @@ void *sb_2_init()
else
sound_add_handler(sb_get_buffer_sb2, sb);
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}
@@ -1196,9 +1190,9 @@ void *sb_pro_v1_init()
io_sethandler(addr+4, 0x0002, sb_ct1345_mixer_read, NULL, NULL, sb_ct1345_mixer_write, NULL, NULL, sb);
sound_add_handler(sb_get_buffer_sbpro, sb);
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}
@@ -1232,9 +1226,9 @@ void *sb_pro_v2_init()
io_sethandler(addr+4, 0x0002, sb_ct1345_mixer_read, NULL, NULL, sb_ct1345_mixer_write, NULL, NULL, sb);
sound_add_handler(sb_get_buffer_sbpro, sb);
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}
@@ -1261,9 +1255,9 @@ void *sb_pro_mcv_init()
sb->pos_regs[0] = 0x03;
sb->pos_regs[1] = 0x51;
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}
@@ -1300,9 +1294,9 @@ void *sb_16_init()
sb->mpu = NULL;
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}
@@ -1348,9 +1342,9 @@ void *sb_awe32_init()
sb->mpu = NULL;
emu8k_init(&sb->emu8k, emu_addr, onboard_ram);
sb_dsp_set_midi_in(&sb->dsp);
input_msg = sb_dsp_input_msg;
input_sysex = sb_dsp_input_sysex;
midi_in_p = &sb->dsp;
return sb;
}