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

📄 app_screen_mp3_obj.c

📁 LPC2300 MP3 Player code
💻 C
📖 第 1 页 / 共 3 页
字号:
	
					so_obj[SO_BT2].val++;
				if (so_obj[SO_BT2].val == 2)

					{
						so_obj[SO_BT2].val = 0;
						so_obj[SO_BT2].draw();
					}
			}
			break;
		default :
			break;
	}
}

void bt2_task100ms(void)
{
	if (VSIsPlaying() && (so_obj[SO_BT2].val == 0))
	{
		so_obj[SO_BT2].val = 1;
		so_obj[SO_BT2].draw();
	}
}

unsigned char bt2_is_white(so_pos_t lhpos,so_pos_t lvpos)
{
	return (0);
}

void bt3_draw(void)
{
		
		if (VSIsPlaying())
		{
		so_obj[SO_BT3].stat = SO_ST_ON;
		TSLCDShowPicBack(so_obj[SO_BT3].horigin,
					so_obj[SO_BT3].horigin + so_obj[SO_BT3].hsize - 1,
					so_obj[SO_BT3].vorigin,
					so_obj[SO_BT3].vorigin + so_obj[SO_BT3].vsize - 1,
					bgvista,240,320,TS_MODE_NORMAL);

	
	
		TSLCDShowPic2(	so_obj[SO_BT3].horigin,
					so_obj[SO_BT3].horigin + so_obj[SO_BT3].hsize - 1,
					so_obj[SO_BT3].vorigin,
					so_obj[SO_BT3].vorigin + so_obj[SO_BT3].vsize - 1,
					pic_Next + so_obj[SO_BT3].val*(so_obj[SO_BT3].hsize*so_obj[SO_BT3].vsize),
					TS_MODE_NORMAL);
		}
		else
		{

		TSLCDShowPicBack(so_obj[SO_BT3].horigin,
					so_obj[SO_BT3].horigin + so_obj[SO_BT3].hsize - 1,
					so_obj[SO_BT3].vorigin,
					so_obj[SO_BT3].vorigin + so_obj[SO_BT3].vsize - 1,
					bgvista,240,320,TS_MODE_NORMAL);

		so_obj[SO_BT3].stat = SO_ST_OFF;

		}
}

void bt3_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		 		case PST_DOWN :
								so_obj[SO_BT3].val = 1;
								so_obj[SO_BT3].draw();
					
								VSAudioCmd('N',0);	 

							break;

				case PST_UP :
								if(so_obj[SO_BT1].val == 0)
										{
											so_obj[SO_BT1].stat = SO_ST_ON;
											so_obj[SO_BT1].val = 2;
											so_obj[SO_BT1].draw();	
										}
								so_obj[SO_BT3].val = 0;
								so_obj[SO_BT3].draw();
							break;
				default :
						
						break;	
	}
}

void bt3_task100ms(void)
{
	if (VSIsPlaying() && (so_obj[SO_BT3].val == 1))
	{
		so_obj[SO_BT3].val = 0;
		so_obj[SO_BT3].draw();
	}
}

unsigned char bt3_is_white(so_pos_t lhpos,so_pos_t lvpos)
{
	return (0);
}




void bt4_draw(void)
{
	
		
		
		TSLCDShowPic2(	so_obj[SO_BT4].horigin,
					so_obj[SO_BT4].horigin + so_obj[SO_BT4].hsize - 1,
					so_obj[SO_BT4].vorigin,
					so_obj[SO_BT4].vorigin + so_obj[SO_BT4].vsize - 1,
					pic_play_loop + so_obj[SO_BT4].val*(so_obj[SO_BT4].hsize*so_obj[SO_BT4].vsize),
					TS_MODE_NORMAL);
	
}

void bt4_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	switch (p_stat)
	{
		 		case PST_DOWN :
								so_obj[SO_BT4].val = 1;
								so_obj[SO_BT4].draw();
								
			
			  					VSAudioPlayAll(current_dir);

								so_obj[SO_BT1].val = 2;
								so_obj[SO_BT1].stat = SO_ST_ON;
								so_obj[SO_BT1].draw();

						break;

				case PST_UP :
								so_obj[SO_BT4].val = 0;
								so_obj[SO_BT4].draw();
					
								so_obj[SO_BT1].val = 2;
								so_obj[SO_BT1].stat = SO_ST_ON;
								so_obj[SO_BT1].draw();
					
								so_obj[SO_BT2].val = 1;
								so_obj[SO_BT2].stat = SO_ST_ON;
								so_obj[SO_BT2].draw();
					
								so_obj[SO_BT3].stat = SO_ST_ON;
			
						break;
					
					default :
							
						break;	
	}
}

void bt4_task100ms(void)
{

}

unsigned char bt4_is_white(so_pos_t lhpos,so_pos_t lvpos)
{
	return (0);
}



unsigned char dir_check_file_type(unsigned char *file_name)
{
	if (((file_name[LIST_MAXLENFILENAME-4]) == ' ') &&
		((file_name[LIST_MAXLENFILENAME-3]) == ' ') &&
		((file_name[LIST_MAXLENFILENAME-2]) == ' '))
		return (FILE_TYPE_FOLDER);

	if (((file_name[LIST_MAXLENFILENAME-4]) == 'M') &&
		((file_name[LIST_MAXLENFILENAME-3]) == 'P') &&
		((file_name[LIST_MAXLENFILENAME-2]) == '3'))
		return (FILE_TYPE_MP3);

	if (((file_name[LIST_MAXLENFILENAME-4]) == 'T') &&
		((file_name[LIST_MAXLENFILENAME-3]) == 'X') &&
		((file_name[LIST_MAXLENFILENAME-2]) == 'T'))
		return (FILE_TYPE_TXT);

	if (((file_name[LIST_MAXLENFILENAME-4]) == 'B') &&
		((file_name[LIST_MAXLENFILENAME-3]) == 'I') &&
		((file_name[LIST_MAXLENFILENAME-2]) == 'N'))
		return (FILE_TYPE_BIN);

	return (FILE_TYPE_UNKNOWN);
}

void dir_get_file_cnt(void) //get number of files in current folder
{
	unsigned char res;
	dir_file_cnt = 0;
	
	SDSPIInit();

	if (sd_inited)
	{
		if (ls_openDir(&list, &(efs.myFs) , current_dir) == 0)
		{
			res = ls_getNext(&list);
			while (res == 0)
			{
				dir_file_cnt++;
				res = ls_getNext(&list);
			}
		}	
	}
}

void arrange_file_name(char *dot_type,char *format8_3_type)
{
	unsigned char i,j;
	j = 0;
	for (i=0;i<8;i++)
	{
		if (format8_3_type[i] != ' ')
		{
			dot_type[j++] = format8_3_type[i]; 
		}
		else
			break;
	}

	dot_type[j] = 0;

	while (format8_3_type[i] == ' ')
	{
		i++;
	}

	if (format8_3_type[i])
	{
		dot_type[j++] = '.';
		dot_type[j++] = format8_3_type[i++];
		dot_type[j++] = format8_3_type[i++];
		dot_type[j++] = format8_3_type[i++];
		dot_type[j++] = 0;
	}	
}

void dir_list_draw(void)
{
	unsigned char i;
	unsigned char j;
	unsigned char res = 0;
	char ch[20]="...................";
	int count;
	char file_name_buf[14];


	TSLCDSetOffset(so_obj[SO_DIR_LIST].horigin,so_obj[SO_DIR_LIST].vorigin);

	SDSPIInit();

	if (!sd_inited)
	{
		return;	
	}
	TSLCDSetFontColor(TS_COL_RED);
	TSLCDPrintStr(0,0,"Dir:",TS_MODE_NORMAL);
	TSLCDShowPicBack(so_obj[SO_DIR_LIST].horigin + 40,
					so_obj[SO_DIR_LIST].horigin + so_obj[SO_DIR_LIST].hsize+150,
					so_obj[SO_DIR_LIST].vorigin,
					so_obj[SO_DIR_LIST].vorigin + 20,
					bgvista,240,320,TS_MODE_NORMAL);
		for(count=0;count<15;count++)
		{
			ch[count]=current_dir[count];
		}	
	TSLCDPrintStr(0,4,ch,TS_MODE_NORMAL); //...
		 
		
	if (ls_openDir(&list, &(efs.myFs) , current_dir) == 0)
	{
		for (i=0;i<first_line_file;i++)
		{
			res = ls_getNext(&list);
			if (res)
				break;
		}

		if (res == 0)
		{
			for (i=0;i<DIR_FILE_NUM;i++)
			{
				res = ls_getNext(&list);
				if (res == 0)
				{
					list.currentEntry.FileName[LIST_MAXLENFILENAME-1] = '\0';

					if (so_obj[SO_DIR_LIST].val == first_line_file + i)
					{
						TSLCDSetFontColor(COL_FONT_SPL);
						TSLCDSetBold(1);

						for (j=0;j<LIST_MAXLENFILENAME;j++)
						 	current_list_file_name[j] = list.currentEntry.FileName[j];
					}
					else
					{
						TSLCDSetFontColor(COL_FONT);
						TSLCDSetBold(0);
					}

					TSLCDShowPicBack(so_obj[SO_DIR_LIST].horigin,
									so_obj[SO_DIR_LIST].horigin + so_obj[SO_DIR_LIST].hsize,
									so_obj[SO_DIR_LIST].vorigin + (i+1)*32,
									so_obj[SO_DIR_LIST].vorigin + (i+1)*34 + 15,
									bgvista,240,320,TS_MODE_NORMAL);
																   
					arrange_file_name(file_name_buf,(char *)list.currentEntry.FileName);
				
					TSLCDPrintStr(2*(i+1),3,file_name_buf,TS_MODE_NORMAL);
					TSLCDShowPic2(	so_obj[SO_DIR_LIST].horigin,
									so_obj[SO_DIR_LIST].horigin + 15,
									so_obj[SO_DIR_LIST].vorigin + (i+1)*32,
									so_obj[SO_DIR_LIST].vorigin + (i+1)*32 + 15,
									pic_icon + 16*16*dir_check_file_type(list.currentEntry.FileName),
									TS_MODE_NORMAL);
				}
				else
				{
					for (j=i;j<DIR_FILE_NUM;j++)
					{
						
					TSLCDShowPicBack(so_obj[SO_DIR_LIST].horigin,
										so_obj[SO_DIR_LIST].horigin + so_obj[SO_DIR_LIST].hsize,
										so_obj[SO_DIR_LIST].vorigin + (j+1)*32,
										so_obj[SO_DIR_LIST].vorigin + (j+1)*34 + 15,
										bgvista,240,320,TS_MODE_NORMAL);					
					}
					break;
				}	
			}
		}
		else
		{
			for (j=0;j<DIR_FILE_NUM;j++)
			{
			
			 TSLCDShowPicBack(so_obj[SO_DIR_LIST].horigin,
								so_obj[SO_DIR_LIST].horigin + so_obj[SO_DIR_LIST].hsize,
								so_obj[SO_DIR_LIST].vorigin + (j+1)*32,
								so_obj[SO_DIR_LIST].vorigin + (j+1)*34 + 15,
						bgvista,240,320,TS_MODE_NORMAL);
			}
		}
	}

	fs_umount(&efs.myFs);

//	TSLCDSetFontColor(COL_FONT);
	TSLCDSetOffset(0,0);
	TSLCDSetBold(0);
}

void dir_list_do(so_pos_t lhpos,so_pos_t lvpos,so_pos_t ghpos,so_pos_t gvpos,pstatus_t p_stat)
{
	unsigned char new_val;
	unsigned char i = 0;

	if (p_stat == PST_DOWN)
	{
		if (lvpos > 24)
		{
			lvpos -= 24;
			new_val = lvpos/32 + first_line_file;
	
			if (new_val < dir_file_cnt)
			{
				if (so_obj[SO_DIR_LIST].val == new_val)
				{
					switch (dir_check_file_type((unsigned char *)current_list_file_name))
					{
						case FILE_TYPE_FOLDER :
							while (current_list_file_name[i] != ' ')
							{
								i++;
								if (i == LIST_MAXLENFILENAME-4)
									break;
							}
							current_list_file_name[i] = 0;
			
							AppSDChangeDir(current_list_file_name);
							first_line_file = 0;
							so_obj[SO_DIR_LIST].val = 0;
							dir_get_file_cnt();
							so_obj[SO_DIR_LIST].draw();
							so_obj[SO_DIR_UP].draw();
							so_obj[SO_DIR_DOWN].draw();
							break;
						case FILE_TYPE_MP3 :
							while (current_list_file_name[i] != ' ')
							{
								i++;
								if (i == LIST_MAXLENFILENAME-4)
									break;
							}
							current_list_file_name[i] = '.';
							current_list_file_name[i+1] = 'M';
							current_list_file_name[i+2] = 'P';
							current_list_file_name[i+3] = '3';
							current_list_file_name[i+4] = 0;
	
						
							AppPlay(current_list_file_name);
		
							so_obj[SO_BT1].val = 2;
							so_obj[SO_BT1].draw();

							so_obj[SO_BT2].stat = SO_ST_ON;	  //Show Stop
							so_obj[SO_BT3].stat = SO_ST_ON;	  //Show Next>>
		
							so_obj[SO_BT2].draw();
							so_obj[SO_BT3].draw();
							
							break;
						case FILE_TYPE_BIN : //generated file from image
							while (current_list_file_name[i] != ' ')
							{
								i++;
								if (i == LIST_MAXLENFILENAME-4)
									break;
							}
							current_list_file_name[i] = '.';
							current_list_file_name[i+1] = 'B';
							current_list_file_name[i+2] = 'I';
							current_list_file_name[i+3] = 'N';
							current_list_file_name[i+4] = 0;

							AppSDShowPic2(current_list_file_name);
							so_obj[SO_IMAGE].stat = SO_ST_ON;
							ScrObjToTopLayer(SO_IMAGE);
							image_showing = 1;
							break;
					}
					
				}
				else
				{
					so_obj[SO_DIR_LIST].val = new_val;

⌨️ 快捷键说明

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