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 }
110 }
112 #endif //_HID_
113 /*----------------------------------------------------------------------------+
114 | End of source file |
115 +----------------------------------------------------------------------------*/
116 /*------------------------ Nothing Below This Line --------------------------*/