Clean-up the weird buggy code
I'mma just assume each sound needs their struct preserving for some reason.
This commit is contained in:
parent
db14899b3e
commit
b123e3743e
1 changed files with 11 additions and 11 deletions
|
@ -25,6 +25,7 @@ struct AudioBackend_Sound
|
||||||
unsigned short volume;
|
unsigned short volume;
|
||||||
unsigned short pan_l;
|
unsigned short pan_l;
|
||||||
unsigned short pan_r;
|
unsigned short pan_r;
|
||||||
|
AXVoiceDeviceMixData mix_data[6];
|
||||||
};
|
};
|
||||||
|
|
||||||
static void (*organya_callback)(void);
|
static void (*organya_callback)(void);
|
||||||
|
@ -174,12 +175,12 @@ void AudioBackend_PlaySound(AudioBackend_Sound *sound, bool looping)
|
||||||
AXVoiceVeData vol = {.volume = sound->volume};
|
AXVoiceVeData vol = {.volume = sound->volume};
|
||||||
AXSetVoiceVe(voice, &vol);
|
AXSetVoiceVe(voice, &vol);
|
||||||
|
|
||||||
static AXVoiceDeviceMixData mix_data[1][6];
|
memset(sound->mix_data, 0, sizeof(sound->mix_data));
|
||||||
mix_data[0][0].bus[0].volume = sound->pan_l;
|
sound->mix_data[0].bus[0].volume = sound->pan_l;
|
||||||
mix_data[0][1].bus[0].volume = sound->pan_r;
|
sound->mix_data[1].bus[0].volume = sound->pan_r;
|
||||||
|
|
||||||
AXSetVoiceDeviceMix(voice, AX_DEVICE_TYPE_DRC, 0, mix_data[0]);
|
AXSetVoiceDeviceMix(voice, AX_DEVICE_TYPE_DRC, 0, sound->mix_data);
|
||||||
AXSetVoiceDeviceMix(voice, AX_DEVICE_TYPE_TV, 0, mix_data[0]);
|
AXSetVoiceDeviceMix(voice, AX_DEVICE_TYPE_TV, 0, sound->mix_data);
|
||||||
|
|
||||||
float srcratio = (float)sound->frequency / (float)AXGetInputSamplesPerSec();
|
float srcratio = (float)sound->frequency / (float)AXGetInputSamplesPerSec();
|
||||||
AXSetVoiceSrcRatio(voice, srcratio);
|
AXSetVoiceSrcRatio(voice, srcratio);
|
||||||
|
@ -251,14 +252,13 @@ void AudioBackend_SetSoundPan(AudioBackend_Sound *sound, long pan)
|
||||||
sound->pan_l = (unsigned short)(0x8000 * MillibelToScale(-pan));
|
sound->pan_l = (unsigned short)(0x8000 * MillibelToScale(-pan));
|
||||||
sound->pan_r = (unsigned short)(0x8000 * MillibelToScale(pan));
|
sound->pan_r = (unsigned short)(0x8000 * MillibelToScale(pan));
|
||||||
|
|
||||||
static AXVoiceDeviceMixData mix_data[1][6];
|
|
||||||
mix_data[0][0].bus[0].volume = sound->pan_l;
|
|
||||||
mix_data[0][1].bus[0].volume = sound->pan_r;
|
|
||||||
|
|
||||||
if (sound->voice != NULL)
|
if (sound->voice != NULL)
|
||||||
{
|
{
|
||||||
AXSetVoiceDeviceMix(sound->voice, AX_DEVICE_TYPE_DRC, 0, mix_data[0]);
|
sound->mix_data[0].bus[0].volume = sound->pan_l;
|
||||||
AXSetVoiceDeviceMix(sound->voice, AX_DEVICE_TYPE_TV, 0, mix_data[0]);
|
sound->mix_data[1].bus[0].volume = sound->pan_r;
|
||||||
|
|
||||||
|
AXSetVoiceDeviceMix(sound->voice, AX_DEVICE_TYPE_DRC, 0, sound->mix_data);
|
||||||
|
AXSetVoiceDeviceMix(sound->voice, AX_DEVICE_TYPE_TV, 0, sound->mix_data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue