mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-23 07:12:46 +01:00
core/hid: Fix keyboard alignment
This commit is contained in:
parent
71f9b90dd9
commit
7fcfe24a3e
2 changed files with 14 additions and 12 deletions
|
@ -423,20 +423,21 @@ static_assert(sizeof(VibrationDeviceInfo) == 0x8, "VibrationDeviceInfo has incor
|
||||||
// This is nn::hid::KeyboardModifier
|
// This is nn::hid::KeyboardModifier
|
||||||
struct KeyboardModifier {
|
struct KeyboardModifier {
|
||||||
union {
|
union {
|
||||||
u32 raw{};
|
u64 raw{};
|
||||||
BitField<0, 1, u32> control;
|
BitField<0, 1, u64> control;
|
||||||
BitField<1, 1, u32> shift;
|
BitField<1, 1, u64> shift;
|
||||||
BitField<2, 1, u32> left_alt;
|
BitField<2, 1, u64> left_alt;
|
||||||
BitField<3, 1, u32> right_alt;
|
BitField<3, 1, u64> right_alt;
|
||||||
BitField<4, 1, u32> gui;
|
BitField<4, 1, u64> gui;
|
||||||
BitField<8, 1, u32> caps_lock;
|
BitField<8, 1, u64> caps_lock;
|
||||||
BitField<9, 1, u32> scroll_lock;
|
BitField<9, 1, u64> scroll_lock;
|
||||||
BitField<10, 1, u32> num_lock;
|
BitField<10, 1, u64> num_lock;
|
||||||
BitField<11, 1, u32> katakana;
|
BitField<11, 1, u64> katakana;
|
||||||
BitField<12, 1, u32> hiragana;
|
BitField<12, 1, u64> hiragana;
|
||||||
|
BitField<32, 1, u64> unknown;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
static_assert(sizeof(KeyboardModifier) == 0x4, "KeyboardModifier is an invalid size");
|
static_assert(sizeof(KeyboardModifier) == 0x8, "KeyboardModifier is an invalid size");
|
||||||
|
|
||||||
// This is nn::hid::KeyboardKey
|
// This is nn::hid::KeyboardKey
|
||||||
struct KeyboardKey {
|
struct KeyboardKey {
|
||||||
|
|
|
@ -42,6 +42,7 @@ void Controller_Keyboard::OnUpdate(const Core::Timing::CoreTiming& core_timing,
|
||||||
|
|
||||||
next_state.key = keyboard_state;
|
next_state.key = keyboard_state;
|
||||||
next_state.modifier = keyboard_modifier_state;
|
next_state.modifier = keyboard_modifier_state;
|
||||||
|
next_state.modifier.unknown.Assign(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
keyboard_lifo.WriteNextEntry(next_state);
|
keyboard_lifo.WriteNextEntry(next_state);
|
||||||
|
|
Loading…
Reference in a new issue