/* * Device Modules for Nintendo Wii / Wii U HID Driver * Copyright (c) 2011-2013 David Herrmann */ /* * This program 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 Foundation; either version 2 of the License, or (at your option) * any later version. */ /* * Wiimote Modules * Nintendo devices provide different peripherals and many new devices lack * initial features like the IR camera. Therefore, each peripheral device is * implemented as an independent module and we probe on each device only the * modules for the hardware that really is available. * * Module registration is sequential. Unregistration is done in reverse order. * After device detection, the needed modules are loaded. Users can trigger * re-detection which causes all modules to be unloaded and then reload the * modules for the new detected device. * * wdata->input is a shared input device. It is always initialized prior to * module registration. If at least one registered module is marked as * WIIMOD_FLAG_INPUT, then the input device will get registered after all * modules were registered. * Please note that it is unregistered _before_ the "remove" callbacks are * called. This guarantees that no input interaction is done, anymore. However, * the wiimote core keeps a reference to the input device so it is freed only * after all modules were removed. It is safe to send events to unregistered * input devices. */ #include #include #include #include #include "hid-wiimote.h" /* module table */ const struct wiimod_ops *wiimod_table[WIIMOD_NUM] = { };