blob: e4d67164fe803e02d83df347487d4fca80b20bc9 [file] [log] [blame]
/***********************************************************************
* Copyright (C) 2001, ZTE Corporation.
*
* File Name: earpiece_api.h
* File Mark:
* Description: Provide earpiece module function prototype declaration and type declaration.
* Others:
* Version: v0.5
* Author: LvWenhua
* Date: 2007-10-25
*
* History 1:
* Date:
* Version:
* Author:
* Modification:
* History 2:
**********************************************************************/
#ifndef _EARPIECE_API_H
#define _EARPIECE_API_H
/**************************************************************************
* Include files *
**************************************************************************/
/**************************************************************************
* Macro *
**************************************************************************/
#define ZDRV_DEV_EARP "earpiece" /*The device name of earpiece driver.*/
/**************************************************************************
* Types *
**************************************************************************/
/*Information from driver to upper application.*/
typedef enum {
EARP_INFO_PLUG = 0, /*Earpiece is plugged.*/
EARP_INFO_UNPLUG , /*Earpiece is unplugged.*/
EARP_INFO_HOOK_SWITCH , /*Earpiece hook key is pressed and released.*/
MAX_EARP_INFO
} T_ZDrvEarp_Info;
typedef enum {
EARP_STATE_PLUG = 0, /*Earpiece is plugged.*/
EARP_STATE_UNPLUG , /*Earpiece is unplugged.*/
MAX_EARP_STATE
} T_ZDrvEarp_State;
typedef void (*T_ZDrvEarp_CallbackFunc) (T_ZDrvEarp_Info);
#if 0
typedef enum
{
IOCTL_EARP_SET_CALLBACK = 0, /*Set callback function, it is used to register the callback function which will send the earpiece switch status to user.*/
IOCTL_EARP_GET_PLUG_STATUS , /*Get earpiece plug status, replace the read function.*/
IOCTL_EARP_SET_HOOK_ENABLE,
IOCTL_EARP_SET_HOOK_DISABLE,
MAX_IOCTL_EARP
}T_ZDrvEarp_IoCtl;
#endif
/**************************************************************************
* Global Variable *
**************************************************************************/
/**************************************************************************
* Function Prototypes *
**************************************************************************/
/**************************************************************************
* Function: zDrv_Open
* Description: This function is used to open device according to device name.
* Parameters:
* Input:
pathname:device name, ZDRV_DEV_EARP in earpiece
* flags: no use, 0
* Output: None
* Returns:
* device file descriptor if successed. [1, ZDRV_MAX_DEV_FILE_NUM), please refer to dal_api.h
* DRV_ERR_NO_THIS_DEVICE: this device hasn't been installed yet
* DRV_ERR_FD_OVERFLOW: no free fd entry
* DRV_ERR_NOT_SUPPORTED: this device don't support open operation.
* DRV_ERR_OPEN_TIMES: has been opened already.
* others: others error code. for detailed information, please refer to the header file of hal layer
* Others: None
**************************************************************************/
/*SINT32 zDrv_Open (const CHAR *pathname, SINT32 flags)*/
/**************************************************************************
* Function: zDrv_Close
* Description: This function is used to close a device according to device file descriptor.
* Parameters:
* Input:
* fd :device file descriptor
* Output:None
* Returns:
* DRV_SUCCESS: successed.
* DRV_ERR_NOT_OPENED: has not been opend yet.
* DRV_ERR_FD_TABLE: device driver table has been invalid.
* DRV_ERR_NOT_SUPPORTED: this device don't support close operation.
* others: others error code. for detailed information, please refer to the header file of hal layer
* Others: None
**************************************************************************/
/*SINT32 zDrv_Close(UINT32 fd)*/
/**************************************************************************
* Function: zDrv_Ioctl
* Description: This function is used to control device according to fd(device file descriptor).
* Parameters:
* Input:
* fd:device file descriptor
* cmd:command code
* arg:command parameters
* Output:None
* Returns:
* DRV_SUCCESS: successed.
* DRV_ERR_INVALID_PARAM: the input parameters are invalid
* DRV_ERR_NOT_OPENED: has not been opend yet.
* DRV_ERR_FD_TABLE: device driver table has been invalid.
* DRV_ERR_NOT_SUPPORTED: this device don't support ioctrl operation.
* DRV_ERR_INVALID_IOCTL_CMD: this command has not been supported yet.
* others: for detailed information, please refer to the header file of hal layer
*
* Others: None
**************************************************************************/
/*SINT32 zDrv_Ioctl(UINT32 fd, UINT32 cmd, VOID* arg)*/
/**************************************************************************
* Function: zDrvEarp_Init
* Description: This function is used to install earpiece driver.
* Parameters:
* Input:None
* Output:None
* Returns:
* DRV_SUCCESS: successed.
* DRV_ERROR: error
* DRV_ERR_DEV_OVERFLOW: no free device driver entry in table
* DRV_ERR_MEM_ALLOC: failed to alloc memory
* Others: None
**************************************************************************/
SINT32 zDrvEarp_Init(VOID);
/**************************************************************************
* Function: zDrvEarp_Exit
* Description: This function is used to uninstall earpiece driver.
* Parameters:
* Input:None
* Output:None
* Returns:
* DRV_SUCCESS: successed.
* DRV_ERROR: error
* DRV_ERR_DEV_TABLE: device driver table has been invalid.
* DRV_ERR_NO_THIS_DEVICE: this device hasn't been installed yet
* Others: None
**************************************************************************/
SINT32 zDrvEarp_Exit(VOID);
#endif /* _EARPIECE_API_H */