📄 ircmd_receiver.c
字号:
#ifdef SUPPORT_RECEIVER //huziqin 2004-2-26
//#define DEBUG_VOLUME
#include "auddrv.h"
#if defined(SUPPORT_RECEIVER_MODE_MEMORY)
void save_rcvr_mode(BYTE mode);
#endif
void ircmd_mode_stop ()
{
if (t_disp) {
DispFadeOut();
disp_mode=0;
}
if (current_rcvr_mode == RECEIVER_MODE_DVD)
{
#if defined(SAME_DISC_RESUME)
RsmInfo2Flash(0);
#endif
#ifdef PARENT_RESUME_NEED_PASSWORD//hongfeng add 2006/3/8
PassWord_OK = 0;
#endif
#ifdef NEWSTYLE_WINDOW
if(full_scrn==MESSAGE)//xyy 2004-3-4 10:43
exit_browse_func();
#endif
if(full_scrn==SOUND)
cancel_sound();
else if(full_scrn&PROGRAM)
prog_func_off();
#ifdef NEW_PARENTAL_GUI//chenzhao20060214
extern int user_input_pwd;
extern BYTE new_parental_gui;
extern void ExitParentalGUI(void);
if(new_parental_gui)
{
ExitParentalGUI();
user_input_pwd=2;
}
#endif//#ifdef NEW_PARENTAL_GUI
if((full_scrn&SETUP)||(full_scrn&CUSTM))//chenzhao20060224
ExitSetupPage(1);
#if defined(SCALER_6500)//chenzhao 2006-3-4 13:40 .
extern UINT8 CSSEnable;
CSSEnable=0;
#endif
#ifdef MULTIDISC_LOADER//chenzhao20060209
multidisc_swith_receiver_mode_close();
#endif
// Simon 12-15-2003
// This is a fake eject
ircmd_post_func(CMD_FUNC | CMD_FUNC_OPEN);
play_state = VCD_STATE_STOP;
playmode_sel(CLEAR_ALL);
#if !defined(MULTIDISC_LOADER)&&!defined(POWER_ON_SERVO_STOP)//hongfeng add 2006/3/8
open_tray();
#endif
stop_loader();
}
else
{
system_state = SYSTEM_OPEN;
}
}
#ifdef SUPPORT_SETUP_POPUP_MEDIA_GUI
extern void show_setup_popup_media_gui(void);
#endif
void ircmd_rcvr_select_mode(int mode)
{
safe_srn_off();
//UINT8 door;
//door = atapi_p_mechanism_status();//chenzhao20060107
if ((current_rcvr_mode == RECEIVER_MODE_DVD))//&&(door == ATAPI_DOOR_OPEN))
{
#ifdef SELECT_DVD_NEXT_DISC_IN_A_KEY//chenzhao20060112
if(next_disc_func())
{}
else
#endif
#if defined(SUPPORT_SETUP_POPUP_MEDIA_GUI) && defined(SELECT_DVD_MEDIA_IN_A_KEY)
if((full_scrn==0)&&(storage_type!=0)&&(play_state!=VCD_STATE_READTOC)&&(play_state!=VCD_STATE_CLOSE))//chenzhao20051110
{
need_popup_menu=2;
show_setup_popup_media_gui();
}
else
#endif
{
invalid_key();
}
}
else
{
next_rcvr_mode = mode;
switch_modes_now = 1;
ircmd_mode_stop();
#if defined(SUPPORT_RECEIVER_MODE_MEMORY)
save_rcvr_mode(next_rcvr_mode);
#endif
}
}
void ircmd_rcvr_next_mode(void)
{
// Find next supported mode
BYTE found = 0;
//printf("mode %d\n",next_rcvr_mode);
printf("ircmd_rcvr_next_mode\n");
next_rcvr_mode = current_rcvr_mode + 1;
while (found == 0) {
if (next_rcvr_mode == NUM_MODES_MAX)
{
next_rcvr_mode = 0;
}
if (rcvr_support_bits & (1 << next_rcvr_mode))
{
found = 1;
}
else
{
next_rcvr_mode++;
}
}
switch_modes_now = 1;
ircmd_mode_stop();
#if defined(SUPPORT_RECEIVER_MODE_MEMORY)
save_rcvr_mode(next_rcvr_mode);
#endif
}
void ircmd_rcvr_function_mode(void)//chenzhao20060120
{
BYTE found = 0;
printf("ircmd_rcvr_function_mode\n");
if(current_rcvr_mode == RECEIVER_MODE_DVD)
{
next_rcvr_mode = last_non_dvd_rcvr_mode;
}
else
{
next_rcvr_mode = current_rcvr_mode + 1;
}
while (found == 0)
{
if (next_rcvr_mode == NUM_MODES_MAX)
{
next_rcvr_mode = 0;
}
if ((rcvr_support_bits & (1 << next_rcvr_mode))&&(next_rcvr_mode != RECEIVER_MODE_DVD))
{
found = 1;
}
else
{
next_rcvr_mode++;
}
}
switch_modes_now = 1;
ircmd_mode_stop();
#if defined(SUPPORT_RECEIVER_MODE_MEMORY)
save_rcvr_mode(next_rcvr_mode);
#endif
}
#ifdef SUPPORT_VIDEO_WITH_SPDIF
void ircmd_rcvr_analog_digital(void)
{
if ((current_rcvr_mode != RECEIVER_MODE_AV1) ||
(current_rcvr_mode != RECEIVER_MODE_AV2))
{
invalid_key();
}
else {
// Switch between analog and digital inputs
}
}
#endif
/*the amplifier function moved to amp_gui.c xyy 2004-8-3*/
#ifdef DOLBY_AMP_VOLUME_CTRL
void ircmd_set_treble()
{
#ifdef SUPPORT_APOGEE_AMP
// ddx_OSDTrebleAdjust();
#endif
}
void ircmd_set_bass()
{
#ifdef SUPPORT_APOGEE_AMP
// ddx_OSDBassAdjust();
#endif
}
#endif
#ifdef SUPPORT_EX_BASS_FUNC//chenzhao20060117
void ircmd_ex_bass_func(void)
{
amp_toggle_ExBass();
}
#endif
#ifdef NO_INTERNAL_VOLUME_CTRL
void ircmd_volume_up(void)
{
/*Here deleted by xyy 2004-8-5*/
subvol_vol_up();
/*tell vfd to show volume*/
//subvol_time_out = 10; //move to subvol_vol_up()
}
void ircmd_volume_down(void)
{
/*Here deleted by xyy 2004-8-5*/
subvol_vol_down();
/*tell vfd to show volume*/
//subvol_time_out = 10;//move to subvol_vol_down()
}
#endif //NO_INTERNAL_VOLUME_CTRL
#ifdef USE_PROLOGIC_II_KEY_FOR_SURROUND /*huziqin*/
#ifdef USE_PROLOGIC_II_KEY //clead 2003-8-7
extern BYTE vfd_show_ch_msg;
extern BYTE vfd_backup_on;
extern void exe_setup_function(UINT8 tt_id, UINT8 sub_id, UINT8 exe);
extern void set_prologic_init_val(BYTE prologic_mode);
#define FIRST_PROLOGIC_MODE 0
#ifdef USE_PL2_3DSURROUND_KEY
#define FIRST_3DSOUND_MODE 3
#define MAX_3DPAGE_ITEM 4
#define MAX_3DITEM_SEL 11
extern UINT8 sound_sel[MAX_3DPAGE_ITEM];
extern const UINT8 sound_item[MAX_3DPAGE_ITEM][MAX_3DITEM_SEL];
#define surround_3d_val sound_sel[0]
#define surround_3d_item sound_item[0]
#define OFF_3DSOUND_MODE 2
#endif//#ifdef USE_PL2_3DSURROUND_KEY
//extern BYTE bHpPlug;
void I2c_write_surrond_mode()
{
WriteToI2c(0xa0,SURROUND_MODE_ADDR,&surround_mode,1);
#ifdef USE_PL2_3DSURROUND_KEY
if(surround_mode==SURROUND_MODE_3D)
WriteToI2c(0xa0,PROLOGIC_MODE_ADDR,&surround_3d_val,1);
else
WriteToI2c(0xa0,PROLOGIC_MODE_ADDR,&prologic_val,1);
#else//#ifdef USE_PL2_3DSURROUND_KEY
WriteToI2c(0xa0,PROLOGIC_MODE_ADDR,&prologic_val,1);
#endif//#ifdef USE_PL2_3DSURROUND_KEY
}
void I2c_read_surround_mode()
{
ReadFromI2c(0xa0,SURROUND_MODE_ADDR,&surround_mode,1);
#ifdef USE_PL2_3DSURROUND_KEY
if(surround_mode==SURROUND_MODE_3D)
{
ReadFromI2c(0xa0,PROLOGIC_MODE_ADDR,&surround_3d_val,1);
prologic_val=PROLOGIC_MODE_OFF;
}
else
ReadFromI2c(0xa0,PROLOGIC_MODE_ADDR,&prologic_val,1);
#else//#ifdef USE_PL2_3DSURROUND_KEY
ReadFromI2c(0xa0,PROLOGIC_MODE_ADDR,&prologic_val,1);
#endif//#ifdef USE_PL2_3DSURROUND_KEY
}
inline BYTE Is_Multi_Channel_Source(void)
{
return
(IS_AUDIF_CODING_MODE_DTS || IS_AUDIF_CODING_MODE_DTSCD || IS_AUDIF_CODING_MODE_SPDIFINDTS)
||((cd_type_loaded==CDDVD)&&(pDSV->dNs_Audio_ch>1))
||((cd_type_loaded==CDROM)&&IS_AUDIF_CODING_MODE_AC3)
#if (defined(SUPPORT_SPDIF_IN)||defined(SUPPORT_COAXIAL_IN))//hongfeng add 2005-12-30
||(IS_AUDIF_CODING_MODE_SPDIFINAC3&&spdif_in_channel)
#endif
;
}
inline BYTE Is_Speaker_All_On(void)
{
return (speaker_center!=SPEAKER_OFF)&&(speaker_surround!=SPEAKER_OFF);
}
#ifdef SUPPORT_VFD_SHOW_SURROUND_MODE
void set_vfd_message_state(BYTE state,BYTE time);
#endif
void surround_switch()
{
//moved to ircmd_prologic().chenzhao20060227
switch(surround_mode)
{
case SURROUND_MODE_5CH:
if(Is_Multi_Channel_Source())
{
#ifdef USE_PL2_KEY_SWITCH_SPEAKER
surround_mode=SURROUND_MODE_2CH;
prologic_val = PROLOGIC_MODE_OFF;
#endif//#ifdef USE_PL2_KEY_SWITCH_SPEAKER
printf("surround_switch Is_Multi_Channel_Source\n");
}
else
{
prologic_val++;
if(prologic_val>PROLOGIC_MODE_OFF)
prologic_val = FIRST_PROLOGIC_MODE;
#ifdef DETECT_SPEAKER_SIZE_TO_CHECK_PLII
//when center / surround speaker off, no prologic 2 mode , jump 3D effect.
if(!Is_Speaker_All_On())
prologic_val = PROLOGIC_MODE_OFF;
#endif
#ifdef USE_PL2_3DSURROUND_KEY
if (prologic_val == PROLOGIC_MODE_OFF)
{
surround_mode = SURROUND_MODE_3D;
surround_3d_val=FIRST_3DSOUND_MODE;
}
#else//#ifdef USE_PL2_3DSURROUND_KEY
if (prologic_val == PROLOGIC_MODE_OFF)
surround_mode = SURROUND_MODE_2CH;
#endif//#ifdef USE_PL2_3DSURROUND_KEY
printf("surround_switch SURROUND_MODE_5CH\n");
}
break;
#ifdef USE_PL2_3DSURROUND_KEY
case SURROUND_MODE_3D:
surround_3d_val++;
if((surround_3d_item[surround_3d_val]==0)||(surround_3d_val>=MAX_3DITEM_SEL))
{
surround_mode = SURROUND_MODE_2CH;
surround_3d_val=OFF_3DSOUND_MODE;
printf("surround_switch SURROUND_MODE_3D\n");
}
break;
#endif//#ifdef USE_PL2_3DSURROUND_KEY
case SURROUND_MODE_2CH:
default:
#ifdef USE_PL2_KEY_SWITCH_SPEAKER
surround_mode=SURROUND_MODE_5CH;
prologic_val = FIRST_PROLOGIC_MODE;
#else
if(!Is_Multi_Channel_Source())
{
#ifdef DETECT_SPEAKER_SIZE_TO_CHECK_PLII
if(!Is_Speaker_All_On())
{
#ifdef USE_PL2_3DSURROUND_KEY
surround_mode = SURROUND_MODE_3D;
surround_3d_val=FIRST_3DSOUND_MODE;
#else
surround_mode=SURROUND_MODE_2CH;
prologic_val = PROLOGIC_MODE_OFF;
#endif//#ifdef USE_PL2_3DSURROUND_KEY
}
else
#endif
{
surround_mode=SURROUND_MODE_5CH;
prologic_val = FIRST_PROLOGIC_MODE;
}
}
#endif
break;
}
I2c_write_surrond_mode();
//moved to ircmd_prologic()//chenzhao20060225
}
void show_prologic(void)
{
//UINT8 id=0;
switch(prologic_val)
{
case PROLOGIC_MODE_MOVIE:
//vfd_set_str(0,"MOVIE ");
#ifdef USE_PL2_3DSURROUND_KEY
psprintf(RegionValStr[REGION1],"PROLOGIC II MOVIE");
#else
psprintf(RegionValStr[REGION1],"MOVIE");
#endif
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
//set_prologic_val(prologic_val);
break;
case PROLOGIC_MODE_MUSIC:
//vfd_set_str(0,"MUSIC ");
#ifdef USE_PL2_3DSURROUND_KEY
psprintf(RegionValStr[REGION1],"PROLOGIC II MUSIC");
#else
psprintf(RegionValStr[REGION1],"MUSIC");
#endif
PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
//set_prologic_val(prologic_val);
break;
case PROLOGIC_MODE_OFF:
//vfd_set_str(0,"STEREO ");
#if 0//def USE_PL2_3DSURROUND_KEY
psprintf(RegionValStr[REGION1],"SURROUND OFF");
#else
psprintf(RegionValStr[REGION1],"STEREO");
#endif
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;
}
}
#ifdef USE_PL2_3DSURROUND_KEY
void show_3dsound(void)
{
PrintOsdMsg(surround_3d_item[surround_3d_val],REGION1,1,0);
}
#endif//#ifdef USE_PL2_3DSURROUND_KEY
void surround_exe(BYTE show_mode)//2:init dsp val,1 show message in OSD & VFD;0 no show message
{
//UINT8 id=0;
#ifdef SUPPORT_HEADPHONE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -