Merge pull request #4579 from xperia64/3d_slider

Change 3D Slider in-game
This commit is contained in:
Weiyi Wang 2019-01-23 20:23:55 -05:00 committed by GitHub
commit 054a97c08b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 16 additions and 3 deletions

View file

@ -121,6 +121,10 @@ void Handler::Set3DLed(u8 state) {
shared_page.ledstate_3d = state;
}
void Handler::Set3DSlider(float slidestate) {
shared_page.sliderstate_3d = static_cast<float_le>(slidestate);
}
SharedPageDef& Handler::GetSharedPage() {
return shared_page;
}

View file

@ -89,6 +89,8 @@ public:
void SetWifiLinkLevel(WifiLinkLevel);
void Set3DSlider(float);
void Set3DLed(u8);
SharedPageDef& GetSharedPage();

View file

@ -12,6 +12,7 @@
#include "core/hle/kernel/event.h"
#include "core/hle/kernel/handle_table.h"
#include "core/hle/kernel/shared_memory.h"
#include "core/hle/kernel/shared_page.h"
#include "core/hle/service/hid/hid.h"
#include "core/hle/service/hid/hid_spvr.h"
#include "core/hle/service/hid/hid_user.h"
@ -164,6 +165,10 @@ void Module::UpdatePadCallback(u64 userdata, s64 cycles_late) {
event_pad_or_touch_1->Signal();
event_pad_or_touch_2->Signal();
// TODO(xperia64): How the 3D Slider is updated by the HID module needs to be RE'd
// and possibly moved to its own Core::Timing event.
system.Kernel().GetSharedPageHandler().Set3DSlider(Settings::values.factor_3d / 100.0f);
// Reschedule recurrent event
system.CoreTiming().ScheduleEvent(pad_update_ticks - cycles_late, pad_update_event);
}