void CBaseInput::RemoveDeviceHoldSymbols( EInputDeviceType deviceType, uint8 deviceIndex ) { if (!m_holdSymbols.empty()) { TInputSymbols::iterator begin = m_holdSymbols.begin(); for (TInputSymbols::iterator it = begin; it != m_holdSymbols.end(); ) { SInputSymbol* symbol = *it; if (symbol->deviceType == deviceType && symbol->deviceIndex == deviceIndex) { SInputEvent releaseEvent; releaseEvent.deviceType = deviceType; releaseEvent.deviceIndex = deviceIndex; releaseEvent.state = eIS_Released; releaseEvent.keyName = symbol->name; releaseEvent.keyId = symbol->keyId; releaseEvent.pSymbol = symbol; if (g_pInputCVars->i_debug) { gEnv->pLog->Log("InputDebug: RemoveDeviceHoldSymbols Device %d %d, Symbol %s %d", deviceType, deviceIndex, releaseEvent.keyName.c_str(), releaseEvent.keyId ); } SendEventToListeners(releaseEvent); it = m_holdSymbols.erase(it); } else { ++it; } } } }
void CBaseInput::PostUnicodeEvent( const SUnicodeEvent &event, bool bForce ) { FUNCTION_PROFILER( GetISystem(),PROFILE_INPUT ); assert(event.inputChar != 0 && Unicode::Validate(event.inputChar) && "Attempt to post invalid unicode event"); if(!bForce && !m_enableEventPosting) { return; } if (g_pInputCVars->i_debug) { char utf8_buf[5]; Unicode::Convert(utf8_buf, event.inputChar); gEnv->pLog->Log("InputDebug: Unicode input codepoint (%u), %s", event.inputChar, utf8_buf); } if (!SendEventToListeners(event)) return; }
void CBaseInput::PostInputEvent( const SInputEvent &event, bool bForce ) { FUNCTION_PROFILER( GetISystem(),PROFILE_INPUT ); //CryAutoCriticalSection postInputLock(m_postInputEventMutex); if(!bForce && !m_enableEventPosting) { return; } if(event.keyId == eKI_Unknown && event.state != eIS_UI) { return; } if (g_pInputCVars->i_debug) { // log out key press and release events if (event.state == eIS_Pressed || event.state == eIS_Released) gEnv->pLog->Log("InputDebug: '%s' - %s", event.keyName.c_str(), event.state == eIS_Pressed?"pressed":"released"); else if ((event.state == eIS_Changed) && (g_pInputCVars->i_debug == 2)) gEnv->pLog->Log("InputDebug (Changed): '%s' - %.4f", event.keyName.c_str(), event.value); } if (!SendEventToListeners(event)) return; AddEventToHoldSymbols(event); if (event.keyId == eKI_SYS_DisconnectDevice) { // Zero everything out RemoveDeviceHoldSymbols(event.deviceType, event.deviceIndex); ClearKeyState(); ClearAnalogKeyState(); } }