AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
usb_hid_internal_api.c

USBH HID API (Internal)

USBH HID API (Internal)

none

AXELL CORPORATION

2017_02_22 初版 

2017_10_26 Ver2.0

1: 9: 10: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: #include "usb_hid_boot.h" 24: #include "usb_hid_osutils.h" 25: #include "usb_hid_internal_api.h" 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: #ifdef USBH_STACK_DEBUG_BUILD 59: static const char g_filename[] = __FILE__; 60: #endif 61: PHID_DRIVER g_pHidDriver = NULL; 62: 63: 64: 65: 66: 67: 83: uhs_status_t Usbh_Hid_Init(app_callback_info* stCallback) 84: { 85: HID_FUNC_STATUS nRetval; 86: 87: 88: 89: 90: IAPI_HID_REPORT_MILESTONE( USBHID_CHKPOINTS_API_INITIALIZE ); 91: 92: 93: 94: 95: if(stCallback->clsdrv_type != USB_CLASS_HID){ 96: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_PARAM_ERROR ); 97: return( UDI_STAT_DATA_ERROR ); 98: } 99: 100: 101: 102: 103: if(g_pHidDriver != NULL){ 104: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_ALREADY_INIT ); 105: return( UDI_STAT_DATA_ERROR ); 106: } 107: 108: 109: 110: 111: 112: g_pHidDriver = (PHID_DRIVER)HidUtils_Malloc(sizeof(HID_DRIVER)); 113: if( g_pHidDriver == NULL ) { 114: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_OUT_OF_RESOURCE ); 115: return( UDI_STAT_RESOURCE_UNAVAIL ); 116: } 117: 118: nRetval = Usbh_Hid_CreateHidDriver( stCallback->attach_callback, stCallback->detach_callback ); 119: if(nRetval != HID_FUNC_STATUS_SUCCESS ) { 120: (void)HidUtils_Free(g_pHidDriver); 121: g_pHidDriver = NULL; 122: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_CRE_HIDD ); 123: return( UDI_STAT_DATA_ERROR ); 124: } 125: 126: 127: 128: 129: nRetval = Usbh_Hid_Boot_Initialize(); 130: if(nRetval != HID_FUNC_STATUS_SUCCESS ) { 131: (void)Usbh_Hid_DeleteHidDriver(); 132: (void)HidUtils_Free(g_pHidDriver); 133: g_pHidDriver = NULL; 134: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_BOOT_INIT ); 135: return( UDI_STAT_DATA_ERROR ); 136: } 137: 138: 139: 140: 141: IAPI_HID_REPORT_MILESTONE( USBHID_CHKPOINTS_API_INITIALIZE_FINISH ); 142: 143: return( UDI_OK ); 144: } 145: 146: 156: uhs_status_t Usbh_Hid_Exit(void* stCallback) 157: { 158: ((void)stCallback); 159: 160: HID_FUNC_STATUS nRetval; 161: uhs_boolean_t bRetval; 162: 163: 164: 165: 166: IAPI_HID_REPORT_MILESTONE( USBHID_CHKPOINTS_API_FINALIZE ); 167: 168: 169: 170: 171: if( g_pHidDriver == NULL ) { 172: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_NOT_INIT ); 173: return( UDI_STAT_DATA_ERROR ); 174: } 175: 176: 177: 178: 179: nRetval = Usbh_Hid_Boot_Finalize(); 180: if( nRetval != HID_FUNC_STATUS_SUCCESS ) { 181: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_BOOT_EXIT ); 182: (void)Usbh_Hid_DeleteHidDriver( ); 183: (void)HidUtils_Free(g_pHidDriver); 184: g_pHidDriver = NULL; 185: return( UDI_STAT_DATA_ERROR ); 186: } 187: 188: 189: 190: 191: 192: nRetval = Usbh_Hid_DeleteHidDriver(); 193: if( nRetval != HID_FUNC_STATUS_SUCCESS ) { 194: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_FAILED_DEL_HIDD ); 195: (void)HidUtils_Free(g_pHidDriver); 196: g_pHidDriver = NULL; 197: return( UDI_STAT_DATA_ERROR ); 198: } 199: 200: bRetval = HidUtils_Free(g_pHidDriver); 201: g_pHidDriver = NULL; 202: if( bRetval != TRUE ) { 203: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_OUT_OF_RESOURCE ); 204: return( UDI_STAT_RESOURCE_UNAVAIL ); 205: } 206: 207: 208: 209: 210: IAPI_HID_REPORT_MILESTONE( USBHID_CHKPOINTS_API_FINALIZE_FINISH ); 211: 212: return( UDI_OK ); 213: } 214: 215: 225: uhs_status_t Usbh_Hid_ReregisterCallback(app_callback_info* stCallback) 226: { 227: 228: 229: 230: if( g_pHidDriver == NULL ) { 231: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_NOT_INIT ); 232: return( UDI_STAT_DATA_ERROR ); 233: } 234: 235: 236: 237: 238: if(stCallback->clsdrv_type != USB_CLASS_HID){ 239: IAPI_HID_REPORT_SUMMARY( USBHID_LOG_SYS_PARAM_ERROR ); 240: return( UDI_STAT_DATA_ERROR ); 241: } 242: 243: 244: 245: 246: g_pHidDriver->pUserAttachCallback = stCallback->attach_callback; 247: g_pHidDriver->pUserDetachCallback = stCallback->detach_callback; 248: 249: return( UDI_OK ); 250: } 251:
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.