LPCOpen Platform
v1.03
LPCOpen Platform for NXP LPC Microcontrollers
Main Page
Modules
Data Structures
Files
Related Pages
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
usbd_hiduser.h
Go to the documentation of this file.
1
/***********************************************************************
2
* $Id: mw_usbd_hiduser.h.rca 1.2 Tue Nov 1 11:45:07 2011 nlv09221 Experimental $
3
*
4
* Project: USB device ROM Stack
5
*
6
* Description:
7
* HID Custom User Module Definitions.
8
*
9
***********************************************************************
10
* Copyright(C) 2011, NXP Semiconductor
11
* All rights reserved.
12
*
13
* Software that is described herein is for illustrative purposes only
14
* which provides customers with programming information regarding the
15
* products. This software is supplied "AS IS" without any warranties.
16
* NXP Semiconductors assumes no responsibility or liability for the
17
* use of the software, conveys no license or title under any patent,
18
* copyright, or mask work right to the product. NXP Semiconductors
19
* reserves the right to make changes in the software without
20
* notification. NXP Semiconductors also make no representation or
21
* warranty that such application will be suitable for the specified
22
* use without further testing or modification.
23
**********************************************************************/
24
25
#ifndef __HIDUSER_H__
26
#define __HIDUSER_H__
27
28
#include "
usbd.h
"
29
#include "
usbd_hid.h
"
30
#include "
usbd_core.h
"
31
65
typedef
struct
_HID_REPORT_T {
66
uint16_t len;
67
uint8_t idle_time;
75
uint8_t __pad;
76
uint8_t* desc;
77
}
USB_HID_REPORT_T
;
78
90
typedef
struct
USBD_HID_INIT_PARAM
91
{
92
/* memory allocation params */
93
uint32_t
mem_base;
98
uint32_t
mem_size;
101
/* HID paramas */
102
uint8_t max_reports;
105
uint8_t pad[3];
106
uint8_t* intf_desc;
110
USB_HID_REPORT_T
* report_data;
118
/* user defined functions */
119
/* required functions */
143
ErrorCode_t
(*HID_GetReport)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuffer, uint16_t* length);
144
167
ErrorCode_t
(*HID_SetReport)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuffer, uint16_t length);
168
169
/* optional functions */
170
201
ErrorCode_t
(*HID_GetPhysDesc)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuf, uint16_t* length);
202
226
ErrorCode_t
(*HID_SetIdle)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t idleTime);
227
249
ErrorCode_t
(*HID_SetProtocol)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t protocol);
250
270
ErrorCode_t
(*HID_EpIn_Hdlr) (
USBD_HANDLE_T
hUsb
,
void
* data,
uint32_t
event
);
290
ErrorCode_t
(*HID_EpOut_Hdlr) (
USBD_HANDLE_T
hUsb
,
void
* data,
uint32_t
event
);
291
292
/* user overridable function */
313
ErrorCode_t
(*HID_GetReportDesc)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuf, uint16_t* length);
333
ErrorCode_t
(*HID_Ep0_Hdlr) (
USBD_HANDLE_T
hUsb
,
void
* data,
uint32_t
event
);
334
335
}
USBD_HID_INIT_PARAM_T
;
336
343
typedef
struct
USBD_HID_API
344
{
356
uint32_t
(*GetMemSize)(
USBD_HID_INIT_PARAM_T
*
param
);
357
379
ErrorCode_t
(*init)(
USBD_HANDLE_T
hUsb
,
USBD_HID_INIT_PARAM_T
*
param
);
380
381
}
USBD_HID_API_T
;
382
383
/*-----------------------------------------------------------------------------
384
* Private functions & structures prototypes
385
*-----------------------------------------------------------------------------*/
388
typedef
struct
_HID_CTRL_T {
389
/* pointer to controller */
390
USB_CORE_CTRL_T* pUsbCtrl;
391
/* descriptor pointers */
392
uint8_t* hid_desc;
393
USB_HID_REPORT_T
* report_data;
394
395
uint8_t protocol;
396
uint8_t if_num;
/* interface number */
397
uint8_t epin_adr;
/* IN interrupt endpoint */
398
uint8_t epout_adr;
/* OUT interrupt endpoint */
399
400
/* user defined functions */
401
ErrorCode_t
(*HID_GetReport)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuffer, uint16_t* length);
402
ErrorCode_t
(*HID_SetReport)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuffer, uint16_t length);
403
ErrorCode_t
(*HID_GetPhysDesc)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuf, uint16_t* length);
404
ErrorCode_t
(*HID_SetIdle)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t idleTime);
405
ErrorCode_t
(*HID_SetProtocol)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t protocol);
406
407
/* virtual overridable functions */
408
ErrorCode_t
(*HID_GetReportDesc)(
USBD_HANDLE_T
hHid, USB_SETUP_PACKET* pSetup, uint8_t** pBuf, uint16_t* length);
409
410
}USB_HID_CTRL_T;
411
413
extern
uint32_t
mwHID_GetMemSize
(
USBD_HID_INIT_PARAM_T
*
param
);
414
extern
ErrorCode_t
mwHID_init
(
USBD_HANDLE_T
hUsb
,
USBD_HID_INIT_PARAM_T
*
param
);
419
#endif
/* __HIDUSER_H__ */
software
lpc_core
lpc_ip
usbd_rom
usbd_hiduser.h
Generated on Fri May 10 2013 10:42:20 for LPCOpen Platform by
1.8.2