/** * 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(); }
/** * 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); }
/** * 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(); }