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

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

?? marmdcnv.c

?? 是一個手機功能的模擬程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*==============================================================================
//	Copyright (C) 2001-2003 YAMAHA CORPORATION
//
//	Title		: MARMDCNV.C
//
//	Description	: MA-3 Realtime MIDI/GML Stream Converter Module.
//
//	Version		: 1.5.2.0
//
//	History		:
//				  May 8, 2001			1st try.
//				  July 16, 2001			Fix warnings.
//				  July 18, 2001			Add #BankMSB = 0x78/0x79.
//				  July 24, 2001			Fix MidVolTable.
//				  July 31, 2001			Change MonoModeOn message.
//				  September 18, 2001	Set MAX_MID_GAIN = -9[dB].
//				  Nobember 2, 2001		Change NoteOn(vel=0) => NoteOff().
//				  May 15, 2002			Add MasterVolume(Universal SysEx).
//============================================================================*/
#include "marmdcnv.h"

#define	MAX_MID_GAIN		76				/* - 9[dB] : 76             */
											/* -12[dB] : 64             */
											/* -18[dB] : 45             */

#define RMD_INTERVAL_CB		17

#define	DVA_NORMAL			0
#define	DVA_SIMPLE			2
#define	DVA_MONO			4
#define	DRUM_NORMAL			0
#define	DRUM_SIMPLE			1
#define	MELODY_NORMAL		0
#define	MELODY_SIMPLE		8
#define DRUM_GML1			0x20
#define ENC_8BIT			0
#define ENC_7BIT			1

typedef	struct _MASMW_GETCTL
{
	UINT8	bControl;				/* contorl number */
	UINT8 	bCh;					/* channel number */
} MASMW_GETCTL, *PMASMW_GETCTL;

/*=============================================================================
//	gloval values
=============================================================================*/

static const UINT32	gdwDBVolTable[128] =	/* -80 * Log(index/127) */
{
	 192, 168, 144, 130, 120, 112, 106, 101,
	  96,  92,  88,  85,  82,  79,  77,  74,
	  72,  70,  68,  66,  64,  63,  61,  59,
	  58,  56,  55,  54,  53,  51,  50,  49,
	  48,  47,  46,  45,  44,  43,  42,  41,
	  40,  39,  38,  38,  37,  36,  35,  35,
	  34,  33,  32,  32,  31,  30,  30,  29,
	  28,  28,  27,  27,  26,  25,  25,  24,
	  24,  23,  23,  22,  22,  21,  21,  20,
	  20,  19,  19,  18,  18,  17,  17,  16,
	  16,  16,  15,  15,  14,  14,  14,  13,
	  13,  12,  12,  12,  11,  11,  10,  10,
	  10,   9,   9,   9,   8,   8,   8,   7,
	   7,   7,   6,   6,   6,   5,   5,   5,
	   4,   4,   4,   3,   3,   3,   3,   2,
	   2,   2,   1,   1,   1,   1,   0,   0
};

static const UINT32	gdwMidVolTable[193] =	/* 127*10^(index / 80) */
{
	 127,  123,  120,  116,  113,  110,  107,  104,
	 101,   98,   95,   93,   90,   87,   85,   82,
	  80,   78,   76,   74,   71,   69,   67,   66,
	  64,   62,   60,   58,   57,   55,   54,   52,
	  51,   49,   48,   46,   45,   44,   43,   41,
	  40,   39,   38,   37,   36,   35,   34,   33,
	  32,   31,   30,   29,   28,   28,   27,   26,
	  25,   25,   24,   23,   23,   22,   21,   21,
	  20,   20,   19,   18,   18,   17,   17,   16,
	  16,   16,   15,   15,   14,   14,   13,   13,
	  13,   12,   12,   12,   11,   11,   11,   10,
	  10,   10,   10,    9,    9,    9,    8,    8,
	   8,    8,    8,    7,    7,    7,    7,    7,
	   6,    6,    6,    6,    6,    6,    5,    5,
	   5,    5,    5,    5,    5,    4,    4,    4,
	   4,    4,    4,    4,    4,    3,    3,    3,
	   3,    3,    3,    3,    3,    3,    3,    3,
	   3,    2,    2,    2,    2,    2,    2,    2,
	   2,    2,    2,    2,    2,    2,    2,    2,
	   2,    2,    2,    1,    1,    1,    1,    1,
	   1,    1,    1,    1,    1,    1,    1,    1,
	   1,    1,    1,    1,    1,    1,    1,    1,
	   1,    1,    1,    1,    1,    1,    1,    1,
	   1,    1,    1,    1,    1,    1,    1,    1,
	   0
};

static 	SINT32 (*gCallbackFunc)(UINT8 id);			/*              */

static SINT32		gSeqID;							/* Sequence ID  */
static SINT32		gFileID;						/* File ID      */
static UINT8		gEnable;						/* 0:disabel    */
static UINT8		gNumOfLoaded;					/*              */

static UINT8		gbMaxGain;						/* MaxGain      */
static UINT8		gbMasterVolume;					/* MasterVolume */

static UINT32		gRamBase;						/* */
static UINT32		gRamOffset;						/* */
static UINT32		gRamSize;						/* */

static UINT32		gWtWaveAdr[128];				/* */   

static UINT16		gwBank[16];
static UINT16		gwRPN[16];
static UINT8		gbExpression[16];
static UINT8		gbChVolume[16];					/* */
static UINT8		gbIntervalTime;					/* 0 or 20[ms]  */


/*=============================================================================
//	Function Name	: SINT32	SendMasterVolume(UINT8 bVol)
//
//	Description		: Send SetMasterVolume message
//
//	Argument		: bVol	Master volume (0..127)
//
//	Return			: 0 : NoError, < 0 : Error
=============================================================================*/
static SINT32	SendMasterVolume(UINT8 bVol)
{
	if (gSeqID > 0)
	{
		MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_MASTER_VOLUME, (UINT32)bVol, 0, 0);
	}
	return (MA3RMDERR_NOERROR);
}


/*==============================================================================
//	Function Name	: SINT32	ErrorFunction(UINT8 bCh, UINT8 bPara1, UINT8 bPara2)
//
//	Description		: Invalid messages
//
//	Argument		: bCh		MIDI channel (0..15)
//					  bPara1	Undefined
//					  bPara1	Undefined
//
//	Return			: 0 : NoError, < 0 : Error
//
==============================================================================*/
static SINT32	ErrorFunction(UINT8 bCh, UINT8 bPara1, UINT8 bPara2)
{
	(void)bCh;
	(void)bPara1;
	(void)bPara2;

	MARMDCNV_DBGMSG(("ErrorFunction\n"));

	return (MA3RMDERR_ARGUMENT);
}


/*==============================================================================
//	Function Name	:	SINT32	NotSupported(UINT8 bCh, UINT8 bPara1, UINT8 bPara2)
//
//	Description		:	Unsupported messages
//
//	Argument		: bCh		MIDI channel (0..15)
//					  bPara1	Undefined
//					  bPara1	Undefined
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	NotSupported(UINT8 bCh, UINT8 bPara1, UINT8 bPara2)
{
	(void)bCh;
	(void)bPara1;
	(void)bPara2;

	MARMDCNV_DBGMSG(("NotSupported\n"));

	return (MA3RMDERR_NOERROR);
}


/*==============================================================================
//	Function Name	: SINT32	SendNoteOff(UINT8 bCh, UNIT8 bKey, UINT8 bVel)
//
//	Description		: Send NoteOff message
//
//	Argument		: bCh			...	#Channel(0..15)
//					  bKey			...	#Key (0..127)
//					  bVel			...	Velocity (0..127)
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	SendNoteOff(UINT8 bCh, UINT8 bKey, UINT8 bVel)
{
	(void)bVel;

	MARMDCNV_DBGMSG(("SendNoteOff[%d, %d] \n", bCh, bKey));

	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_NOTE_OFF, (UINT32)bCh, (UINT32)bKey, 0));
}


/*==============================================================================
//	Function Name	: SINT32	SendNoteOn(UINT8 bCh, UINT8 bKey, UINT8 bVel)
//
//	Description		: Send NoteOn message
//
//	Argument		: bCh			...	#Channel(0..15)
//					  bKey			...	#Key (0..127)
//					  bVel			...	Velocity (0..127)
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	SendNoteOn(UINT8 bCh, UINT8 bKey, UINT8 bVel)
{
#if !RMD_DEF_VELOCITY_MODE
	static const UINT8	VelocityTable[128] = 
	{
		  0,    0,   16,   20,   23,   25,   28,   30,
		 32,   34,   36,   38,   39,   40,   43,   44,
		 45,   46,   48,   49,   51,   52,   54,   54,
		 55,   57,   57,   58,   60,   60,   62,   64,
		 64,   66,   66,   67,   67,   69,   69,   69,
		 71,   71,   74,   74,   76,   76,   76,   78,
		 78,   78,   80,   80,   80,   82,   82,   82,
		 85,   85,   85,   87,   87,   87,   90,   90,
		 90,   90,   93,   93,   93,   93,   95,   95,
		 95,   95,   98,   98,   98,   98,  101,  101,
		101,  101,  101,  104,  104,  104,  104,  104,
		107,  107,  107,  107,  107,  110,  110,  110,
		110,  110,  110,  113,  113,  113,  113,  113,
		116,  116,  116,  116,  116,  116,  120,  120,
		120,  120,  120,  120,  120,  123,  123,  123,
		123,  123,  123,  123,  127,  127,  127,  127
	};
#endif

	if (bVel == 0) return(SendNoteOff(bCh, bKey, bVel));

	MARMDCNV_DBGMSG(("SendNoteOn[%d, %d, %d]\n", bCh, bKey, bVel));

#if RMD_DEF_VELOCITY_MODE
	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_NOTE_ON, (UINT32)bCh, (UINT32)bKey, (UINT32)bVel));
#else
	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_NOTE_ON, (UINT32)bCh, (UINT32)bKey, (UINT32)VelocityTable[bVel & 0x7f]));
#endif
}


/*==============================================================================
//	Function Name	: SINT32	SendProgram(UINT8 bCh, UNIT8 bProg, UINT8 bPara2)
//
//	Description		: Send SetProgram message
//
//	Argument		: bCh			...	#Channel(0..15)
//					  bProg			...	#Program(0..127)
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	SendProgram(UINT8 bCh, UINT8 bProg, UINT8 bPara2)
{
	UINT8	bBk, bPg;
	UINT16	wBb;
	UINT8	bPp;

	static const UINT8	bMBank[128] = 
	{
		1, 2, 3, 4, 5, 6, 7, 8, 9, 10,0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
		0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
	};
	(void)bPara2;
	
	MARMDCNV_DBGMSG(("SendProgram[%d] = %d\n", bCh, bProg));

	bPp = (UINT8)(bProg & 0x7f);
	wBb = gwBank[bCh];
	
	if (wBb == 0)
	{
		if (bCh == 9)
		{
			bBk = 128;
			bPg = 0;
		} else {
			bBk = 0;
			bPg = bPp;
		}
	} else {
		switch (wBb & 0xFF00)
		{
		case 0x7900:	/* Melody */
			bBk = 0;
			bPg = bPp;
			break;

		case 0x7800:	/* Drum */
			bBk = 128;
			bPg = 0;
			break;

		case 0x7C00:	/* Melody */
			bBk = (UINT8)(bMBank[wBb & 0x7F]);
			bPg = bPp;
			break;

		case 0x7D00:	/* Drum */
			bBk = (UINT8)(128 + bMBank[bPp]);
			bPg = 0;
			break;

		default:
			return (MA3RMDERR_ARGUMENT);
		}
	}
	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_PROGRAM_CHANGE, (UINT32)bCh, (UINT32)bBk, (UINT32)bPg));
}

/*==============================================================================
//	Function Name	: SINT32	SendModDepth(UINT8 bCh, UINT8 bMod)
//
//	Description		: Send SetModulation message
//
//	Argument		: bCh			...	#Channel(0..15)
//					  bMod			...	Modulation(0..127)
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	SendModDepth(UINT8 bCh, UINT8 bMod)
{
	static const UINT8	ModTable[128] = 
	{
		0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
		1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
		2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
		2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
		3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
		3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
		4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
		4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
	};

	MARMDCNV_DBGMSG(("SendModDepth[%d] = %d\n", bCh, bMod));

	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_MODULATION_DEPTH, (UINT32)bCh, (UINT32)ModTable[bMod], 0));
}


/*==============================================================================
//	Function Name	: SINT32	SendChVol(UINT8 bCh, UINT8 bVol)
//
//	Description		: Send ChannelVolume nessage
//
//	Argument		: bCh			...	#Channel(0..15)
//					  bVol			...	Volume(0..127)
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	SendChVol(UINT8 bCh, UINT8 bVol)
{
	MARMDCNV_DBGMSG(("SendChVol[%d] =  %d\n", bCh, bVol));

	gbChVolume[bCh] = bVol;

	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_CHANNEL_VOLUME, (UINT32)bCh, (UINT32)bVol, 0));
}


/*==============================================================================
//	Function Name	: SINT32	SendExpression(UINT8 bCh, UINT8 bVol)
//
//	Description		: Send Expression message
//
//	Argument		: bCh			...	#Channel(0..15)
//					  bVol			...	Volume(0..127)
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	SendExpression(UINT8 bCh, UINT8 bVol)
{
	UINT32	dwVol;
	
	MARMDCNV_DBGMSG(("SendExpression[%d] =  %d\n", bCh, bVol));

	gbExpression[bCh] = bVol;
	
	dwVol = gdwDBVolTable[bVol & 0x7f] + gdwDBVolTable[gbMasterVolume];
	if (dwVol > 192) dwVol = 192;
	dwVol = gdwMidVolTable[dwVol];

	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_EXPRESSION, (UINT32)bCh, dwVol, 0));
}


/*==============================================================================
//	Function Name	: SINT32	SendPanpot(UINT8 bCh, UINT8 bPan)
//
//	Description		: Set Panpot message
//
//	Argument		: bCh			...	#Channel(0..15)
//					  bPan			...	Panpot(0..127)
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	SendPanpot(UINT8 bCh, UINT8 bPan)
{
	MARMDCNV_DBGMSG(("SendPanpot[%d] = %d\n", bCh, bPan));

	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_PANPOT, (UINT32)bCh, (UINT32)bPan, 0));
}


/*==============================================================================
//	Function Name	: SINT32	SendHold1(UINT8 bCh, UINT8 bVal)
//
//	Description		: Send Hold1 message
//
//	Argument		: bCh			...	#Channel(0..15)
//					  bVal			...	Hold1(0..127)
//
//	Return			: 0 : NoError, < 0 : Error
==============================================================================*/
static SINT32	SendHold1(UINT8 bCh, UINT8 bVal)
{
	MARMDCNV_DBGMSG(("SendHold1[%d] = %d\n", bCh, bVal));

	return (MaSndDrv_SetCommand(gSeqID, -1, MASNDDRV_CMD_HOLD1, (UINT32)bCh, (UINT32)((bVal < 64) ? 0 : 1), 0));
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人综合精品三级| 欧美日韩成人一区二区| 久久成人免费电影| 欧美视频一区二区三区在线观看| 欧美日韩一区在线| 国产一区二区在线影院| 亚洲欧美一区二区三区孕妇| 大尺度一区二区| 亚洲国产视频一区二区| 国内精品久久久久影院薰衣草| 国产剧情一区在线| 久久久久久久久久看片| 亚洲激情校园春色| 蜜桃视频在线观看一区二区| 欧美一级高清大全免费观看| 亚洲精品国产一区二区三区四区在线| 久久99国产精品尤物| 色视频成人在线观看免| 国产女人18毛片水真多成人如厕 | 欧美军同video69gay| 精品国内二区三区| 欧美日韩精品久久久| 国产91对白在线观看九色| 国产91在线|亚洲| 精品一区二区三区在线观看| 日韩视频永久免费| 亚洲精品久久久久久国产精华液| 国产一区视频网站| 精品国产乱码久久久久久浪潮| 国产伦精一区二区三区| 91精品国产综合久久久久久久| 久久精品国产99久久6| 婷婷久久综合九色综合绿巨人 | 99精品视频在线播放观看| 亚洲第一福利一区| 亚洲蜜桃精久久久久久久| 久久久国产精华| 国产日韩在线不卡| 国产欧美日韩精品在线| 欧美国产乱子伦| 久久综合给合久久狠狠狠97色69| 91在线高清观看| 在线免费不卡电影| 欧美日韩一区二区在线观看视频 | 欧美在线免费观看视频| 亚洲欧美中日韩| 国产精品123区| www国产成人免费观看视频 深夜成人网| 视频一区视频二区中文字幕| 色妞www精品视频| 国产精品国产三级国产aⅴ原创| 亚洲欧美自拍偷拍色图| 国产精品午夜免费| 懂色av噜噜一区二区三区av| 欧美日韩一区高清| 一区二区三区在线不卡| 精品成人佐山爱一区二区| 精品一区二区国语对白| 日韩**一区毛片| 日本欧美一区二区| 国产毛片精品国产一区二区三区| 国产一区二区三区免费播放| 国产一区二区导航在线播放| 97久久精品人人做人人爽50路| 日本精品免费观看高清观看| 欧美日本一区二区在线观看| 久久综合九色综合97婷婷女人 | 国产精品婷婷午夜在线观看| 悠悠色在线精品| 韩日欧美一区二区三区| 国产成人在线影院| 亚洲视频一区在线| 久久国产麻豆精品| 91久久国产最好的精华液| 日韩一区二区不卡| 亚洲自拍偷拍麻豆| 91浏览器入口在线观看| 国产色产综合色产在线视频| 天天综合网天天综合色| 久久综合综合久久综合| 免费观看91视频大全| 欧美手机在线视频| 婷婷激情综合网| 91原创在线视频| 中文字幕一区二区三区四区| 国产美女精品人人做人人爽| 欧美r级电影在线观看| 精一区二区三区| 国产亚洲一区二区三区在线观看| 久久狠狠亚洲综合| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩久久久久久| 日韩一级欧美一级| 极品销魂美女一区二区三区| 日韩你懂的在线观看| 精品一区二区三区av| 欧美日韩aaaaa| 丁香六月久久综合狠狠色| 欧美激情一区在线观看| 色综合网站在线| 亚洲视频一区二区免费在线观看 | 精品理论电影在线| 成人免费观看男女羞羞视频| 亚洲免费资源在线播放| 99久久婷婷国产精品综合| 午夜精品视频在线观看| 久久天堂av综合合色蜜桃网| 一道本成人在线| 麻豆视频观看网址久久| 久久麻豆一区二区| 欧美伦理影视网| 97久久精品人人爽人人爽蜜臀| 蜜臀91精品一区二区三区 | 欧美一区二区视频观看视频| 成人综合在线视频| 亚洲主播在线播放| 欧美激情一区在线观看| 欧美一区二区三区影视| 欧美亚洲综合另类| 91麻豆国产精品久久| 高清国产一区二区| 国产真实乱偷精品视频免| 亚洲欧美国产三级| 亚洲激情第一区| 亚洲色图一区二区三区| 欧美一卡二卡在线观看| 欧美日本一道本在线视频| 91在线一区二区三区| 99国内精品久久| 在线观看视频一区| 欧美视频精品在线观看| 欧美日韩国产片| 在线不卡免费av| 精品久久久久久久久久久久包黑料| 欧美伦理视频网站| 久久在线免费观看| 久久久久国产免费免费| 欧美国产在线观看| 日韩毛片在线免费观看| 国产欧美日韩精品a在线观看| 国产网红主播福利一区二区| 久久综合九色综合97婷婷| 国产精品福利一区二区三区| 国产精品久久久久久久久久免费看| 国产精品天天看| 亚洲已满18点击进入久久| 1000精品久久久久久久久| 亚洲电影在线免费观看| 国产一区二区三区四| 91免费视频网| 精品精品国产高清一毛片一天堂| 国产三级精品三级| 七七婷婷婷婷精品国产| 色婷婷亚洲精品| 国产亚洲精品福利| 蜜臀av一区二区| 欧美视频在线观看一区| 欧美韩日一区二区三区四区| 亚洲第一福利一区| 国产成人综合自拍| 日韩视频一区在线观看| 亚洲综合久久久久| 91视频在线看| ...av二区三区久久精品| 国产在线播放一区三区四| 7777精品伊人久久久大香线蕉的| 亚洲精品亚洲人成人网 | 欧美国产日韩一二三区| 日韩国产高清在线| 制服丝袜亚洲精品中文字幕| 中文字幕欧美国产| 成人v精品蜜桃久久一区| 精品国产免费人成在线观看| 国产不卡视频在线播放| 悠悠色在线精品| 欧美videossexotv100| 国产精品1区2区3区在线观看| 国产精品国产三级国产aⅴ中文 | 日韩av电影天堂| 国产偷国产偷精品高清尤物| 欧美综合欧美视频| 国产精品综合视频| 亚洲 欧美综合在线网络| 久久亚洲精品国产精品紫薇| 91色porny蝌蚪| 精品一区二区三区免费视频| 夜夜夜精品看看| 国产精品国产三级国产普通话三级| 欧美日韩精品是欧美日韩精品| 成人网在线免费视频| 久久99深爱久久99精品| 午夜久久久久久电影| 亚洲日本护士毛茸茸| 中文字幕av一区 二区| 欧美精品一区在线观看| 精品免费国产一区二区三区四区| 色欧美日韩亚洲| 91色九色蝌蚪| 在线亚洲一区观看| 色综合一个色综合亚洲|