/* * hid.h * * Created on: Nov 27, 2012 * Author: hathach */ /* * Software License Agreement (BSD License) * Copyright (c) 2012, hathach (tinyusb.net) * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. * * This file is part of the tinyUSB stack. */ /** \file * \brief HID Class Driver * * \note TBD */ /** * \addtogroup Group_ClassDriver Class Driver * @{ * \defgroup Group_HID Human Interface Device * @{ */ #ifndef _TUSB_HID_H_ #define _TUSB_HID_H_ #ifdef __cplusplus extern "C" { #endif // TODO refractor #include "common/common.h" /** \struct USB_HID_MouseReport_t * \brief Standard HID Boot Protocol Mouse Report. * * Type define for a standard Boot Protocol Mouse report */ typedef ATTR_PREPACKED struct { uint8_t Button; /**< Button mask for currently pressed buttons in the mouse. */ int8_t X; /**< Current delta X movement of the mouse. */ int8_t Y; /**< Current delta Y movement on the mouse. */ } ATTR_PACKED USB_HID_MouseReport_t; /** \struct tusb_keyboard_report_t * \brief Standard HID Boot Protocol Keyboard Report. * * Type define for a standard Boot Protocol Keyboard report */ typedef ATTR_PREPACKED struct { uint8_t Modifier; /**< Keyboard modifier byte, indicating pressed modifier keys (a combination of HID_KEYBOARD_MODIFER_* masks). */ uint8_t Reserved; /**< Reserved for OEM use, always set to 0. */ uint8_t KeyCode[6]; /**< Key codes of the currently pressed keys. */ } ATTR_PACKED tusb_keyboard_report_t; /** \enum USB_HID_MOUSE_BUTTON_CODE * \brief Button codes for HID mouse */ enum USB_HID_MOUSE_BUTTON_CODE { HID_MOUSEBUTTON_RIGHT = 0, HID_MOUSEBUTTON_LEFT = 1, HID_MOUSEBUTTON_MIDDLE = 2 }; /** \enum USB_HID_KB_KEYMODIFIER_CODE * \brief KB modifier codes for HID KB */ enum USB_HID_KB_KEYMODIFIER_CODE { HID_KEYMODIFIER_LEFTCTRL = 0, HID_KEYMODIFIER_LEFTSHIFT, HID_KEYMODIFIER_LEFTALT, HID_KEYMODIFIER_LEFTGUI, HID_KEYMODIFIER_RIGHTCTRL, HID_KEYMODIFIER_RIGHTSHIFT, HID_KEYMODIFIER_RIGHTALT, HID_KEYMODIFIER_RIGHTGUI }; /** \enum USB_HID_LOCAL_CODE * \brief Local Country code for HID */ enum USB_HID_LOCAL_CODE { HID_Local_NotSupported = 0, HID_Local_Arabic, HID_Local_Belgian, HID_Local_Canadian_Bilingual, HID_Local_Canadian_French, HID_Local_Czech_Republic, HID_Local_Danish, HID_Local_Finnish, HID_Local_French, HID_Local_German, HID_Local_Greek, HID_Local_Hebrew, HID_Local_Hungary, HID_Local_International, HID_Local_Italian, HID_Local_Japan_Katakana, HID_Local_Korean, HID_Local_Latin_American, HID_Local_Netherlands_Dutch, HID_Local_Norwegian, HID_Local_Persian_Farsi, HID_Local_Poland, HID_Local_Portuguese, HID_Local_Russia, HID_Local_Slovakia, HID_Local_Spanish, HID_Local_Swedish, HID_Local_Swiss_French, HID_Local_Swiss_German, HID_Local_Switzerland, HID_Local_Taiwan, HID_Local_Turkish_Q, HID_Local_UK, HID_Local_US, HID_Local_Yugoslavia, HID_Local_Turkish_F }; #ifdef TUSB_CFG_DEVICE #include "device/dcd.h" #include "hid_device.h" #endif #ifdef TUSB_CFG_HOST #include "host/hcd.h" #include "hid_host.h" #endif #ifdef __cplusplus } #endif #endif /* _TUSB_HID_H__ */ /// @} /// @}