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

📄 ircmd_receiver.c

📁 mp3 player program please read carefully.
💻 C
📖 第 1 页 / 共 2 页
字号:
#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 + -