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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fmrda5800_1_5.c

?? RDA5800芯片代碼
?? C
字號:
//1.0 , 04/16/2007, lilin, RDA
//1.1 , 06/01/2007, lilin, RDA, insert 50ms delay in FmWaitSTC1 subprogram.
//1.2 , 06/22/2007, lilin, RDA, add stopseek and filter false station
//1.3 , 07/29/2007, lilin, RDA, move filter false station function into FmSeek, remove FmSearch, FmWaitSTC1_stopseek
//1.4 , 08/13/2007, lilin, RDA, use seek_singlestep function if want to display incremetal frequency station
//1.5 , 08/27/2007, lilin, RDA, adjust seek time to minimize, use delay 100ms to replace polling STC

#define     	FMRDA5800_GLOBALS

#include "FMRDA5800.h"


//Globals
XWORD FMshadowReg[45];
XWORD FMseekChannels[FMCHANNELSMAX];

CWORD	cwFMDefault[]={
0x0000,
0x0000,	
0xd881,	//0x02
0x6300,
0x4400,	//0x04
0x10ff, //0x13ff, lilin, 06/22, 0x10f8, //0x05
0x0000,
0x00cd,
0x0096,
0x0020,
0x4163,
0x0806,
0x5800,
0x5800,
0x5800,
0x5800,
0x4c17,	//lilin, 08/13, seek_singlestep, 0x4817,
0x20a2,
0x0000,
0x000f,
0x06de,
0xecc0,
0x0200,
0x5383,
0x95a4,
0xe848,
0x0500,	//0x0500, lilin, 06/22, 0x0500,
0x00a4, //0x00a4, lilin, 06/22, 0x00a4,
0x889b,
0x0d84,
0x4f04,
0x8832,
0x7f71,
0x0660,
0x4010,
0x6002,
0x1808,
0x6458,
0x787f,
0x0100,
0xc040,
0xc020,
0x0024,
0x0400,
0x0020,
};

//================================================================
WORD FmChanToFreq(BYTE channel) large
{
	WORD channelSpacing;
	WORD bottomOfBand;
	WORD frequency;

	if ((FMshadowReg[3] & 0x0002) == 0x0000) 
		bottomOfBand = 875;
	else 	
		bottomOfBand = 760;
	if ((FMshadowReg[3] & 0x0001) == 0x0000) 
		channelSpacing = 1;
	else if ((FMshadowReg[5] & 0x0001) == 0x0001) 
		channelSpacing = 2;
	else 
		channelSpacing = 1;

	frequency = (bottomOfBand + channelSpacing * channel);
	return (frequency);
}


//================================================================
WORD FmFreqToChan(WORD frequency) large 
{
	WORD channelSpacing;
	WORD bottomOfBand;
	WORD channel;

	if ((FMshadowReg[3] & 0x0002) == 0x0000) 
		bottomOfBand = 875;
	else 	
		bottomOfBand = 760;
	if ((FMshadowReg[3] & 0x0001) == 0x0000) 
		channelSpacing = 1;
	else if ((FMshadowReg[5] & 0x0001) == 0x0001) 
		channelSpacing = 2;
	else 
		channelSpacing = 1;

	channel = (frequency - bottomOfBand) / channelSpacing;
	return (channel);
}


//================================================================
//BYTE FmWaitSTC1(void) large
//{
//#if(WAITGPIO2)
//
//	WORD i;
//	
//	WAIT_FOR_GPIO2();
//
//	//for(i=0x2000;i>0;i--);
//	delay 70ms ;		//lilin, 06/22, change the delay to 70ms 
//	
//	return(1);
//	
//#else
//
//	BYTE readData8[2];
//
//	do
//	{	
//		//!!!!! lilin add, 06/01/2007
//		//for(i=0x2000;i>0;i--) ;	//lilin add, 06/01/2007, insert delay in continous polling STC, 50ms or 100ms is preferable
//		delay 70ms ;		//lilin, 06/22, change the delay to 70ms		
//		if(i2c_rd(I2C_FM,I2C_FM_RD_DATA,2,readData8)==0) return(0);
//		//lilin, 08/13, change to software seek
//		//lilin, 06/22, add to show readchan
//		//READCHAN = readData8[1];
//		
//		//lilin, 08/13, change to software seek
//		//if(STOPSEEK)		//when user press button
//		//  FmStopSeek(seekDirection);
//		  			
//	}while((readData8[0]&0x40)==0); 
//	
//	return(1);
//			
//#endif
//}
//
//
//================================================================
//lilin, 08/13, change to software seek
//lilin, 06/22, set SEEKTH=0 to stop seek operation
/*
BYTE FmStopSeek(BYTE seekDirection)  
{
	BYTE writeData8[8];
	
	//set seek and seekup bit as in FmSeek 		
	if(seekDirection == 0) 
		writeData8[0] = ((FMshadowReg[2]>>8) | 0x01);	// seek down
	else 
		writeData8[0] = ((FMshadowReg[2]>>8) | 0x03); 	// seek up

	writeData8[1] = (FMshadowReg[2]);
	writeData8[2] = (READCHAN);				//Tune to channel that seek operation just on 
	writeData8[3] = (FMshadowReg[3]);
	writeData8[4] = (FMshadowReg[4] >> 8);
	writeData8[5] = (FMshadowReg[4]);
	writeData8[6] = (0x00);					//set SEEKTH=0 to stop seek operation
	writeData8[7] = (FMshadowReg[5]);
		
	if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,8,writeData8)==0) return(0);
	
	return(1);
}
*/


//================================================================
//BYTE FmWaitSTC0(void) large
//{
//	WORD i;
//	//for(i=0x2000;i>0;i--) ;	//lilin note, 07/03/27, this timer should longer than 50ms
//	delay 70ms ;		//lilin, 06/22, change the delay to 70ms
//	
//	return(1);
//}


//================================================================
BYTE FmInit(void) large
{

	WORD i,j;
	XBYTE writeData8[86],xbTemp;		

	I2C_FM_SEN_1();
	I2C_FM_RST_0();	
	_nop_();
	_nop_();
	_nop_();
	I2C_FM_RST_1();	
	_nop_();
	_nop_();
	_nop_();

	
	for(xbTemp = 0; xbTemp < 45; xbTemp++)
		FMshadowReg[xbTemp] = cwFMDefault[xbTemp];
		
	//lilin, for wait 0.5s after enable RCLK
	writeData8[0] = 0xd8;		//0x02   0xd881
	writeData8[1] = 0x81;		//0x81;		
	
	if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);

#if(DCXO)	
	//wait 500ms for RCLK stable,
	//for(i=0x500;i>0;i--)	
	//	for(j=0x500;j>0;j--) ; 	//wait 500ms for RCLK stable
	delay 500ms; 			//lilin, 06/22, not specify how to get 500ms delay
#endif		
	
	for(xbTemp = 0; xbTemp < 43; xbTemp++)
	{
		writeData8[xbTemp*2] = (FMshadowReg[xbTemp+2] >> 8);
		writeData8[xbTemp*2+1] = (FMshadowReg[xbTemp+2]);
	}
		
	if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,86,writeData8)) 
	{
	}
	else
	return (0);
	
	
	//lilin, Tune caused by write REG 03H just now
	//wait STC==1
	//if(FmWaitSTC1()==0) return(0);
	delay 100ms;
	
	//clear STC and lab_mode at the same time, from now only could access register 00H~0FH
	//writeData8[0] = 0xd0;		//0x02   0xd081
	//writeData8[1] = 0x81;		//0x81;		
	
	//if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);
	//guarantee STC=0	
	//if(FmWaitSTC0()==0) return(0);

}


//================================================================
BYTE FmTune(WORD channel) large
{
	BYTE readData8[32];
	BYTE writeData8[4];

 	writeData8[0] = 0xd0;		//0x02   0xd081
	writeData8[1] = 0x81;		
	
	writeData8[2] = channel; 	//0x03	 
	writeData8[3] = 0x00; 
	
	if(i2c_wr(I2C_FM,I2C_FM_WR_DATA,4,writeData8)==0) return(0);				
	
	//wait STC=1
	//if(FmWaitSTC1()==0) return(0);
	delay 100ms;
		
	//read REG0A&0B	
	#if(FMTEST)	
	if (i2c_rd(I2C_FM,I2C_FM_RD_DATA,32,readData8)==0) return(0);
	#else	
	if (i2c_rd(I2C_FM,I2C_FM_RD_DATA,4,readData8)==0) return(0);
	#endif	
	FMshadowReg[10] = readData8[0]*0x100 + readData8[1];
	FMshadowReg[11] = readData8[2]*0x100 + readData8[3];  
	#if(FMTEST)	
	FMshadowReg[12] = readData8[4]*0x100 + readData8[5];
	FMshadowReg[13] = readData8[6]*0x100 + readData8[7]; 
	FMshadowReg[14] = readData8[8]*0x100 + readData8[9];
	FMshadowReg[15] = readData8[10]*0x100 + readData8[11]; 
	FMshadowReg[0] = readData8[12]*0x100 + readData8[13];
	FMshadowReg[1] = readData8[14]*0x100 + readData8[15]; 
	FMshadowReg[2] = readData8[16]*0x100 + readData8[17];
	FMshadowReg[3] = readData8[18]*0x100 + readData8[19]; 
	FMshadowReg[4] = readData8[20]*0x100 + readData8[21];
	FMshadowReg[5] = readData8[22]*0x100 + readData8[23]; 
	FMshadowReg[6] = readData8[24]*0x100 + readData8[25];
	FMshadowReg[7] = readData8[26]*0x100 + readData8[27]; 
	FMshadowReg[8] = readData8[28]*0x100 + readData8[29];
	FMshadowReg[9] = readData8[30]*0x100 + readData8[31];
	#endif
	
	//clear STC
	//writeData8[0] = 0xd0;		//0x02   0xd081
	//writeData8[1] = 0x81;		//0x81;
	
	//if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);
	
	//wait STC=0	
	//if(FmWaitSTC0()==0) return(0);
	
	return(1);
	
}

		
//================================================================
//lilin, 08/13, use seek_singlestep function to easy display frequency station	
BYTE FmSingleSeek(BYTE seekDirection) large
{
	BYTE readData8[4];
	BYTE writeData8[8];
	
	//set seek bit		
	if(seekDirection == 0) 
		writeData8[0] = ((FMshadowReg[2]>>8) | 0x01);	// seek down
	else 
		writeData8[0] = ((FMshadowReg[2]>>8) | 0x03); 	// seek up
		
	writeData8[1] = FMshadowReg[2];
	
	if(i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);
	
	//wait STC=1
	//if(FmWaitSTC1()==0) return(0);
	delay 100ms;	
       			
	//clear STC
	//writeData8[0] = (FMshadowReg[2] >> 8);
	//writeData8[1] = (FMshadowReg[2]);
	//if(i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);
	
	//wait STC=0	
	//if(FmWaitSTC0()==0) return(0);
	
	return(1);
	
}
	
//================================================================	
BYTE FmSeek(BYTE seekDirection) large
{
	BYTE readData8[4];
	BYTE writeData8[8];
	BOOL fStopSeek=0;
	bool falseStation=0;
	
	do{
	        
	        fStopSeek=0;
	        falseStation=0;
	        
		if(FmSingleSeek(seekDirection)==0) return(0);
        	
		//read REG0A&0B	
		if(i2c_rd(I2C_FM,I2C_FM_RD_DATA,4,readData8)==0) return(0);	
		FMshadowReg[10] = readData8[0]*0x100 + readData8[1];
		FMshadowReg[11] = readData8[2]*0x100 + readData8[3];
		
		READCHAN = readData8[1];
		//check whether SF=1
		if((readData8[0]&0x20)!=0) falseStation=1;
		//check station RSSI again, if RSSI<SEEKTH, then falseStation, continue seek
		if(readData8[2] < (FMshadowReg[5]>>8)) falseStation=1;
		
		if(STOPSEEK) fStopSeek=1;	
				
	}while((falseStation==1)&&(fStopSeek==0));	
		
}


//================================================================
BYTE FmEnterSleep(void) large 
{
	BYTE writeData8[2];
	
	FMshadowReg[2] = 0xd080; //ENABLE = 0
	
	writeData8[0] = (FMshadowReg[2] >> 8);
	writeData8[1] = (FMshadowReg[2]);
	
	if(i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);
	
}


//================================================================
BYTE FmExitSleep(void) large
{
	
	BYTE readData8[4];
	BYTE writeData8[4];
	
	writeData8[0] = 0xd0;		//0x02   0xd081
	writeData8[1] = 0x81;		
	
	if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);

#if(DCXO)	
	//wait 500ms for RCLK stable,
	//for(i=0x500;i>0;i--)	
	//	for(j=0x500;j>0;j--) ; 	//wait 500ms for RCLK stable
	delay 500ms; 			//lilin, 06/22, not specify how to get 500ms delay
#endif		

 	writeData8[0] = 0xd0;		//0x02   0xd081
	writeData8[1] = 0x81;		
	
	//tune to orginal channel
	writeData8[2] = channel; 	//0x03	 
	writeData8[3] = 0x00; 
	
	if(i2c_wr(I2C_FM,I2C_FM_WR_DATA,4,writeData8)==0) return(0);				
	
	//wait STC=1
	//if(FmWaitSTC1()==0) return(0);
	delay 100ms;
		
	if (i2c_rd(I2C_FM,I2C_FM_RD_DATA,4,readData8)==0) return(0);
	FMshadowReg[10] = readData8[0]*0x100 + readData8[1];
	FMshadowReg[11] = readData8[2]*0x100 + readData8[3];  
	
	//clear STC
	//writeData8[0] = 0xd0;		//0x02   0xd081
	//writeData8[1] = 0x81;		//0x81;
	//if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);
	
	//wait STC=0	
	//if(FmWaitSTC0()==0) return(0);
	
	return(1);		

}


//================================================================
BYTE FmSetMute(void)
{
	BYTE writeData8[2];

	FMshadowReg[2] = 0x9881; 		// MUTE ENABLE = 1
		
	writeData8[0] = (FMshadowReg[2] >> 8);
	writeData8[1] = (FMshadowReg[2]);
		
	if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8))
	{	
		return (1);
	}
	else	
		return (0);
	
}


//================================================================
BYTE FmSetNoMute(void)
{
	BYTE writeData8[2];
	
	FMshadowReg[2] = 0xd081; 		// MUTE ENABLE = 0
		
	writeData8[0] = (FMshadowReg[2] >> 8);
	writeData8[1] = (FMshadowReg[2]);
		
	if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8))
	{	
		return (1);
	}
	else	
		return (0);
		
}


//================================================================
//lilin, 06/22, set tune_freq_diff when set volume, to avoid trigger tune
BYTE FmSetVolume(BYTE volume)
{
	BYTE writeData8[8];
	
	FMshadowReg[2] = 0xd091; 		// set tune_freq_diff, to avoid trigger tune
		
	writeData8[0] = (FMshadowReg[2] >> 8);
	writeData8[1] = (FMshadowReg[2]);
	writeData8[2] = (FMshadowReg[3] >> 8);
	writeData8[3] = (FMshadowReg[3]);
	writeData8[4] = (FMshadowReg[4] >> 8);
	writeData8[5] = (FMshadowReg[4]);
	writeData8[6] = (FMshadowReg[5] >> 8);
	writeData8[7] = (volume);
		
	if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,8,writeData8)==0) return(0);
	
	FMshadowReg[2] = 0xd081; 		// clear tune_freq_diff, for normal operation
		
	writeData8[0] = (FMshadowReg[2] >> 8);
	writeData8[1] = (FMshadowReg[2]);	
	
	if (i2c_wr(I2C_FM,I2C_FM_WR_DATA,2,writeData8)==0) return(0);

	return (1);
		
}


//================================================================
BYTE FmAutoSeek (BYTE *numChannels) large
{
	BYTE doneSeeking = 0;
	BYTE chanIndex;
	chanIndex = 0;
	
	// tune to the bottom of the band
	if (FmTune(0)==0) return(0);
	
	// seek through the band
	while (!doneSeeking) 
	{
		if (FmSeek(1)==0)
		{
			*numChannels = chanIndex;	
			return (0);
		}
		
		// done seeking if
		// at least one channel has been found previously (chanIndex != 0) and
		// current channel is lower frequency than previous channel
		// (indicating the seek has wrapped the band)
		if ((chanIndex != 0) && ((FMshadowReg[10]&0x00ff) <= (FMseekChannels[chanIndex-1]))) 
			doneSeeking = 1;
		// otherwise store the channel and keep seeking
		else
		{
			if((FMshadowReg[10]&0x2000)==0)
			{
			FMseekChannels[chanIndex] = (FMshadowReg[10]&0x00ff); 	// store chan
			chanIndex++; 					// increment channel index
			if (chanIndex == FMCHANNELSMAX) doneSeeking = 1;// max channels stored
			}
		}
	}
	
	*numChannels = chanIndex;
	if(chanIndex) 	return(1);
	else		return(0);
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色哟哟亚洲精品| 56国语精品自产拍在线观看| 亚洲sss视频在线视频| ww亚洲ww在线观看国产| 欧美日韩精品一区二区在线播放| 国产一区二区免费看| 丝袜亚洲另类欧美| 亚洲另类在线一区| 中文在线资源观看网站视频免费不卡| 欧美专区日韩专区| av不卡在线播放| 国产精品影视网| 日韩中文字幕不卡| 亚洲国产毛片aaaaa无费看| 中文字幕日韩欧美一区二区三区| 亚洲精品在线免费观看视频| 91精品在线观看入口| 欧美在线影院一区二区| 99国产麻豆精品| 成人免费va视频| 国产夫妻精品视频| 国内成人免费视频| 精品一区二区三区免费观看| 天堂在线一区二区| 午夜精品久久久久久久99樱桃| 17c精品麻豆一区二区免费| 久久久久久黄色| 2019国产精品| 欧美sm美女调教| 91精品国产乱| 欧美成人性战久久| 欧美videos大乳护士334| 欧美一级片在线观看| 欧美一区二区视频在线观看2020| 中文子幕无线码一区tr| 国产欧美日韩卡一| 欧美激情一区二区三区四区| 国产欧美视频在线观看| 欧美韩国日本综合| 国产精品色婷婷| 国产精品国模大尺度视频| 日本一区二区三区dvd视频在线| 国产亚洲一区字幕| 国产精品乱码妇女bbbb| 亚洲视频免费看| 一级中文字幕一区二区| 亚洲国产成人porn| 日韩一区精品字幕| 久久精品国产亚洲一区二区三区| 激情综合五月天| 国产一区二区三区免费观看 | 成人性生交大片免费看在线播放 | 欧美韩国日本不卡| 久久久影院官网| 国产视频视频一区| 亚洲一区在线看| 洋洋成人永久网站入口| 亚洲成人tv网| 日本美女一区二区三区| 韩国欧美国产1区| 丰满白嫩尤物一区二区| 色综合久久六月婷婷中文字幕| 色婷婷亚洲精品| 制服丝袜亚洲网站| 久久久亚洲国产美女国产盗摄| 国产三级久久久| 一区二区在线观看视频在线观看| 亚洲综合一区二区| 美国毛片一区二区| 不卡的电影网站| 欧美欧美欧美欧美| 久久久久久久久久看片| 亚洲欧美国产77777| 日韩精品一区第一页| 国产麻豆9l精品三级站| 91小视频在线| 91精品国产全国免费观看| 久久久久久97三级| 亚洲已满18点击进入久久| 久久精品国产亚洲aⅴ| 99国产精品视频免费观看| 91精品国产91久久久久久一区二区 | 视频一区中文字幕国产| 国产二区国产一区在线观看| 欧美日韩一区精品| 国产午夜精品一区二区三区视频| 一个色综合网站| 国产乱码精品一区二区三| 91久久精品一区二区三区| 亚洲精品在线观看网站| 亚洲永久免费视频| 粉嫩av一区二区三区| 欧美日韩大陆一区二区| 亚洲欧洲精品成人久久奇米网 | 国产成人午夜视频| 欧美剧情片在线观看| 中文一区在线播放| 美国毛片一区二区三区| 欧美视频一区二区在线观看| 日本一区二区不卡视频| 精彩视频一区二区三区| 欧美三区在线视频| 自拍偷拍欧美精品| 国产一区二区精品在线观看| 欧美夫妻性生活| 亚洲综合色噜噜狠狠| 风间由美一区二区三区在线观看 | 26uuu亚洲综合色欧美| 婷婷丁香激情综合| 日本高清不卡在线观看| 欧美激情一区二区三区四区 | 成人久久视频在线观看| 亚洲精品一区二区三区99| 午夜精品爽啪视频| 在线一区二区三区四区| 国产精品电影院| 国产电影一区二区三区| 精品国产在天天线2019| 日韩不卡免费视频| 欧美日本精品一区二区三区| 亚洲免费观看高清完整版在线观看 | 国产宾馆实践打屁股91| 26uuu亚洲| 国产一区二区调教| 久久午夜色播影院免费高清| 久久国产精品99精品国产 | 欧美日韩和欧美的一区二区| 亚洲激情第一区| 91蜜桃免费观看视频| 亚洲乱码国产乱码精品精98午夜 | 久久亚洲春色中文字幕久久久| 麻豆国产一区二区| 精品国内二区三区| 国产剧情一区二区| 欧美国产精品v| 成人午夜短视频| 国产精品精品国产色婷婷| 成人免费看的视频| 国产精品久久精品日日| 91小视频在线免费看| 亚洲综合色视频| 欧美日韩成人综合在线一区二区| 亚洲高清久久久| 欧美精品九九99久久| 视频精品一区二区| 欧美成人三级在线| 国产成人一级电影| 亚洲视频图片小说| 欧美日韩国产综合一区二区| 日本 国产 欧美色综合| 26uuu精品一区二区| 成人激情免费网站| 亚洲丝袜自拍清纯另类| 欧美性大战xxxxx久久久| 日韩激情一二三区| 久久久久久亚洲综合影院红桃| 成人免费av在线| 亚洲综合网站在线观看| 欧美一区二区福利视频| 国产99久久久精品| 亚洲综合久久久久| 欧美岛国在线观看| 99re视频这里只有精品| 亚洲成人先锋电影| 久久综合九色综合欧美亚洲| gogo大胆日本视频一区| 婷婷开心激情综合| 国产精品你懂的| 欧美丝袜第三区| 国产乱码精品1区2区3区| 亚洲乱码国产乱码精品精98午夜| 69av一区二区三区| 成人免费高清在线观看| 日韩精品一卡二卡三卡四卡无卡| 国产亚洲自拍一区| 欧美色图天堂网| 国产成人免费在线观看不卡| 亚洲自拍偷拍欧美| 精品国产伦一区二区三区观看方式 | 伊人一区二区三区| 久久综合久久综合亚洲| 欧美综合色免费| 国产成人午夜视频| 青娱乐精品视频| 亚洲人精品午夜| 精品国产乱码久久久久久牛牛 | 在线综合+亚洲+欧美中文字幕| 国产sm精品调教视频网站| 亚洲午夜久久久久中文字幕久| 久久网站最新地址| 欧美日韩精品一区二区天天拍小说| 国产xxx精品视频大全| 日日摸夜夜添夜夜添精品视频| 国产精品国产馆在线真实露脸| 欧美一区二区三区视频免费播放| av电影在线不卡| 国产a级毛片一区| 麻豆久久久久久久| 亚洲成人7777| 亚洲免费av高清|