<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.13">
  <compounddef id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t" kind="struct" language="C++" prot="public">
    <compoundname>USBD_HID_INIT_PARAM_T</compoundname>
    <includes refid="mw__usbd__hiduser_8h" local="no">mw_usbd/mw_usbd_hiduser.h</includes>
      <sectiondef kind="public-attrib">
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a72d038d9f30b525482c7b7c82b68ac00" prot="public" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t USBD_HID_INIT_PARAM_T::mem_base</definition>
        <argsstring></argsstring>
        <name>mem_base</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Base memory location from where the stack can allocate data and buffers. <simplesect kind="note"><para>The memory address set in this field should be accessible by USB DMA controller. Also this value should be aligned on 4 byte boundary. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="92" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="92" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a1a9e0c9e4db38404329009120202c8b7" prot="public" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t USBD_HID_INIT_PARAM_T::mem_size</definition>
        <argsstring></argsstring>
        <name>mem_size</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>The size of memory buffer which stack can use. <simplesect kind="note"><para>The <emphasis>mem_size</emphasis> should be greater than the size returned by USBD_HID_API::GetMemSize() routine. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="97" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="97" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ad4e75a05cb02d51e3684ce1fd9217ad7" prot="public" static="no" mutable="no">
        <type>uint8_t</type>
        <definition>uint8_t USBD_HID_INIT_PARAM_T::max_reports</definition>
        <argsstring></argsstring>
        <name>max_reports</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Number of HID reports supported by this instance of HID class driver. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="101" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="101" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ad3dffab3433820cd53bd485675b86635" prot="public" static="no" mutable="no">
        <type>uint8_t</type>
        <definition>uint8_t USBD_HID_INIT_PARAM_T::pad[3]</definition>
        <argsstring>[3]</argsstring>
        <name>pad</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="104" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="104" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a0ed94e0f954d4adcc82172a2cda097bb" prot="public" static="no" mutable="no">
        <type>uint8_t *</type>
        <definition>uint8_t* USBD_HID_INIT_PARAM_T::intf_desc</definition>
        <argsstring></argsstring>
        <name>intf_desc</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Pointer to the HID interface descriptor within the descriptor array (<emphasis>high_speed_desc</emphasis>) passed to Init() through <ref refid="struct_u_s_b___c_o_r_e___d_e_s_c_s___t" kindref="compound">USB_CORE_DESCS_T</ref> structure. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="105" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="105" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a73ba1e535bc64be3d555564944323ea2" prot="public" static="no" mutable="no">
        <type><ref refid="struct_u_s_b___h_i_d___r_e_p_o_r_t___t" kindref="compound">USB_HID_REPORT_T</ref> *</type>
        <definition>USB_HID_REPORT_T* USBD_HID_INIT_PARAM_T::report_data</definition>
        <argsstring></argsstring>
        <name>report_data</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Pointer to an array of HID report descriptor data structure (<ref refid="struct_u_s_b___h_i_d___r_e_p_o_r_t___t" kindref="compound">USB_HID_REPORT_T</ref>). The number of elements in the array should be same a <emphasis>max_reports</emphasis> value. The stack uses this array to respond to requests received for various HID report descriptor information. <simplesect kind="note"><para>This array should be of global scope. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="109" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="109" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1aa1093734bbf0d46bcf2622e68e88d178" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_GetReport) (USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuffer, uint16_t *length)</definition>
        <argsstring>)(USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuffer, uint16_t *length)</argsstring>
        <name>HID_GetReport</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>HID get report callback function.</para><para>This function is provided by the application software. This function gets called when host sends a HID_REQUEST_GET_REPORT request. The setup packet data (<emphasis>pSetup</emphasis>) is passed to the callback so that application can extract the report ID, report type and other information need to generate the report. <simplesect kind="note"><para>HID reports are sent via interrupt IN endpoint also. This function is called only when report request is received on control endpoint. Application should implement <emphasis>HID_EpIn_Hdlr</emphasis> to send reports to host via interrupt IN endpoint.</para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hHid</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to HID function driver. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pSetup</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to setup packet received from host. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">pBuffer</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to a pointer of data buffer containing report data. Pointer-to-pointer is used to implement zero-copy buffers. See <ref refid="index_1USBD_ZeroCopy" kindref="member">Zero-Copy Data Transfer model</ref> for more details on zero-copy concept. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">length</parametername>
</parameternamelist>
<parameterdescription>
<para>Amount of data copied to destination buffer. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="143" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="143" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a9b27ef03e0eb190f3daf356de9e29dc0" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_SetReport) (USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuffer, uint16_t length)</definition>
        <argsstring>)(USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuffer, uint16_t length)</argsstring>
        <name>HID_SetReport</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>HID set report callback function.</para><para>This function is provided by the application software. This function gets called when host sends a HID_REQUEST_SET_REPORT request. The setup packet data (<emphasis>pSetup</emphasis>) is passed to the callback so that application can extract the report ID, report type and other information need to modify the report. An application might choose to ignore input Set_Report requests as meaningless. Alternatively these reports could be used to reset the origin of a control (that is, current position should report zero).</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hHid</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to HID function driver. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pSetup</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to setup packet received from host. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">pBuffer</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to a pointer of data buffer containing report data. Pointer-to-pointer is used to implement zero-copy buffers. See <ref refid="index_1USBD_ZeroCopy" kindref="member">Zero-Copy Data Transfer model</ref> for more details on zero-copy concept. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">length</parametername>
</parameternamelist>
<parameterdescription>
<para>Amount of data copied to destination buffer. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="168" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="168" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1aa4d3e13e51ce468db5abfa307ad2685f" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_GetPhysDesc) (USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuf, uint16_t *length)</definition>
        <argsstring>)(USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuf, uint16_t *length)</argsstring>
        <name>HID_GetPhysDesc</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Optional callback function to handle HID_GetPhysDesc request.</para><para>The application software could provide this callback HID_GetPhysDesc handler to handle get physical descriptor requests sent by the host. When host requests Physical Descriptor set 0, application should return a special descriptor identifying the number of descriptor sets and their sizes. A Get_Descriptor request with the Physical Index equal to 1 should return the first Physical Descriptor set. A device could possibly have alternate uses for its items. These can be enumerated by issuing subsequent Get_Descriptor requests while incrementing the Descriptor Index. A device should return the last descriptor set to requests with an index greater than the last number defined in the HID descriptor. <simplesect kind="note"><para>Applications which don&apos;t have physical descriptor should set this data member to zero before calling the USBD_HID_API::Init(). <linebreak/>
 </para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hHid</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to HID function driver. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pSetup</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to setup packet received from host. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pBuf</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to a pointer of data buffer containing physical descriptor data. If the physical descriptor is in USB accessible memory area application could just update the pointer or else it should copy the descriptor to the address pointed by this pointer. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">length</parametername>
</parameternamelist>
<parameterdescription>
<para>Amount of data copied to destination buffer or descriptor length. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="202" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="202" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1aa7f49fce3b4cc8248635be6b03591ab3" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_SetIdle) (USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t idleTime)</definition>
        <argsstring>)(USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t idleTime)</argsstring>
        <name>HID_SetIdle</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Optional callback function to handle HID_REQUEST_SET_IDLE request.</para><para>The application software could provide this callback to handle HID_REQUEST_SET_IDLE requests sent by the host. This callback is provided to applications to adjust timers associated with various reports, which are sent to host over interrupt endpoint. The setup packet data (<emphasis>pSetup</emphasis>) is passed to the callback so that application can extract the report ID, report type and other information need to modify the report&apos;s idle time. <simplesect kind="note"><para>Applications which don&apos;t send reports on Interrupt endpoint or don&apos;t have idle time between reports should set this data member to zero before calling the USBD_HID_API::Init(). <linebreak/>
 </para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hHid</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to HID function driver. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pSetup</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to setup packet received from host. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">idleTime</parametername>
</parameternamelist>
<parameterdescription>
<para>Idle time to be set for the specified report. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="227" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="227" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ad403ca877eeba47f92b39ddc97591d75" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_SetProtocol) (USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t protocol)</definition>
        <argsstring>)(USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t protocol)</argsstring>
        <name>HID_SetProtocol</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Optional callback function to handle HID_REQUEST_SET_PROTOCOL request.</para><para>The application software could provide this callback to handle HID_REQUEST_SET_PROTOCOL requests sent by the host. This callback is provided to applications to adjust modes of their code between boot mode and report mode. <simplesect kind="note"><para>Applications which don&apos;t support protocol modes should set this data member to zero before calling the USBD_HID_API::Init(). <linebreak/>
 </para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hHid</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to HID function driver. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pSetup</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to setup packet received from host. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">protocol</parametername>
</parameternamelist>
<parameterdescription>
<para>Protocol mode. 0 = Boot Protocol 1 = Report Protocol </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="250" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="250" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1aa33aeceb3007e1b8c05104f2369e0b53" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_EpIn_Hdlr) (USBD_HANDLE_T hUsb, void *data, uint32_t event)</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, void *data, uint32_t event)</argsstring>
        <name>HID_EpIn_Hdlr</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Optional Interrupt IN endpoint event handler.</para><para>The application software could provide Interrupt IN endpoint event handler. Application which send reports to host on interrupt endpoint should provide an endpoint event handler through this data member. This data member is ignored if the interface descriptor <emphasis>intf_desc</emphasis> doesn&apos;t have any IN interrupt endpoint descriptor associated. <linebreak/>
 <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">data</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to HID function driver. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">event</parametername>
</parameternamelist>
<parameterdescription>
<para>Type of endpoint event. See <ref refid="group___u_s_b_d___h_w_1ga61dde6aa35d2912927ef1b185eedaa13" kindref="member">USBD_EVENT_T</ref> for more details. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should return <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="271" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="271" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a60a200d8d4782b6634fddbd34bfc650a" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_EpOut_Hdlr) (USBD_HANDLE_T hUsb, void *data, uint32_t event)</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, void *data, uint32_t event)</argsstring>
        <name>HID_EpOut_Hdlr</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Optional Interrupt OUT endpoint event handler.</para><para>The application software could provide Interrupt OUT endpoint event handler. Application which receives reports from host on interrupt endpoint should provide an endpoint event handler through this data member. This data member is ignored if the interface descriptor <emphasis>intf_desc</emphasis> doesn&apos;t have any OUT interrupt endpoint descriptor associated. <linebreak/>
 <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">data</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to HID function driver. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">event</parametername>
</parameternamelist>
<parameterdescription>
<para>Type of endpoint event. See <ref refid="group___u_s_b_d___h_w_1ga61dde6aa35d2912927ef1b185eedaa13" kindref="member">USBD_EVENT_T</ref> for more details. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should return <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="291" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="291" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ac62cf54ea23cb59879050a4e7c61ef4e" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_GetReportDesc) (USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuf, uint16_t *length)</definition>
        <argsstring>)(USBD_HANDLE_T hHid, USB_SETUP_PACKET *pSetup, uint8_t **pBuf, uint16_t *length)</argsstring>
        <name>HID_GetReportDesc</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Optional user override-able function to replace the default HID_GetReportDesc handler.</para><para>The application software could override the default HID_GetReportDesc handler with their own by providing the handler function address as this data member of the parameter structure. Application which like the default handler should set this data member to zero before calling the USBD_HID_API::Init() and also provide report data array <emphasis>report_data</emphasis> field. <linebreak/>
<simplesect kind="note"><para></para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pSetup</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to setup packet received from host. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pBuf</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to a pointer of data buffer containing report descriptor. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">length</parametername>
</parameternamelist>
<parameterdescription>
<para>Amount of data copied to destination buffer. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="315" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="315" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ad0dfdfec1ff77bfc821ae2d8d0c5587a" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_HID_INIT_PARAM_T::HID_Ep0_Hdlr) (USBD_HANDLE_T hUsb, void *data, uint32_t event)</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, void *data, uint32_t event)</argsstring>
        <name>HID_Ep0_Hdlr</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Optional user override-able function to replace the default HID class handler.</para><para>The application software could override the default EP0 class handler with their own by providing the handler function address as this data member of the parameter structure. Application which like the default handler should set this data member to zero before calling the USBD_HID_API::Init(). <linebreak/>
<simplesect kind="note"><para></para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">data</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the data which will be passed when callback function is called by the stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">event</parametername>
</parameternamelist>
<parameterdescription>
<para>Type of endpoint event. See <ref refid="group___u_s_b_d___h_w_1ga61dde6aa35d2912927ef1b185eedaa13" kindref="member">USBD_EVENT_T</ref> for more details. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_UNHANDLED</parametername>
</parameternamelist>
<parameterdescription>
<para>Event is not handled hence pass the event to next in line. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_xxx</parametername>
</parameternamelist>
<parameterdescription>
<para>For other error conditions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_hiduser.h" line="335" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="335" bodyend="-1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>USB descriptors data structure. </para>    </briefdescription>
    <detaileddescription>
<para>This module exposes functions which interact directly with USB device stack&apos;s core layer. The application layer uses this component when it has to implement custom class function driver or standard class function driver which is not part of the current USB device stack. The functions exposed by this interface are to register class specific EP0 handlers and corresponding utility functions to manipulate EP0 state machine of the stack. This interface also exposes function to register custom endpoint interrupt handler. </para>    </detaileddescription>
    <collaborationgraph>
      <node id="80">
        <label>USBD_HID_INIT_PARAM_T</label>
        <link refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t"/>
        <childnode refid="81" relation="usage">
          <edgelabel>report_data</edgelabel>
        </childnode>
      </node>
      <node id="81">
        <label>USB_HID_REPORT_T</label>
        <link refid="struct_u_s_b___h_i_d___r_e_p_o_r_t___t"/>
      </node>
    </collaborationgraph>
    <location file="mw_usbd/mw_usbd_hiduser.h" line="90" column="1" bodyfile="mw_usbd/mw_usbd_hiduser.h" bodystart="90" bodyend="337"/>
    <listofallmembers>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ad0dfdfec1ff77bfc821ae2d8d0c5587a" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_Ep0_Hdlr</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1aa33aeceb3007e1b8c05104f2369e0b53" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_EpIn_Hdlr</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a60a200d8d4782b6634fddbd34bfc650a" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_EpOut_Hdlr</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1aa4d3e13e51ce468db5abfa307ad2685f" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_GetPhysDesc</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1aa1093734bbf0d46bcf2622e68e88d178" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_GetReport</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ac62cf54ea23cb59879050a4e7c61ef4e" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_GetReportDesc</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1aa7f49fce3b4cc8248635be6b03591ab3" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_SetIdle</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ad403ca877eeba47f92b39ddc97591d75" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_SetProtocol</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a9b27ef03e0eb190f3daf356de9e29dc0" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>HID_SetReport</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a0ed94e0f954d4adcc82172a2cda097bb" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>intf_desc</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ad4e75a05cb02d51e3684ce1fd9217ad7" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>max_reports</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a72d038d9f30b525482c7b7c82b68ac00" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>mem_base</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a1a9e0c9e4db38404329009120202c8b7" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>mem_size</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1ad3dffab3433820cd53bd485675b86635" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>pad</name></member>
      <member refid="struct_u_s_b_d___h_i_d___i_n_i_t___p_a_r_a_m___t_1a73ba1e535bc64be3d555564944323ea2" prot="public" virt="non-virtual"><scope>USBD_HID_INIT_PARAM_T</scope><name>report_data</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
