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

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

?? mxd_sdk_api.c

?? MXD_SDK_Ax.x.xxx :MXD1320 軟件開發(fā)包源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
	videoStreamThd = (psDemodProperty->m_sCbSetting.m_DtmbDataThrd) >> 1;

	 /* Init hard interrupt pin */
	 /* m_IntType refer to hard interrupt pin */
	 if( 1 == ((PDEVICE_PROPERTY_S)hDevice)->m_sDemod.m_IntType ) 
	 {
	 	intCtrlVal = (MXD_U8)((((PDEVICE_PROPERTY_S)hDevice)->m_sDemod.m_IntType)<<1) 
	 		| (((PDEVICE_PROPERTY_S)hDevice)->m_sDemod.m_IntLevel);
	 	DDS_WriteRegFields( hDevice,
	 						COMMON_HIC_INT_CTRL_REG,
	 						0x0, 
	 						2,
		 					intCtrlVal ); 	
	}
		
	/* clear interrupt */
	DDS_WriteReg( hDevice,  DTMB_TDP_INT_CLEAR_REG, 0xff );

	/* unmask interrupt */
	DDS_WriteReg( hDevice,  DTMB_TDP_INT_MASK_REG, 0x00 );

	/*
	 * Config HIC 
	 */
	DDS_WriteReg( hDevice,  DTMB_SDI_SDRM_START_ADDR_H_REG, (MXD_U8)(DTMB_SDI_SDRM_START_ADDR_VAL>>8) );
	DDS_WriteReg( hDevice,  DTMB_SDI_SDRM_START_ADDR_L_REG, (MXD_U8)DTMB_SDI_SDRM_START_ADDR_VAL );
    
	DDS_WriteReg( hDevice,  DTMB_HIC_SDRM_ROW_BADDR_H_REG, (MXD_U8)(DTMB_HIC_SDRM_ROW_BADDR_VAL>>8) );
	DDS_WriteReg( hDevice,  DTMB_HIC_SDRM_ROW_BADDR_L_REG, (MXD_U8)DTMB_HIC_SDRM_ROW_BADDR_VAL );
    
	DDS_WriteReg( hDevice,  DTMB_HIC_SDRM_ROW_EADDR_H_REG, (MXD_U8)(DTMB_HIC_SDRM_ROW_EADDR_VAL>>8) );
	DDS_WriteReg( hDevice,  DTMB_HIC_SDRM_ROW_EADDR_L_REG, (MXD_U8)DTMB_HIC_SDRM_ROW_EADDR_VAL);

	DDS_WriteReg( hDevice,  DTMB_HIC_DATA_THLD_H_REG, (MXD_U8)(videoStreamThd>>16) );
	DDS_WriteReg( hDevice,  DTMB_HIC_DATA_THLD_M_REG, (MXD_U8)(videoStreamThd>>8) );
	DDS_WriteReg( hDevice,  DTMB_HIC_DATA_THLD_L_REG, (MXD_U8)(videoStreamThd) );  	

       /* Set tuner related regs */
        if( 0 == psDeviceProperty->m_sTuner.m_LifOrNZif )/*the tuner is ZIF*/
        {
                psTunerProperty->m_IfRate = 6;  
				DDS_WriteReg( hDevice,  DTMB_TDP_BSL_REG, 0x4d); 
        }
        else
        {
                psTunerProperty->m_IfRate = 6;
				DDS_WriteReg( hDevice,  DTMB_TDP_BSL_REG, 0x6d); 
        }

	switch(psTunerProperty->m_IfRate)
	{
		case 2:
		{
			ifType = (psDeviceProperty->m_sTuner.m_LifOrNZif<<2);
			break;
		}
		case 4:
		{
			ifType = (psDeviceProperty->m_sTuner.m_LifOrNZif<<2)|0x1;
			break;
		}
		case 6:
		{
			ifType = (psDeviceProperty->m_sTuner.m_LifOrNZif<<2)|0x2;
			break;
		}
		default:
		return MXD_RTN_FAIL;
	}
	DDS_WriteReg( hDevice, DTMB_TDP_IF_TYPE_REG, ifType );
	DDS_WriteReg( hDevice,  DTMB_TDP_RTO_INT_REG, 0x4 );
	DDS_WriteReg( hDevice,  DTMB_TDP_RTO_FRT_H_REG, 0x55 );
	DDS_WriteReg( hDevice,  DTMB_TDP_RTO_FRT_M_REG, 0x9a );
	DDS_WriteReg( hDevice,  DTMB_TDP_RTO_FRT_L_REG, 0xaf );	

	DDS_WriteReg( hDevice,  COMMON_EXTERNAL_CLK_GATE_EN_REG, CLOCK_GATING_EN );	

	return MXD_RTN_OK;
    	  
}/* end of DTMB_InitDevice( ) */
 
/*!
 * Start device to reception DTMB signal,begin synchronization.
 *
 * \param hDevice:  [in] Device handle
 *
 * \return Return code by MXD_RTN_CODE_E enumeration.
 *
 * \remarks
 *
 */
MXD_RTN_CODE_E MXD_API DTMB_StartDevice( IN HMXDDEV hDevice )
{
	MXD_RTN_CODE_E eRtnCode = MXD_RTN_OK;
	PDEVICE_PROPERTY_S psDeviceProperty;
	PDEMOD_PROPERTY_S psDemodProperty;
	
	psDeviceProperty = (PDEVICE_PROPERTY_S)hDevice;
	psDemodProperty = &psDeviceProperty->m_sDemod;


	DDS_WriteReg( hDevice,  DTMB_TDP_DU_H_REG, (MXD_U8)(psDeviceProperty->m_DU>>16) );
	DDS_WriteReg( hDevice,  DTMB_TDP_DU_M_REG, (MXD_U8)(psDeviceProperty->m_DU>>8) );
	DDS_WriteReg( hDevice,  DTMB_TDP_DU_L_REG, (MXD_U8)(psDeviceProperty->m_DU) );
	
	/* Set mtx table begin address */
	DDS_WriteReg( hDevice,  DTMB_HIC_MTX_ROW_EADDR_H_REG, (MXD_U8)(MTXTABLE_IN_SDRAM>>8) );
	DDS_WriteReg( hDevice,  DTMB_HIC_MTX_ROW_EADDR_L_REG, (MXD_U8)MTXTABLE_IN_SDRAM );

	DDS_WriteReg( hDevice,  DTMB_TDP_FO_MS_REG, 0x1); 
	DDS_WriteReg( hDevice,  DTMB_TDP_ZSP_MS_REG, 0x08);
	DDS_WriteReg( hDevice,  DTMB_TDP_ZSP_IS_REG, 0x80); 

	DDS_WriteReg( hDevice,  DTMB_TDP_Q_SCALE_REG, 0x40); 

	DDS_WriteReg( hDevice,  DTMB_TDP_CTS_RESULT_L_REG, 0x0);
	DDS_WriteReg( hDevice,  DTMB_TDP_CTS_RESULT_H_REG, 0x80);
	DDS_WriteReg( hDevice,  DTMB_TDP_FTT_MAX_FG_L_REG, 0x0);
	DDS_WriteReg( hDevice,  DTMB_TDP_FTT_MAX_FG_H_REG, 0x0); 

	DDS_WriteReg( hDevice,  DTMB_TDP_FID_PARA_REG, 0xfc); 
	DDS_WriteReg( hDevice,  DTMB_TDP_AFLT_TYPE_REG, 0xd); 

	DDS_WriteReg( hDevice,  DTMB_FDP_MUL_BSL_REG, 0x02); 
	DDS_WriteReg( hDevice,  DTMB_FDP_MC_BSL_REG, 0x1); 

	DDS_WriteReg( hDevice,  DTMB_TDP_PNUM_REG, 0x10); 

	DDS_WriteReg( hDevice,  DTMB_TDP_SET_ZERO_RANGE_REG, 0x10);
	DDS_WriteReg( hDevice,  DTMB_TDP_FTT_MIN_THD_REG, 0x1); 
	DDS_WriteReg( hDevice,  DTMB_CPE_PARA_REG, 0x09); 
	DDS_WriteReg( hDevice,  DTMB_CPE_THD_REG, 0x30); 
	DDS_WriteReg( hDevice, DTMB_TDP_IQREF_REG, 0x55 );

	DDS_WriteReg( hDevice,  DTMB_TDP_ZSP_MS_REG, 0x08); 
	DDS_WriteReg( hDevice,  DTMB_TDP_ZSP_IS_REG, 0x10); 

    if( 0x4 == psDeviceProperty->m_PnType )
    {
        DDS_WriteReg( hDevice,  DTMB_FDP_SCALE_REG, 0xb5); 
        DDS_WriteReg( hDevice,  DTMB_TDP_WORK_MODE_REG, 0x8 ); 
        DDS_WriteReg( hDevice,  DTMB_TDP_FTT_PARA_REG, 0xc8);
        DDS_WriteReg( hDevice,  DTMB_TDP_FTT_THD_REG, 0x20);
        DDS_WriteReg( hDevice,  DTMB_TDP_ZSP_PARA_REG, 0x18 );
    }
    else
    {
        DDS_WriteReg( hDevice,  DTMB_TDP_FTT_PARA_REG, 0xc6);
        DDS_WriteReg( hDevice,  DTMB_TDP_FTT_THD_REG, 0x5);
        DDS_WriteReg( hDevice,  DTMB_FDP_SCALE_REG, 0x7a); 
        DDS_WriteReg( hDevice,  DTMB_TDP_WORK_MODE_REG, 0x28 ); 
        if( psDeviceProperty->m_PnType<2 )
		{
			DDS_WriteReg( hDevice,  DTMB_TDP_ZSP_PARA_REG, 0x10 );
		}
		else
		{
			DDS_WriteReg( hDevice,  DTMB_TDP_ZSP_PARA_REG, 0x1c );
		}
    }

	/* Set para at different carrier mode */
	if( DEV_MODE_DTMB_MC == psDeviceProperty->m_eDevMode )	
	{
		DDS_WriteReg( hDevice,  DTMB_FDP_MUL_BSL_REG, 0x0); 
		DDS_WriteReg( hDevice,  DTMB_FDP_SC_DP_BSL_REG, 0x2); 
		DDS_WriteReg( hDevice,  DTMB_FDP_CARRIER_MODE_REG, 0x2);
		DDS_WriteReg( hDevice,  DTMB_FDP_FDI_WORK_MODE_REG, 0x2); 

	}
	else
	{	
		DDS_WriteReg( hDevice,  DTMB_TDP_AFLT_TYPE_REG, 0xd);
		DDS_WriteReg( hDevice,  DTMB_FDP_MUL_BSL_REG, 0x1); 
		DDS_WriteReg( hDevice,  DTMB_FDP_SDIV_BSL_REG, 0xd9); 
		DDS_WriteReg( hDevice,  DTMB_FDP_HW_DIV_THD_REG, 0x1); 
		DDS_WriteReg( hDevice,  DTMB_FDP_SC_DP_BSL_REG, 0x2); 
		DDS_WriteReg( hDevice,  DTMB_FDP_CARRIER_MODE_REG, 0x3);
		DDS_WriteReg( hDevice,  DTMB_FDP_FDI_WORK_MODE_REG, 0x3); 
	}  

	DDS_WriteReg( hDevice,  DTMB_CPE_THD_REG, 0x30 ); 
	DDS_WriteReg( hDevice,  DTMB_TDP_FTT_MIN_THD_REG, 0x10 );
	DDS_WriteReg( hDevice,  DTMB_SDI_BYPASS_EN_REG, SDI_BYPASS_EN );

	/* set fec discard threshold*/ 
	DDS_WriteReg( hDevice,  DTMB_FEC_TOTAL_ERRNUM_RES_THD_L_REG, 0xff);
	DDS_WriteReg( hDevice,  DTMB_FEC_TOTAL_ERRNUM_RES_THD_H_REG, 0xff);

	DDS_WriteReg( hDevice,  DTMB_FEC_TOTAL_ERRNUM_DIS_THD_REG, 0x5);
	DDS_WriteReg( hDevice,  DTMB_FEC_DISCARD_CONFIG_REG, 0x0f);

	DDS_WriteReg( hDevice,  DTMB_FEC_CONFIG_REG, 0x10 ); 
	DDS_WriteReg( hDevice,  DTMB_FDP_ABC_OFFSET_REG, 0x80 );
	/* Added for version20080113*/
	DDS_WriteReg( hDevice,  DTMB_TDP_AGC_AFLT_PARA_REG, 0x73 );
	DDS_WriteReg( hDevice,  DTMB_TDP_CYPT_STEP_H_REG, 0x00 );
	DDS_WriteReg( hDevice,  DTMB_TDP_CYPT_STEP_L_REG, 0x10 );
	DDS_WriteReg( hDevice,  DTMB_TDP_FTT_FAIL_CNT_REG, 0x02 );
	DDS_WriteReg( hDevice,  DTMB_TDP_ZSP_PARA_REG, 0x10 ); 
	
	DDS_WriteReg( hDevice,  DTMB_TDP_CTS_RS_CONFIG_REG, 0x0 );
	DDS_WriteReg( hDevice, DTMB_TDP_AGC_PARA_REG, 0xb4); /*pwm enable*/

	DDS_WriteReg( hDevice,  DTMB_TDP_INIT_FO_H_REG, (MXD_U8)(psDeviceProperty->m_InitFo>>16));
	DDS_WriteReg( hDevice,  DTMB_TDP_INIT_FO_M_REG, (MXD_U8)(psDeviceProperty->m_InitFo>>8));	
	DDS_WriteReg( hDevice,  DTMB_TDP_INIT_FO_L_REG, (MXD_U8)(psDeviceProperty->m_InitFo));
	
	DDS_WriteReg( hDevice,  DTMB_TDP_INIT_REG, 0x1 );
    
	return eRtnCode;   	  
}/* end of DTMB_StartDevice( ) */ 
 

/*!
  * Check whether  TPS is stable, if not return fail .
  *
  * \param hDevice:		[in] Device handle
  * \param milliseconds:[in] Check the status after delay( unit: ms )
  *
  * \return Return code by MXD_RTN_CODE_E enumeration.
  *
  * \remark null
  *
  */
MXD_RTN_CODE_E MXD_API DTMB_CheckTpsVal( IN HMXDDEV hDevice )
{
	MXD_RTN_CODE_E eRtnCode = MXD_RTN_OK;	
	MXD_U8 regVal = 0;

	MXD_U8 checkTpsVal;
	MXD_U8 tpsSumI, tpsSumQ;
	MXD_S16 tpsSumIVal,tpsSumQVal;

	DDS_ReadReg( hDevice,  DTMB_TDP_TPS_REG, &regVal );

	/* check whether tps value is reasonalbe  */
	if((regVal < 0x30) && !(regVal&0x10))
	{
		checkTpsVal = regVal&0x0f;
		if( (checkTpsVal != 0x3) && 
				(checkTpsVal != 0x6) && 
				(checkTpsVal != 0x9) && 
				(checkTpsVal != 0xa) && 
				(checkTpsVal != 0xb))
		{	
			DDS_WriteRegFields( hDevice,  DTMB_MISC_READ_FREEZE_REG, MXD_BIT3, 1, 0x1 );	
			DDS_ReadReg( hDevice,  DTMB_TDP_TPS_SUM_I_REG, &tpsSumI );
			DDS_ReadReg( hDevice,  DTMB_TDP_TPS_SUM_Q_REG, &tpsSumQ );
			if( tpsSumI&TDP_TPS_SUM_I_MINUS_SET )
			{
				tpsSumIVal = 256 - tpsSumI;
			}
			else
			{
				tpsSumIVal = tpsSumI;
			}
			if( tpsSumQ&TDP_TPS_SUM_Q_MINUS_SET )
			{
				tpsSumQVal = 256 - tpsSumQ;
			}
			else 
			{
				tpsSumQVal = tpsSumQ;
			}

			if(( tpsSumIVal <= (tpsSumQVal*3)/4  ) 
				|| ( tpsSumQVal <= (tpsSumIVal*3)/4 ) )
			{
				OAL_DebugPrint(MXD_ULTRA_TRACE, "DTMB_CheckTpsVal:: error! TPS sum I&Q is not equal !!___I:%d, Q: %d\n", tpsSumIVal, tpsSumQVal);
				eRtnCode = MXD_RTN_FAIL;
			}
			else
			{
				OAL_DebugPrint(MXD_ULTRA_TRACE, "DTMB_CheckTpsVal:: OK!  TPS is 0x%x\n", regVal);
				return MXD_RTN_OK;
			}
		}
		else
		{
			OAL_DebugPrint(MXD_ULTRA_TRACE, "DTMB_CheckTpsVal:: error!  TPS is not reasonalbe__0x%x!!\n", regVal);
			eRtnCode = MXD_RTN_FAIL;
		}
	}		
	return eRtnCode;
}/* end of DTMB_CheckTpsVal( ) */	


 /*!
  * Query whether signal is locked or not. If synced, return MXD_RTN_OK, else return MXD_RTN_FAIL.
  *
  * \param hDevice:		[in] Device handle
  * \param milliseconds:[in] Check the status after delay( unit: ms )
  *
  * \return Return code by MXD_RTN_CODE_E enumeration.
  *
  * \remark null
  *
  */
MXD_RTN_CODE_E MXD_API DTMB_IsSignalSynced(
				 	IN HMXDDEV hDevice,
 					IN MXD_U32 milliseconds )
{
	MXD_RTN_CODE_E eRtnCode = MXD_RTN_OK;	
	MXD_U8 regVal = 0;

	eRtnCode = DTMB_IsTpsOk( hDevice, milliseconds );
	if( MXD_SUCCESS(eRtnCode) )
	{
		eRtnCode = DTMB_CheckTpsVal( hDevice );
		return eRtnCode;
	}
	OAL_DebugPrint(MXD_ULTRA_TRACE, "DTMB_IsSignalSynced:: err!  TPS is 0x%x\n",regVal);
	return MXD_RTN_FAIL;
}/* end of DTMB_IsSignalSynced( ) */	
 

/*!
  * Start DTMB data reception.
  *
  * \param hDevice:		[in] Device handle
  * \param tpsId:			[in] TPS to be configuated for demodulation.
  *
  * \return Return code by MXD_RTN_CODE_E enumeration.
  *
  * \remark null
  *
  */
MXD_RTN_CODE_E MXD_API DTMB_StartStream(
 					IN HMXDDEV hDevice,
 					IN MXD_U8 tpsId )
{
	MXD_U8 qamBSL[16] = {	0x24,0x2c,0x24,0x24,
							0x22,0x23,0x24,0x23,
							0x23,0x24,0x24,0x24,
							0x24,0x2c,0x2d,0x2d};
	MXD_U8 iterNum[3][5] = { 
							{0xeb,0xd2,0xca,0xd2,0xeb},
							{0xeb,0xd4,0xcc,0xd2,0xeb},
							{0xea,0xd3,0xca,0xcd,0xeb}};
	MXD_U8 regVal;
	MXD_U8 pnType;
	MXD_U8 qamType;
	MXD_RTN_CODE_E eRtnCode = MXD_RTN_OK;
	PDEVICE_PROPERTY_S psDeviceProperty;

	psDeviceProperty = (PDEVICE_PROPERTY_S)hDevice;

	/*
	 * flush HIC buffer and clear data interrupt 
	 */
	DDS_WriteReg( hDevice,  DTMB_HIC_FLUSH_RELOAD_REG, 0x01 );
	DDS_WriteReg( hDevice,  DTMB_HIC_INT_CLEAR_REG, 0x07 );
	DDS_WriteReg( hDevice,  DTMB_HIC_PID_CONTROL_REG, 0x0); 
	
	DDS_ReadReg( hDevice,  DTMB_TDP_TPS_REG, &regVal );
	regVal &= 0x0f;
	DDS_WriteReg( hDevice,  DTMB_FDP_QAM_BSL_REG, qamBSL[regVal] );

	/* config system info related register */
	DDS_WriteReg( hDevice,  DTMB_TDP_SYS_INFO_CFG_REG, tpsId );
	qamType = (tpsId>>3)&0x07;
	/* set max iter number according to QAM type */
	switch(psDeviceProperty->m_PnType)
	{
		case 0:
		case 1:
			pnType = 0;
			break;
		case 2:
		case 3:
			pnType = 1;
			break;
		case 4:
			pnType =2;
			break;
		default:
            eRtnCode = MXD_RTN_FAIL;
			break;
	}

	DDS_WriteReg( hDevice,  DTMB_FEC_ITER_MAX_NUM_REG, (MXD_U8)(iterNum[pnType][qamType]-1) );

	/* disable system info de-mapping and enable data path */
	if( DEV_MODE_DTMB_SC == psDeviceProperty->m_eDevMode )
	{
		DDS_WriteReg( hDevice,  DTMB_FDP_FDI_WORK_MODE_REG, 0x05 );
	}
	else
	{
		DDS_WriteReg( hDevice,  DTMB_FDP_FDI_WORK_MODE_REG, 0x04 );
	}
	
	return eRtnCode;
}/* end of DTMB_StartStream( ) */ 
 
 /*!
  * Stop DTMB data reception.
  *
  * \param hDevice:		[in] Device handle
  *
  * \return Return code by MXD_RTN_CODE_E enumeration.
  *
  * \remark null
  *
  */
MXD_RTN_CODE_E MXD_API DTMB_StopStream( IN HMXDDEV hDevice )
{
	MXD_RTN_CODE_E eRtnCode = MXD_RTN_OK;
	
	/* Disable the whole chip DTMB data path */
	DDS_WriteReg( hDevice,  DTMB_FDP_FDI_WORK_MODE_REG, 0x0 );

	DDS_WriteReg( hDevice,  DTMB_HIC_PID_CONTROL_REG, 0x2);

	DDS_WriteReg( hDevice,  DTMB_RESET_ALL_REG, 0x00 );
	OAL_Sleep(1);
	DDS_WriteReg( hDevice,  DTMB_RESET_ALL_REG, 0xff );

	/* Flush the on-chip HIC data buffer */
	DDS_WriteReg( hDevice,  DTMB_HIC_FLUSH_RELOAD_REG, 0x01 );

	return eRtnCode;
}/* end of DTMB_StopStream( ) */  


 /*!
  * Query the SNR of DTMB signal.
  *
  * \param hDevice:		[in] Device handle
  *
  * \return SNR value.
  *
  * \remark null
  *
  */
MXD_U32 MXD_API DTMB_GetSnr( IN HMXDDEV hDevice )
{
	MXD_U8 i;
	MXD_U8 regVal = 0;
	MXD_U8 stepVal = 0;
	MXD_U8 agcVal = 0;
	MXD_U32 agcSum = 0;
	MXD_S8 snrVal;
	MXD_U8 iterNum = 0;
	MXD_U8 iterRefNum[16] = {30,15,30,30,
							30,30,30,15,
							15,10,10,10,
							10,8,8,8};

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu精品一区二区在线观看| 国产免费成人在线视频| 成人网在线免费视频| 午夜在线成人av| 国产精品美女久久久久久2018 | 91福利视频网站| 久久精品国产亚洲一区二区三区| 1区2区3区国产精品| 日韩精品一区二区三区老鸭窝| 99久久777色| 国产麻豆成人传媒免费观看| 一区二区免费看| 中文字幕五月欧美| 久久蜜桃香蕉精品一区二区三区| 欧美色综合网站| 99久久精品国产毛片| 国产一区在线观看麻豆| 日韩不卡免费视频| 亚洲一区二区视频| 亚洲丝袜精品丝袜在线| 久久中文字幕电影| 日韩免费成人网| 欧美裸体bbwbbwbbw| 色婷婷综合久久久中文一区二区| 国产成人夜色高潮福利影视| 久久精品国产精品亚洲精品| 亚洲成精国产精品女| 亚洲蜜臀av乱码久久精品| 国产农村妇女精品| 国产日韩影视精品| 久久九九久精品国产免费直播| 日韩一区二区三区三四区视频在线观看| 一本久久a久久免费精品不卡| www.成人在线| 91麻豆国产在线观看| av一区二区三区四区| 成人精品一区二区三区中文字幕| 国产乱人伦精品一区二区在线观看 | 欧美精品一区二区三区蜜臀 | 日韩精品一区二区三区在线 | 国产精品激情偷乱一区二区∴| 2021国产精品久久精品| 日韩免费看的电影| 久久午夜免费电影| 久久网站最新地址| 国产精品灌醉下药二区| 中文字幕亚洲成人| 亚洲综合一二三区| 水野朝阳av一区二区三区| 日产国产欧美视频一区精品| 日韩在线a电影| 久久不见久久见免费视频7| 久久99精品久久只有精品| 国产福利一区二区三区视频| 国产成人8x视频一区二区| 福利一区二区在线观看| 91亚洲国产成人精品一区二三| www.综合网.com| 欧美性生活一区| 日韩一区国产二区欧美三区| 久久久亚洲精华液精华液精华液 | 日本韩国一区二区| 欧美日韩三级在线| 精品剧情在线观看| 国产精品不卡一区二区三区| 亚洲一卡二卡三卡四卡五卡| 日本少妇一区二区| 国产精选一区二区三区| 成人久久18免费网站麻豆| 色av成人天堂桃色av| 欧美日本一区二区三区| 久久中文字幕电影| 亚洲精品福利视频网站| 久久国产人妖系列| 豆国产96在线|亚洲| 色诱视频网站一区| 欧美电影免费观看高清完整版在线观看 | 亚洲三级电影网站| 蜜臀av性久久久久蜜臀aⅴ| 国产成人一区在线| 欧美丰满一区二区免费视频| 国产欧美综合在线观看第十页| 一区二区三区在线免费播放| 日韩精品国产精品| 不卡一区二区三区四区| 欧美日韩成人综合天天影院| 国产三级精品三级| 午夜电影一区二区三区| 国产.精品.日韩.另类.中文.在线.播放| 色婷婷久久久综合中文字幕 | 亚洲综合一区在线| 国内欧美视频一区二区| 欧美中文字幕久久| 欧美国产成人精品| 日本成人在线看| 色婷婷综合久久久久中文一区二区 | 极品销魂美女一区二区三区| 97国产一区二区| 2017欧美狠狠色| 日韩**一区毛片| 色偷偷成人一区二区三区91| 久久久久久亚洲综合影院红桃 | 欧美草草影院在线视频| 一区二区三区加勒比av| 国产一区二区不卡| 在线播放亚洲一区| 成人av免费在线| 日韩欧美一级二级三级| 亚洲第四色夜色| 97久久精品人人澡人人爽| 久久精品日韩一区二区三区| 亚洲福利视频三区| 色婷婷综合在线| 综合分类小说区另类春色亚洲小说欧美 | 久久精品欧美一区二区三区麻豆| 亚洲国产wwwccc36天堂| 91麻豆精品一区二区三区| 国产农村妇女精品| 国产一区二区三区香蕉| 日韩一区二区三区高清免费看看| 一区二区成人在线| 91精彩视频在线| 亚洲欧美一区二区三区极速播放| 国产麻豆91精品| 久久久久久久电影| 国产精品77777竹菊影视小说| 91精品国产乱| 欧美aⅴ一区二区三区视频| 欧美在线999| 亚洲第一主播视频| 欧美美女一区二区在线观看| 亚洲一区二区三区美女| 欧美日韩午夜在线| 亚洲福利一区二区三区| 欧美日韩一区成人| 午夜电影网一区| 日韩一区二区三区观看| 久久草av在线| 国产亚洲欧美日韩日本| 成人黄色av网站在线| 国产精品久久久久久久久久久免费看| 成人免费观看男女羞羞视频| 中文字幕av免费专区久久| 国产91丝袜在线播放0| 欧美国产视频在线| 99视频有精品| 一区二区欧美在线观看| 欧美另类z0zxhd电影| 日本成人中文字幕| 久久午夜电影网| 成人a免费在线看| 亚洲精品国产无套在线观| 精品视频1区2区3区| 日韩精品一二三| 26uuu另类欧美亚洲曰本| 风间由美中文字幕在线看视频国产欧美 | 蜜桃在线一区二区三区| 久久亚洲精华国产精华液| 国产.欧美.日韩| 亚洲精品美腿丝袜| 在线综合亚洲欧美在线视频| 国产一区福利在线| 亚洲色图都市小说| 在线综合亚洲欧美在线视频| 极品瑜伽女神91| 亚洲四区在线观看| 91麻豆精品国产91久久久久| 精东粉嫩av免费一区二区三区| 国产精品日韩成人| 欧美日韩综合色| 国产乱妇无码大片在线观看| 最近日韩中文字幕| 91精品国产入口在线| 国产成人在线观看免费网站| 一区二区三区精品| 久久婷婷成人综合色| 91福利精品视频| 久久97超碰色| 亚洲一区二区三区四区在线观看| 精品国产精品网麻豆系列| av男人天堂一区| 久久国产麻豆精品| 亚洲精品高清在线观看| 2020国产成人综合网| 欧美主播一区二区三区美女| 国产一区二区三区最好精华液| 亚洲激情综合网| 久久欧美一区二区| 欧美视频一区在线观看| 国产精品18久久久久| 亚洲一区二区视频在线观看| 日本一区二区三区dvd视频在线| 欧美日韩精品综合在线| 处破女av一区二区| 日本美女视频一区二区| 专区另类欧美日韩| 国产欧美一区二区精品性| 9191成人精品久久| 在线亚洲高清视频| 成人国产精品免费|