📄 mp3playlist.c
字号:
#ifndef _MP3DECODER_DEFINE
#include "MP3DECODER.c"
#endif
BYTE MP3PlayList(CHAR *fp,CHAR *FileNameExt);
BYTE MP3PlayList(CHAR *fp,CHAR *FileNameExt)
{
BYTE i,j,k,m,n;
DWORD chain;
CHAR temp[27];
chain=FAT32.CurrentDirectory;
FAT32.ClusSecCnt=0;
while(chain!=0x0fffffff)
{
FAT32ReadCluster(&chain);
for (i=0;i<16;i++)
{
if ((sDIR[i].Name[0]==0xe5||sDIR[i].Name[0]==0x00||sDIR[i].Attr&FAT32_ATTR_DIRECTORY)) continue; //空目录项
if ((sDIR[i].Attr&FAT32_ATTR_LONG_NAME_MASK)==FAT32_ATTR_LONG_NAME)
//长文件名
{
j=lDIR[i].Ord - FAT32_LAST_LONG_ENTRY;
LongFileName[0]=0;n=0;
for(;j>0;j--)
{
FAT32GetPartLongName(lDIR+i,temp);
m=strlen((char *)temp);
k=m+n;
for(;n>0;n--)
LongFileName[m+n]=LongFileName[n];
LongFileName[m+n]=LongFileName[n];
m--;
for(;m>0;m--)
LongFileName[m]=temp[m];
LongFileName[m]=temp[m];
n=k;
i++;
if (i==16)
{
FAT32ReadCluster(&chain);
i=0;
}
}
if (sDIR[i].Attr&FAT32_ATTR_DIRECTORY) continue; //如果是目录入口则跳过
if (fp[0])
{
if (strcmp((char *)LongFileName,(char *)fp)==0) fp[0]=0;
}
else
{
n-=3;
for(j=0;j<4;j++)
temp[j]=toupper((char)LongFileName[n+j]);
if (strcmp((char *)temp,(char *)FileNameExt)==0)
{
strcpy((char *)fp,(char *)LongFileName); //复制返回的文件名
return(i); //返回目录表项号
}
}
}
else
{
//短文件名
if ((sDIR[i].Attr&FAT32_ATTR_DIRECTORY)||(sDIR[i].Attr&FAT32_ATTR_VOLUME_ID)) continue; //如果是目录入口或卷标则跳过
for(j=0;j<11;j++)
LongFileName[j]=sDIR[i].Name[j];
LongFileName[j]=0;
for(j=0;j<3;j++)
temp[j]=toupper(sDIR[i].Name[8+j]);
temp[j]=0;
if (fp[0])
{
if (strcmp((char *)LongFileName,(char *)fp)==0) fp[0]=0;
}
else
{
if (strcmp((char *)temp,(char *)FileNameExt)==0)
{
strcpy((char *)fp,(char *)LongFileName); //复制返回的文件名
return(i); //返回目录表项号
}
}
}
}
}
return(16);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -