]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - msp430-bsl/msp430-bsl.git/blob - USB_API/USB_HID_API/UsbHidReq.c
Initial commit.
[msp430-bsl/msp430-bsl.git] / USB_API / USB_HID_API / UsbHidReq.c
1 /*
2  * UsbHidReq.c
3  *
4  * USB HID Request functions
5  *
6  * Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/ 
7  * 
8  * 
9  *  Redistribution and use in source and binary forms, with or without 
10  *  modification, are permitted provided that the following conditions 
11  *  are met:
12  *
13  *    Redistributions of source code must retain the above copyright 
14  *    notice, this list of conditions and the following disclaimer.
15  *
16  *    Redistributions in binary form must reproduce the above copyright
17  *    notice, this list of conditions and the following disclaimer in the 
18  *    documentation and/or other materials provided with the   
19  *    distribution.
20  *
21  *    Neither the name of Texas Instruments Incorporated nor the names of
22  *    its contributors may be used to endorse or promote products derived
23  *    from this software without specific prior written permission.
24  *
25  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
26  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
27  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
29  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
30  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
31  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
34  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
35  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  *
37  */
39 /*----------------------------------------------------------------------------+
40 |                                                                             |
41 |                              Texas Instruments                              |
42 |                                                                             |
43 |                          MSP430 USB-Example (HID Driver)                    |
44 |                                                                             |
45 +-----------------------------------------------------------------------------+
46 |  Source: UsbHidReq.c, File Version 1.00 2009/12/03                          |
47 |  Author: RSTO                                                               |
48 |                                                                             |
49 |  WHO          WHEN         WHAT                                             |
50 |  ---          ----------   ------------------------------------------------ |
51 |  RSTO         2009/03/03   born                                             |
52 |  MSP/Biju     2009/10/21   Changes for composite support                    |
53 +----------------------------------------------------------------------------*/
55 #include "../USB_Common/device.h"
56 #include "../USB_Common/types.h"              // Basic Type declarations
57 #include "../USB_Common/defMSP430USB.h"
58 #include "../USB_Common/usb.h"                // USB-specific Data Structures
59 #include "UsbHidReportHandler.h"
60 #include <descriptors.h>
62 #ifdef _HID_
64 VOID usbClearOEP0ByteCount(VOID);
65 VOID usbSendDataPacketOnEP0(PBYTE pbBuffer);
66 VOID usbReceiveDataPacketOnEP0(PBYTE pbBuffer);
69 VOID usbGetHidDescriptor(VOID)
70 {
71     static BYTE intfNum;
72     if(intfNum >= HID_NUM_INTERFACES)
73     {
74       intfNum = 0;
75     } 
76     usbClearOEP0ByteCount();
77     wBytesRemainingOnIEP0 = 9;
78     usbSendDataPacketOnEP0((PBYTE)&abromConfigurationDescriptorGroup.stHid[intfNum].blength_hid_descriptor);
79     intfNum++;
80 }
82 //----------------------------------------------------------------------------
83 VOID usbGetReportDescriptor(VOID)
84 {
85     wBytesRemainingOnIEP0 = SIZEOF_REPORT_DESCRIPTOR;
86     usbSendDataPacketOnEP0((PBYTE)&abromReportDescriptor);
87 }
89 //----------------------------------------------------------------------------
91 VOID usbSetReport(VOID)
92 {
93     usbReceiveDataPacketOnEP0((PBYTE) &abUsbRequestIncomingData);     // receive data over EP0 from Host
94 }
96 //----------------------------------------------------------------------------
98 VOID usbGetReport(VOID)
99 {
100     switch((BYTE)tSetupPacket.wValue)
101     {
102        case USB_REQ_HID_FEATURE:
103             Handler_InFeature();
104             break;
105        case USB_REQ_HID_INPUT:
106             Handler_InReport();
107             break;
108        default:;
109     }
112 #endif //_HID_
113 /*----------------------------------------------------------------------------+
114 | End of source file                                                          |
115 +----------------------------------------------------------------------------*/
116 /*------------------------ Nothing Below This Line --------------------------*/