/**
 * Initializes the HID Transfer %device driver.
 * \param pDescriptors Pointer to USBDDriverDescriptors instance.
 */
void HIDDTransferDriver_Initialize(const USBDDriverDescriptors * pDescriptors)
{
    HIDDTransferDriver * pDrv = &hiddTransferDriver;
    USBDDriver *pUsbd = USBD_GetDriver();

    /* One input report */
    pDrv->inputReports[0] = (HIDDReport*)&inputReport;
    HIDDFunction_InitializeReport((HIDDReport *)pDrv->inputReports[0],
                                  HIDDTransferDriver_REPORTSIZE,
                                  0,
                                  0, 0);
    /* One output report */
    pDrv->outputReports[0] = (HIDDReport*)&outputReport;
    HIDDFunction_InitializeReport((HIDDReport *)pDrv->outputReports[0],
                                  HIDDTransferDriver_REPORTSIZE,
                                  0,
                                  0, 0);

    /* Initialize USBD Driver instance */
    USBDDriver_Initialize(pUsbd,
                          pDescriptors,
                          0); /* Multiple interface settings not supported */
    /* Function instance initialize */
    HIDDFunction_Initialize(&pDrv->hidFunction,
                            pUsbd, 0,
                            hiddTransferReportDescriptor,
                            (HIDDReport **)(&pDrv->inputReports), 1,
                            (HIDDReport **)(&pDrv->outputReports), 1);
    /* Initialize USBD */
    USBD_Init();
}
Beispiel #2
0
/**
 * Initializes the HID Mouse %device driver.
 * \param pDescriptors Pointer to descriptor list for the HID Mouse.
 */
void HIDDMouseDriver_Initialize(const USBDDriverDescriptors *pDescriptors)
{
    HIDDMouseDriver* pMouse = &hiddMouseDriver;
    HIDDFunction* pHidd = &pMouse->hidDrv;
    USBDDriver* pUsbd = USBD_GetDriver();

    /* One input report */
    pMouse->inputReports[0] = (HIDDReport*)&hiddInputReport;
    HIDDFunction_InitializeReport(pMouse->inputReports[0],
                                  HIDDMouseDriver_REPORTDESCRIPTORSIZE,
                                  0,
                                  0, 0);

    /* Initialize USBD Driver instance */
    USBDDriver_Initialize(pUsbd,
                          pDescriptors,
                          0); /* Multiple interface settings not supported */
    /* Function initialize */
    HIDDFunction_Initialize(pHidd,
                            pUsbd, 0,
                            hiddReportDescriptor,
                            (HIDDReport**)(&pMouse->inputReports), 1,
                            0, 0);
    USBD_Init();
}
/**
 * Initializes the HID keyboard device driver SW.
 * (Init USBDDriver .., Init function driver .., Init USBD ...)
 * \param pUsbd        Pointer to USBDDriver instance.
 * \param bInterfaceNb Interface number for the function.
 */
void HIDDKeyboard_Initialize(USBDDriver* pUsbd, uint8_t bInterfaceNb)
{
    HIDDKeyboard *pKbd = &hiddKeyboard;
    HIDDFunction *pHidd = &pKbd->hidDrv;

    /* One input report */
    pKbd->inputReports[0] = (HIDDReport*)&inputReport;
    HIDDFunction_InitializeReport(pKbd->inputReports[0],
                                  sizeof(HIDDKeyboardInputReport),
                                  0,
                                  0, 0);
    /* One output report */
    pKbd->outputReports[0] = (HIDDReport*)&outputReport;
    HIDDFunction_InitializeReport(
        pKbd->outputReports[0],
        sizeof(HIDDKeyboardOutputReport),
        0,
        (HIDDReportEventCallback)HIDDKeyboard_ReportReceived, 0);

    /* Function initialize */
    HIDDFunction_Initialize(pHidd,
                            pUsbd, bInterfaceNb,
                            hiddKeyboardReportDescriptor,
                            pKbd->inputReports, 1,
                            pKbd->outputReports, 1);
}