This commit is contained in:
twinaphex 2016-02-04 21:07:02 +01:00
parent 3d56dd1ef8
commit 2e8f015de3
4 changed files with 25 additions and 12 deletions

View File

@ -118,7 +118,8 @@ static int16_t hidpad_ps3_get_axis(void *data, unsigned axis)
return (abs(val) > 0x1000) ? val : 0; return (abs(val) > 0x1000) ? val : 0;
} }
static void hidpad_ps3_packet_handler(void *data, uint8_t *packet, uint16_t size) static void hidpad_ps3_packet_handler(void *data,
uint8_t *packet, uint16_t size)
{ {
uint32_t i, pressed_keys; uint32_t i, pressed_keys;
static const uint32_t button_mapping[17] = static const uint32_t button_mapping[17] =

View File

@ -110,7 +110,8 @@ static void hidpad_ps4_send_control(struct hidpad_ps4_data* device)
report_buffer[11] = rgb[(device->slot % 4)][2]; report_buffer[11] = rgb[(device->slot % 4)][2];
#endif #endif
device->send_control(device->connection, report_buffer, sizeof(report_buffer)); device->send_control(device->connection,
report_buffer, sizeof(report_buffer));
} }
static void* hidpad_ps4_init(void *data, uint32_t slot, send_control_t ptr) static void* hidpad_ps4_init(void *data, uint32_t slot, send_control_t ptr)
@ -221,7 +222,8 @@ static int16_t hidpad_ps4_get_axis(void *data, unsigned axis)
return 0; return 0;
} }
static void hidpad_ps4_packet_handler(void *data, uint8_t *packet, uint16_t size) static void hidpad_ps4_packet_handler(void *data,
uint8_t *packet, uint16_t size)
{ {
struct hidpad_ps4_data *device = (struct hidpad_ps4_data*)data; struct hidpad_ps4_data *device = (struct hidpad_ps4_data*)data;

View File

@ -74,10 +74,12 @@ static void hidpad_wiiupro_send_control(struct hidpad_wiiupro_data* device)
{ {
/* 0x12 = Set data report; 0x34 = All buttons and analogs */ /* 0x12 = Set data report; 0x34 = All buttons and analogs */
static uint8_t report_buffer[4] = { 0xA2, 0x12, 0x00, 0x34 }; static uint8_t report_buffer[4] = { 0xA2, 0x12, 0x00, 0x34 };
device->send_control(device->connection, report_buffer, sizeof(report_buffer)); device->send_control(device->connection,
report_buffer, sizeof(report_buffer));
} }
static void* hidpad_wiiupro_init(void *data, uint32_t slot, send_control_t ptr) static void* hidpad_wiiupro_init(void *data,
uint32_t slot, send_control_t ptr)
{ {
struct pad_connection* connection = (struct pad_connection*)data; struct pad_connection* connection = (struct pad_connection*)data;
struct hidpad_wiiupro_data* device = (struct hidpad_wiiupro_data*) struct hidpad_wiiupro_data* device = (struct hidpad_wiiupro_data*)
@ -163,7 +165,8 @@ static int16_t hidpad_wiiupro_get_axis(void *data, unsigned axis)
return 0; return 0;
} }
static void hidpad_wiiupro_packet_handler(void *data, uint8_t *packet, uint16_t size) static void hidpad_wiiupro_packet_handler(void *data,
uint8_t *packet, uint16_t size)
{ {
struct hidpad_wiiupro_data *device = (struct hidpad_wiiupro_data*)data; struct hidpad_wiiupro_data *device = (struct hidpad_wiiupro_data*)data;
@ -215,10 +218,14 @@ static void hidpad_wiiupro_packet_handler(void *data, uint8_t *packet, uint16_t
} }
else else
{ {
device->data.hatvalue[0] = (packet[4] | (packet[4 + 1] << 8)) - calib_data->hatvalue_calib[0]; device->data.hatvalue[0] = (packet[4] | (packet[4 + 1] << 8))
device->data.hatvalue[1] = (packet[8] | (packet[8 + 1] << 8)) - calib_data->hatvalue_calib[1]; - calib_data->hatvalue_calib[0];
device->data.hatvalue[2] = (packet[6] | (packet[6 + 1] << 8)) - calib_data->hatvalue_calib[2]; device->data.hatvalue[1] = (packet[8] | (packet[8 + 1] << 8))
device->data.hatvalue[3] = (packet[10] | (packet[10 + 1] << 8)) - calib_data->hatvalue_calib[3]; - calib_data->hatvalue_calib[1];
device->data.hatvalue[2] = (packet[6] | (packet[6 + 1] << 8))
- calib_data->hatvalue_calib[2];
device->data.hatvalue[3] = (packet[10] | (packet[10 + 1] << 8))
- calib_data->hatvalue_calib[3];
} }
} }

View File

@ -100,7 +100,8 @@ int32_t pad_connection_pad_init(joypad_connection_t *joyconn,
{ {
const char *name_match = strstr(pad_map[i].name, name); const char *name_match = strstr(pad_map[i].name, name);
if(pad_map[i].vid == 1406 && pad_map[i].pid == 816) /* Never change, Nintendo. */ /* Never change, Nintendo. */
if(pad_map[i].vid == 1406 && pad_map[i].pid == 816)
{ {
if(!string_is_equal(pad_map[i].name, name)) if(!string_is_equal(pad_map[i].name, name))
continue; continue;
@ -163,7 +164,9 @@ int16_t pad_connection_get_axis(joypad_connection_t *joyconn,
bool pad_connection_has_interface(joypad_connection_t *joyconn, unsigned pad) bool pad_connection_has_interface(joypad_connection_t *joyconn, unsigned pad)
{ {
if (joyconn && pad < MAX_USERS && joyconn[pad].connected && joyconn[pad].iface) if ( joyconn && pad < MAX_USERS
&& joyconn[pad].connected
&& joyconn[pad].iface)
return true; return true;
return false; return false;
} }