/** * @brief User Process * @param phost: Host Handle * @param id: Host Library user message ID * @retval None */ static void USBH_UserProcess(USBH_HandleTypeDef *phost, uint8_t id) { switch(id) { case HOST_USER_SELECT_CONFIGURATION: break; case HOST_USER_DISCONNECTION: Appli_state = APPLICATION_DISCONNECT; break; case HOST_USER_CONNECTION: break; case HOST_USER_CLASS_ACTIVE: switch(USBH_GetActiveClass(phost)) { case USB_MSC_CLASS: Appli_state = APPLICATION_MSC; break; case USB_HID_CLASS: Appli_state = APPLICATION_HID; break; } break; } }
TM_USBH_HID_t TM_USBH_HID_GetConnected(TM_USB_t USB_Mode) { HID_TypeTypeDef type; USBH_HandleTypeDef* USBHandle = TM_USBH_GetUSBPointer(USB_Mode); static TM_USBH_HID_t curr; /* Check if current class is HID */ if (USBH_GetActiveClass(USBHandle) != USB_HID_CLASS) { /* HID is not active */ return TM_USBH_HID_None; } /* Get keyboard type */ type = USBH_HID_GetDeviceType(USBHandle); /* Check for keyboard */ if (type == HID_KEYBOARD) { curr = TM_USBH_HID_Keyboard; } else if (type == HID_MOUSE) { curr = TM_USBH_HID_Mouse; } else { curr = TM_USBH_HID_None; } /* No device detected */ return curr; }
/** * @brief User Process * @param phost: Host Handle * @param id: Host Library user message ID * @retval None */ static void USBH_UserProcess(USBH_HandleTypeDef *phost, uint8_t id) { switch(id) { case HOST_USER_SELECT_CONFIGURATION: break; case HOST_USER_DISCONNECTION: Appli_state = APPLICATION_DISCONNECT; if(USBH_GetActiveClass(phost) == AC_CLASS) { Audio_ChangeSelectMode(AUDIO_SELECT_MENU); } break; case HOST_USER_CONNECTION: break; case HOST_USER_CLASS_ACTIVE: switch(USBH_GetActiveClass(phost)) { case USB_MSC_CLASS: Appli_state = APPLICATION_MSC; /* Link the USB disk I/O driver */ FATFS_LinkDriver(&USBH_Driver, USBDISKPath); break; case AC_CLASS: Appli_state = APPLICATION_AUDIO; /* Init SD Storage */ if (SD_StorageInit() == 0) { SD_StorageParse(); } break; case USB_HID_CLASS: Appli_state = APPLICATION_HID; break; } break; } }