#ifndef EMULATOR_INCLUDE_EMULATOR_LIBS_PADDATA_H_ #define EMULATOR_INCLUDE_EMULATOR_LIBS_PADDATA_H_ #include "common/common.h" namespace Libs::Controller { struct PadTouch { uint16_t x; uint16_t y; uint8_t id; uint8_t reserve[3]; }; struct PadTouchData { uint8_t touch_num; uint8_t reserve[3]; uint32_t reserve1; PadTouch touch[2]; }; struct PadData { uint32_t buttons; uint8_t left_stick_x; uint8_t left_stick_y; uint8_t right_stick_x; uint8_t right_stick_y; uint8_t analog_buttons_l2; uint8_t analog_buttons_r2; uint8_t padding[2]; float orientation_x; float orientation_y; float orientation_z; float orientation_w; float acceleration_x; float acceleration_y; float acceleration_z; float angular_velocity_x; float angular_velocity_y; float angular_velocity_z; PadTouchData touch_data; bool connected; uint64_t timestamp; uint32_t extension_unit_data_extension_unit_id; uint8_t extension_unit_data_reserve[1]; uint8_t extension_unit_data_data_length; uint8_t extension_unit_data_data[10]; uint8_t connected_count; uint8_t reserve[2]; uint8_t device_unique_data_len; uint8_t device_unique_data[12]; }; static_assert(sizeof(PadData) == 120); } // namespace Libs::Controller #endif /* EMULATOR_INCLUDE_EMULATOR_LIBS_PADDATA_H_ */