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; }