void TouchManager::init() { config.addListener("showScreenJoystick", this); config.addListener("showScreenButtons", this); config.addListener("showScreenKeyboard", this); config.addListener("screenButtonsSize", this); config.addListener("screenJoystickSize", this); config.addListener("screenButtonsFormat", this); mShowJoystick = config.getBoolValue("showScreenJoystick"); mShowButtons = config.getBoolValue("showScreenButtons"); mShowKeyboard = config.getBoolValue("showScreenKeyboard"); mButtonsSize = config.getIntValue("screenButtonsSize"); mJoystickSize = config.getIntValue("screenJoystickSize"); mButtonsFormat = config.getIntValue("screenButtonsFormat"); setHalfJoyPad(getPadSize() / 2); if (mShowKeyboard) loadKeyboard(); if (mShowJoystick) loadPad(); if (mShowButtons) loadButtons(); mWidth = mainGraphics->mWidth; mHeight = mainGraphics->mHeight; }
// Final process, place digest in hash void HASHwithTransform::Final(byte* hash) { word32 blockSz = getBlockSize(); word32 digestSz = getDigestSize(); word32 padSz = getPadSize(); ByteOrder order = getByteOrder(); AddLength(buffLen_); // before adding pads HashLengthType preLoLen = GetBitCountLo(); HashLengthType preHiLen = GetBitCountHi(); byte* local = reinterpret_cast<byte*>(buffer_); local[buffLen_++] = 0x80; // add 1 // pad with zeros if (buffLen_ > padSz) { memset(&local[buffLen_], 0, blockSz - buffLen_); buffLen_ += blockSz - buffLen_; ByteReverseIf(local, local, blockSz, order); Transform(); buffLen_ = 0; } memset(&local[buffLen_], 0, padSz - buffLen_); ByteReverseIf(local, local, blockSz, order); memcpy(&local[padSz], order ? &preHiLen : &preLoLen, sizeof(preLoLen)); memcpy(&local[padSz+4], order ? &preLoLen : &preHiLen, sizeof(preLoLen)); Transform(); ByteReverseIf(digest_, digest_, digestSz, order); memcpy(hash, digest_, digestSz); Init(); // reset state }