mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-14 21:37:52 -07:00
Merge pull request #1508 from skidau/emu-wiimote-speaker-sample-rate-zero
Ignore the emulated wiimotes speaker data if the sample rate is set at 0hz
This commit is contained in:
commit
c34c231df1
@ -107,21 +107,22 @@ void Wiimote::SpeakerData(wm_speaker_data* sd)
|
|||||||
|
|
||||||
// Speaker Pan
|
// Speaker Pan
|
||||||
unsigned int vol = (unsigned int)(m_options->settings[4]->GetValue() * 100);
|
unsigned int vol = (unsigned int)(m_options->settings[4]->GetValue() * 100);
|
||||||
float amp = 10.0f; // Boost the speaker volume relative to the rest of the game audio
|
|
||||||
|
|
||||||
unsigned int sample_rate = sample_rate_dividend / Common::swap16(m_reg_speaker.sample_rate);
|
if (m_reg_speaker.sample_rate)
|
||||||
float speaker_volume_ratio = (float)m_reg_speaker.volume / volume_divisor;
|
{
|
||||||
unsigned int left_volume = (unsigned int)((128 + vol) * speaker_volume_ratio * amp);
|
unsigned int sample_rate = sample_rate_dividend / m_reg_speaker.sample_rate;
|
||||||
unsigned int right_volume = (unsigned int)((128 - vol) * speaker_volume_ratio * amp);
|
float speaker_volume_ratio = (float)m_reg_speaker.volume / volume_divisor;
|
||||||
|
unsigned int left_volume = (unsigned int)((128 + vol) * speaker_volume_ratio);
|
||||||
|
unsigned int right_volume = (unsigned int)((128 - vol) * speaker_volume_ratio);
|
||||||
|
|
||||||
if (left_volume > 255)
|
if (left_volume > 255)
|
||||||
left_volume = 255;
|
left_volume = 255;
|
||||||
if (right_volume > 255)
|
if (right_volume > 255)
|
||||||
right_volume = 255;
|
right_volume = 255;
|
||||||
|
|
||||||
g_sound_stream->GetMixer()->SetWiimoteSpeakerVolume(left_volume, right_volume);
|
|
||||||
g_sound_stream->GetMixer()->PushWiimoteSpeakerSamples(samples.get(), sd->length, sample_rate);
|
|
||||||
|
|
||||||
|
g_sound_stream->GetMixer()->SetWiimoteSpeakerVolume(left_volume, right_volume);
|
||||||
|
g_sound_stream->GetMixer()->PushWiimoteSpeakerSamples(samples.get(), sd->length, sample_rate);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef WIIMOTE_SPEAKER_DUMP
|
#ifdef WIIMOTE_SPEAKER_DUMP
|
||||||
static int num = 0;
|
static int num = 0;
|
||||||
|
@ -24,10 +24,9 @@ namespace WiimoteReal
|
|||||||
{
|
{
|
||||||
class Wiimote;
|
class Wiimote;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace WiimoteEmu
|
namespace WiimoteEmu
|
||||||
{
|
{
|
||||||
|
#pragma pack(push,1)
|
||||||
struct ReportFeatures
|
struct ReportFeatures
|
||||||
{
|
{
|
||||||
u8 core, accel, ir, ext, size;
|
u8 core, accel, ir, ext, size;
|
||||||
@ -197,7 +196,6 @@ private:
|
|||||||
wiimote_key m_ext_key;
|
wiimote_key m_ext_key;
|
||||||
|
|
||||||
u8 m_eeprom[WIIMOTE_EEPROM_SIZE];
|
u8 m_eeprom[WIIMOTE_EEPROM_SIZE];
|
||||||
|
|
||||||
struct MotionPlusReg
|
struct MotionPlusReg
|
||||||
{
|
{
|
||||||
u8 unknown[0xF0];
|
u8 unknown[0xF0];
|
||||||
@ -233,6 +231,7 @@ private:
|
|||||||
u8 play;
|
u8 play;
|
||||||
u8 unk_9;
|
u8 unk_9;
|
||||||
} m_reg_speaker;
|
} m_reg_speaker;
|
||||||
|
#pragma pack(pop)
|
||||||
};
|
};
|
||||||
|
|
||||||
void Spy(Wiimote* wm_, const void* data_, size_t size_);
|
void Spy(Wiimote* wm_, const void* data_, size_t size_);
|
||||||
|
Loading…
Reference in New Issue
Block a user