Jump to content
  • Advertisement
Sign in to follow this  
Tank202

XACT3 SoundBank initialisation problem

This topic is 1945 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello,

 

I have this very strange problem with XACT3. I'm trying to play a sound using SoundBank interface, but it seems that SoundBank object pointer after initialisation is NULL. When I run the program, it would not respond.

 

PS. Using WaveBank interface, the program runs just fine.

 

Please help me with this issue. I would be glad as hell biggrin.png

 

Here is the code:

 

	//XACT3 stuff
	CoInitializeEx(NULL, COINITBASE_MULTITHREADED);

	IXACT3Engine* pXACT3Engine;
	XACT3CreateEngine(0, &pXACT3Engine);

	XACT_RUNTIME_PARAMETERS XACT3Parameters = {0};
	
	XACT3Parameters.lookAheadTime = XACT_ENGINE_LOOKAHEAD_DEFAULT;

	pXACT3Engine->Initialize(&XACT3Parameters);

	IXACT3SoundBank* pSoundBank;

	HANDLE hMusicWaveBank = CreateFile("Music.xwb", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
	HANDLE hMusicSoundBank = CreateFile("MusicList.xsb", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);

	pXACT3Engine->CreateInMemoryWaveBank(MapViewOfFile(CreateFileMapping(hMusicWaveBank, 0, PAGE_READONLY, NULL, 
		GetFileSize(hMusicWaveBank, NULL), 0), FILE_MAP_READ, 0, 0, 0), GetFileSize(hMusicWaveBank, NULL), 0, 0, &pWaveBank);

	BYTE* pbMusicSoundBankBuffer = new BYTE[GetFileSize(hMusicSoundBank, NULL)];
	pXACT3Engine->CreateSoundBank(pbMusicSoundBankBuffer, GetFileSize(hMusicSoundBank, NULL), 0, 0, &pSoundBank); //I've tried a lot of ways to get the first argument but nothing worked.

	IXACT3Cue* pCue;

	pSoundBank->Play(0, 0, 0, 0); //<- The point where the program stops responding

	//Win32 message loop
	while(GetMessage(&msg, hMainWindow, 0, 0) > 0)
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
		pXACT3Engine->DoWork();
		//Sleep(10);
	}

	pXACT3Engine->ShutDown();

 

 

Share this post


Link to post
Share on other sites
Advertisement

Hi. first try some debug flags

DWORD dwCreationFlags = 0;

 

if( bAuditionMode )

dwCreationFlags |= XACT_FLAG_API_AUDITION_MODE;

 

if( bDebugMode )

dwCreationFlags |= XACT_FLAG_API_DEBUG_MODE;

 

Pass this to XACT3CreateEngine.

 

cheack your return code here pXACT3Engine->Initialize(&XACT3Parameters);

Share this post


Link to post
Share on other sites

Ok I've tried everything you suggested but nothing seems to help. However when I switch the creation flag to AUDITION_MODE it seems to initialise the SoundBank, but the program still won't play sounds using soundBank interface. Both of the cases the return value of  pXACT3Engine->Initialize(&XACT3Parameters); was S_OK. 

Maybe it is the library problem as pXACT3Engine->CreateSoundBank function is declared in xact3.lib and I dont have it in my directX SDK library folders. And also when installing my directX SDK at the end I get the error that says something like S 1024 or 1028 tongue.png

Edited by Tank202

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!