00001 /* ---------------------------------------------------------------------------- */ 00002 /* Atmel Microcontroller Software Support */ 00003 /* SAM Software Package License */ 00004 /* ---------------------------------------------------------------------------- */ 00005 /* Copyright (c) 2015, Atmel Corporation */ 00006 /* */ 00007 /* All rights reserved. */ 00008 /* */ 00009 /* Redistribution and use in source and binary forms, with or without */ 00010 /* modification, are permitted provided that the following condition is met: */ 00011 /* */ 00012 /* - Redistributions of source code must retain the above copyright notice, */ 00013 /* this list of conditions and the disclaimer below. */ 00014 /* */ 00015 /* Atmel's name may not be used to endorse or promote products derived from */ 00016 /* this software without specific prior written permission. */ 00017 /* */ 00018 /* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */ 00019 /* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */ 00020 /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */ 00021 /* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */ 00022 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ 00023 /* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ 00024 /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */ 00025 /* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ 00026 /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */ 00027 /* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ 00028 /* ---------------------------------------------------------------------------- */ 00029 /** 00030 * \file 00031 * 00032 * \brief Common User Interface for USB host HID mouse application 00033 * 00034 */ 00035 /* 00036 * Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a> 00037 */ 00038 00039 #ifndef _UI_H_ 00040 #define _UI_H_ 00041 00042 #include "USBH.h" 00043 00044 //! \brief Initializes the user interface 00045 void ui_init(void); 00046 00047 /*! \brief Notify that the USB mode are switched automatically. 00048 * This is possible only when ID pin is available. 00049 * 00050 * \param b_host_mode true, if the host mode has been selected 00051 */ 00052 void ui_usb_mode_change(bool b_host_mode); 00053 00054 /*! \brief Notify that a Vbus are changed 00055 * Available only in USB hardware with Vbus monitoring. 00056 * 00057 * \param b_vbus_present true, if Vbus is high. 00058 */ 00059 void ui_usb_vbus_change(bool b_vbus_present); 00060 00061 /*! \brief Notify that a Vbus error has occurred 00062 * Available only in USB hardware with Vbus monitoring. 00063 */ 00064 void ui_usb_vbus_error(void); 00065 00066 /*! \brief Notify that a USB device has been connected or disconnected. 00067 * 00068 * \param dev Pointer on USB device information 00069 * \param b_present true, if the device has been connected 00070 */ 00071 void ui_usb_connection_event(USBH_device_t *dev, bool b_present); 00072 00073 //! \brief Notify that a USB device or the host has wake up the USB line. 00074 void ui_usb_wakeup_event(void); 00075 00076 //! \brief Notify that a SOF has been sent (each 1 ms) 00077 void ui_usb_sof_event(void); 00078 00079 /*! \brief Notify the end of a USB device enumeration 00080 * 00081 * \param dev Pointer on USB device information 00082 * \param status Status of the USB enumeration 00083 */ 00084 void ui_usb_enum_event(USBH_device_t *dev, USBH_enum_status_t status); 00085 00086 //! \name Callback to mange the HID mouse events 00087 //! @{ 00088 void ui_uhi_hid_mouse_btn_left(bool b_state); 00089 void ui_uhi_hid_mouse_btn_right(bool b_state); 00090 void ui_uhi_hid_mouse_btn_middle(bool b_state); 00091 void ui_uhi_hid_mouse_move(int8_t x, int8_t y, int8_t scroll); 00092 //! @} 00093 00094 #endif // _UI_H_