ircmd_receiver.c
来自「OSD显示,单片机实现,ICCAVR! 代码风格严谨,为高人所写.我仅为了上传换」· C语言 代码 · 共 580 行 · 第 1/2 页
C
580 行
set_prologic_val(prologic_val);
break;
case PROLOGIC_MODE_MATRIX:
//vfd_set_str(0,"MATRIX ");
//psprintf(RegionValStr[REGION1],"MATRIX");
//PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
set_prologic_val(prologic_val);
break;
}
}
void show_prologic(void)
{
UINT8 id=0;
switch(prologic_val)
{
case PROLOGIC_MODE_MOVIE:
vfd_set_str(0,"MOVIE ");
psprintf(RegionValStr[REGION1],"MOVIE");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
//set_prologic_val(prologic_val);
break;
case PROLOGIC_MODE_MUSIC:
vfd_set_str(0,"MUSIC ");
psprintf(RegionValStr[REGION1],"MUSIC");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
//set_prologic_val(prologic_val);
break;
case PROLOGIC_MODE_OFF:
vfd_set_str(0,"STEREO ");
psprintf(RegionValStr[REGION1],"STEREO");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
//set_prologic_val(prologic_val);
break;
case PROLOGIC_MODE_EMU:
vfd_set_str(0,"PROLOGIC");
psprintf(RegionValStr[REGION1],"PROLOGIC");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
//set_prologic_val(prologic_val);
break;
case PROLOGIC_MODE_VIRTUAL:
vfd_set_str(0,"VIRTUAL ");
psprintf(RegionValStr[REGION1],"VIRTUAL");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
//set_prologic_val(prologic_val);
break;
case PROLOGIC_MODE_MATRIX:
vfd_set_str(0,"MATRIX ");
psprintf(RegionValStr[REGION1],"MATRIX");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
//set_prologic_val(prologic_val);
break;
}
}
void do_prologic_noshow()
{
do_prologic();
}
void do_prologic_and_show(void)
{
do_prologic();
show_prologic();
}
void surround_exe()
{
UINT8 id=0;
if (surround_mode == 0)
{
if (current_rcvr_mode == RECEIVER_MODE_DVD)
{
if(IS_AUDIF_CODING_MODE_DTS || IS_AUDIF_CODING_MODE_DTSCD) /* dts */
{
prologic_val=PROLOGIC_MODE_OFF;
//vfd_show_channel_msg("DIGITAL");
vfd_set_str(0,"DIGITAL");
psprintf(RegionValStr[REGION1],"DIGITAL");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
}
else if(IS_AUDIF_CODING_MODE_AC3)
{/* ac3 */
if (pDSV->dNs_Audio_ch<=1)
{
do_prologic_and_show();
}else
{
prologic_val=PROLOGIC_MODE_OFF;
//vfd_show_channel_msg("DIGITAL");
vfd_set_str(0,"DIGITAL");
psprintf(RegionValStr[REGION1],"DIGITAL");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
}
}
else
{
do_prologic_and_show();
}
}
else
{
do_prologic_and_show();
}
exe_setup_function(STR_OS_DOWNMIX_SETUP,STR_OS_OFF,1);
AUDIF_Set_OutputMode(OUT_51Channel,0);
}
else
{
exe_setup_function(STR_OS_DOWNMIX_SETUP,STR_OS_LTRT_SETUP,1);
prologic_val = PROLOGIC_MODE_OFF;
//vfd_show_channel_msg("STEREO ");
vfd_set_str(0,"STEREO ");
set_prologic_val(prologic_val);
psprintf(RegionValStr[REGION1],"STEREO");
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
AUDIF_Set_OutputMode(OUT_51DownmixLtRt,0);
}
subvol_main_vol();
}
void surround_exe_nomsg()
{
UINT8 id=0;
if (surround_mode == 0)
{
if (current_rcvr_mode == RECEIVER_MODE_DVD)
{
if(IS_AUDIF_CODING_MODE_DTS || IS_AUDIF_CODING_MODE_DTSCD) /* dts */
{
prologic_val=PROLOGIC_MODE_OFF;
}
else if(IS_AUDIF_CODING_MODE_AC3)
{
if ((pDSV->dNs_Audio_ch<=1)&&(cd_type_loaded==CDDVD))
{
prologic_val = PROLOGIC_MODE_EMU;
}
else
prologic_val=PROLOGIC_MODE_OFF;
}
else
{
prologic_val = PROLOGIC_MODE_EMU;
}
exe_setup_function(STR_OS_DOWNMIX_SETUP,STR_OS_OFF,1);
do_prologic_noshow(); // ??
}
else
{
do_prologic_noshow();
exe_setup_function(STR_OS_DOWNMIX_SETUP,STR_OS_OFF,1);
}
AUDIF_Set_OutputMode(OUT_51Channel,0);
}
else
{
prologic_val = PROLOGIC_MODE_OFF;
AUDIF_Set_OutputMode(OUT_51DownmixLtRt,0);
set_prologic_val(prologic_val);
}
subvol_main_vol();
}
void surround_mode_bak()
{
save_surround_mode = surround_mode;
save_prologic_val = prologic_val;
}
void surround_mode_restore()
{
surround_mode = save_surround_mode;
prologic_val = save_prologic_val;
surround_exe_nomsg();
}
void surround_init()
{
#if 1
BYTE *p;
BYTE data;
BYTE res;
p = &data;
res = ReadFromI2c(0xa0,INIT_FLAG_ADDR,p,1);
if (res >0)
{
if (data == 0x55)
{
}
else
{
*p = 0x55;
WriteToI2c(0xa0,INIT_FLAG_ADDR,p,1);
surround_mode = 0; // default set to prologic
prologic_val = PROLOGIC_MODE_EMU;
I2c_write_surrond_mode();
}
}
else
{
*p = 0x55;
WriteToI2c(0xa0,INIT_FLAG_ADDR,p,1);
surround_mode = 0; // default set to prologic
prologic_val = PROLOGIC_MODE_EMU;
I2c_write_surrond_mode();
}
#endif
I2c_read_surround_mode();
surround_exe_nomsg();
}
void ircmd_prologic(void)
{
#if 1
//Mute();
#ifdef SUPPORT_DDX8001
ddx_subch_mute(1);
#elif USE_AMP_MUTE
sub_masterMute(AMP_MUTE);
#endif
//ddx_masterMute(1);
AUDIF_Set_Volume(0);//2004AUDDRV AudioSetVolume(0); // cmhuang, 2003/8/28 11:58PM
surround_switch();
//vfd_set_surround_mode();
//vfd_backup();
erase_vfd_mem();
surround_exe();
#ifdef SUPPORT_DDX8001
ddx_subch_mute(0);
#elif USE_AMP_MUTE
sub_masterMute(AMP_DEMUTE);
#endif
//ddx_masterMute(0);
//Demute();
AUDIF_Demute();//2004AUDDRV AudioDemute(); // cmhuang, 2003/8/28 11:58PM
#else
UINT8 id=0;
AUDIF_Set_Volume(0);//2004AUDDRV AudioSetVolume(0); // cmhuang, 2003/8/28 11:58PM
#ifndef ADJUSTING_ACTION_VALID_RIGHT_NOW // alan, 2003/8/27 11:36AM
if(action_click)
#endif
prologic_val++;
if(prologic_val>2)
prologic_val=0;
switch(prologic_val)
{
case 0:
id=STR_OS_PL_MOVIE;
vfd_show_channel_msg("MOVE");
prologic_flag=1; //wuzhj add for prologic_II 2004/04/04
break;
case 1:
id=STR_OS_PL_MUSIC;
vfd_show_channel_msg("MUSIC");
prologic_flag=1; //wuzhj add for prologic_II 2004/04/04
break;
case 2:
id=STR_OS_OFF;
vfd_show_channel_msg("STEREO");
prologic_flag=0; //wuzhj add for prologic_II 2004/04/04
break;
}
OSD1000ISP_STATUS(OSDISP_IGNORE, OSDIR_GLOBAL);
PrintOsdMsg(STR_OS_PROLOGIC|(id<<OSDSTR_ID_TOTL_BIT),REGION1,1,4);
set_prologic_val(prologic_val);
AUDIF_Demute();//2004AUDDRV AudioDemute(); // cmhuang, 2003/8/28 11:58PM
#endif
}
#endif
#endif //USE_PROLOGIC_II_KEY_FOR_SURROUND
#endif //SUPPORT_RECEIVER
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?