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

📄 ircmd_receiver.c

📁 凌阳8202T的红外接收代码及LED屏的驱动代码
💻 C
📖 第 1 页 / 共 2 页
字号:
    #ifdef SUPPORT_HEADPHONE
    if (bHpPlug) 
    {
        #if !defined(HEADPHONE_USE_LMRM)//chenzhao20060223
        //prologic_val = PROLOGIC_MODE_OFF;
        if(show_mode==2)
            set_prologic_init_val(PROLOGIC_MODE_OFF);
        else
        {
            set_prologic_val(PROLOGIC_MODE_OFF);
            exe_setup_function(STR_OS_DOWNMIX_SETUP,STR_OS_STEREO,1);
            AUDIF_Set_OutputMode(OUT_51DownmixL0R0,0);
        }
        #endif
        return;
    }
    #endif
    
    #define STATE_NOT_CHANGE 0
    #define RUN_PROLOGIC_ON 1
    #define RUN_PROLOGIC_OFF 2
    #define RUN_3DSOUND_ON 1
    #define RUN_3DSOUND_OFF 2
    #define RUN_SPEAKER_ALL_ON 1
    #define RUN_SPEAKER_C_S_OFF 2
    #define RUN_SWITCH_MODE_MUTE 1
    #ifdef AVOID_SURROUND_KEY_POP_NOISE//chenzhao20060225
    #define run_command_delay() if(show_mode==1)delay_srv_10ms(5);
    #else
    #define run_command_delay() {}
    #endif
    #ifdef USE_PL2_KEY_SWITCH_SPEAKER
    BYTE run_speaker=STATE_NOT_CHANGE;
    #endif//#ifdef USE_PL2_KEY_SWITCH_SPEAKER
    BYTE run_prologic=STATE_NOT_CHANGE;
    BYTE run_3dsound=STATE_NOT_CHANGE;
    BYTE run_switch_mute=(show_mode==1)?RUN_SWITCH_MODE_MUTE:STATE_NOT_CHANGE;
    if(Is_Multi_Channel_Source())
    {
        #ifdef USE_PL2_KEY_SWITCH_SPEAKER
        if(SURROUND_MODE_2CH==surround_mode)
            run_speaker=RUN_SPEAKER_C_S_OFF;
        else
            run_speaker=RUN_SPEAKER_ALL_ON;
        #else
        run_switch_mute=STATE_NOT_CHANGE;
        #endif//#ifdef USE_PL2_KEY_SWITCH_SPEAKER
        run_prologic=RUN_PROLOGIC_OFF;
        if(show_mode==1)
        {
            #ifdef USE_PL2_KEY_SWITCH_SPEAKER
            	//printf("surround_mode %d \n",surround_mode);
            	if(SURROUND_MODE_2CH==surround_mode)
                {
					 psprintf(RegionValStr[REGION1],"STEREO");
            	}
            	else
                {
                    if(IS_AUDIF_CODING_MODE_DTS || IS_AUDIF_CODING_MODE_DTSCD|| IS_AUDIF_CODING_MODE_SPDIFINDTS)
		                psprintf(RegionValStr[REGION1],"DTS");  
                    else if(IS_AUDIF_CODING_MODE_AC3|| IS_AUDIF_CODING_MODE_SPDIFINAC3)
                        psprintf(RegionValStr[REGION1],"DOBLY DIGITAL");
                    else 
                        psprintf(RegionValStr[REGION1],"5.1");
	        	}
	            PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);      
            #else
            invalid_key();
            #endif//#ifdef USE_PL2_KEY_SWITCH_SPEAKER
            run_3dsound= RUN_3DSOUND_OFF;
        }
        printf("surround_exe Is_Multi_Channel_Source\n");
    }
    else
        switch(surround_mode)
        {
            case SURROUND_MODE_5CH:
                #ifdef USE_PL2_KEY_SWITCH_SPEAKER
                    run_speaker=RUN_SPEAKER_ALL_ON;
                #endif//#ifdef USE_PL2_KEY_SWITCH_SPEAKER
                
                #ifdef DETECT_SPEAKER_SIZE_TO_CHECK_PLII            
                //when center / surround speaker off, no prologic 2 mode , jump 3D effect.
                if(!Is_Speaker_All_On()&&(show_mode!=1))
                    {
                    run_prologic=RUN_PROLOGIC_OFF;
                    printf("surround_exe not Is_Speaker_All_On\n");
                    }
                else
                #endif
                run_prologic=RUN_PROLOGIC_ON;
                
                #ifndef AVOID_SURROUND_KEY_POP_NOISE//chenzhao20060225
                run_3dsound= RUN_3DSOUND_OFF;
                #endif
                
                if(show_mode==1)
                    show_prologic();
                //moved to below.chenzhao20060225
                printf("surround_exe SURROUND_MODE_5CH\n");
                break;
                
            #ifdef USE_PL2_3DSURROUND_KEY
            case SURROUND_MODE_3D:
                run_prologic=RUN_PROLOGIC_OFF;
                run_3dsound= RUN_3DSOUND_ON;
                if(show_mode==1)
                    show_3dsound();
                printf("surround_exe SURROUND_MODE_3D\n");
                break;
            #endif//#ifdef USE_PL2_3DSURROUND_KEY
            
            case SURROUND_MODE_2CH:
            default:
                run_prologic=RUN_PROLOGIC_OFF;
                run_3dsound= RUN_3DSOUND_OFF;
                if(show_mode==1)
                {
                    psprintf(RegionValStr[REGION1],"STEREO");
                    PrintOsdMsg(STR_OS_SPACE,REGION1,1,1);
                }
                printf("surround_exe SURROUND_MODE_2CH\n");
                break;
        }
        
    if(action_click || (show_mode!=1))//chenzhao20060303
    {
        if(run_switch_mute==RUN_SWITCH_MODE_MUTE)
        {
            #if defined(AVOID_SURROUND_KEY_POP_NOISE)//chenzhao20060225
            AUDIF_RampDown_DSP(1);
            AUDIF_RampWait_DSP();
            #endif
            AUDIF_Set_Volume(0);
        }
        #ifdef USE_PL2_KEY_SWITCH_SPEAKER
        if(run_speaker!=STATE_NOT_CHANGE)
        {
            if(run_speaker==RUN_SPEAKER_C_S_OFF)
            {//downmix to 2.1
                speaker_center=SPEAKER_OFF;
                speaker_surround=SPEAKER_OFF;
                printf("surround_exe RUN_SPEAKER_C_S_OFF\n");
            }
            else if(run_speaker==RUN_SPEAKER_ALL_ON)
            {//set speaker to 5.1
                speaker_center=SPEAKER_SMALL;
                speaker_surround=SPEAKER_SMALL;
                printf("surround_exe RUN_SPEAKER_ALL_ON\n");
            }
            if(show_mode<2)
            {
                //run_save_sel_cmd(setup_VA[SETUP_VA_CSPK], SETUP_VA_CSPK);
                //run_save_sel_cmd(setup_VA[SETUP_VA_SSPK], SETUP_VA_SSPK);
                AUDIF_Set_BassConfig(0, 0);//parameter unused
            }
        }
        #endif//#ifdef USE_PL2_KEY_SWITCH_SPEAKER
        
        #if defined(AVOID_SURROUND_KEY_POP_NOISE)//chenzhao20060225
        if(run_prologic==RUN_PROLOGIC_OFF && (pl2_init_val!=PROLOGICII_OFF_DSP_INIT))
        #else
        if(run_prologic==RUN_PROLOGIC_OFF)
        #endif
        {
            if(show_mode==2)
                set_prologic_init_val(PROLOGIC_MODE_OFF);
            else
                set_prologic_val(PROLOGIC_MODE_OFF);
            run_command_delay();
            printf("surround_exe RUN_PROLOGIC_OFF\n");
        }
        else if(run_prologic==RUN_PROLOGIC_ON)
        {
            if(show_mode==0)//(show_mode<2)chenzhao20060225 avoid pop noise
            {
                exe_setup_function(STR_OS_DOWNMIX_SETUP,STR_OS_OFF,1);
                AUDIF_Set_OutputMode(OUT_51Channel,0);
            }
            if(show_mode==2)
                set_prologic_init_val(prologic_val);
            else
                set_prologic_val(prologic_val);
            run_command_delay();
            printf("surround_exe RUN_PROLOGIC_ON\n");
        }
        
        #ifdef USE_PL2_3DSURROUND_KEY
        if(run_3dsound==RUN_3DSOUND_ON)
        {
            if(show_mode!=2)
            {
                AUDIF_Set_Surround(surround_3d_val-2);
                run_command_delay();
            }
            printf("surround_exe RUN_3DSOUND_ON\n");
        }
        else if(run_3dsound == RUN_3DSOUND_OFF)
        {
            AUDIF_Set_Surround(OFF_3DSOUND_MODE-2);
            run_command_delay();
            printf("surround_exe RUN_3DSOUND_OFF\n");
        }
        #endif//#ifdef USE_PL2_3DSURROUND_KEY

        if(run_switch_mute==RUN_SWITCH_MODE_MUTE)
        {
            #if defined(AVOID_SURROUND_KEY_POP_NOISE)//chenzhao20060225
            AUDIF_RampUp_DSP(1);
            #endif
            AUDIF_Demute();
        }
    }
}

void surround_init(void)
{
    I2c_read_surround_mode();
    //surround_exe_nomsg();
    surround_exe(0);
}
void surround_reset(void)
{
#if defined(DEFAULT_PLII_PROLOGIC_MOVIE)	
	surround_mode = SURROUND_MODE_5CH; 
    prologic_val  = PROLOGIC_MODE_MOVIE;
#else
    #ifdef USE_PL2_KEY_SWITCH_SPEAKER//chenzhao20060211
    surround_mode = SURROUND_MODE_5CH; // default set to prologic off
    #else
    	surround_mode = SURROUND_MODE_2CH;
    #endif//#ifdef USE_PL2_KEY_SWITCH_SPEAKER
    
    prologic_val = PROLOGIC_MODE_OFF;
#endif    
    #ifdef USE_PL2_3DSURROUND_KEY
    	surround_3d_val=OFF_3DSOUND_MODE;
    #endif//#ifdef USE_PL2_3DSURROUND_KEY
    
    I2c_write_surrond_mode();
}

void ircmd_prologic(void)
{
    #if defined(SUPPORT_HEADPHONE)//chenzhao20060227
    if (bHpPlug) 
    {
        invalid_key();
        return;
    }
    #endif
    if(action_click)//chenzhao20060220
    surround_switch();
    
    //vfd_set_surround_mode();
    //vfd_backup();
    //erase_vfd_mem();
    #ifdef SUPPORT_VFD_SHOW_SURROUND_MODE//chenzhao20060225
    #ifndef USE_PL2_KEY_SWITCH_SPEAKER//chenzhao20060224
    if(!Is_Multi_Channel_Source())
    #endif
        set_vfd_message_state(VFD_MESSAGE_SURROUND,4);
    #endif
    surround_exe(1);
}
#endif 
#endif //USE_PROLOGIC_II_KEY_FOR_SURROUND

#ifdef PANEL_VOLUME_ENCODER
inline BYTE get_volumeEncode_1(void)
{
	#ifdef USE_IO_CNT_VOL_ENCODER
		if(GPIO_I_GET(11)) //pin69
	#else	
		if(rom_bus_get_io(ROM_BUS_IN_ENCODE1))
	#endif	
			return 1;
		return 0;	
}
inline BYTE get_volumeEncode_2(void)
{
	#ifdef USE_IO_CNT_VOL_ENCODER
		if(GPIO_I_GET(12)) //pin71
	#else	
		if(rom_bus_get_io(ROM_BUS_IN_ENCODE2))
	#endif	
			return 1;
		return 0;	
}
#endif

#if defined(PANEL_VOLUME_ENCODER)||(defined(TMM_VOL_PANEL)||defined(XM_PANEL_VFD16315))	//chenzhao20060207
	#ifdef OSD_SCREEN_SAVER		//fcr 2005-11-22 18:46 
	extern UINT8  safe_on;
	#endif
    #ifdef PANEL_VOLUME_ENCODER//chenzhao20060117
    #include "rom_bus_io.h"
    #endif
inline void VolumeEncoder(void)
{
    BYTE status;
    static BYTE prev = 3;
    BYTE updown = 0;
    static BYTE up_cnt = 0;
    static BYTE down_cnt = 0;
    #if (defined(TMM_VOL_PANEL)||defined(XM_PANEL_VFD16315))
	status = (GPIO_I_GET(10)<<0)|(GPIO_I_GET(11)<<1);
    #elif defined(PANEL_VOLUME_ENCODER)
	status = ((get_volumeEncode_2()<<1)|(get_volumeEncode_1())) &0x03;
#endif
    #define gpio_vol_speed 1
    if(prev != status)
    {
        switch(prev)
{
        case 3:  //for vfd 6311 hongfeng 2005-03-05
            if (status == 1)
                updown = 2;    
            else if(status == 2)
                updown = 1;    
            break;

        case 1:  //for vfd 6311 hongfeng 2005-03-05
            if(status == 0)
                updown = 2;
            else if (status == 3)
                updown = 1;    
            break;

        case 0:  //for vfd 6311 hongfeng 2005-03-05
            if(status == 2)
                updown = 2;
            else if (status == 1)
                updown = 1;    
            break;
        
        case 2:  //for vfd 6311 hongfeng 2005-03-05
            if(status == 3)
                updown = 2;
            else if (status == 0)
                updown = 1;    
            break;   

       default:
            updown = 0;
            break;     
        }

        if(updown == 2)
        {
            down_cnt++;
            up_cnt = 0;     
            if(down_cnt >gpio_vol_speed)
            {
                down_cnt = 0;       
			#ifdef TESTSPK_IN_SETUP
          		#ifndef ONLY_TEST_TONE_KEY_EXIT//chenzhao2005-4-29
                if(testspk_state)
                   {
                   testspk_state=0;
	
                   return 1;
                   }
          		#endif
			#endif//TESTSPK_IN_SETUP
			#ifdef OSD_SCREEN_SAVER
				if(safe_on)
				{
					safe_srn_off();	//fcr 2005-11-15 13:26
					if ( (full_scrn&SETUP) || (full_scrn&CUSTM) ) 
			       	{
			       	#ifdef OP_PLAYMODE
			       		ExitSetupPage(1);	//disable for 5 minutes autoplay without screensaver.
			       	#else	
			            setup_save_exit();
			        #endif    
			       	}	
		return ;
				}
			#endif 
	
			if(t_disp)//by joke fixed dpl937 thomson bug# PD-A80
			{
				t_disp=t_disp%10;
				t_disp+=10;  
			}
			#ifdef ANEBLE_AUTO_EXIT_INFOBAR
				osd_infobar_exit_cnt = 0;
			#endif
		
			#if defined(XM_PANEL_VFD16315)||defined(PANEL_VOLUME_ENCODER)//chenzhao20060207
				ircmd_volume_down(); 
			#else                
                ircmd_volume_up();   
            #endif    	
            }
        }
	
        if(updown == 1)
        {
            up_cnt++;
            down_cnt = 0;    
            if(up_cnt >gpio_vol_speed)
            {
                up_cnt = 0;               
			#ifdef TESTSPK_IN_SETUP
          		#ifndef ONLY_TEST_TONE_KEY_EXIT//chenzhao2005-4-29
                if(testspk_state)
                   {
                   testspk_state=0;
	
                   return 1;
                   }
    #endif
			#endif//TESTSPK_IN_SETUP
			#ifdef OSD_SCREEN_SAVER
				if(safe_on)
				{
					safe_srn_off();	//fcr 2005-11-15 13:26
					if ( (full_scrn&SETUP) || (full_scrn&CUSTM) ) 
			       	{
			       	#ifdef OP_PLAYMODE
			       		ExitSetupPage(1);	// disable for 5 minutes autoplay without screensaver.
			       	#else	
			            setup_save_exit();
			        #endif    
			       	}	
		return ;
				}
			#endif 
		
			if(t_disp)//by joke fixed dpl937 thomson bug# PD-A80
	{
				t_disp=t_disp%10;
				t_disp+=10;  
	}
			#ifdef ANEBLE_AUTO_EXIT_INFOBAR
				osd_infobar_exit_cnt = 0;
			#endif
			
			#if defined(XM_PANEL_VFD16315)||defined(PANEL_VOLUME_ENCODER)//chenzhao20060207
				ircmd_volume_up(); 
			#else
		ircmd_volume_down(); 
            #endif    
	}  
}
        prev = status;  

    }
    //psprintf(RegionValStr[REGION1], "fcr--KNOB STATUS:%d ", status);
	//PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
}
#endif
#endif //SUPPORT_RECEIVER

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -