📄 ml2011drv.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 + -