| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- //*****************************************************************************
- //
- // usbhhid.h - This hold the host driver for hid class.
- //
- // Copyright (c) 2008-2010 Texas Instruments Incorporated. All rights reserved.
- // Software License Agreement
- //
- // Texas Instruments (TI) is supplying this software for use solely and
- // exclusively on TI's microcontroller products. The software is owned by
- // TI and/or its suppliers, and is protected under applicable copyright
- // laws. You may not combine this software with "viral" open-source
- // software in order to form a larger program.
- //
- // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
- // NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
- // NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- // A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
- // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
- // DAMAGES, FOR ANY REASON WHATSOEVER.
- //
- // This is part of AM1808 StarterWare USB Library, resused from revision 6288 of the
- // stellaris USB Library
- //
- //*****************************************************************************
- #ifndef __USBHSPECIFIC_H__
- #define __USBHSPECIFIC_H__
- #include "stdbool.h"
- #include "hw_types.h"
- #include "usb.h"
- #include "usblib.h"
- #include "usbhost.h"
- //*****************************************************************************
- //
- // If building with a C++ compiler, make all of the definitions in this header
- // have a C binding.
- //
- //*****************************************************************************
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- //*****************************************************************************
- //
- //! \addtogroup usblib_host_class
- //! @{
- //
- //*****************************************************************************
- //*****************************************************************************
- //
- // These defines are the the events that will be passed in the ulEvent
- // parameter of the callback from the driver.
- //
- //*****************************************************************************
- #define USBH_EVENT_SPECIFIC_SETRPT USBH_SPECIFIC_EVENT_BASE + 0
- #define USBH_EVENT_SPECIFIC_REPORT USBH_SPECIFIC_EVENT_BASE + 1
- //
- //! The SPECIFIC keyboard detected a key being pressed.
- //
- #define USBH_EVENT_SPECIFIC_KB_PRESS USBH_SPECIFIC_EVENT_BASE + 16
- //
- //! The SPECIFIC keyboard detected a key being released.
- //
- #define USBH_EVENT_SPECIFIC_KB_REL USBH_SPECIFIC_EVENT_BASE + 17
- //
- //! The SPECIFIC keyboard detected one of the keyboard modifiers being pressed.
- //
- #define USBH_EVENT_SPECIFIC_KB_MOD USBH_SPECIFIC_EVENT_BASE + 18
- //
- //! A button was pressed on a SPECIFIC mouse.
- //
- #define USBH_EVENT_SPECIFIC_MS_PRESS USBH_SPECIFIC_EVENT_BASE + 32
- //
- //! A button was released on a SPECIFIC mouse.
- //
- #define USBH_EVENT_SPECIFIC_MS_REL USBH_SPECIFIC_EVENT_BASE + 33
- //
- //! The SPECIFIC mouse detected movement in the X direction.
- //
- #define USBH_EVENT_SPECIFIC_MS_X USBH_SPECIFIC_EVENT_BASE + 34
- //
- //! The SPECIFIC mouse detected movement in the Y direction.
- //
- #define USBH_EVENT_SPECIFIC_MS_Y USBH_SPECIFIC_EVENT_BASE + 35
- //*****************************************************************************
- //
- //! The following values are used to register callbacks to the USB HOST SPECIFIC
- //! device class layer.
- //
- //*****************************************************************************
- typedef enum
- {
- //
- //! No device should be used. This value should not be used by
- //! applications.
- //
- USBH_SPECIFIC_DEV_NONE = 0,
- //
- //! This is a vendor specific device.
- //
- USBH_SPECIFIC_DEV_VENDOR
- }
- tSPECIFICSubClassProtocol;
- //*****************************************************************************
- //
- // This is the structure that holds all of the data for a given instance of
- // a SPECIFIC device.
- //
- //*****************************************************************************
- typedef struct
- {
- bool isConnected;
- //
- // Save the device instance.
- //
- tUSBHostDevice *pDevice;
- //
- // Used to save the callback.
- //
- tUSBCallback pfnCallback;
- //
- // Callback data provided by caller.
- //
- unsigned int ulCBData;
- //
- // Used to remember what type of device was registered.
- //
- tSPECIFICSubClassProtocol eDeviceType;
- //
- // Interrupt IN pipe.
- //
- unsigned int ulIntInPipe;
- //
- // Bulk IN pipe.
- //
- unsigned int ulBulkInPipe;
- //
- // Bulk OUT pipe.
- //
- unsigned int ulBulkOutPipe;
- unsigned int ulIndex;
- }
- tSPECIFICInstance;
- //*****************************************************************************
- //
- // Close the Doxygen group.
- //! @}
- //
- //*****************************************************************************
- //*****************************************************************************
- //
- // Prototypes.
- //
- //*****************************************************************************
- extern unsigned int USBHSPECIFICOpen(unsigned int ulIndex,
- tSPECIFICSubClassProtocol eDeviceType,
- tUSBCallback pfnCallback,
- unsigned int ulCBData);
- extern void USBHSPECIFICClose(unsigned int ulInstance);
- extern unsigned int USBHSPECIFICGetReportDescriptor(unsigned int ulInstance,
- unsigned char *pucBuffer,
- unsigned int ulSize);
- extern unsigned int USBHSPECIFICSetIdle(unsigned int ulInstance,
- unsigned char ucDuration,
- unsigned char ucReportID);
- extern unsigned int USBHSPECIFICSetProtocol(unsigned int ulInstance,
- unsigned int ulBootProtocol);
- extern unsigned int USBHSPECIFICSetReport(unsigned int ulInstance,
- unsigned int ulInterface,
- unsigned char *pucData,
- unsigned int ulSize);
- extern unsigned int USBHSPECIFICGetReport(unsigned int ulInstance,
- unsigned int ulInterface,
- unsigned char *pucData,
- unsigned int ulSize);
- extern const tUSBHostClassDriver g_USBSPECIFICClassDriver;
- extern tSPECIFICInstance g_SPECIFICInstance;
- unsigned int USBHSPECIFICWrite(unsigned char *pucData, unsigned int ulSize);
- //*****************************************************************************
- //
- // Mark the end of the C bindings section for C++ compilers.
- //
- //*****************************************************************************
- #ifdef __cplusplus
- }
- #endif
- #endif // __USBHSPECIFIC_H__
|