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

📄 system_operation.c

📁 一款车载DVD的车机源程序(正在生成中的哦)
💻 C
📖 第 1 页 / 共 5 页
字号:
		if(Radio_channel_high_light_cnt == 4 && !ValBit(Radio_tuner_flag,Search_full_mode))
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();
	asm	nop;
	Find_out_item_Pos_Color_Dis_pointer(ITEM_RADIO_M6);
	if(Select_item == ITEM_RADIO_M6)
		cColor = Select_osd_item_color;
	else
		{
		if(Radio_channel_high_light_cnt == 5 && !ValBit(Radio_tuner_flag,Search_full_mode))
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();

}
/*****************************************************
Function:In AV mode how to display
******************************************************/
static void AV_menu_display_process(void)
{
	if(!ValBit(System_flag1,OSD_on_flag))
		return;
	//Check display the mute item
	Find_out_item_Pos_Color_Dis_pointer(ITEM_AV_MUTE);
	if(Select_item == ITEM_AV_MUTE)
		cColor = Select_osd_item_color;
	else
		{
		if(ValBit(System_flag1,Mute_flag))
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();
	//Check display the time item
	Find_out_item_Pos_Color_Dis_pointer(ITEM_AV_TIME);
	if(ValBit(System_flag1,Time_on_flag))
		(*UICCFuncPtr) ();
	else
		{
		OSDCleanLine(Head_colume,Head_row,0,5);
		OSDCleanLine(Head_colume,Head_row+1,0,5);
		}

	Find_out_item_Pos_Color_Dis_pointer(ITEM_AV_LOUDNESS);
	if(Select_item == ITEM_AV_LOUDNESS)
		cColor = Select_osd_item_color;
	else
		{
		if(ValBit(System_flag1,Loudnee_flag))
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();
}
/*****************************************************
Function:In CDC mode how to display
******************************************************/
static void CDC_menu_display_process(void)
{
	if(!ValBit(System_flag1,OSD_on_flag))
		return;
	
	Find_out_item_Pos_Color_Dis_pointer(ITEM_CDC_DISC_TRACK_TIME);
	(*UICCFuncPtr) ();

	//Check display the time item
	Find_out_item_Pos_Color_Dis_pointer(ITEM_CDC_TIME);
	if(ValBit(System_flag1,Time_on_flag))
		(*UICCFuncPtr) ();
	else
		{
		OSDCleanLine(Head_colume,Head_row,0,30);
		OSDCleanLine(Head_colume,Head_row+1,0,30);
		}
}
/*****************************************************
Function:In Setting mode how to display
******************************************************/
static void Setting_menu_display_process(void)
{
	Find_out_item_Pos_Color_Dis_pointer(ITEM_SETTING_BELL);
	if(Select_item == ITEM_SETTING_BELL)
		cColor = Select_osd_item_color;
	else
		{
		if(ValBit(System_flag2,Bell_on_flag))	
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	
	(*UICCFuncPtr) ();
	
}
/*****************************************************
Function:In Video setting  mode how to display
******************************************************/
static void Video_setting_menu_display_process(void)
{
	Display_video_volume_data_state();
}
/*****************************************************
Function:In Main menu mode how to display
******************************************************/
static void Main_menu_display_process(void)
{
	Find_out_item_Pos_Color_Dis_pointer(ITEM_MAIN_TV);
	if(Select_item == ITEM_MAIN_TV)
		cColor = Select_osd_item_color;
	else
		{
		if(Old_system_mode == TV_mode)
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();

	Find_out_item_Pos_Color_Dis_pointer(ITEM_MAIN_RADIO);
	if(Select_item == ITEM_MAIN_RADIO)
		cColor = Select_osd_item_color;
	else
		{
		if(Old_system_mode == Radio_mode)
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();

	Find_out_item_Pos_Color_Dis_pointer(ITEM_MAIN_AV);
	if(Select_item == ITEM_MAIN_AV)
		cColor = Select_osd_item_color;
	else
		{
		if(Old_system_mode == AV_mode &&  !ValBit(System_flag3,AV_channel_gps_flag))
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();

	Find_out_item_Pos_Color_Dis_pointer(ITEM_MAIN_CDC);
	if(Select_item == ITEM_MAIN_CDC)
		cColor = Select_osd_item_color;
	else
		{
		if(Old_system_mode == CDC_mode)
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();

	Find_out_item_Pos_Color_Dis_pointer(ITEM_MAIN_SETTING);
	if(Select_item == ITEM_MAIN_SETTING)
		cColor = Select_osd_item_color;
	else
		{
		if(Old_system_mode == SETTING_mode)
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();

	Find_out_item_Pos_Color_Dis_pointer(ITEM_MAIN_GPS);
	if(Select_item == ITEM_MAIN_GPS)
		cColor = Select_osd_item_color;
	else
		{
		if(Old_system_mode == AV_mode && ValBit(System_flag3,AV_channel_gps_flag))
			cColor = High_light_color;
		else
			cColor = Default_color;
		}
	(*UICCFuncPtr) ();
}
/*****************************************************
Function:In DVD mode how to display
******************************************************/
static void DVD_menu_display_process(void)
{
	//Check display the time item
	Find_out_item_Pos_Color_Dis_pointer(ITEM_DVD_TIME);
	if(ValBit(System_flag1,Time_on_flag))
		(*UICCFuncPtr) ();
	else
		{
		OSDCleanLine(Head_colume,Head_row,0,5);
		OSDCleanLine(Head_colume,Head_row+1,0,5);
		}
}
/*****************************************************
Function:In TV mode how to display
******************************************************/
static void TV_menu_display_process(void)
{
	if(!ValBit(System_flag1,OSD_on_flag))
		return;
	
	Find_out_item_Pos_Color_Dis_pointer(ITEM_TV_SEARCH);
	if(Select_item == ITEM_TV_SEARCH)
		cColor = Select_osd_item_color;
	else
		{
		if(ValBit(TV_tuner_flag,TVsearchOK))
			cColor = Default_color;
		else
			cColor = High_light_color;
		(*UICCFuncPtr) ();
		}
	
	Find_out_item_Pos_Color_Dis_pointer(ITEM_TV_FREQUENCE);
	(*UICCFuncPtr) ();

	Find_out_item_Pos_Color_Dis_pointer(ITEM_TV_CHANNEL_NUMBER);
	(*UICCFuncPtr) ();

	Find_out_item_Pos_Color_Dis_pointer(ITEM_TV_FORMAT);
	if(Select_item == ITEM_TV_FORMAT)
		cColor = Select_osd_item_color;
	else
		cColor = Default_color;
	(*UICCFuncPtr) ();

	//Check display the time item
	Find_out_item_Pos_Color_Dis_pointer(ITEM_TV_TIME);
	if(ValBit(System_flag1,Time_on_flag))
		(*UICCFuncPtr) ();
	else
		{
		OSDCleanLine(Head_colume,Head_row,0,5);
		OSDCleanLine(Head_colume,Head_row+1,0,5);
		}
}
/************************************************************
Function:Process the touch pancl command
************************************************************/
void Process_touch_system(void)
{
	unsigned char i;
	if(ValBit(System_flag,Touch_key_flag))
		{
		ClrBit(System_flag,Touch_key_flag);
		Set_bell_sound_time(10);
		if(System_mode == Radio_mode && !ValBit(Radio_tuner_flag,AutoSearchOK_flag))
			{
			SetBit(Radio_tuner_flag,AutoSearchOK_flag);
			return;
			}
		if(System_mode == TV_mode && !ValBit(TV_tuner_flag,TVsearchOK))
			{
			SetBit(TV_tuner_flag,TVsearchOK);
			return;
			}
		Keep_key_code = Code_number;
		Old_do_item = Do_item;	//Save the old do item
		Do_item = ((MENU_LIST *)Total_menu_list[System_mode])[highlight_item].item;	
		UICCFuncPtr=((MENU_LIST *)Total_menu_list[System_mode])[highlight_item].EnterOperate;
		(*UICCFuncPtr) ();
		}
}
/********************************************************
Function:Change system mode
*********************************************************/
void Change_system_mode(void)
{
	Select_item=DEFAULT_MENU_ITEM;
	Download_OSD_Library_Display_Menu();
	switch(System_mode)
		{
		case DVD_mode:
			if(Old_system_mode != DVD_mode)	//From other mode switch to DVD mode
				System_mute_on();
			Open_DVD_5v_power;
			Close_Radio_tuner_power;
			Close_TV_tuner_power;
			WAIT_100ms();
			WAIT_100ms();
			Select_video_input_source(DVD_video_input);
			Select_audio_input_source(AV_switch_input_source);
			break;
		case TV_mode:
			if(Old_system_mode != TV_mode)	//From other mode switch to TV mode
				System_mute_on();
			Open_TV_tuner_power;
			Close_DVD_5v_power;
			Close_Radio_tuner_power;
			Select_video_input_source(TV_tuner_video_input);
			Select_audio_input_source(AV_switch_input_source);
			WAIT_100ms();
			TVTUNER_init();
			SetBit(TV_tuner_flag,TVsearchOK);
			break;
		case Radio_mode:
			if(Old_system_mode != Radio_mode)	//From other mode switch to Radio mode
				System_mute_on();
			Open_Radio_tuner_power;
			Close_TV_tuner_power;
			Close_DVD_5v_power;
			Select_audio_input_source(Radio_tuner_source);
			WAIT_100ms();
			Init_lc72131();
			break;
		case AV_mode:
			if(Old_system_mode != AV_mode)	//From other mode switch to AV mode
				System_mute_on();
			Close_DVD_5v_power;
			Close_Radio_tuner_power;
			Close_TV_tuner_power;
			if(!ValBit(System_flag3,AV_channel_gps_flag))
				{
				Selete_AV1_AV2_CAM_video_input_source(AV1_video_input);
				Select_video_input_source(Three_sele_one_video_input);
				Select_audio_input_source(AV_switch_input_source);
			}
			else
				{
				Selete_AV1_AV2_CAM_video_input_source(AV2_video_input);
				Select_video_input_source(Three_sele_one_video_input);
				Select_audio_input_source(Outside_AV2_input_source);
				}
			break;
		case CDC_mode:
			if(Old_system_mode != CDC_mode)	//From other mode switch to CDC mode
				System_mute_on();
			Close_DVD_5v_power;
			Close_Radio_tuner_power;
			Close_TV_tuner_power;
			Send_command_to_CDC(C_PLAY);
			Select_video_input_source(CDC_video_input);
			Select_audio_input_source(AV_switch_input_source);
			break;
		case BACK_CAR_mode:
			if(Old_system_mode == DVD_mode)	//If the mode is from DVD mode to BACK CAR mode then send the pause command to the dvd player
				{
				DVD_command = DVD_command_PAUSE;
				SetBit(System_flag,Send_command_to_dvd_flag);
				ClrBit(System_flag4,DVD_play_pause_flag);
				}
			if(Old_system_mode == CDC_mode)	//If the mode is from CDC mode to BACK CAR mode then send the pause command to the CDC
				{
				ClrBit(System_flag3,CDC_play_pause_flag);
				Send_command_to_CDC(C_PAUSE);
				}
			Close_Radio_tuner_power;
			Close_TV_tuner_power;
			Selete_AV1_AV2_CAM_video_input_source(CAM_video_input);
			asm		nop;
			Select_video_input_source(Three_sele_one_video_input);
			break;
		}
	T100_select_video_source();
	Contrast_volume_control();
	Brightness_volume_control();
	Chroma_volume_control();
	Detect_NTSCPAL();
}
/***********************************************************
Function:Open the panel
***********************************************************/
void Open_panel(void)
{
	SetBit(PD_DR,MOTOR_OPEN);
	ClrBit(PD_DR,MOTOR_CLOSE);
}
/**********************************************************
Function:Close the panel
**********************************************************/
void Close_panel(void)
{
	SetBit(PD_DR,MOTOR_CLOSE);
	ClrBit(PD_DR,MOTOR_OPEN);
}
/*******************************************************
Function:Detect the panel finish open or close active
*******************************************************/
void Detect_panel_finish_open_close_active(void)
{
	Detect_panel_state();

	if(ValBit(System_flag1,Panel_activeing_flag))	//Only the panel activeing then detect
		{
		if(Protect_motor_delay == 0)
			{
			ClrBit(System_flag1,Panel_activeing_flag);
			Close_motor_power;
			}
		if(ValBit(System_flag1,Panel_close_flag))	//Now the panel is close
			{
			ClrBit(System_flag1,Panel_activeing_flag);
			ClrBit(System_flag2,Panel_in_mind_air_flag);
			Close_motor_power;
			}
		if(ValBit(System_flag2,Panel_open_flag))	//Now the panel is open
			{
			ClrBit(System_flag1,Panel_activeing_flag);
			ClrBit(System_flag2,Panel_in_mind_air_flag);
			Close_motor_power;
			//Close_panel_sometime_process();
			WAIT_100ms();
			Close_panel();
			SetBit(System_flag2,stop_open_close_panel_flag);
			Open_close_panel_delay = 0;	//Active 20ms
			WAIT_100ms();
			Remote_open_key_process();
			}
		}
}
/*****************************************************
Function:System into stby state
*****************************************************/
void System_off(void)
{
	System_mute_on();
	Close_TFT_high_power;
	while(Out_disc_delay != 0)
		{
		if(Disc_in_window)
			Out_disc_delay = 0;
		}
	if(Disc_in_window)	//Disc in the window
		{
		if(System_mode != DVD_mode)	//If in other mode then must open the dvd player's power
			{
			Open_DVD_5v_power;
			WAIT_100ms();
			}
		DVD_command = DVD_command_OPEN_CLOSE_DISC;	//Send the close disc command to the dvd player
		Set

⌨️ 快捷键说明

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