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

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

?? sound.cpp

?? 用vc開發的一款經典游戲
?? CPP
字號:
// DirectSound.cpp: implementation of the CDirectSound class.
//
//////////////////////////////////////////////////////////////////////

#include "Sound.h"
#include "wavread.h"

#define SAFE_RELEASE(x)		if(x){ x->Release(); x = NULL; }


static char szSoundEffects[NUM_SOUND_EFFECTS][40] =
{
	"Gunfire.wav",
	"Bang.wav",
	"Hit.wav",
	"Peow.wav",
	"Fanfare.wav",
};


//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDirectSound::CDirectSound()
{
	m_pDS = NULL;
	for( int i = 0; i < NUM_SOUND_EFFECTS; i ++ )
		m_pdsBuffer[i] = NULL;
}

CDirectSound::~CDirectSound()
{
	Destroy();
}


BOOL CDirectSound::Init( HWND hWnd )
{
	// Create DirectSound
	if( FAILED(DirectSoundCreate( NULL, &m_pDS, NULL )) )
		return FALSE;

	m_pDS->SetCooperativeLevel( hWnd, DSSCL_NORMAL );

	// Create Sound buffer
	CWaveSoundRead waveSound;
	char filename[MAX_PATH];

	for( int i = 0; i < NUM_SOUND_EFFECTS; i ++ )
	{
		lstrcpy( filename, "sound\\" );
		lstrcat( filename, szSoundEffects[i] );
		if( FAILED(waveSound.Open( filename )) )
			continue;
		
		waveSound.Reset();
		
		DSBUFFERDESC	dsbd;
		ZeroMemory( &dsbd, sizeof(dsbd) );
		dsbd.dwSize = sizeof(dsbd);
		dsbd.dwFlags = DSBCAPS_STATIC;
		dsbd.dwBufferBytes = waveSound.m_ckIn.cksize;
		dsbd.lpwfxFormat = waveSound.m_pwfx;

		if( FAILED(m_pDS->CreateSoundBuffer(&dsbd, &m_pdsBuffer[i], NULL)) )
		{
			waveSound.Close();
			Destroy();
			return FALSE;
		}

		LPVOID lpvAudio;
		DWORD  dwBytes;
		m_pdsBuffer[i]->Lock(
				0,
				0,
				&lpvAudio,
				&dwBytes,
				NULL,
				NULL,
				DSBLOCK_ENTIREBUFFER);
		
		UINT cbBytesRead;
		waveSound.Read( dwBytes, (LPBYTE)lpvAudio, &cbBytesRead );
	
		m_pdsBuffer[i]->Unlock( lpvAudio, dwBytes, NULL, 0 );

		waveSound.Close();
	}

	return TRUE;
}


BOOL CDirectSound::LoadEffect( EFFECT sfx )
{
	int idx = (int)sfx;

	CWaveSoundRead waveSound;
	char filename[MAX_PATH] = "sound\\";
	
	lstrcpy( filename, szSoundEffects[idx] );
	if( FAILED(waveSound.Open( filename )) )
		return FALSE;

	waveSound.Reset();
	
	LPVOID lpvAudio;
	DWORD  dwBytes;
	m_pdsBuffer[idx]->Lock(
			0,
			0,
			&lpvAudio,
			&dwBytes,
			NULL,
			NULL,
			DSBLOCK_ENTIREBUFFER);
		
	UINT cbBytesRead;
	waveSound.Read( dwBytes, (LPBYTE)lpvAudio, &cbBytesRead );
	
	m_pdsBuffer[idx]->Unlock( lpvAudio, dwBytes, NULL, 0 );

	waveSound.Close();

	return TRUE;
}


BOOL CDirectSound::Play( EFFECT sfx )
{
	HRESULT hr;
	int idx = (int)sfx;
	if( !m_pdsBuffer[idx] )
		return FALSE;

	m_pdsBuffer[idx]->SetCurrentPosition(0);
	hr = m_pdsBuffer[idx]->Play( 0, 0, 0 );
	if( hr == DSERR_BUFFERLOST )
	{
		hr = m_pdsBuffer[idx]->Restore();
		LoadEffect( sfx );
	}

	if( FAILED(hr) )
		return FALSE;
	return TRUE;
}


void CDirectSound::Stop( EFFECT sfx )
{
	int idx = (int)sfx;
	if( !m_pdsBuffer[idx] )
		return;

	m_pdsBuffer[idx]->Stop();
}


void CDirectSound::Destroy()
{
	for( int i = 0; i < NUM_SOUND_EFFECTS; i ++ )
		SAFE_RELEASE( m_pdsBuffer[i] );
	SAFE_RELEASE( m_pDS );
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品第一页| 日韩一级成人av| 美女性感视频久久| 午夜精品久久久久久久久久| 中文字幕一区av| 综合精品久久久| 一区二区三区中文免费| 国产精品美女一区二区三区 | 国产午夜一区二区三区| 日韩一卡二卡三卡四卡| 91精品国产综合久久香蕉的特点 | 久久久噜噜噜久噜久久综合| 成人免费视频视频在线观看免费| 久久综合综合久久综合| 麻豆国产精品一区二区三区| 九色综合国产一区二区三区| 狠狠色丁香九九婷婷综合五月| 激情综合色综合久久| 国产一区在线观看麻豆| 国产成人亚洲综合a∨婷婷图片| 国产福利一区二区| 成人久久久精品乱码一区二区三区| 国产成都精品91一区二区三| 成人亚洲一区二区一| 一道本成人在线| 欧美日韩中文国产| 欧美大片顶级少妇| 国产精品国产三级国产普通话99| 亚洲欧洲综合另类在线| 香蕉久久夜色精品国产使用方法| 蜜臂av日日欢夜夜爽一区| 国产麻豆欧美日韩一区| 日本高清不卡视频| 日韩一级视频免费观看在线| 久久女同精品一区二区| 樱桃国产成人精品视频| 久久精品免费看| 色综合久久综合| 欧美一级免费观看| 中文字幕一区二区视频| 日韩高清欧美激情| 成人精品国产福利| 欧美一区二区女人| 1024国产精品| 美女www一区二区| 91蜜桃在线观看| 久久午夜色播影院免费高清| 一区二区在线观看不卡| 国产一区二区三区四区五区入口| 93久久精品日日躁夜夜躁欧美| 日韩视频免费观看高清完整版在线观看 | 日韩午夜在线影院| 亚洲同性gay激情无套| 日韩av在线发布| 一本一本大道香蕉久在线精品| 日韩女优制服丝袜电影| 一区二区三区四区激情| 福利91精品一区二区三区| 91麻豆精品国产91久久久资源速度| 国产欧美日韩久久| 久久99精品国产麻豆不卡| 在线看一区二区| 国产精品黄色在线观看| 国产一区二区三区精品视频| 欧美一区二区三区色| 一级日本不卡的影视| 国产成人免费高清| 欧美电影免费观看高清完整版| 亚洲电影视频在线| 日本精品视频一区二区| 最近日韩中文字幕| 99久久精品免费看国产免费软件| 久久久久久免费网| 国产真实乱偷精品视频免| 欧美一二三四在线| 蜜桃精品视频在线观看| 欧美顶级少妇做爰| 日韩av一二三| 日韩视频免费观看高清在线视频| 视频一区视频二区在线观看| 欧美精品自拍偷拍| 五月婷婷激情综合网| 欧美日韩激情一区二区三区| 亚洲丶国产丶欧美一区二区三区| 欧洲精品视频在线观看| 香蕉av福利精品导航| 欧美乱妇15p| 久热成人在线视频| 精品处破学生在线二十三| 久久99精品久久久久久久久久久久| 日韩久久精品一区| 国产精品亚洲第一区在线暖暖韩国| 国产亚洲精品福利| 91一区二区在线| 亚洲高清一区二区三区| 欧美日精品一区视频| 免费不卡在线观看| 国产亚洲自拍一区| 色婷婷综合视频在线观看| 午夜伦欧美伦电影理论片| 日韩精品在线网站| 国产精品香蕉一区二区三区| 中文无字幕一区二区三区| 日本国产一区二区| 久久av资源站| 亚洲欧美视频在线观看视频| 欧美日韩精品一区二区天天拍小说 | 国产精一区二区三区| 中文字幕一区二区三区不卡在线| 欧美中文字幕一区| 久久精品72免费观看| 亚洲欧洲日本在线| 91精品国产麻豆国产自产在线 | 91麻豆免费在线观看| 天堂久久久久va久久久久| 久久久久久99久久久精品网站| caoporn国产一区二区| 日日夜夜免费精品| 国产精品色噜噜| 欧美精品乱码久久久久久| 成人免费视频视频在线观看免费 | 3d动漫精品啪啪一区二区竹菊| 国精产品一区一区三区mba桃花| 国产精品久久久久毛片软件| 欧美军同video69gay| 成人激情校园春色| 韩国理伦片一区二区三区在线播放| 国产精品国产三级国产a| 欧美成人乱码一区二区三区| 91麻豆.com| 成人一二三区视频| 麻豆91精品91久久久的内涵| 在线观看日产精品| 91一区一区三区| 午夜成人免费电影| 亚洲欧美偷拍另类a∨色屁股| 亚洲精品在线观看网站| 欧美日韩亚州综合| 91视频.com| 日本道精品一区二区三区| 久久99精品一区二区三区三区| 一区二区三区四区不卡在线| 欧美韩国日本综合| 精品少妇一区二区三区视频免付费 | 日韩精品午夜视频| 亚洲在线视频免费观看| 国产欧美一区视频| 欧美成人精品1314www| 欧美日韩免费高清一区色橹橹| 成人av网站大全| 成人午夜视频免费看| 国精产品一区一区三区mba桃花| 日本视频免费一区| 日本欧美久久久久免费播放网| 亚洲bt欧美bt精品777| 亚洲一区二区免费视频| 亚洲九九爱视频| 亚洲精选在线视频| 亚洲一级不卡视频| 首页国产丝袜综合| 理论片日本一区| 国产一区欧美二区| 国产激情偷乱视频一区二区三区| 国产一区二区三区精品视频| 国产精品一区二区在线观看不卡| 国产精品香蕉一区二区三区| 国产激情一区二区三区桃花岛亚洲| 国产精品综合网| 成人动漫中文字幕| 在线视频国内一区二区| 欧美日韩性生活| www国产精品av| 麻豆精品国产91久久久久久| 久久久国产一区二区三区四区小说| 欧美一区二区三区四区五区| 欧美精品 日韩| 精品欧美乱码久久久久久1区2区| 日韩精品一区二区三区四区 | 国产91清纯白嫩初高中在线观看 | 国产精品久久久久永久免费观看| 国产精品青草久久| 一区二区三区免费看视频| 天天做天天摸天天爽国产一区| 日本在线不卡视频一二三区| 精品写真视频在线观看| av不卡免费在线观看| 欧美人妖巨大在线| 久久久精品免费网站| 国产精品三级视频| 香港成人在线视频| 国产99精品在线观看| 色婷婷久久久亚洲一区二区三区 | 精品国产免费人成电影在线观看四季 | 亚洲小少妇裸体bbw| 九九久久精品视频| 99精品视频在线观看免费| 欧美日本乱大交xxxxx| 久久精品在线免费观看| 天天av天天翘天天综合网色鬼国产| 精品一区二区三区影院在线午夜|