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

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

?? wavepdd.c

?? WinCE5.0BSP for Renesas SH7770
?? C
?? 第 1 頁 / 共 2 頁
字號:
*   FUNCTION :  	PDD_AudioPowerHandler
*   DESCRIPTION :   power-down/power-up (after power-down) for audio-in/out
*   INPUTS :		TRUE means power down, FALSE means power up
*   OUTPUTS :     	None
*   DESIGN NOTES :  
*   CAUTIONS :		
*****************************************************************************/
VOID
PDD_AudioPowerHandler(
	BOOL power_down
   )
{
	private_AudioOutPowerHandler( power_down );
}


/*****************************************************************************
*   FUNCTION :  	PDD_AudioMessage
*   DESCRIPTION :   Handle any custom WAVEIN or WAVEOUT messages here
*   INPUTS :		None
*   OUTPUTS :     	None
*   DESIGN NOTES :  
*   CAUTIONS :		
*****************************************************************************/
DWORD
PDD_AudioMessage(
	UINT uMsg,
	DWORD dwParam1,
	DWORD dwParam2
	)
{
	return(MMSYSERR_NOTSUPPORTED);
}


/*****************************************************************************
*   FUNCTION :  	PDD_AudioDeinitialize
*   DESCRIPTION :   Reset audio devices to original state
*   INPUTS :		None
*   OUTPUTS :     	None
*   DESIGN NOTES :  
*   CAUTIONS :		
*****************************************************************************/
VOID 
PDD_AudioDeinitialize(
	VOID
	)
{
	FUNC("+PDD_AudioDeinitialize");

	private_AudioInDeinitialize();
	private_AudioOutDeinitialize();

	FUNC("-PDD_AudioDeinitialize");
}

MMRESULT
private_WaveGetDevCaps(
	WAPI_INOUT apidir,
	PVOID pCaps,
	UINT  wSize
	)
{
	PWAVEOUTCAPS pwc = pCaps;

	MMRESULT mmRet = MMSYSERR_NOERROR;

	FUNC_WPDD("+PDD_WaveGetDevCaps");

	if (pCaps == NULL)  {
		return(MMSYSERR_NOERROR);
	}

	pwc->wMid = MM_MICROSOFT;
	pwc->wPid = (apidir == WAPI_OUT ? 24 : 23);  // generic in or out...
	pwc->vDriverVersion = 0x0001;
	wsprintf (pwc->szPname, TEXT("Audio (%d)"), AUDIO_NO);
	pwc->dwFormats =	WAVE_FORMAT_1M08 | WAVE_FORMAT_1M16 |
						WAVE_FORMAT_1S08 | WAVE_FORMAT_1S16 |
						WAVE_FORMAT_2M08 | WAVE_FORMAT_2M16 |
						WAVE_FORMAT_2S08 | WAVE_FORMAT_2S16 |
						WAVE_FORMAT_4M08 | WAVE_FORMAT_4M16 |
						WAVE_FORMAT_4S08 | WAVE_FORMAT_4S16;
	pwc->wChannels = 2;
	if (apidir == WAPI_OUT) 
	{
		pwc->dwSupport = WAVECAPS_VOLUME | WAVECAPS_LRVOLUME;
	}

	FUNC_WPDD("-PDD_WaveGetDevCaps");

	return(mmRet);
}    


MMRESULT
PDD_WaveProc(
	WAPI_INOUT apidir,
	DWORD      dwCode,
	DWORD      dwParam1,
	DWORD      dwParam2
	)
{
	MMRESULT mmRet = MMSYSERR_NOERROR;

    if ((apidir != WAPI_IN) && (apidir != WAPI_OUT)) {
        // guard against the remote possibility that the MDD might passin a bogus apidir
        return MMSYSERR_ERROR;
    }

	switch (dwCode) 
	{
	case WPDM_CLOSE:
		if (apidir == WAPI_IN)
			private_WaveInClose();
		else
			private_WaveOutClose();
		break;

	case WPDM_CONTINUE:
		if (apidir == WAPI_IN)
			private_WaveInContinue((PWAVEHDR) dwParam1);
		else 
			private_WaveOutContinue((PWAVEHDR) dwParam1);
		break;

	case WPDM_GETDEVCAPS:
		mmRet = private_WaveGetDevCaps(apidir, (PVOID) dwParam1, (UINT) dwParam2);
		break;

	case WPDM_OPEN:
		if (apidir == WAPI_IN)
			mmRet = private_WaveInOpen((LPWAVEFORMATEX) dwParam1, (BOOL) dwParam2);
		else 
			mmRet = private_WaveOutOpen((LPWAVEFORMATEX) dwParam1, (BOOL) dwParam2);
		break;

	case WPDM_STANDBY:
		if (apidir == WAPI_IN)
			private_WaveInStandby();
		else 
			private_WaveOutStandby();
		break;

	case WPDM_START:
		if (apidir == WAPI_IN)
			private_WaveInStart((PWAVEHDR) dwParam1);
		else 
			private_WaveOutStart((PWAVEHDR) dwParam1);
		break;

	case WPDM_STOP:
		if (apidir == WAPI_IN)
			private_WaveInStop();
		else 
			private_WaveOutStop();
		break;

	case WPDM_PAUSE:
		if (apidir == WAPI_OUT)
			private_WaveOutPause();
		else 
			mmRet = MMSYSERR_NOTSUPPORTED;
		break;

	case WPDM_ENDOFDATA:
		if (apidir == WAPI_OUT)
			private_WaveOutEndOfData();
		else 
			mmRet = MMSYSERR_NOTSUPPORTED;
		break;

	case WPDM_RESTART:
		if (apidir == WAPI_OUT)
			private_WaveOutRestart((PWAVEHDR) dwParam1);
		else 
			mmRet = MMSYSERR_NOTSUPPORTED;
		break;

	case WPDM_GETVOLUME:
		private_waveOutGetVolume((PULONG) dwParam1);
		break;

	case WPDM_SETVOLUME:
		private_waveOutSetVolume( (ULONG) dwParam1 );
		break;

	case WPDM_SETMIXERVAL:
		mmRet = private_SetMixerValue(dwParam1, dwParam2);
		break;

	case WPDM_GETMIXERVAL:
		mmRet = private_GetMixerValue(dwParam1, (PULONG) dwParam2);
		break;

	default :
		mmRet = MMSYSERR_NOTSUPPORTED;
		break;
	}
	return(mmRet);
}

// -----------------------------------------------------------------------------
//  Debugging aid...
// -----------------------------------------------------------------------------
void PrintBuffer(short* pbuf)
{
	PRINTMSG(1, (TEXT("\r\n-------------Print Buffer @0x%08X\r\n"), pbuf));
}   

/*****************************************************************************
*   FUNCTION :  	FreeAllocatedVirtualMemory
*   DESCRIPTION :   Returns allocated virtual memory to operating system
*   INPUTS :		Virtual address returned by VirtualAlloc
*					Size of region to reserved by VirtualAlloc
*   OUTPUTS :     	None
*   DESIGN NOTES :  
*   CAUTIONS :
*****************************************************************************/
VOID
FreeAllocatedVirtualMemory(
	PBYTE virtualAddress
	)
{
	if( virtualAddress )
		VirtualFree((PVOID)virtualAddress, 0, MEM_RELEASE);
}


/*****************************************************************************
*   FUNCTION :  	GetVirtualAddressOfUncachedMemory
*   DESCRIPTION :   Associates virtual addr with physical memory region
*   INPUTS :		Physical adddress of memory region (page aligned)
*					Size of region to be reserved
*					String identifying point of invocation (for error msgs)
*   OUTPUTS :     	Virtual address associated (or NULL, if failure occurs)
*   DESIGN NOTES :  
*   CAUTIONS :
*****************************************************************************/
PBYTE GetVirtualAddressOfUncachedMemory(
	PBYTE physicalAddress,
	DWORD size,
	char* callerID)
{
	PBYTE virtualAddress;

#define here "GetVirtualAddressOfUncachedMemory"

	FUNC(here);
	if ((ULONG)physicalAddress % PAGE_SIZE) 
	{
		ERRMSG2((TEXT(here "%s: Physical Addr (0x%x) Not Page-Aligned\r\n")), callerID, physicalAddress);
	}
	
	virtualAddress = (PBYTE)VirtualAlloc(
		NULL,
		size,
		MEM_RESERVE,
		PAGE_NOACCESS);
	
	if (virtualAddress == NULL) 
	{
		ERRMSG1((TEXT(here "%s: Virtual Alloc Failed\r\n")), callerID);
		return NULL;
	}
	
	if (!VirtualCopy((PVOID) virtualAddress,
		(PVOID) physicalAddress,
		size,
		PAGE_READWRITE | PAGE_NOCACHE))
	{
		ERRMSG1((TEXT(here "%s: Virtual Copy Failed\r\n")), callerID);
		FreeAllocatedVirtualMemory( virtualAddress );
		return NULL;
	}
	return virtualAddress;
}

///////////////////////// TEST //////////////////////////////
void DumpRegKey( DWORD dwZone, PTSTR szKey, HKEY hKey)
{
    DWORD dwIndex=0;
    WCHAR szValueName[MAX_PATH];
    DWORD dwValueNameSize = MAX_PATH;
    BYTE pValueData[256];
    DWORD dwType;
    DWORD dwValueDataSize = sizeof(pValueData);
    DEBUGMSG( dwZone, (TEXT("Dumping registry for key %s \r\n"), szKey));
    while(ERROR_SUCCESS == RegEnumValue( hKey, dwIndex, szValueName, &dwValueNameSize, NULL, &dwType, pValueData, &dwValueDataSize)) {
        if (REG_SZ == dwType) {
            DEBUGMSG( dwZone, (TEXT("\t\t%s = %s\r\n"), szValueName, (LPWSTR)pValueData));
        } else if (REG_DWORD == dwType) {
            DEBUGMSG( dwZone, (TEXT("\t\t%s = %08X\r\n"), szValueName, *(PDWORD)pValueData));
        } else if (REG_MULTI_SZ == dwType) {
            PWSTR pValueTemp = (PWSTR)pValueData;
            DEBUGMSG( dwZone, (TEXT("\t\t%s :\r\n"), szValueName));
            while(*pValueTemp) {
                DEBUGMSG( dwZone, (TEXT("\t\t\t%s\r\n"), (LPWSTR)pValueTemp));
                pValueTemp += (wcslen(pValueTemp)+1);
            }
        }else{
            DEBUGMSG( dwZone, (TEXT("\t\t%s\r\n"), szValueName));
        }

        dwIndex++;
        dwValueDataSize = sizeof(pValueData);
        dwValueNameSize = MAX_PATH;
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成影院在线观看| 亚洲欧洲日韩综合一区二区| 懂色av一区二区三区免费观看 | 成人伦理片在线| 午夜亚洲福利老司机| 国产色一区二区| 欧美一级理论片| 91福利精品第一导航| 高清不卡在线观看| 久久av资源网| 午夜欧美在线一二页| 日韩美女啊v在线免费观看| 日韩三级中文字幕| 欧美性猛交一区二区三区精品| 国产乱一区二区| 日韩av一区二| 三级在线观看一区二区 | 秋霞成人午夜伦在线观看| 最近日韩中文字幕| 欧美激情在线观看视频免费| 精品嫩草影院久久| 欧美精品视频www在线观看| 99国产精品99久久久久久| 激情文学综合插| 蜜桃免费网站一区二区三区| 亚洲动漫第一页| 亚洲精品v日韩精品| 欧美激情一区二区三区不卡| 2020国产精品| 欧美成人一区二区| 日韩欧美亚洲一区二区| 欧美福利视频导航| 欧美三区免费完整视频在线观看| eeuss鲁一区二区三区| 成人永久免费视频| 国产成人午夜精品影院观看视频| 国产麻豆成人精品| 国产成人三级在线观看| 激情综合色丁香一区二区| 看片的网站亚洲| 久久精品国产成人一区二区三区| 秋霞电影网一区二区| 久色婷婷小香蕉久久| 美腿丝袜亚洲色图| 韩国一区二区在线观看| 极品美女销魂一区二区三区免费| 久久 天天综合| 国产一区二区精品在线观看| 高清在线观看日韩| 99久久精品免费看国产免费软件| caoporm超碰国产精品| 一本一道波多野结衣一区二区| 色噜噜狠狠成人中文综合| 色一情一伦一子一伦一区| 欧美三级电影网站| 国产成都精品91一区二区三| 成人永久免费视频| 色婷婷亚洲综合| 国内精品伊人久久久久av影院| 亚洲亚洲精品在线观看| 日本亚洲欧美天堂免费| 丝袜诱惑亚洲看片| 国产欧美va欧美不卡在线| 欧美日韩国产综合久久| 欧美一级欧美三级在线观看| 久久久精品日韩欧美| 肉色丝袜一区二区| 美女网站一区二区| 风间由美一区二区三区在线观看 | 色综合久久久久综合| 欧美日韩你懂得| 欧美日韩在线电影| 欧美电影免费提供在线观看| 26uuu另类欧美| 亚洲欧洲精品天堂一级| 日韩一级高清毛片| 日韩欧美成人午夜| 欧美日韩国产高清一区二区| 欧美mv日韩mv国产网站| 国产精品久久久久久久久晋中| 久久久久亚洲蜜桃| 亚洲免费成人av| 日韩精品亚洲一区| 成人国产精品免费观看视频| 日本高清免费不卡视频| 精品盗摄一区二区三区| 亚洲欧美精品午睡沙发| 另类小说欧美激情| 成人国产精品免费观看视频| 日本韩国视频一区二区| 不卡一区二区中文字幕| 91黄色免费版| 91视频在线观看免费| 国产毛片精品视频| 久久99精品国产麻豆不卡| 亚洲一区二区欧美| 国产亚洲精品免费| 亚洲美女免费在线| 性感美女极品91精品| 国产在线精品视频| 精品在线视频一区| 另类小说色综合网站| 美日韩一区二区三区| 成人免费毛片片v| 欧美伊人久久大香线蕉综合69| 日韩你懂的在线播放| 精品国产a毛片| 久久精品夜色噜噜亚洲a∨| 天天av天天翘天天综合网色鬼国产| 日韩和欧美一区二区三区| 久久精品国产免费看久久精品| 91碰在线视频| 91精品国产品国语在线不卡| 在线视频欧美精品| 7777精品伊人久久久大香线蕉完整版| 色哟哟在线观看一区二区三区| 欧美一区二区三区四区在线观看| 日韩欧美国产综合| 5566中文字幕一区二区电影| 精品日韩99亚洲| 欧美草草影院在线视频| 2023国产精品| 亚洲欧洲制服丝袜| 丝袜美腿亚洲一区二区图片| 极品销魂美女一区二区三区| 国产成人精品免费视频网站| 美腿丝袜在线亚洲一区| 91国产免费观看| 日韩视频一区二区在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 中文字幕中文乱码欧美一区二区| 亚洲精品日韩专区silk| 秋霞国产午夜精品免费视频| 美女诱惑一区二区| 成人免费视频一区| 欧美猛男男办公室激情| 久久久久国产免费免费| 国产精品理伦片| 三级成人在线视频| 久久aⅴ国产欧美74aaa| 91久久国产综合久久| 亚洲精品一区二区三区影院| 一区二区高清免费观看影视大全 | 国产美女在线观看一区| jiyouzz国产精品久久| 欧美吻胸吃奶大尺度电影| 国产亚洲一本大道中文在线| 国产精品久久福利| 日韩一区精品字幕| 欧美午夜一区二区三区免费大片| 成人欧美一区二区三区黑人麻豆 | av一区二区三区黑人| 精品国产自在久精品国产| 国产精品综合在线视频| 日韩午夜激情视频| 亚洲国产欧美在线| 亚洲已满18点击进入久久| 成人一区在线观看| jizz一区二区| 日韩免费视频一区二区| 中国色在线观看另类| 国产成人一级电影| 欧美午夜精品一区二区三区| 一区二区三区av电影| 国产成人精品影视| 久久精品亚洲精品国产欧美| 亚洲国产日韩av| 国产成人av电影| 91精品国产手机| 中国av一区二区三区| 国产成人精品免费在线| 精品免费日韩av| 午夜精品视频一区| 99久久er热在这里只有精品66| 国产精品久久久久影院色老大| 国内精品在线播放| 91亚洲国产成人精品一区二区三| 久久综合一区二区| 亚洲欧美另类图片小说| 欧美自拍偷拍午夜视频| 国产视频视频一区| 亚洲成人在线观看视频| 亚洲精品一区二区三区四区高清 | 欧美三级日韩三级| 亚洲伦在线观看| 欧美电视剧在线看免费| 久99久精品视频免费观看| 正在播放亚洲一区| 岛国精品在线观看| 久久久亚洲午夜电影| 成人h动漫精品一区二区| 亚洲乱码国产乱码精品精的特点| 麻豆91在线看| 国产精品乱子久久久久| 国产精品一区二区91| 国产欧美日韩不卡免费| 亚洲444eee在线观看| 久久综合九色欧美综合狠狠| 亚洲欧美日韩国产另类专区| 欧美巨大另类极品videosbest|