2018-02-05 23:21:00 -08:00
|
|
|
/* RetroArch - A frontend for libretro.
|
|
|
|
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
|
|
|
|
* Copyright (C) 2011-2017 - Daniel De Matteis
|
|
|
|
*
|
|
|
|
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
|
|
|
* of the GNU General Public License as published by the Free Software Found-
|
|
|
|
* ation, either version 3 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
|
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
|
|
* PURPOSE. See the GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License along with RetroArch.
|
|
|
|
* If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef HID_DEVICE_DRIVER__H
|
|
|
|
#define HID_DEVICE_DRIVER__H
|
|
|
|
|
|
|
|
#include "../../input_driver.h"
|
2018-02-07 22:28:25 -08:00
|
|
|
#include "../../connect/joypad_connection.h"
|
2018-02-21 22:57:28 -08:00
|
|
|
#include "../../include/hid_driver.h"
|
2018-04-23 23:22:27 -07:00
|
|
|
#include "../../include/gamepad.h"
|
2018-03-24 22:35:22 -07:00
|
|
|
#include "../../../verbosity.h"
|
2018-04-22 17:34:20 -07:00
|
|
|
#include "../../../tasks/tasks_internal.h"
|
2018-02-05 23:21:00 -08:00
|
|
|
|
|
|
|
typedef struct hid_device {
|
2018-03-24 22:35:22 -07:00
|
|
|
void *(*init)(void *handle);
|
2018-02-21 22:57:28 -08:00
|
|
|
void (*free)(void *data);
|
|
|
|
void (*handle_packet)(void *data, uint8_t *buffer, size_t size);
|
2018-02-05 23:21:00 -08:00
|
|
|
bool (*detect)(uint16_t vid, uint16_t pid);
|
2018-02-07 22:28:25 -08:00
|
|
|
const char *name;
|
2018-02-05 23:21:00 -08:00
|
|
|
} hid_device_t;
|
|
|
|
|
|
|
|
extern hid_device_t wiiu_gca_hid_device;
|
|
|
|
extern hid_device_t ds3_hid_device;
|
|
|
|
extern hid_device_t ds4_hid_device;
|
2018-02-21 22:57:28 -08:00
|
|
|
extern hid_driver_instance_t hid_instance;
|
2018-02-05 23:21:00 -08:00
|
|
|
|
|
|
|
hid_device_t *hid_device_driver_lookup(uint16_t vendor_id, uint16_t product_id);
|
2018-03-30 23:00:14 -07:00
|
|
|
joypad_connection_t *hid_pad_register(void *pad_handle, pad_connection_interface_t *iface);
|
2018-04-14 21:30:44 -07:00
|
|
|
void hid_pad_deregister(joypad_connection_t *pad);
|
2018-02-21 22:57:28 -08:00
|
|
|
bool hid_init(hid_driver_instance_t *instance, hid_driver_t *hid_driver, input_device_driver_t *pad_driver, unsigned slots);
|
|
|
|
void hid_deinit(hid_driver_instance_t *instance);
|
|
|
|
|
2018-02-05 23:21:00 -08:00
|
|
|
#endif /* HID_DEVICE_DRIVER__H */
|