PlayStream::Error PlayStream::openWave(QString file_name)
{
  if(is_open) {
    return PlayStream::AlreadyOpen;
  }
  wave_name=file_name;
  return openWave();
}
int QBSoundWin::Init()
{
	_vistaFlag = false;
	while (1) {
		OSVERSIONINFOEX verInfo;
		verInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
		if( !::GetVersionEx( reinterpret_cast<OSVERSIONINFO*>( &verInfo ) ) ){
			verInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
			if( !::GetVersionEx( reinterpret_cast<OSVERSIONINFO*>( &verInfo ) ) ){
				break;
			}
		}
		if (verInfo.dwMajorVersion >= 6) {
			_vistaFlag = true;
		}
		break;
//printf("info.dwMajorVersion %d\n",verInfo.dwMajorVersion);
	}
	QBSound::Init();
	stopWave = false;
	openWave();
	//for (int i=0;i<NumWaveBuff;i++) {
	//	fill_sound_buffer(m_pWaveBuff[i],BufferSize);
	//}
	m_nCurPBuff = 0;//NumWaveBuff/2;
	m_nCurBuff = 2;
	playSound();
	playSound();
	//writeWave(m_nCurPBuff);
	DWORD dwID;
	InitializeCriticalSection(&mMutex);
	//DeleteCriticalSection(&mCriticalSection);
#ifdef __USE_OGG_VORBIS__
  mThreadEnd = false;
  CreateThread(NULL , 0 , LoaderThreadProc , (LPVOID)this , 0 , &dwID);
#endif
	return 0;
}