Example #1
0
void	Event::SysEvent::Loop()
{
  _xbox = new XboxManager();
  _leap = new LeapManager();
  _leap->Connect();
  wait_systen();
  while (G_GameSettings && G_GameSettings->gameState != Settings::END)
    {
      if (_ogl->IsInit() && _ogl->IsClose() == false)
	{
	  _sdl = _ogl->GetContext();
	  _input = _ogl->GetInput();
	  _ogl->Lock();
	  _sdl->updateInputs(*_input);
	  _ogl->Unlock();
	  _keymanager.updateValue(*_input);
	  _xbox->Reset();
	  _xbox->Update();
	  if (G_EvDispatcher)
	    {
	      if (_keymanager.isUpdated() == true)
		{
		  G_EvDispatcher->SendEvent(new KeyboardEvent(_keymanager.getKeyboard()), COMMON);
		  KeyboardEvent	*sysev = new KeyboardEvent(_keymanager.getKeyboard());
		  sysev->SetScope(ENGINE);
		  G_EvDispatcher->SendEvent(sysev, SYS);
		}
	      if (_leap->HasUpdate())
		G_EvDispatcher->SendEvent(new LeapEvent(_leap->GetLeapData()), COMMON);
	      if (_xbox->HasUpdate())
		G_EvDispatcher->SendEvent(new XboxEvent(_xbox->GetInput(),
							_xbox->NumJoystick()),
					  COMMON);
	    }
	}
      usleep(5000);
    }
  _leap->Disconnect();
  delete _xbox;
  delete _leap;
}