Пример #1
0
	void CLFE_Timer::Play()
	{
		if (m_TimerStatus == tsStop)
		{
			m_n64TimeBegin = GetCurrentCount();
		}
		m_TimerStatus = tsRun;
	}
Пример #2
0
	DWORD CLFE_Timer::GetTime()
	{
		if (m_TimerStatus != tsRun)
		{
			return DWORD((m_n64TimeEnd - m_n64TimeBegin) * m_nPrecision / m_n64Freq);
		}
		else
		{
			return DWORD((GetCurrentCount() - m_n64TimeBegin) * m_nPrecision / m_n64Freq);
		}
	}
Пример #3
0
			unsigned int decode(model_type const & model)
			{
				uint32_t const Count = GetCurrentCount(model.getTotal());

				unsigned int Symbol;
				for(Symbol=model.getSigma()-1;model.getLow(Symbol)>Count;Symbol--)
				{
				}

				RemoveRange(model.getLow(Symbol),model.getHigh(Symbol),model.getTotal());
						
				return Symbol;
			}
Пример #4
0
DWORD DInputKeyboard::DInputKeyboardThreadFunc(){
	status = 1;
	DIDEVICEOBJECTDATA buf[16];
	while(true){
		WaitForSingleObject(m_hEvent, INFINITE);
		DWORD n = 16;
		if(!m_lpDIDevice)
			break;
		HRESULT hr = m_lpDIDevice->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), buf, &n, 0);
		if(hr != DI_OK){	// device lost
			if(!m_lpDIDevice || m_Stop)
				goto exit;
			while(m_lpDIDevice->Acquire()!=DI_OK){
				Sleep(100);
				if(!m_lpDIDevice || m_Stop)
					goto exit;
			}
			continue;
		}
		LONGLONG timeStamp = GetCurrentCount();
		if(GetForegroundWindow()==m_hWnd){
			for(int x=0; x<n; x++){
				DWORD vkCode = scancode_virtual_map[buf[x].dwOfs & 0xff];
				bool bKeyDown = ((buf[x].dwData&0x80) !=0);

				if( GAMEDATA.gamemode==GAME_MODE_NORMAL && ScreenState==SCREEN_GAMEMAIN && !core.paused )
					core._notemana.PushKeyEvent(vkCode, bKeyDown, timeStamp);

				/*// debug scan code
				static int kk=0;
				char str[256];
				sprintf(str,"DInput %d %08x->%08x %c",++kk,buf[x].dwOfs,vkCode,bKeyDown?'D':'U');
				SetWindowTitle(m_hWnd,str);*/
			}
		}
		if(m_Stop){
			m_Stop = false;
			break;
		}
	}
exit:
	m_hThread = NULL;
	m_threadID = 0;
	status = 0;
	return 0;
}
Пример #5
0
	void CLFE_Timer::Pause()
	{
		m_n64TimeEnd = GetCurrentCount();
		m_TimerStatus = tsPause;
	}
Пример #6
0
	void CLFE_Timer::Stop()
	{
		m_n64TimeEnd = GetCurrentCount();
		m_TimerStatus = tsStop;
	}