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

📄 ml2011drv.h

📁 OkiML2011Driver
💻 H
字号:
/******************************************************************************
*
*	Oki Sound Library for ML2011
*		ML2011 Driver (ML2011drv.h)
*
*		 Oki Electric Industry Co.,Ltd.
*		 Software Development Department
*
*		 2006, 7, 12 released
*	--------------------------------------------------------------------------
*	Header File for ML2011drv.c
******************************************************************************/
#ifndef _ML2011_DRV_H_
#define	_ML2011_DRV_H_

#ifndef NULL
#define NULL 0
#endif

#include "ML2011usersdef.h"

#define WAIT_TIME_TO_THE_HPAMPOPEN			100		//(ms)

/******************************************************************************
* Definition of Oki Sound Library Control Structure 
******************************************************************************/
/***** ML2011 Driver Control Structure Variable *****/
typedef struct{
	unsigned char	DacStatus;			/* Dac StatuOn/Off */
	unsigned char	MasterCloskOnNo;	/* Master Clock On */
	unsigned char	StockIndex;
}DRV_CTRL;

typedef struct{
	unsigned char	MpegVer;
	unsigned char	Layer;
	unsigned short	Sam;
	unsigned short	Bitrate;
	unsigned char	Mode;
#ifdef MP3INFO_FULL
	unsigned char	Pad;
	unsigned char	Crc;
	unsigned char	Ep;
	unsigned char	Orignal;
	unsigned char	Cprt;
	unsigned char	Exm;
#endif
}MP3_INFO;

/******************************************************************************
*	RETURN CODE
******************************************************************************/
#define L2011DRV_OK			0
#define L2011DRV_ERR		(-1)
#define L2011DRV_ERR_PARAM	(-3)	//SOUNDLIB_ERR_PARAM
#define L2011DRV_ERR_STATUS (-4)	//SOUNDLIB_ERR_STATUS


/*******************************************************************************
*	CONSTANTS DEFINITION
*******************************************************************************/

#define L2011DRV_PRODUCTID			(0x80) 

/** for "DEFAULT_ISS_BIT" **/
#define ISS_POS						(0x80) /* Low level active */
#define ISS_NEG						(0x00) /* High level active */

/** for "DEFAULT_MP3DUAL" MP3 Dual channek **/
#define L2011DRV_MP3DUAL_NORMAL		(0x00)
#define L2011DRV_MP3DUAL_MAIN		(0x01)
#define L2011DRV_MP3DUAL_SUB		(0x02)

/** for "Audiopath setting/state" "" **/
#define L2011DRV_AUDIOPATH_OFF		(0x00)	//init value
#define L2011DRV_AUDIOPATH_AOUT		(0x01)
#define L2011DRV_AUDIOPATH_LROUT	(0x02)

/** for "Fifo reqest mode" "L2011drv_SetMP3ReqMethod()" **/
#define	L2011DRV_MP3FIFOREQ_DREQ	(0x00)
#define	L2011DRV_MP3FIFOREQ_THRE	(0x01)

/** for "Fifo reqest mode" "L2011drv_SetMP3ReqMethod()" **/
#define	L2011DRV_PWMTYPE_PWMA		(0x01)
#define	L2011DRV_PWMTYPE_VIB		(0x20)

/* MP3 CONTROL DEFINISION */
#define	L2011DRV_MP3FIFO_SIZE		(2048)


/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
/
/	POWER SEQUENCE
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/
/*******************************************************************************
*	PUBLIC FUNCTION PROTO-TYPE
*******************************************************************************/
void L2011drv_Init(DRV_CTRL *drvCtrl);

/*******************************************************************************
*	POWER SEQUENCE(LOCAL)
*******************************************************************************/
void L2011drv_SoftReset(DRV_CTRL *drvCtrl);
void L2011drv_DacOn(DRV_CTRL *drvCtrl, unsigned char ucApath);
void L2011drv_DacOff(DRV_CTRL *drvCtrl);
void L2011drv_SpAmpOn(DRV_CTRL *drvCtrl);
void L2011drv_SpAmpOff(DRV_CTRL *drvCtrl);
void L2011drv_HpAmpOn(DRV_CTRL *drvCtrl);
void L2011drv_HpAmpOff(DRV_CTRL *drvCtrl);
void L2011drv_MasterClockOn(DRV_CTRL *drvCtrl);
void L2011drv_MasterClockOff(DRV_CTRL *drvCtrl);
void L2011drv_SetClockParameter(DRV_CTRL *drvCtrl);

/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
/
/	VOLUME CONTROL
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/
/******************************************************************************
*	PUBLIC VOLUME FUNCTION 
******************************************************************************/
signed short L2011drv_SetMainVolume(DRV_CTRL *drvCtrl, unsigned char value);
signed short L2011drv_SetSpVolume(DRV_CTRL *drvCtrl, unsigned char value);


/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
/
/	STATUS CHECK
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/
/*******************************************************************************
*	PUBLIC FUNCTION PROTO-TYPE
*******************************************************************************/
unsigned char L2011drv_GetProductID(DRV_CTRL *drvCtrl);
unsigned char L2011drv_GetDacStatus(DRV_CTRL *drvCtrl);


/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
/
/	MP3 CONTROL
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/
/*******************************************************************************
*	PUBLIC FUNCTION PROTO-TYPE
*******************************************************************************/
unsigned short L2011drv_WriteMP3Fifo(DRV_CTRL *drvCtrl, unsigned char *buff, unsigned short size);
signed short L2011drv_SetMP3FifoTh(DRV_CTRL *drvCtrl, unsigned short th);
void L2011drv_ClearMP3Fifo(DRV_CTRL *drvCtrl);
unsigned char L2011drv_GetMP3FifoStatus(DRV_CTRL *drvCtrl);
void L2011drv_SetMP3ReqMethod(DRV_CTRL *drvCtrl, unsigned char mode);
unsigned short L2011drv_GetMP3FifoDataSize(DRV_CTRL *drvCtrl);
void L2011drv_SetMP3DualChSel(DRV_CTRL *drvCtrl, unsigned char mode);
void L2011drv_MP3DecStart(DRV_CTRL *drvCtrl);
void L2011drv_MP3Start(DRV_CTRL *drvCtrl);
void L2011drv_MP3Pause(DRV_CTRL *drvCtrl);
void L2011drv_MP3Stop(DRV_CTRL *drvCtrl);
unsigned char L2011drv_GetMP3ErrorStatus(DRV_CTRL *drvCtrl);
void L2011drv_ClearMP3ErrorStatus(DRV_CTRL *drvCtrl, unsigned char err);
unsigned char L2011drv_GetMP3WarnStatus(DRV_CTRL *drvCtrl);
void L2011drv_ClearMP3WarnStatus(DRV_CTRL *drvCtrl, unsigned char warn);
unsigned char L2011drv_GetMP3Status(DRV_CTRL *drvCtrl);
void L2011drv_ClearMP3Status(DRV_CTRL *drvCtrl, unsigned char stat);
void L2011drv_GetMp3Info(DRV_CTRL *drvCtrl, MP3_INFO *mp3Info);


/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
/
/	IRQ CONTROL
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/
/*******************************************************************************
*	PUBLIC FUNCTION PROTO-TYPE
*******************************************************************************/
unsigned char L2011drv_GetMp3IrqStat(DRV_CTRL *drvCtrl);
void L2011drv_ClearMp3IrqStat(DRV_CTRL *drvCtrl, unsigned char stat);
void L2011drv_Mp3IrqEnable(DRV_CTRL *drvCtrl, unsigned char enable);


/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
/
/	PWM CONTROL
/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_*/
/*******************************************************************************
*	PUBLIC FUNCTION PROTO-TYPE
*******************************************************************************/
void L2011drv_InitPwmSetting(DRV_CTRL *drvCtrl);
signed short L2011drv_SetValue(DRV_CTRL *drvCtrl, unsigned char pwm, unsigned char value);
signed short L2011drv_GetValue(DRV_CTRL *drvCtrl,  unsigned char pwm, unsigned char *value);
signed short L2011drv_SetEnable(DRV_CTRL *drvCtrl, unsigned char pwm, unsigned char ena);

#endif	/* _ML2011_DRV_H_ */

⌨️ 快捷键说明

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