From 41ce8853d7bb7a40e0e064e285c0542460bf5f22 Mon Sep 17 00:00:00 2001 From: gblues Date: Wed, 7 Feb 2018 22:28:25 -0800 Subject: [PATCH] Add name for hid device; implement detect == DETAILS - detect() methods in device_* files now check for VID/PID instead of just returning false - add "name" field on hid device, mainly for logging purposes == TESTING Verified my WiiU GC adapter detected properly --- input/common/hid/device_ds3.c | 5 +++-- input/common/hid/device_ds4.c | 5 +++-- input/common/hid/device_wiiu_gca.c | 5 +++-- input/common/hid/hid_device_driver.h | 2 ++ wiiu/input/wiiu_hid.c | 1 + 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/input/common/hid/device_ds3.c b/input/common/hid/device_ds3.c index 04325ace7b..9af43ac1c6 100644 --- a/input/common/hid/device_ds3.c +++ b/input/common/hid/device_ds3.c @@ -18,9 +18,10 @@ static bool ds3_detect(uint16_t vendor_id, uint16_t product_id) { - return false; + return vendor_id == VID_SONY && product_id == PID_SONY_DS3; } hid_device_t ds3_hid_device = { - ds3_detect + ds3_detect, + "Sony DualShock 3" }; diff --git a/input/common/hid/device_ds4.c b/input/common/hid/device_ds4.c index 0f049e5cbc..7c90ebaf0a 100644 --- a/input/common/hid/device_ds4.c +++ b/input/common/hid/device_ds4.c @@ -18,9 +18,10 @@ static bool ds4_detect(uint16_t vendor_id, uint16_t product_id) { - return false; + return vendor_id == VID_SONY && product_id == PID_SONY_DS4; } hid_device_t ds4_hid_device = { - ds4_detect + ds4_detect, + "Sony DualShock 4" }; diff --git a/input/common/hid/device_wiiu_gca.c b/input/common/hid/device_wiiu_gca.c index 0829a22ac1..ec68aa897d 100644 --- a/input/common/hid/device_wiiu_gca.c +++ b/input/common/hid/device_wiiu_gca.c @@ -17,9 +17,10 @@ #include "hid_device_driver.h" static bool wiiu_gca_detect(uint16_t vendor_id, uint16_t product_id) { - return false; + return vendor_id == VID_NINTENDO && product_id == PID_NINTENDO_GCA; } hid_device_t wiiu_gca_hid_device = { - wiiu_gca_detect + wiiu_gca_detect, + "Wii U Gamecube Adapter" }; diff --git a/input/common/hid/hid_device_driver.h b/input/common/hid/hid_device_driver.h index 90e0659026..a3259aee52 100644 --- a/input/common/hid/hid_device_driver.h +++ b/input/common/hid/hid_device_driver.h @@ -18,9 +18,11 @@ #define HID_DEVICE_DRIVER__H #include "../../input_driver.h" +#include "../../connect/joypad_connection.h" typedef struct hid_device { bool (*detect)(uint16_t vid, uint16_t pid); + const char *name; } hid_device_t; extern hid_device_t wiiu_gca_hid_device; diff --git a/wiiu/input/wiiu_hid.c b/wiiu/input/wiiu_hid.c index 43eb372752..f2656a4cbb 100644 --- a/wiiu/input/wiiu_hid.c +++ b/wiiu/input/wiiu_hid.c @@ -656,6 +656,7 @@ static wiiu_attach_event *new_attach_event(HIDDevice *device) device->vid, device->pid); return NULL; } + RARCH_LOG("[hid]: Found HID device driver: %s\n", driver->name); wiiu_attach_event *event = alloc_zeroed(4, sizeof(wiiu_attach_event)); if(!event) return NULL;