📄 msp4450g.c
字号:
case matrix_src_I2S1: case matrix_src_I2S2: //khuong add case matrix_src_I2S3_c12: case matrix_src_I2S3_c34: //khuong end break; default: return RM_INVALID_PARAMETER; } if( (s = read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,m, &data16)) != RM_OK ) { printf("msp4450g_matrix_SelectSource, msp4450g_readDsp(0x%x) failed %d\n", m, s); return RM_ERROR; } // source is bit 15:8 data16 = data16 & 0xFF; data16 = data16 | (src << 8); if( (s = write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,m, data16)) != RM_OK ) { printf("msp4450g_matrix_SelectSource, msp4450g_writeDsp(0x%x, data=0x%lx) failed %d\n", m, data16, s); return RM_ERROR; } return RM_OK; }RMstatus msp4450g_headphone_SetVolume(struct RUA *pInstance, RMuint8 db){ RMuint32 data16; RMuint32 data16_old; read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0006, &data16_old); data16_old = (data16_old & 0x00FF); data16 = db << 8; data16 = data16 | data16_old; printf("data is written: 0x%lx",data16);//tractran //msp4450g_writeDsp(pC, msp_dsreg_vol_headphone, data16); write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x06, data16); return RM_OK;}RMstatus msp4450g_headphone_IncreaseVolume(struct RUA *pInstance){ RMuint32 data16; RMuint32 data16_old; RMuint32 db; read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0006, &data16_old); db=data16_old>>8; if (db<=125) { db+=2; printf("vol = %ld db\n",db -0x73); } data16_old = (data16_old & 0x00FF); data16 = db << 8; data16 = data16 | data16_old; printf("data is written: 0x%lx",data16); //msp4450g_writeDsp(pC, msp_dsreg_vol_headphone, data16); write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x06, data16); return RM_OK;}RMstatus msp4450g_headphone_DecreaseVolume(struct RUA *pInstance){ RMuint32 data16; RMuint32 data16_old; RMuint32 db; read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0006, &data16_old); db=data16_old>>8; if (db>=2) { db-=2; printf("vol = %ld db\n",db -0x73); } data16_old = (data16_old & 0x00FF); data16 = db << 8; data16 = data16 | data16_old; printf("data is written: 0x%lx",data16); //msp4450g_writeDsp(pC, msp_dsreg_vol_headphone, data16); write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x06, data16); return RM_OK;}RMstatus msp4450g_loudspeaker_SetVolume(struct RUA *pInstance, RMuint8 db){ RMuint32 data16; RMuint32 data16_old; read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0000, &data16_old); data16_old = (data16_old & 0x00FF); data16 = db << 8; data16 = data16 | data16_old; //msp4450g_writeDsp(pC, msp_dsreg_vol_main, data16); write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x00, data16); //msp4450g_readDsp(pC,msp_dsreg_vol_main, &data16); /* read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x00, &data16); printf("data is : 0x%lx",data16);*/ return RM_OK;}RMstatus msp4450g_loudspeaker_IncreaseVolume(struct RUA *pInstance){ RMuint32 data16; RMuint32 data16_old; RMuint8 db; read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0000, &data16_old); db=data16_old>>8; if (db<=125) { db+=2; printf("vol = %d db\n",db -0x73); } data16_old = (data16_old & 0x00FF); data16 = db << 8; data16 = data16 | data16_old; //msp4450g_writeDsp(pC, msp_dsreg_vol_main, data16); write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x00, data16); //msp4450g_readDsp(pC,msp_dsreg_vol_main, &data16); /* read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x00, &data16); printf("data is : 0x%lx",data16);*/ return RM_OK;}RMstatus msp4450g_loudspeaker_DecreaseVolume(struct RUA *pInstance){ RMuint32 data16; RMuint32 data16_old; RMuint8 db; read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x0000, &data16_old); db=data16_old>>8; if (db>=2) { db-=2; printf("vol = %d db\n",db -0x73); } data16_old = (data16_old & 0x00FF); data16 = db << 8; data16 = data16 | data16_old; //msp4450g_writeDsp(pC, msp_dsreg_vol_main, data16); write_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_WRDSP,0x00, data16); //msp4450g_readDsp(pC,msp_dsreg_vol_main, &data16); /* read_i2c_dsp_msp4450g(pInstance,MSP4450G_DELAY,MSP4450G_I2C_ADDR,MSP4450G_SADDR_RDDSP,0x00, &data16); printf("data is : 0x%lx",data16);*/ return RM_OK;}RMstatus msp4450g_InitScart1InHeadPhoneOut(struct RUA *pInstance){ RMstatus err=RM_OK; RMuint32 regValue=0x00; RMuint32 regAdd=0x00; //Scart1 input to Headphone printf("**Scart1 input to headphone** \n"); msp4450g_detect(pInstance); msp4450g_reset(pInstance); //Source select regAdd=0x0013; err=read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue=regValue & (~(0x19<<5)); //Scart1 input err=write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //SCART Input Prescale : 0db gain regAdd=0x000d; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue=regValue | 0x1900; //Prescale Scart write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Mode for Headphone output : (0x09) regAdd=0x09; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue =regValue & 0xff00; regValue =regValue | 0x0020; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Source for SCART input : regAdd=0x09; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x02ff; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); regAdd=0x06; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x7300; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //msp4450g_headphone_SetVolume(pInstance,volume); return err;}RMstatus msp4450g_InitScart3InHeadPhoneOut(struct RUA *pInstance){ RMstatus err=RM_OK; RMuint32 regValue=0x00; RMuint32 regAdd=0x00; //Scart1 input to Headphone printf("**Scart3 input and Out direct to headphone ** \n"); msp4450g_detect(pInstance); msp4450g_reset(pInstance); //Source select regAdd=0x0013; err=read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue=regValue & (~(0x19<<5)); //Scart1 input regValue=regValue | (0x18<<5); err=write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //SCART Input Prescale : 0db gain regAdd=0x000d; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue=regValue | 0x1900; //Prescale Scart write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Mode for Headphone output : (0x09) regAdd=0x09; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue =regValue & 0xff00; regValue =regValue | 0x0020; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Source for SCART input : regAdd=0x09; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x02ff; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); return err; }RMstatus msp4450g_InitScart1InLoudSpeakerOut(struct RUA *pInstance){ RMstatus err=RM_OK; RMuint32 regValue=0x00; RMuint32 regAdd=0x00; //Scart1 input to LoudSpeaker printf("**Scart1 input to LoudSpeaker** \n"); msp4450g_detect(pInstance); msp4450g_reset(pInstance); //Source select regAdd=0x0013; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue=regValue & (~(0x19<<5)); //Scart1 input write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //SCART Input Prescale : 0db gain regAdd=0x000d; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue=regValue | 0x1900; //Prescale Scart write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Mode for LoudSpeaker output : (0x08) //regAdd=0x09; //Headphone regAdd=0x08; //LoudSpeaker read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue =regValue & 0xff00; regValue =regValue | 0x0020; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Source for SCART input : //regAdd=0x09; //HeadPhone regAdd=0x08; //Loudspeaker read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x02ff; //SCART input write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Set Volume for loudSpeaker : //regAdd=0x06; // Headphone regAdd=0x00; //Loudspeaker/* read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x4D00; write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);*/ return err;}RMstatus msp4450g_InitScart3InLoudSpeakerOut(struct RUA *pInstance){ RMstatus err=RM_OK; RMuint32 regValue=0x00; RMuint32 regAdd=0x00; //Scart1 input to LoudSpeaker printf("**Scart3 input to LoudSpeaker** \n"); msp4450g_detect(pInstance); msp4450g_reset(pInstance); //Source select regAdd=0x0013; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue=regValue & (~(0x19<<5)); //Scart1 input write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //SCART Input Prescale : 0db gain regAdd=0x000d; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue=regValue | 0x1900; //Prescale Scart write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Mode for LoudSpeaker output : (0x08) //regAdd=0x09; //Headphone regAdd=0x08; //LoudSpeaker read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue =regValue & 0xff00; regValue =regValue | 0x0020; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Source for SCART input : //regAdd=0x09; //HeadPhone regAdd=0x08; //Loudspeaker read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x02ff; //SCART input write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Set Volume for loudSpeaker : //regAdd=0x06; // Headphone regAdd=0x00; //Loudspeaker/* read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x4D00; write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);*/ return err;}RMstatus msp4450g_InitScart4InHeadPhoneOut(struct RUA *pInstance){ RMstatus err=RM_OK; RMuint32 regValue=0x00; RMuint32 regAdd=0x00; //Scart1 input to Headphone printf("**Scart4 input to headphone** \n"); msp4450g_detect(pInstance); msp4450g_reset(pInstance); //Source select regAdd=0x0013; err=read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); //regValue=regValue & (~(0x19<<5)); //Scart1 input regValue=regValue & (~(0x18<<5)); //Scart4 input regValue=regValue | (0x01<<5); err=write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //SCART Input Prescale : 0db gain regAdd=0x000d; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue=regValue | 0x1900; //Prescale Scart write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Mode for Headphone output : (0x09) regAdd=0x09; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue =regValue & 0xff00; regValue =regValue | 0x0020; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); //Matrix Source for SCART input : regAdd=0x09; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x02ff; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue); /* regAdd=0x06; read_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_RDDSP,regAdd,®Value); regValue = regValue & 0x00ff; regValue =regValue | 0x7300; //Stereo(transparent mode) write_i2c_dsp_msp4450g(pInstance,10,0x80>>1,MSP4450G_SADDR_WRDSP,regAdd,regValue);*/ //msp4450g_headphone_SetVolume(pInstance,volume); return err; }RMstatus msp4450g_InitScart4InLoudSpeakerOut(struct RUA *pInstance){ RMstatus err=RM_OK; RMuint32 regValue=0x00; RMuint32 regAdd=0x00; //Scart1 input to LoudSpeaker printf("**Scart4 input to LoudSpeaker** \n"); msp4450g_detect(pInstance); msp4450g_reset(pInstance); //Source select
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -