/**
******************************************************************************
* @file usbh_mtp.c
* @author MCD Application Team
* @brief This file is the MTP Layer Handlers for USB Host MTP class.
*
*
******************************************************************************
* @attention
*
*
© Copyright (c) 2015 STMicroelectronics.
* All rights reserved.
*
* This software component is licensed by ST under Ultimate Liberty license
* SLA0044, the "License"; You may not use this file except in compliance with
* the License. You may obtain a copy of the License at:
* www.st.com/SLA0044
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "usbh_template.h"
/** @addtogroup USBH_LIB
* @{
*/
/** @addtogroup USBH_CLASS
* @{
*/
/** @addtogroup USBH_TEMPLATE_CLASS
* @{
*/
/** @defgroup USBH_TEMPLATE_CORE
* @brief This file includes TEMPLATE Layer Handlers for USB Host TEMPLATE class.
* @{
*/
/** @defgroup USBH_TEMPLATE_CORE_Private_TypesDefinitions
* @{
*/
/**
* @}
*/
/** @defgroup USBH_TEMPLATE_CORE_Private_Defines
* @{
*/
/**
* @}
*/
/** @defgroup USBH_TEMPLATE_CORE_Private_Macros
* @{
*/
/**
* @}
*/
/** @defgroup USBH_TEMPLATE_CORE_Private_Variables
* @{
*/
/**
* @}
*/
/** @defgroup USBH_TEMPLATE_CORE_Private_FunctionPrototypes
* @{
*/
static USBH_StatusTypeDef USBH_TEMPLATE_InterfaceInit(USBH_HandleTypeDef *phost);
static USBH_StatusTypeDef USBH_TEMPLATE_InterfaceDeInit(USBH_HandleTypeDef *phost);
static USBH_StatusTypeDef USBH_TEMPLATE_Process(USBH_HandleTypeDef *phost);
static USBH_StatusTypeDef USBH_TEMPLATE_ClassRequest(USBH_HandleTypeDef *phost);
USBH_ClassTypeDef TEMPLATE_Class =
{
"TEMPLATE",
USB_TEMPLATE_CLASS,
USBH_TEMPLATE_InterfaceInit,
USBH_TEMPLATE_InterfaceDeInit,
USBH_TEMPLATE_ClassRequest,
USBH_TEMPLATE_Process
};
/**
* @}
*/
/** @defgroup USBH_TEMPLATE_CORE_Private_Functions
* @{
*/
/**
* @brief USBH_TEMPLATE_InterfaceInit
* The function init the TEMPLATE class.
* @param phost: Host handle
* @retval USBH Status
*/
static USBH_StatusTypeDef USBH_TEMPLATE_InterfaceInit(USBH_HandleTypeDef *phost)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(phost);
return USBH_OK;
}
/**
* @brief USBH_TEMPLATE_InterfaceDeInit
* The function DeInit the Pipes used for the TEMPLATE class.
* @param phost: Host handle
* @retval USBH Status
*/
USBH_StatusTypeDef USBH_TEMPLATE_InterfaceDeInit(USBH_HandleTypeDef *phost)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(phost);
return USBH_OK;
}
/**
* @brief USBH_TEMPLATE_ClassRequest
* The function is responsible for handling Standard requests
* for TEMPLATE class.
* @param phost: Host handle
* @retval USBH Status
*/
static USBH_StatusTypeDef USBH_TEMPLATE_ClassRequest(USBH_HandleTypeDef *phost)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(phost);
return USBH_OK;
}
/**
* @brief USBH_TEMPLATE_Process
* The function is for managing state machine for TEMPLATE data transfers
* @param phost: Host handle
* @retval USBH Status
*/
static USBH_StatusTypeDef USBH_TEMPLATE_Process(USBH_HandleTypeDef *phost)
{
/* Prevent unused argument(s) compilation warning */
UNUSED(phost);
return USBH_OK;
}
/**
* @brief USBH_TEMPLATE_Init
* The function Initialize the TEMPLATE function
* @param phost: Host handle
* @retval USBH Status
*/
USBH_StatusTypeDef USBH_TEMPLATE_Init(USBH_HandleTypeDef *phost)
{
USBH_StatusTypeDef Status = USBH_BUSY;
#if (USBH_USE_OS == 1U)
osEvent event;
event = osMessageGet(phost->class_ready_event, osWaitForever);
if (event.status == osEventMessage)
{
if (event.value.v == USBH_CLASS_EVENT)
{
#else
while ((Status == USBH_BUSY) || (Status == USBH_FAIL))
{
/* Host background process */
USBH_Process(phost);
if (phost->gState == HOST_CLASS)
{
#endif
Status = USBH_OK;
}
}
return Status;
}
/**
* @brief USBH_TEMPLATE_IOProcess
* TEMPLATE TEMPLATE process
* @param phost: Host handle
* @retval USBH Status
*/
USBH_StatusTypeDef USBH_TEMPLATE_IOProcess(USBH_HandleTypeDef *phost)
{
if (phost->device.is_connected == 1U)
{
if (phost->gState == HOST_CLASS)
{
USBH_TEMPLATE_Process(phost);
}
}
return USBH_OK;
}
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/