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 MSC application 00033 */ 00034 /* 00035 * Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a> 00036 */ 00037 00038 #ifndef _UI_H_ 00039 #define _UI_H_ 00040 00041 #include "USBH.h" 00042 00043 //! \brief Initializes the user interface 00044 void ui_init(void); 00045 00046 /*! \brief Notify that the USB mode are switched automatically. 00047 * This is possible only when ID pin is available. 00048 * 00049 * \param b_host_mode true, if the host mode has been selected 00050 */ 00051 void ui_usb_mode_change(bool b_host_mode); 00052 00053 /*! \brief Notify that a Vbus are changed 00054 * Available only in USB hardware with Vbus monitoring. 00055 * 00056 * \param b_vbus_present true, if Vbus is high. 00057 */ 00058 void ui_usb_vbus_change(bool b_vbus_present); 00059 00060 /*! \brief Notify that a Vbus error has occurred 00061 * Available only in USB hardware with Vbus monitoring. 00062 */ 00063 void ui_usb_vbus_error(void); 00064 00065 /*! \brief Notify that a USB device has been connected or disconnected. 00066 * 00067 * \param dev Pointer on USB device information 00068 * \param b_present true, if the device has been connected 00069 */ 00070 void ui_usb_connection_event(USBH_device_t *dev, bool b_present); 00071 00072 //! \brief Notify that a USB device or the host has wake up the USB line. 00073 void ui_usb_wakeup_event(void); 00074 00075 //! \brief Notify that a SOF has been sent (each 1 ms) 00076 void ui_usb_sof_event(void); 00077 00078 //! \brief Resets the status flag of the test 00079 void ui_test_flag_reset(void); 00080 00081 /*! \brief Displays the result of the test 00082 * 00083 * \param b_success true, if the test is successfull 00084 */ 00085 void ui_test_finish(bool b_success); 00086 00087 /*! \brief Notify the end of a USB device enumeration 00088 * 00089 * \param dev Pointer on USB device information 00090 * \param status Status of the USB enumeration 00091 */ 00092 void ui_usb_enum_event(USBH_device_t *dev, USBH_enum_status_t status); 00093 00094 //! \name Callback to show the MSC read and write accesses 00095 //! Functions are already declared in conf_access.h. 00096 //! @{ 00097 //! @} 00098 00099 #endif // _UI_H_