亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? fat.c

?? 用atmega64+vs1003(音頻解碼芯片)+SD制成的板子
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	unsigned char  name[8];
	unsigned char i=0;    
	WorkFlag&=~bLrc;   
	for(i=0;i<8;i++)  name[i]=strName[i];  
	InitSetPath(&fp,dircluster);
	ReadBlock(fp.Sector);     //重新讀取目錄表
	do 
	{  
		if(!ReadNextDirEntry(&fp)) {lyric.Clust=0;  return;} 
		de=(DIRENTRY *) BUFFER;
		de += fp.Index; 
		if(*de->deName != 0xe5){
			if((de->deAttributes&ATTR_LONG_FILENAME)!=ATTR_LONG_FILENAME){
			if((de->deAttributes& ATTR_DIRECTORY)!= ATTR_DIRECTORY){// is it a directory ?
			   for(i=0;i<8;i++) { 
			   	 if(name[i]!=de->deName[i])  break;
			   }                                   
			   if(i==8){   //主文件名比較正確 
			   	   for(i=0;i<3;i++){
			   	       if(pgm_read_byte(filetype[LRC_TYPE]+i)!=de->deExtension[i]) break; 
			   	    }
			   	    if(i==3)  break;
			   }
			   
       	 } 	} }
		de++;
	    fp.Index++; 
	    if(de->deName[0]==0) { lyric.Clust=0;  return;} //文件的最后一項(xiàng)
	}while(1);  
	lyric.first = 1;  
	lyric.t_sec=lyric.t_ms=0; 
	WorkFlag|=bLrc;   
	lyric.so=0;
	lyric.sl=0;
	lyric.wl=0;  //初始位置
	lyric.filelen=(unsigned int)de->deFileSize; //保存歌詞文件大小
	lyric.Clust = (unsigned long) ((unsigned long)de->deHighClust << 16) + de->deStartCluster;
}
unsigned int FindDirIndex(unsigned long fatherdir,unsigned long dircluster)
{
	FIND_FILE_INFO	fp;  
	DIRENTRY *de=0;	
	uint fileNo=0;     
	unsigned long tempclust;
	InitSetPath(&fp,fatherdir);
	ReadBlock(fp.Sector);     //讀取目錄表
	do 
	{  
		if(!ReadNextDirEntry(&fp))  break;
		de = (DIRENTRY *)BUFFER;
		de+=fp.Index;
		if(*de->deName != 0xe5){       //找到目錄或文件
			if((de->deAttributes&ATTR_LONG_FILENAME) != ATTR_LONG_FILENAME){
					if((de->deAttributes&ATTR_DIRECTORY) == ATTR_DIRECTORY){// is it a directory ?
							if(!IsCurDir(de->deName)){
							   fileNo++;
							   tempclust=((unsigned long)de->deHighClust << 16) + de->deStartCluster;
							   if(tempclust==dircluster)	return fileNo;							   	
						}
					}
		    }   
    	}
		de++;
	  fp.Index++; 
	  if(de->deName[0]==0)  break;  
	}while(1);  
	 return 0;
}
			
//-----------------------------------------------------
// 記錄第INDEX的后四項(xiàng)文件或目錄內(nèi)容: 內(nèi)容首簇號(hào),文件的名稱(長(zhǎng)文件名)
//
unsigned int SerarchFile(unsigned long dircluster,unsigned int index)
{
	FIND_FILE_INFO	fp;  
	WINENTRY *we;
	unsigned char  LONGNAME_BUFFER_ADDR[60]; //保存25個(gè)字符
	unsigned char *LongNameBuffer =	(unsigned char *) LONGNAME_BUFFER_ADDR;
	unsigned char hasBuffer=0;
	unsigned int b;
	unsigned char line=0;
	char *p;
	DIRENTRY *de=0;	
	unsigned char i=0;  
	uint fileNo=0;     
//================先查找目錄=====================================	
	InitSetPath(&fp,dircluster);
	ReadBlock(fp.Sector);     //讀取目錄表
	do 
	{  
		if(!ReadNextDirEntry(&fp))  break;
		de = (DIRENTRY *)BUFFER;
		de+=fp.Index;
		if(*de->deName != 0xe5){       //找到目錄或文件
			if((de->deAttributes&ATTR_LONG_FILENAME) == ATTR_LONG_FILENAME){
				we = (WINENTRY *) de;
				b = 13 *( (we->weCnt-1) & 0x0f);				// index into string
		//		if(b<50-13){
				p = &LongNameBuffer[b];
				for (i=0;i<10;i++)	*p++ = we->wePart1[i];	// copy first part			
				for (i=0;i<12;i++)	*p++ = we->wePart2[i];	// second part
				for (i=0;i<4;i++)	*p++ = we->wePart3[i];	// and third part
		//	 }
				if (we->weCnt & 0x40) *p = 0;					// in case dirnamelength is multiple of 13
				if ((we->weCnt & 0x0f) == 1) hasBuffer = 1;		// mark that we have a long entry
			}else{
				if(hasBuffer){   
					 hasBuffer = 0;	// clear buffer	
					if((de->deAttributes&ATTR_DIRECTORY) == ATTR_DIRECTORY){// is it a directory ?
						fileNo++;
						if((fileNo>=index)&&(line<4)){  
							
							if(WorkFlag&bUnicode){
						 		UniToGB(LongNameBuffer);  //轉(zhuǎn)成國(guó)標(biāo)碼
						 		for(i=0;i<40;i++)
					      		m_c[line].LongName[i]=LongNameBuffer[i]; 
						    	}else{
						 		for(i=0;i<11;i++)
					      		m_c[line].LongName[i]=de->deName[i];
					    	}
					      	m_c[line].LongName[i]='\0';
					      	for(i=0;i<11;i++)
					      		m_c[line].ShortName[i]=de->deName[i];
					      	m_c[line].ShortName[i]='\0';
					      	m_c[line].Type=0;
					      	m_c[line].Clust=((unsigned long)de->deHighClust << 16) + de->deStartCluster;
					      	m_c[line++].FileLen=0;
						}
					}
				}else{
					if((de->deAttributes&ATTR_DIRECTORY) == ATTR_DIRECTORY){
						if(!IsCurDir(de->deName)){
							fileNo++;
						 if((fileNo>=index)&&(line<4)){
						 	for(i=0;i<11;i++){
					      	m_c[line].ShortName[i]=de->deName[i];
					      	m_c[line].LongName[i]=de->deName[i];
					     }
					      	m_c[line].ShortName[i]='\0';
					      	m_c[line].LongName[i]='\0';
					      	m_c[line].Type=0;
					      	m_c[line].Clust=((unsigned long)de->deHighClust << 16) + de->deStartCluster;
					      	m_c[line++].FileLen=0;
						}
					 }
				 }
  		  }
		    }   
       	}
			de++;
	    fp.Index++; 
	    if(de->deName[0]==0)  break;  //文件的最后一項(xiàng)
	}while(1);  
//-------------------------再查找音樂(lè)文件-------------------------------------------
	InitSetPath(&fp,dircluster);
	ReadBlock(fp.Sector);     //讀取目錄表
	do 
	{  
		if(!ReadNextDirEntry(&fp))  break;
		de = (DIRENTRY *)BUFFER;
		de+=fp.Index;
		if(*de->deName != 0xe5){       //找到目錄或文件
			if((de->deAttributes&ATTR_LONG_FILENAME) == ATTR_LONG_FILENAME)
			{
				we = (WINENTRY *) de;
				b = 13 *( (we->weCnt-1) & 0x0f);				// index into string
		//		if(b<50-13){
					p = &LongNameBuffer[b];
					for (i=0;i<10;i++)	*p++ = we->wePart1[i];	// copy first part			
					for (i=0;i<12;i++)	*p++ = we->wePart2[i];	// second part
					for (i=0;i<4;i++)	*p++ = we->wePart3[i];	// and third part
					if (we->weCnt & 0x40) *p = 0;					// in case dirnamelength is multiple of 13
			//	}
				if ((we->weCnt & 0x0f) == 1) hasBuffer = 1;		// mark that we have a long entry
			}else{
				if(hasBuffer)
				{   
					 hasBuffer = 0;	
					if((de->deAttributes&ATTR_DIRECTORY) != ATTR_DIRECTORY)// is it a directory ?
					{     
						if(IsMusicFile(&de->deExtension[0])!=0){
							fileNo++;
						 if((fileNo>=index)&&(line<4)){  
						 	if(WorkFlag&bUnicode){
						 		UniToGB(LongNameBuffer);  //轉(zhuǎn)成GB碼
						 		for(i=0;i<40;i++)
					      		m_c[line].LongName[i]=LongNameBuffer[i]; 
					     	}else{
						 		for(i=0;i<11;i++)
					      		m_c[line].LongName[i]=de->deName[i];
					    	}
					    	m_c[line].LongName[i]='\0';
					    	for(i=0;i<11;i++)
					      		m_c[line].ShortName[i]=de->deName[i];
					      	m_c[line].ShortName[i]='\0';
					      	m_c[line].Type=2;
					      	m_c[line].Clust=((unsigned long)de->deHighClust << 16) + de->deStartCluster;
					      	m_c[line++].FileLen=de->deFileSize;
						  }	 
						}
					}
				}else{
					if((de->deAttributes&ATTR_DIRECTORY) != ATTR_DIRECTORY){
						if(IsMusicFile(&de->deExtension[0])!=0){
						   fileNo++;
						 if((fileNo>=index)&&(line<4)){  
						   	for(i=0;i<11;i++)
					      		m_c[line].ShortName[i]=de->deName[i];
					      	m_c[line].ShortName[i]='\0';
						   	for(i=0;i<11;i++)
					      		m_c[line].LongName[i]=de->deName[i];
					      	m_c[line].LongName[i]='\0';
					      	m_c[line].Type=2;
					      	m_c[line].Clust=((unsigned long)de->deHighClust << 16) + de->deStartCluster;
					      	m_c[line++].FileLen=de->deFileSize;
						  }	 
						}  
					}
			  } 
			}
		}
		de++;
	    fp.Index++; 
	    if(de->deName[0]==0)  break;  //文件的最后一項(xiàng)
	}while(1);  
     for(i=line;i<4;i++){
     	m_c[i].LongName[0]='\0';
		m_c[i].ShortName[0]='\0';
   		m_c[i].Type=0xff;
    }
//----------------------------------------------------------------------	
   return fileNo;
	
}
//取下一個(gè)目錄項(xiàng)
unsigned char ReadNextDirEntry(FIND_FILE_INFO *fp)  
{
	if(fp->Index == 16)	
	{   
		if(!(fp->Nums&0x8000)){		
			if((fp->Nums&0x7FFF)==0) 	return 0;
				fp->Nums--;			
			}else{
				if(fp->NumSector>=SectorsPerCluster){
					fp->Clust=fatNextCluster(fp->Clust); //取下一個(gè)目錄簇
					if(fp->Clust==CLUST_EOFE)  return 0;  // 目錄內(nèi)容全部找完
					fp->Sector=fatClustToSect(fp->Clust);
					fp->NumSector=0;
			    }
			    fp->NumSector++;
			}
			  fp->Sector++;
				ReadBlock(fp->Sector); // 讀取下一個(gè)扇區(qū)的目錄數(shù)據(jù)  
				fp->Index = 0;
		} 
	return 1;		
}
		
//代碼轉(zhuǎn)換unit code-> gb2312
void UniToGB(unsigned char *pbuf)
{       
	unsigned char wh;
	unsigned int  sector,clusor,secoff;
	unsigned long foffset;
	unsigned int  code;
	unsigned char i,m=0;
	for(i=0;i<25;i++){
		code= pbuf[i*2+1]*256+pbuf[i*2];
		if((code==0)||(code==0xffff))   break;
		if((code&0xff00)==0){
			if((code>=0x20)&&(code<=0x7e)){
			 pbuf[m++]=(unsigned char)code;              
			}else{
			 pbuf[m++]='?';
			}
			 continue;
		}
		if(code>=0x4e00){    //是漢字
			code=(code-0x4e00)*2;
			sector=code/BytesPerSector;           //得到總的完整的扇區(qū)數(shù)
	 		secoff= (unsigned int) code%BytesPerSector; //扇區(qū)內(nèi)的字節(jié)數(shù)偏移
	 		wh=(unsigned char) sector%SectorsPerCluster; 
	 		clusor=(unsigned int) sector/SectorsPerCluster;//得到總的簇?cái)?shù)   
	     	eeprom_read_block(&foffset,(void*)(clusor*4+0x200),4); //查表得到首扇區(qū)
	     	code=SD_Read_Word(foffset+wh,secoff);
			pbuf[m++]=(uchar)code;
	 		pbuf[m++]=code>>8; 
	 }else{
	     pbuf[m++]='?';
	 }	
	
	}  
	pbuf[m]='\0';    
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美另类高清zo欧美| 欧美主播一区二区三区| 日韩成人一区二区| 一区二区三区精品久久久| 亚洲视频在线一区观看| 国产精品欧美综合在线| 国产精品日产欧美久久久久| 国产精品毛片无遮挡高清| 欧美韩国日本一区| 国产精品久久久久久久久免费樱桃 | 欧美婷婷六月丁香综合色| 色婷婷av一区二区三区大白胸 | 欧美日韩一区久久| 欧美美女一区二区| 日韩一区二区三区av| 欧美天天综合网| 蜜乳av一区二区三区| 欧美无砖砖区免费| 欧美日韩和欧美的一区二区| 欧美色综合网站| 欧美精品丝袜中出| 日韩免费视频一区| 久久免费看少妇高潮| 国产欧美日韩不卡| 一区二区国产视频| 无吗不卡中文字幕| 久久se这里有精品| 国产精品一区二区免费不卡 | 日韩av中文在线观看| 蜜臀av一区二区| 国产精品一级片| 91视频在线看| 欧美精品一二三区| 久久久另类综合| 亚洲婷婷在线视频| 石原莉奈一区二区三区在线观看| 蜜桃av一区二区| 成人黄动漫网站免费app| 成人手机在线视频| 婷婷激情综合网| 韩国女主播一区二区三区| 岛国一区二区三区| 欧美影视一区在线| 精品国产伦理网| 成人欧美一区二区三区白人| 亚洲成av人片一区二区| 国产综合成人久久大片91| 99久精品国产| 欧美一区2区视频在线观看| 久久精品一区四区| 亚洲一区二区三区四区五区中文| 青青草伊人久久| 成人的网站免费观看| 欧美日韩国产综合久久 | 捆绑变态av一区二区三区| 成人v精品蜜桃久久一区| 欧美日韩免费不卡视频一区二区三区| 精品国产免费一区二区三区四区| 中文字幕一区二区三区在线播放| 日本在线不卡视频| 91蜜桃免费观看视频| 欧美大白屁股肥臀xxxxxx| 亚洲欧洲日本在线| 狠狠色狠狠色综合| 在线免费视频一区二区| 欧美极品xxx| 蜜桃一区二区三区在线观看| 91视频观看免费| 久久久久国产精品麻豆| 日韩国产高清影视| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美日韩国产综合视频在线观看| 欧美国产视频在线| 久久国产精品99精品国产| 欧美色倩网站大全免费| 国产精品视频在线看| 蜜桃av一区二区三区| 欧美群妇大交群中文字幕| 中文字幕一区二| 国产黄色成人av| 日韩精品在线网站| 午夜在线电影亚洲一区| 色呦呦日韩精品| 中文字幕av一区二区三区免费看| 青青草成人在线观看| 欧美日韩在线综合| 一卡二卡三卡日韩欧美| 99亚偷拍自图区亚洲| 欧美—级在线免费片| 国产盗摄精品一区二区三区在线 | 国产人妖乱国产精品人妖| 日本欧洲一区二区| 欧美日韩在线播| 夜夜嗨av一区二区三区| www.亚洲激情.com| 欧美韩国一区二区| 国产91精品免费| 久久免费的精品国产v∧| 免费成人在线视频观看| 欧美日韩成人高清| 亚洲高清视频中文字幕| 欧美三级日本三级少妇99| 亚洲男人的天堂网| 91色porny在线视频| 亚洲欧洲美洲综合色网| 97久久人人超碰| 1000部国产精品成人观看| 成人国产亚洲欧美成人综合网| 国产亚洲成aⅴ人片在线观看| 国产精品一区二区黑丝| 欧美国产1区2区| 成人黄色综合网站| 成人免费一区二区三区在线观看| 成人网男人的天堂| 亚洲女与黑人做爰| 91福利国产精品| 亚洲福中文字幕伊人影院| 在线播放中文字幕一区| 蜜臀久久久99精品久久久久久| 精品日韩一区二区三区| 国产一区二区三区久久悠悠色av | 成人免费精品视频| 亚洲天堂免费在线观看视频| 日本精品一区二区三区高清| 亚洲成人在线免费| 日韩欧美国产午夜精品| 国产老女人精品毛片久久| 中文一区在线播放| 91国偷自产一区二区三区成为亚洲经典| 一区二区三区四区精品在线视频 | 中文字幕一区不卡| 欧美日韩综合不卡| 极品尤物av久久免费看| 欧美国产一区二区| 欧美在线视频你懂得| 视频一区视频二区在线观看| 精品福利在线导航| 成人av手机在线观看| 亚洲成人黄色影院| 欧美变态口味重另类| av在线播放成人| 日本视频一区二区三区| 国产精品私房写真福利视频| 欧美色网站导航| 国产在线一区二区| 亚洲精品午夜久久久| 日韩精品一区二区三区四区视频| 国产精华液一区二区三区| 亚洲狠狠爱一区二区三区| 精品福利一区二区三区| 色88888久久久久久影院按摩| 久久国产尿小便嘘嘘| 亚洲最色的网站| 欧美高清www午色夜在线视频| 在线看日本不卡| 欧美精品久久99久久在免费线 | 日本精品视频一区二区| 天天综合天天综合色| 久久久久久免费网| 欧美日韩色综合| 福利一区二区在线观看| 午夜久久福利影院| 欧美激情综合网| 欧美一级日韩不卡播放免费| 99精品久久99久久久久| 美女任你摸久久| 亚洲综合一区二区三区| 国产日韩成人精品| 91精品在线免费观看| 99r国产精品| 国产精品456露脸| 日韩激情在线观看| 亚洲精品写真福利| 国产欧美精品在线观看| 日韩欧美在线综合网| 91官网在线观看| 成av人片一区二区| 狠狠色丁香久久婷婷综合_中| 亚洲综合在线电影| 一区在线观看视频| 久久蜜臀精品av| 日韩欧美中文一区二区| 水蜜桃久久夜色精品一区的特点| 国产一区二区三区国产| 99久久伊人精品| 亚洲成人三级小说| 欧美午夜精品一区二区三区| 亚洲六月丁香色婷婷综合久久 | 国产成人免费网站| 亚洲国产一区视频| 亚洲视频资源在线| 欧美国产成人在线| 日本一区二区三区视频视频| 欧美xxxx老人做受| 日韩一区二区不卡| 欧美狂野另类xxxxoooo| 欧美性大战久久久久久久蜜臀| 99国内精品久久| 99国产欧美另类久久久精品| 99久久久久久99|