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

📄 keyfunc.c

📁 按键扫描 塔顶 DASDA FASF
💻 C
📖 第 1 页 / 共 3 页
字号:
	else	if(SysLcdFramePoint == 32)
	{
		//全部删除
		//DelPragItem(999);
		SysModeStatus=SYS_DEL_SET_TIMER;
	}
	else	if(SysLcdFramePoint == 33)
	{
		//浏览
		QueryFlag=0xAA;
		SysLcdFramePoint=0;
	}

	else	if(SysLcdFramePoint == 34)
	{
		//退出
		if(QueryFlag != 0)
		{
			QueryFlag=0x0;
			return;
		}
		SysModeStatus=	SYS_IDLE_STA;
		SysLcdFramePoint=2;
		JdqTime=3000;
		SortTimeListPrg();
		RefreshFlag=1;
		TimePrgTask();
		LcdDisplayDefScr();
	}
	switch(SysLcdFramePoint)
	{
		#if	1
		case	3:	//星期
		case	4:	
		case	5:	
		case	6:	
		case	7:	
		case	8:	
		case	9:	
			if((TimerPiontApp.Day & (0x01 << (SysLcdFramePoint-3))) != 0)
			{
				TimerPiontApp.Day &= ~(0x01 << (SysLcdFramePoint-3));
			}
			else
				TimerPiontApp.Day |=(0x01 << (SysLcdFramePoint-3));

			EnterDefMenuFlag=KeyEditFlag=0;
			KeyEditFlag=0;
			break;
		case	14:
			if(++TimerPiontApp.PlayMode > 5 )
			{
				TimerPiontApp.PlayMode = 0;
			}
			KeyEditFlag=0;
			break;
		#if	1
		case	20+4:	//电源
		case	21+4:	
		case	22+4:	
		case	23+4:	
		case	24+4:	
		case	25+4:	
			if((TimerPiontApp.Switch& (0x01 << (SysLcdFramePoint-24))) != 0)
			{
				TimerPiontApp.Switch &= ~(0x01 << (SysLcdFramePoint-24));
			}
			else
				TimerPiontApp.Switch |=(0x01 << (SysLcdFramePoint-24));
				EnterDefMenuFlag=KeyEditFlag=0;
			KeyEditFlag=0;
			break;
		#endif /* BOGUS */
		#endif /* BOGUS */
		case	35:
		case	36:
		case	37:
		case	38:
		case	39:
		case	40:
		case	41:
		case	42:
		case	43:
			if(KeyEditFlag == 0xAA)
			{
				KeyEditFlag=0;
			}
			else
			{
				KeyEditFlag =	0xAA;
			}
			break;
	}	
}


 
#if	USED_USBDISK
void	DelRecFilesPrg(void)
{
	UINT16	i=Mp3PlayerInfo.CurrentFileNum;
	__PRINTF("\r\n i=%x",i);
	if(DeleteRecFile(i) == 0)
	{
		#if	USED_LCD
		//ePutstr("Delete file Ok");
		//ClearLcdBuf(20,70, 16,100);
		RefreshLcdScreen(16,128,Bmp111111908);
		DelayMs(1500);
		#endif /* BOGUS */
	}
	else
	{
		#if	USED_LCD
		//ClearLcdBuf(20,70, 16,100);
		RefreshLcdScreen(16,128,Bmp111111907);
		ePutstr("Delete file Err");
		DelayMs(1500);
		#endif /* BOGUS */
	}
	Mp3PlayerInfo.ALLFileNum=MusicFileInit(0xFFF);
	//DelayMs(2000);
}
void	ModifyPlayMp3Vlaue(UINT8	b)
{
	UINT8	i=b;
	if(i>=10)i=0;
	switch(SysLcdFramePoint)
	{
		case	0:
		case	1:
		case	2:
			HexToFourBcdPrgInt(TimerPointBuf,Mp3PlayerInfo.CurrentFileNum);
			TimerPointBuf[SysLcdFramePoint+1]=i;
			Mp3PlayerInfo.CurrentFileNum=FourBcdToHexPrgInt(TimerPointBuf);
			__PRINTF("\r\nMp3PlayerInfo.CurrentFileNum=%x",Mp3PlayerInfo.CurrentFileNum);
			break;
		default:
			break;
	}
}

void	RecUpPrg(void)
{
	//RecPointLocationPrg();
	if(KeyEditFlag == 0xAA)
	{
		if(SysLcdFramePoint == 6)
		{
			if(++CurMusicCmd.CurrentFileNum >= MAX_MP3_FILE_NUM)
			{
				CurMusicCmd.CurrentFileNum=REC_START_FILE_NUM;
			}
		}

	}
	else
	{
		if(++SysLcdFramePoint>6)
		{
			SysLcdFramePoint=0;
		}

	}

}


void	RecDownPrg(void)
{
	//RecPointLocationPrg();
	if(KeyEditFlag == 0xAA)
	{
		if(SysLcdFramePoint == 6)
		{
			if(--CurMusicCmd.CurrentFileNum < REC_START_FILE_NUM)
			{
				CurMusicCmd.CurrentFileNum=MAX_MP3_FILE_NUM-1;
			}
		}
	}
	else
	{
		if(--SysLcdFramePoint>6)
		{
			SysLcdFramePoint=6;
		}

	}
}

//进入录音模式
void	UsbMp3RecordEntry(void)
{
	//读取当前的文件数
	//文件数++
	if(mInitDisk()!= 0)
	{
		#if	USED_LCD
		//ePutstr("没有U盘");
		__PRINTF("\r\n 没有U盘");
		DelayMs(2000);
		#endif
		return;
	}
	SysModeStatus=SYS_REC_STA;
	Mp3PlayerInfo.ALLFileNum=RecorderFileInit(0xFFF);
	//计算剩余的录音空间
	SysLcdFramePoint=Mp3Time=0;
	Mp3PlayerInfo.Mp3Mode=Mp3PlayerInfo.Mp3Status=STOP_STATUS;
	HexToTwoBcdPrg(TimerPointBuf,Mp3PlayerInfo.CurrentFileNum);
	strcpy((char *)RecFileName,Name);
	CurMusicCmd.CurrentFileNum=Mp3PlayerInfo.CurrentFileNum=501;
	//SysLcdFramePoint=0;
	//RecEnterPrg();
}
#ifdef BOGUS
{
	//读取当前的文件数
	//文件数++
	if(mInitDisk()!= 0)
	{
		#if	USED_LCD
		//ePutstr("没有U盘");
		__PRINTF("\r\n 没有U盘");
		DelayMs(2000);
		#endif
		return;
	}
	SysModeStatus=SYS_REC_STA;
	Mp3PlayerInfo.ALLFileNum=MusicFileInit(0xFFF);
	Mp3PlayerInfo.CurrentFileNum=Mp3PlayerInfo.ALLFileNum+1;
	CurMusicCmd.CurrentFileNum =Mp3PlayerInfo.ALLFileNum+1;
	HexToTwoBcdPrg(TimerPointBuf,Mp3PlayerInfo.CurrentFileNum);
	//计算剩余的录音空间
	SysLcdFramePoint=Mp3Time=0;
	Mp3PlayerInfo.Mp3Status=STOP_STATUS;
	HexToTwoBcdPrg(TimerPointBuf,Mp3PlayerInfo.CurrentFileNum);
	EnterDefMenuFlag=1;
	//SysLcdFramePoint=0;
	//RecEnterPrg();
}
#endif /* BOGUS */

//进入回放模式
void	USBMP3_Entry(void)
{
	//FM STOP CD STOP
	//lc72131_MUTE_high();
	//初始化 
	UINT32	i;
	__PRINTF("\r\n KAISHISAOMIAO");
	if(UsbOnlineFlag == 0)
	{
		#if	USED_LCD
		//ePutstr("没有U盘");
		__PRINTF("\r\n 没有U盘");
		DelayMs(2000);
		#endif
		return;
	}
	//MainTask();
	SysModeStatus=SYS_MP3_STA;
	Mp3PlayerInfo.Mp3Status=STOP_STATUS;
	EnterDefMenuFlag=1;
	SysLcdFramePoint=0;
	Mp3PlayerInfo.ALLFileNum=MusicFileInit(0xFFF);
	HexToTwoBcdPrg(HourTimeBuf,0);
	HexToTwoBcdPrg(MinTimeBuf,0);
	HexToTwoBcdPrg(SecTimeBuf,0);
	CurMusicCmd.CurrentFileNum=Mp3PlayerInfo.CurrentFileNum;
	//HexToFourBcdPrgInt(TimerPointBuf,Mp3PlayerInfo.CurrentFileNum);
	for(i=0;i<MAX_MP3_FILE_NUM;i++)
	{
		if(Mp3FileFlagBuf[i] != 0)
		{
			break;
		}
	}
	CurMusicCmd.CurrentFileNum=Mp3PlayerInfo.CurrentFileNum=i;
	if(find_num_mp3_file(CurMusicCmd.CurrentFileNum, FILE_MP3)==0)
	{
		Mp3PlayerInfo.Mp3Status=STOP_STATUS;
		return;
	}
	GetFileName();
	Mp3Time=0;
	#if  USED_JDQ
	SwitchSave |= SWITCH_ADR13;
	CtrJdqPrg();
	#endif /* BOGUS */
	ModeFlag=0xAA;
}


///////////////////////////////////////////////////////////////
//上一曲
void	USBMP3PlayAheadMusicPrg(void)
{
	UINT32	i;
	for(i=Mp3PlayerInfo.CurrentFileNum-1;i!=0;i--)
	{
		if(Mp3FileFlagBuf[i] != 0)
		{
			break;
		}
	}
	if(i==0)
	{
		i=MAX_MP3_FILE_NUM;
		for(;i!=0;i--)
		{
			if(Mp3FileFlagBuf[i] != 0)
			{
				break;
			}
		}
		
	}
	Mp3PlayerInfo.CurrentFileNum=i;
	if(Mp3PlayerInfo.CurrentFileNum == 0)
	{
		//DebugOut("No music File");
		return;
	}
	CurMusicCmd.CurrentCmd=PlayMp3Cmd;
	CurMusicCmd.CurrentFileNum=Mp3PlayerInfo.CurrentFileNum;
	//isr_set_ready(MUSIC_PLAY_TASK_NUM);
	PlayMusicFile(&CurMusicCmd);
	//Playing=0;
}

///////////////////////////////////////////////////////////////
//下一曲
void	USBMP3PlayNextMusicPrg(void)
{
	UINT32	i;
	for(i=Mp3PlayerInfo.CurrentFileNum+1;i<MAX_MP3_FILE_NUM;i++)
	{
		if(Mp3FileFlagBuf[i] != 0)
		{
			break;
		}
	}
	if(i==MAX_MP3_FILE_NUM)
	{
		i=1;
		for(;i<MAX_MP3_FILE_NUM;i++)
		{
			if(Mp3FileFlagBuf[i] != 0)
			{
				break;
			}
		}
		
	}
	Mp3PlayerInfo.CurrentFileNum=i;
	if(Mp3PlayerInfo.CurrentFileNum == MAX_MP3_FILE_NUM)
	{
		//DebugOut("No music File");
		return;
	}
	CurMusicCmd.CurrentCmd=PlayMp3Cmd;
	CurMusicCmd.CurrentFileNum=Mp3PlayerInfo.CurrentFileNum;
	//isr_set_ready(MUSIC_PLAY_TASK_NUM);
	PlayMusicFile(&CurMusicCmd);
}
//CD 播放器
void	USBMP3PlayPrg(void)
{
	PlayMusicFile(&CurMusicCmd);
}

void	USBMP3UpPrg(void)
{
	if((SysLcdFramePoint == 0))
	{
		if(KeyEditFlag == 0xAA)
		{
			
			USBMP3PlayNextMusicPrg();
			Mp3PlayerInfo.Mp3Status=STOP_STATUS;
			ModeFlag=0xAA;
		}
		else
		{
			if(++SysLcdFramePoint>5)
			{
				SysLcdFramePoint=0;
			}

		}
	}
	else
	{
		if(++SysLcdFramePoint>5)
		{
			SysLcdFramePoint=0;
		}
	}
}
void	USBMP3DownPrg(void)
{
	if((SysLcdFramePoint == 0))
	{
		if(KeyEditFlag == 0xAA)
		{
			USBMP3PlayAheadMusicPrg();
			ModeFlag=0xAA;
			Mp3PlayerInfo.Mp3Status=STOP_STATUS;
		}
		else
		{
			if(--SysLcdFramePoint>5)
			{
				SysLcdFramePoint=5;
			}
		}
	}
	else
	{
		if(--SysLcdFramePoint>5)
		{
			SysLcdFramePoint=5;
		}	
	}

	
}


void	RecEnterPrg(void)
{
	switch(SysLcdFramePoint)
	{
		case	0:
			if(Mp3PlayerInfo.Mp3Status==REC_STATUS)
			{
				Mp3PlayerInfo.Mp3Status=PAUSE_STATUS;
			}
			else	if(Mp3PlayerInfo.Mp3Status==PAUSE_STATUS)
			{
				Mp3PlayerInfo.Mp3Status=REC_STATUS;
			}
			else	if(Mp3PlayerInfo.Mp3Status==STOP_STATUS)
			{
				CurMusicCmd.CurrentCmd=RecMp3Cmd;
				CurMusicCmd.CurrentFileNum=Mp3PlayerInfo.CurrentFileNum;
				isr_set_ready(MUSIC_PLAY_TASK_NUM);
				T0Counter=0;
				Mp3Time=0;
			}
			break;
		case	1:		//停止
			if(Mp3PlayerInfo.Mp3Status==PLAY_STATUS)
			{
				Mp3Time=0;
				Mp3PlayerInfo.Mp3Status=STOP_STATUS;
				
				return;
			}
			if(Mp3PlayerInfo.Mp3Status!=STOP_STATUS)
			{
				EndofRecordPrg();
				Mp3PlayerInfo.Mp3Status=STOP_STATUS;
			}
			Mp3PlayerInfo.ALLFileNum=RecorderFileInit(0xFFF);
			Mp3Time=0;
			break;
		case	2:		//删除
			if(Mp3PlayerInfo.Mp3Status !=STOP_STATUS)
				break;
			SysModeStatus=SYS_DEL_RECFILES;
			SysLcdFramePoint = 0;
			#ifdef BOGUS
			//SysModeStatus=SYS_DEL_RECFILES;
			//Mp3PlayerInfo.CurrentFileNum=Mp3PlayerInfo.ALLFileNum;
			Mp3PlayerInfo.CurrentFileNum=CurMusicCmd.CurrentFileNum;
			DelRecFilesPrg();
			Mp3PlayerInfo.ALLFileNum=RecorderFileInit(0xFFF);
			HexToTwoBcdPrg(HourTimeBuf,0);
			HexToTwoBcdPrg(MinTimeBuf,0);
			HexToTwoBcdPrg(SecTimeBuf,0);
			#endif /* BOGUS */
			break;	
		case	3:	//试播
			if(Mp3PlayerInfo.Mp3Status==PLAY_STATUS)
			{
				Mp3Time=0;
				Mp3PlayerInfo.Mp3Status=STOP_STATUS;
				return;
			}
			//mInitDisk();
			//Mp3PlayerInfo.ALLFileNum=MusicFileInit(0xFFF);
			PlayMusicFile(&CurMusicCmd);
			break;
	
		case	4:		//退出
			if(Mp3PlayerInfo.Mp3Status==REC_STATUS)
			{
				EndofRecordPrg();
			}
			__PRINTF("\r\n 退出");
			USBMP3_Entry();
			break;
		case	5:
			if(RecChanel == 0)
				RecChanel=1;
			else
				RecChanel=0;
			break;
		case	6:
			if(KeyEditFlag == 0xAA)
			{
				KeyEditFlag=0;
			}
			else
			{
				KeyEditFlag =	0xAA;
			}
			break;
		default:
			SysLcdFramePoint=0;
			break;
	}
	//LcdLight=0;
}

void	PlayPause(void)
{
			if(Mp3PlayerInfo.Mp3Status != REC_STATUS)
			{
				if(Mp3PlayerInfo.Mp3Status==PLAY_STATUS)
				{
					Mp3PlayerInfo.Mp3Status=PAUSE_STATUS ;
					vs1002WriteCmdReg(VS1002_REG_VOL,0xFFFF);
				}
				else	if(Mp3PlayerInfo.Mp3Status==PAUSE_STATUS)
				{
					Mp3PlayerInfo.Mp3Status=PLAY_STATUS ;
					vs1002WriteCmdReg(VS1002_REG_VOL,0);
				}
				else
				{
					//选择播放
					USBMP3PlayPrg();
				}
			}
			else
			{
				if(Mp3PlayerInfo.Mp3Status==REC_STATUS)
				{
					Mp3PlayerInfo.Mp3Status=PAUSE_STATUS ;
				}
				else	if(Mp3PlayerInfo.Mp3Status==PAUSE_STATUS)
				{
					Mp3PlayerInfo.Mp3Status=REC_STATUS ;
				}
			}
}

void	Mp3MutePrg(void)
{
	if(Mp3PlayerInfo.DvdMuteFlag==0)
	{
		Mp3PlayerInfo.DvdMuteFlag=1;
	}
	else
	{
		Mp3PlayerInfo.DvdMuteFlag=0;
	}
	if(Mp3PlayerInfo.DvdMuteFlag != 0)
	{
		vs1002WriteCmdReg(VS1002_REG_VOL,0xFFFF);
	}
	else
	{
		vs1002WriteCmdReg(VS1002_REG_VOL,0x0);
	}
}
void	USBMP3EnterPrg(void)
{
	if(Mp3PlayerInfo.Mp3Status==PLAY_STATUS)
	{
		vs1002WriteCmdReg(VS1002_REG_VOL,0xFFFF);
		Mp3PlayerInfo.Mp3Status=PAUSE_STATUS;
		return;
	}
	if((SysLcdFramePoint==0))
	{
		if(KeyEditFlag == 0xAA)
		{
			KeyEditFlag=0;
		}
		else
		{
			KeyEditFlag =	0xAA;
		}
	}
	else
	switch(SysLcdFramePoint)
	{
		case	2:	//播放暂停
			//#if 0
			ModeFlag=0;
			PlayPause();
			
			break;	
		case	3:	//停止
			if(Mp3PlayerInfo.Mp3Status != REC_STATUS)
			{
				Mp3PlayerInfo.Mp3Mode=0;
			}
			Mp3Time=0;
			vs1002WriteCmdReg(VS1002_REG_VOL,0xFFFF);
			Mp3PlayerInfo.Mp3Status=STOP_STATUS;
			break;
		case	4:	//录音
			UsbMp3RecordEntry();
			break;
		case	1:	//REP MODE
			if(++Mp3PlayerInfo.Mp3Mode>3)Mp3PlayerInfo.Mp3Mode=0;
			ModeFlag=0xAA;
			break;
		case	5:	//EXIT
			SysModeStatus=SYS_IDLE_STA;
			Mp3PlayerInfo.Mp3Status=Mp3PlayerInfo.Mp3Mode=0;
			SysLcdFramePoint=1;
			RefreshFlag=1;
			TimePrgTask();
			LcdDisplayDefScr();
			return;
		default:	//选择媒体
			SysLcdFramePoint=0;
			break;
	}}

#endif /* BOGUS */

//主菜单选择
void	SysSelPlayerFunc(void)
{
	switch(SysLcdFramePoint)
	{
		case	0:	//pc 通讯
			//SysModeStatus=SYS_PC_STA;
			USBMP3_Entry();
			break;
		case	1:	//调整时钟
			SysModeStatus=SYS_MT_STA;
			#if USED_RTC
			I2CReadDate();
			YearTimeBuf[0]  =2;
			YearTimeBuf[1]  =0;
			YearTimeBuf[2]  =date[6]>>4;
			YearTimeBuf[3]  =date[6]&0x0f;
			//月
			MonthTimeBuf[0]  =date[5]>>4;
			MonthTimeBuf[1]  =date[5]&0x0f;
			//ri
			DateTimeBuf[0]  =date[4]>>4;
			DateTimeBuf[1]  =date[4]&0x0f;

			HourTimeBuf[0]	=date[2]>>4;
			HourTimeBuf[1]	=date[2]&0x0F;
			MinTimeBuf[0]	=date[1]>>4;
			MinTimeBuf[1]	=date[1]&0x0F;
			SecTimeBuf[0]	=date[0]>>4;
			SecTimeBuf[1]	=date[0]&0x0F;
			WeekTimeBuf		=date[3]; 
			if(WeekTimeBuf > 6)WeekTimeBuf=0;
			SysLcdFramePoint=EnterDefMenuFlag=0;
			SysLcdFramePoint=EnterDefMenuFlag=0;
			#else
			HexToFourBcdPrgInt(YearTimeBuf,(YEAR&0xFFF));
			YearTimeBuf[0]=0x02;YearTimeBuf[1]=0x00;
			HexToTwoBcdPrg(MonthTimeBuf,(MONTH&0xF));
			HexToTwoBcdPrg(DateTimeBuf,(DOM&0x1F));
			HexToTwoBcdPrg(HourTimeBuf,(HOUR&0x1F));
			HexToTwoBcdPrg(MinTimeBuf,(MIN&0x3F));
			HexToTwoBcdPrg(SecTimeBuf,(SEC&0x3F));
			WeekTimeBuf=DOW;
			SysLcdFramePoint=EnterDefMenuFlag=0;
			#endif
			//RefreshLcdBuf(0,0,(UINT8*)Bmp042);
			break;
		case	2:	//程序编辑
			SysModeStatus=SYS_SETTIMER_STA;
			SysLcdFramePoint=EnterDefMenuFlag=0;
			TimerPiontApp=((stcTimerPiont *)&TimerPartTab)[1];
			TimerPiontApp.PragNum=1;
			TimerPiontApp.Device = MP3_DEVICE;
			
			//RefreshLcdBuf(0,0,(UINT8*)Bmp046);	//主菜单
			break;
		case	3:	//设备管理
			SysModeStatus=SYS_PW_SW_STA;
			SysLcdFramePoint=EnterDefMenuFlag=0;
			//RefreshLcdBuf(0,0,(UINT8*)Bmp050);	//主菜单
			break;
		case	4:	//退出
			SortTimeListPrg();
			SysModeStatus=	SYS_IDLE_STA;
			break;
		default:
			SysLcdFramePoint=0;
			break;
	}

}

void	WarningPrg(void)
{
	UINT32	i;
	SwitchSave=0xFFFFFFFF;
	CtrJdqPrg();
	RefreshLcdBuf(0,0,(UINT8*)Bmp111111912);	
	for(i=0;i<MAX_SWITCH_NUM;i++)
	{
		if((SwitchSave & (0x01<<i))!=0)

⌨️ 快捷键说明

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