Moved E-MU 8000 handling to the non-music handler.
This commit is contained in:
@@ -395,6 +395,7 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *priv)
|
||||
{
|
||||
sb_t *sb = (sb_t *) priv;
|
||||
const sb_ct1745_mixer_t *mixer = &sb->mixer_sb16;
|
||||
int c_emu8k = 0;
|
||||
double out_l = 0.0;
|
||||
double out_r = 0.0;
|
||||
double bass_treble;
|
||||
@@ -405,6 +406,14 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *priv)
|
||||
out_l = 0.0;
|
||||
out_r = 0.0;
|
||||
|
||||
if (sb->dsp.sb_type > SB16)
|
||||
c_emu8k = ((((c / 2) * FREQ_44100) / MUSIC_FREQ) * 2);
|
||||
|
||||
if (sb->dsp.sb_type > SB16) {
|
||||
out_l += (((double) sb->emu8k.buffer[c_emu8k]) * mixer->fm_l);
|
||||
out_r += (((double) sb->emu8k.buffer[c_emu8k + 1]) * mixer->fm_r);
|
||||
}
|
||||
|
||||
if (mixer->output_filter) {
|
||||
/* We divide by 3 to get the volume down to normal. */
|
||||
out_l += (low_fir_sb16(0, 0, (double) sb->dsp.buffer[c]) * mixer->voice_l) / 3.0;
|
||||
@@ -460,6 +469,9 @@ sb_get_buffer_sb16_awe32(int32_t *buffer, int len, void *priv)
|
||||
}
|
||||
|
||||
sb->dsp.pos = 0;
|
||||
|
||||
if (sb->dsp.sb_type > SB16)
|
||||
sb->emu8k.pos = 0;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -468,7 +480,6 @@ sb_get_music_buffer_sb16_awe32(int32_t *buffer, int len, void *priv)
|
||||
sb_t *sb = (sb_t *) priv;
|
||||
const sb_ct1745_mixer_t *mixer = &sb->mixer_sb16;
|
||||
int dsp_rec_pos = sb->dsp.record_pos_write;
|
||||
int c_emu8k = 0;
|
||||
int c_record;
|
||||
int32_t in_l;
|
||||
int32_t in_r;
|
||||
@@ -487,19 +498,11 @@ sb_get_music_buffer_sb16_awe32(int32_t *buffer, int len, void *priv)
|
||||
out_l = 0.0;
|
||||
out_r = 0.0;
|
||||
|
||||
if (sb->dsp.sb_type > SB16)
|
||||
c_emu8k = ((((c / 2) * FREQ_44100) / MUSIC_FREQ) * 2);
|
||||
|
||||
if (sb->opl_enabled) {
|
||||
out_l = ((double) opl_buf[c]) * mixer->fm_l * 0.7171630859375;
|
||||
out_r = ((double) opl_buf[c + 1]) * mixer->fm_r * 0.7171630859375;
|
||||
}
|
||||
|
||||
if (sb->dsp.sb_type > SB16) {
|
||||
out_l += (((double) sb->emu8k.buffer[c_emu8k]) * mixer->fm_l);
|
||||
out_r += (((double) sb->emu8k.buffer[c_emu8k + 1]) * mixer->fm_r);
|
||||
}
|
||||
|
||||
/* TODO: Multi-recording mic with agc/+20db, CD, and line in with channel inversion */
|
||||
in_l = (mixer->input_selector_left & INPUT_MIDI_L) ? ((int32_t) out_l) : 0 + (mixer->input_selector_left & INPUT_MIDI_R) ? ((int32_t) out_r)
|
||||
: 0;
|
||||
@@ -576,9 +579,6 @@ sb_get_music_buffer_sb16_awe32(int32_t *buffer, int len, void *priv)
|
||||
|
||||
if (sb->opl_enabled)
|
||||
sb->opl.reset_buffer(sb->opl.priv);
|
||||
|
||||
if (sb->dsp.sb_type > SB16)
|
||||
sb->emu8k.pos = 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
Reference in New Issue
Block a user