ircmd_receiver.c

来自「OSD显示,单片机实现,ICCAVR! 代码风格严谨,为高人所写.我仅为了上传换」· C语言 代码 · 共 580 行 · 第 1/2 页

C
580
字号
#ifdef SUPPORT_RECEIVER  //huziqin 2004-2-26

//#define DEBUG_VOLUME

 extern int current_rcvr_mode;
 extern int next_rcvr_mode;
 extern BYTE  subvol_time_out;
 #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)
    	{
    	// 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);
		//open_tray();
		stop_loader();	
	}
	else
	{
		system_state = SYSTEM_OPEN;
	}
 }

 void ircmd_rcvr_select_mode(int mode)
 {
 	UINT8 door;
 	door = atapi_p_mechanism_status();
 	if ((current_rcvr_mode == RECEIVER_MODE_DVD)&&(door == ATAPI_DOOR_OPEN))
 	{
 		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
 	int found = 0;
 	//printf("mode %d\n",next_rcvr_mode);
#ifdef NEWSTYLE_WINDOW
 	if(full_scrn==MESSAGE)//xyy 2004-3-4 10:43
 		exit_browse_func();
#endif
 	if(full_scrn==SOUND)
 		cancel_sound();

 	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
}

#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  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;

}

void  ircmd_volume_down(void)
{
/*Here deleted by xyy 2004-8-5*/
	subvol_vol_down();

	/*tell vfd to show volume*/
	subvol_time_out = 10;
	
}

#endif  //NO_INTERNAL_VOLUME_CTRL


#ifdef USE_PROLOGIC_II_KEY_FOR_SURROUND /*huziqin*/
#ifdef USE_PROLOGIC_II_KEY      //clead 2003-8-7
 //BYTE surround_mode;
 BYTE save_surround_mode;
 BYTE save_prologic_val;
extern BYTE vfd_show_ch_msg;
extern BYTE vfd_backup_on;
//extern BYTE bHpPlug;
void I2c_write_surrond_mode()
{
    WriteToI2c(0xa0,SURROUND_MODE_ADDR,&surround_mode,1);
    WriteToI2c(0xa0,PROLOGIC_MODE_ADDR,&prologic_val,1);
}
void I2c_read_surround_mode()
{
    ReadFromI2c(0xa0,SURROUND_MODE_ADDR,&surround_mode,1);
    ReadFromI2c(0xa0,PROLOGIC_MODE_ADDR,&prologic_val,1);
}
void surround_switch()
{
       if (surround_mode == 1 && bHpPlug) return;
       if (current_rcvr_mode == RECEIVER_MODE_DVD)
        {
            if(IS_AUDIF_CODING_MODE_DTS || IS_AUDIF_CODING_MODE_DTSCD)       /* dts */
           {
                if(surround_mode==SURROUND_MODE_5CH)
               {
                    surround_mode=SURROUND_MODE_2CH;
                    
               }
               else
               {
                    surround_mode=SURROUND_MODE_5CH;
                    
               }
                prologic_val = PROLOGIC_MODE_OFF;
           }
            else if(IS_AUDIF_CODING_MODE_AC3)  /* ac3 */
            {
                if ((pDSV->dNs_Audio_ch<=1)&&(cd_type_loaded==CDDVD))
                {
                    if(surround_mode==SURROUND_MODE_5CH)
                    {
                        prologic_val++;
                        if(prologic_val>PROLOGIC_MODE_OFF) 
                               prologic_val = PROLOGIC_MODE_EMU;

                        if (prologic_val == PROLOGIC_MODE_OFF)
                            surround_mode = SURROUND_MODE_2CH;
                           
                    }
                    else
                    {
                        surround_mode=SURROUND_MODE_5CH;
                        prologic_val = PROLOGIC_MODE_EMU;
                    }
                }
                else                /* 5.1 */
                {
                    if(surround_mode==SURROUND_MODE_5CH)
                    {
                        surround_mode=SURROUND_MODE_2CH;
                        prologic_val = PROLOGIC_MODE_OFF;
                    }
                    else 
                    {
                        surround_mode=SURROUND_MODE_5CH;
                        prologic_val = PROLOGIC_MODE_EMU;
                    }
                    
                }
            }
            else                    /* other audio type */
            {
                if(surround_mode==SURROUND_MODE_5CH)
                {
                        prologic_val++;
                        if(prologic_val>PROLOGIC_MODE_OFF) 
                               prologic_val = PROLOGIC_MODE_EMU;
                        if (prologic_val == PROLOGIC_MODE_OFF)
                            surround_mode = SURROUND_MODE_2CH;                           
                }
                else
                {
                    surround_mode=SURROUND_MODE_5CH;
                    prologic_val=PROLOGIC_MODE_EMU;                
                }
            }
        
    }
    else    
    {
                if(surround_mode==SURROUND_MODE_5CH)
                {
                    prologic_val++;
                    if(prologic_val>PROLOGIC_MODE_OFF) 
                           prologic_val = PROLOGIC_MODE_EMU;
                    if (prologic_val == PROLOGIC_MODE_OFF)
                        surround_mode = SURROUND_MODE_2CH;
                       
                }
                else
                {
                    surround_mode=SURROUND_MODE_5CH;
                    prologic_val = PROLOGIC_MODE_EMU;
                }
    }
}



void do_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);

⌨️ 快捷键说明

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