1: uhs_status_t Usbh_Hid_Init(
app_callback_info* stCallback)
2: {
3: HID_FUNC_STATUS nRetval;
4:
5:
6:
7:
8: IAPI_HID_REPORT_MILESTONE( USBHID_CHKPOINTS_API_INITIALIZE );
9:
10:
11:
12:
13:
if(stCallback->clsdrv_type != USB_CLASS_HID){
14: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_PARAM_ERROR );
15:
return(
UDI_STAT_DATA_ERROR );
16: }
17:
18:
19:
20:
21:
if(g_pHidDriver != NULL){
22: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_ALREADY_INIT );
23:
return(
UDI_STAT_DATA_ERROR );
24: }
25:
26:
27:
28:
29:
30: g_pHidDriver = (
PHID_DRIVER)HidUtils_Malloc(
sizeof(HID_DRIVER));
31:
if( g_pHidDriver == NULL ) {
32: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_OUT_OF_RESOURCE );
33:
return(
UDI_STAT_RESOURCE_UNAVAIL );
34: }
35:
36: nRetval = Usbh_Hid_CreateHidDriver( stCallback->attach_callback, stCallback->detach_callback );
37:
if(nRetval != HID_FUNC_STATUS_SUCCESS ) {
38: (
void)HidUtils_Free(g_pHidDriver);
39: g_pHidDriver = NULL;
40: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_CRE_HIDD );
41:
return(
UDI_STAT_DATA_ERROR );
42: }
43:
44:
45:
46:
47: nRetval = Usbh_Hid_Boot_Initialize();
48:
if(nRetval != HID_FUNC_STATUS_SUCCESS ) {
49: (
void)Usbh_Hid_DeleteHidDriver();
50: (
void)HidUtils_Free(g_pHidDriver);
51: g_pHidDriver = NULL;
52: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_BOOT_INIT );
53:
return(
UDI_STAT_DATA_ERROR );
54: }
55:
56:
57:
58:
59: IAPI_HID_REPORT_MILESTONE( USBHID_CHKPOINTS_API_INITIALIZE_FINISH );
60:
61:
return(
UDI_OK );
62: }