⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbd_protenum.c

📁 epson usb2.0 控制芯片 S1R72V05 固件程序。
💻 C
📖 第 1 页 / 共 5 页
字号:
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPENED 		Not opened
//				  STATUS_INVALID_PARAMETER	Parameter error
// 				  STATUS_NOT_IMPLEMENTED	Not implemented
========================================================================*/
LONG USBD_ProtEnumGetParameter( void *pParamData, USHORT wParamType )
{
	UCHAR	*pbRemoteWakeupMode;	//, bFIFOAreaLength,bPayloadSizeLength;
//	USBD_PROTENUMFIFOAREA	*psFIFOAreaMode;
//	USBD_FUNC_FIFOAREA		*psFuncFIFOArea;
//	USBD_FUNC_PAYLOADSIZE	*psFuncPayloadSize;
	LONG	dwAPIStatus;


	/**************************/
	/* Process for individual parameter type */
	/**************************/
	switch( wParamType ){
		case USBD_PROT_ENUM_POWERSAVE_MODE:
			/* Power saving mode */

			dwAPIStatus = GetPowerSaveMode(pParamData);
			if( dwAPIStatus != STATUS_SUCCESS ){
				/* Error occurred in lower module */

				return STATUS_INVALID_PARAMETER;
			}
			break;
		case USBD_PROT_ENUM_REMOTEWAKEUP_MODE:
			/* Remote Wakeup mode */

			pbRemoteWakeupMode = (UCHAR *)pParamData;
			if( ModuleStatus.sControlFlag.bit.wEnableAutoWakeup == 1 ){
				/* Auto Remote Wakeup mode */

				*pbRemoteWakeupMode = USBD_PROT_ENUM_AUTO_WAKEUP;
			} else {
				/* Manual Remote Wakeup mode */

				*pbRemoteWakeupMode = USBD_PROT_ENUM_MANUAL_WAKEUP;
			}
			break;
		case USBD_PROT_ENUM_HW_FEATURE_MODE:
			/* H/W function mode */

			dwAPIStatus = GetHWFeatureMode(pParamData);
			break;
		case USBD_PROT_ENUM_FIFOAREA_MODE:
			return STATUS_INVALID_PARAMETER;

		/* Not used */
		default:
			/* Parameter type which is not supported */
			return STATUS_INVALID_PARAMETER;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtSetParameter
//
// description	: Set parameter of this module
//
//				  Set parameter of specified type
//
// argument 	: wParamType	 			 Type of parameter
//						USBD_PROT_ENUM_POWERSAVE_MODE	Power saving mode
//						USBD_PROT_ENUM_REMOTEWAKEUP_MODE	Remote Wakeup mode
//				  *pParamData				 Pointer of parameter data
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPENED 		Not opened
//				  STATUS_INVALID_PARAMETER	Parameter error
// 				  STATUS_NOT_IMPLEMENTED	Not implemented
========================================================================*/
LONG USBD_ProtEnumSetParameter( const void *pParamData, USHORT wParamType )
{
//	UCHAR	bFuncFIFOAreaLength,bFuncPayloadSizeLength;
//	USHORT	wNumEndpoint;
//	USBD_PROTENUMPAYLOADSIZE	*psPayloadMode;
//	USBD_PROTENUMFIFOAREA	*psFIFOAreaMode;
//	USBD_FUNC_FIFOAREA	*psFuncFIFOArea;
	LONG	dwAPIStatus;
//	USHORT	i;


	/**************************/
	/* Process for individual parameter type */
	/**************************/
	switch( wParamType ){
		case USBD_PROT_ENUM_POWERSAVE_MODE:
			/* Power saving mode */
			return STATUS_INVALID_PARAMETER;
		case USBD_PROT_ENUM_REMOTEWAKEUP_MODE:
			/* Remote Wakeup mode */

			if( *((UCHAR *)pParamData) == USBD_PROT_ENUM_AUTO_WAKEUP ){
				/* Auto Remote Wakeup mode */

				ModuleStatus.sControlFlag.bit.wEnableAutoWakeup = 1;
			} else if ( *((UCHAR *)pParamData) == USBD_PROT_ENUM_MANUAL_WAKEUP ){
				/* Manual Remote Wakeup mode */

				ModuleStatus.sControlFlag.bit.wEnableAutoWakeup = 0;
			} else {
				return STATUS_INVALID_PARAMETER;
			}
			break;
		case USBD_PROT_ENUM_HW_FEATURE_MODE:
			/* H/W function mode */

			dwAPIStatus = SetHWFeatureMode(pParamData);
			if( dwAPIStatus != STATUS_SUCCESS ){
				/* Error occurred in lower module */

				return STATUS_INVALID_PARAMETER;
			}
			break;
		case USBD_PROT_ENUM_FIFOAREA_MODE:
			return STATUS_INVALID_PARAMETER;
		default:
			/* Parameter type which is not supported */
			return STATUS_INVALID_PARAMETER;
	}

	return STATUS_SUCCESS;
}


/*======================================================================
// Function_Name: USBD_ProtRegisterCBREnumConnectEvent
//
// description	: Register callback function of notifying event
//
//				  Register callback function of notifying that Attach has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNABLE_TO_REGISTER Unable to register
========================================================================*/
LONG USBD_ProtRegisterCBREnumConnectEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the registration of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_CONNECT_EVENT] == NULL ){
		/* Not registered */

		ModuleStatus.pfnCallbackTable[CBR_CONNECT_EVENT] = pfnCallback;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtUnregisterCBREnumConnectEvent
//
// description	: Delete callback function of notifying event
//
//				  Delete callback function of notifying that Attach has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNREGISTERED		Not registered
========================================================================*/
LONG USBD_ProtUnregisterCBREnumConnectEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the deletion of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_CONNECT_EVENT] == pfnCallback ){
		/* Registered */

		ModuleStatus.pfnCallbackTable[CBR_CONNECT_EVENT] = NULL;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtRegisterCBREnumDisconnectEvent
//
// description	: Register callback function of notifying event
//
//				  Register callback function of notifying that Detach has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNABLE_TO_REGISTER Unable to register
========================================================================*/
LONG USBD_ProtRegisterCBREnumDisconnectEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the registration of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_DISCONNECT_EVENT] == NULL ){
		/* Not registered */

		ModuleStatus.pfnCallbackTable[CBR_DISCONNECT_EVENT] = pfnCallback;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtUnregisterCBREnumDisconnectEvent
//
// description	: Delete callback function of notifying event
//
//				  Delete callback function of notifying that Detach has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNREGISTERED		Not registered
========================================================================*/
LONG USBD_ProtUnregisterCBREnumDisconnectEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the deletion of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_DISCONNECT_EVENT] == pfnCallback ){
		/* Registered */

		ModuleStatus.pfnCallbackTable[CBR_DISCONNECT_EVENT] = NULL;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtRegisterCBREnumResetEvent
//
// description	: Register callback function of notifying event
//
//				  Register callback function of notifying that Reset has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNABLE_TO_REGISTER Unable to register
========================================================================*/
LONG USBD_ProtRegisterCBREnumResetEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the registration of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_RESET_EVENT] == NULL ){
		/* Not registered */

		ModuleStatus.pfnCallbackTable[CBR_RESET_EVENT] = pfnCallback;
	} else {
		/* Registered */

		return STATUS_UNABLE_TO_REGISTER;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtUnregisterCBREnumResetEvent
//
// description	: Delete callback function of notifying event
//
//				  Delete callback function of notifying that Reset has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNREGISTERED		Not registered
========================================================================*/
LONG USBD_ProtUnregisterCBREnumResetEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the deletion of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_RESET_EVENT] == pfnCallback ){
		/* Registered */

		ModuleStatus.pfnCallbackTable[CBR_RESET_EVENT] = NULL;
	} else{
		/* Not registered */

		return STATUS_UNREGISTERED;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtRegisterCBREnumSuspendEvent
//
// description	: Register callback function of notifying event
//
//				  Register callback function of notifying that Suspend has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNABLE_TO_REGISTER Unable to register
========================================================================*/
LONG USBD_ProtRegisterCBREnumSuspendEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the registration of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_SUSPEND_EVENT] == NULL ){
		/* Not registered */

		ModuleStatus.pfnCallbackTable[CBR_SUSPEND_EVENT] = pfnCallback;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtUnregisterCBREnumSuspendEvent
//
// description	: Delete callback function of notifying event
//
//				  Delete callback function of notifying that Suspend has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNREGISTERED		Not registered
========================================================================*/
LONG USBD_ProtUnregisterCBREnumSuspendEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the deletion of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_SUSPEND_EVENT] == pfnCallback ){
		/* Registered */

		ModuleStatus.pfnCallbackTable[CBR_SUSPEND_EVENT] = NULL;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtRegisterCBREnumResumeEvent
//
// description	: Register callback function of notifying event
//
//				  Register callback function of notifying that Resume has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNABLE_TO_REGISTER Unable to register
========================================================================*/
LONG USBD_ProtRegisterCBREnumResumeEvent( CALLBACK_PROC pfnCallback )
{
	/****************************/
	/* Check the registration of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_RESUME_EVENT] == NULL ){
		/* Not registered */

		ModuleStatus.pfnCallbackTable[CBR_RESUME_EVENT] = pfnCallback;
	}

	return STATUS_SUCCESS;
}

/*======================================================================
// Function_Name: USBD_ProtUnregisterCBREnumResumeEvent
//
// description	: Delete callback function of notifying event
//
//				  Delete callback function of notifying that Resume has been done
//
// argument 	: pfnCallback	 			Callback function
//
// return		: STATUS_SUCCESS			Success
//				  STATUS_NOT_OPEND			Not opened
//				  STATUS_UNREGISTERED		Not registered
========================================================================*/
LONG USBD_ProtUnregisterCBREnumResumeEvent( CALLBACK_PROC pfnCallback )
{

	/****************************/
	/* Check the deletion of callback function */
	/****************************/
	if( ModuleStatus.pfnCallbackTable[CBR_RESUME_EVENT] == pfnCallback ){
		/* Registered */

		ModuleStatus.pfnCallbackTable[CBR_RESUME_EVENT] = NULL;
	}

	return STATUS_SUCCESS;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -