📄 app_screen_mp3_obj.c
字号:
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 + -