From 9338dcae7f73b5d43322a9cfdbe42aecd4aaa156 Mon Sep 17 00:00:00 2001 From: rankun Date: Thu, 30 Jan 2020 19:40:46 +0800 Subject: [PATCH] feat: optimize process steer wheel --- .../inputconvert/inputconvertgame.cpp | 42 ++++++++++--------- .../inputconvert/inputconvertgame.h | 16 +++---- 2 files changed, 31 insertions(+), 27 deletions(-) diff --git a/QtScrcpy/device/controller/inputconvert/inputconvertgame.cpp b/QtScrcpy/device/controller/inputconvert/inputconvertgame.cpp index dc13ead..3c8f922 100644 --- a/QtScrcpy/device/controller/inputconvert/inputconvertgame.cpp +++ b/QtScrcpy/device/controller/inputconvert/inputconvertgame.cpp @@ -119,7 +119,6 @@ void InputConvertGame::loadKeyMap(const QString &json) m_ctrlMouseMove.startPosPixel = calcFrameAbsolutePos(m_ctrlMouseMove.startPosRel); } if(m_keyMap.isValidSteerWheelMap()){ - m_ctrlSteerWheel.valid = true; m_ctrlMouseMove.touching = false; } } @@ -222,46 +221,51 @@ void InputConvertGame::processSteerWheel(const KeyMap::KeyMapNode &node, const Q int key = from->key(); bool flag = from->type() == QEvent::KeyPress; // identify keys - if(key == node.data.steerWheel.up.key){ + if (key == node.data.steerWheel.up.key) { m_ctrlSteerWheel.pressedUp = flag; - }else if(key == node.data.steerWheel.right.key){ + } else if (key == node.data.steerWheel.right.key) { m_ctrlSteerWheel.pressedRight = flag; - }else if(key == node.data.steerWheel.down.key){ + } else if (key == node.data.steerWheel.down.key) { m_ctrlSteerWheel.pressedDown = flag; - }else{ // left + } else { // left m_ctrlSteerWheel.pressedLeft = flag; } + + // calc offset and pressed number QPointF offset(0.0, 0.0); - int nPressed = 0; - if(m_ctrlSteerWheel.pressedUp){ - ++nPressed; + int pressedNum = 0; + if (m_ctrlSteerWheel.pressedUp) { + ++pressedNum; offset.ry() -= node.data.steerWheel.up.extendOffset; } - if(m_ctrlSteerWheel.pressedRight){ - ++nPressed; + if (m_ctrlSteerWheel.pressedRight) { + ++pressedNum; offset.rx() += node.data.steerWheel.right.extendOffset; } - if(m_ctrlSteerWheel.pressedDown){ - ++nPressed; + if (m_ctrlSteerWheel.pressedDown) { + ++pressedNum; offset.ry() += node.data.steerWheel.down.extendOffset; } - if(m_ctrlSteerWheel.pressedLeft){ - ++nPressed; + if (m_ctrlSteerWheel.pressedLeft) { + ++pressedNum; offset.rx() -= node.data.steerWheel.left.extendOffset; } + // action - //qDebug()<key())<<"-"<type()<<"-"<key(); id = attachTouchID(m_ctrlSteerWheel.touchKey); sendTouchDownEvent(id, node.data.steerWheel.centerPos); - }else{ + } else { + // jsut get touch id and move id = getTouchID(m_ctrlSteerWheel.touchKey); } sendTouchMoveEvent(id, node.data.steerWheel.centerPos + offset); diff --git a/QtScrcpy/device/controller/inputconvert/inputconvertgame.h b/QtScrcpy/device/controller/inputconvert/inputconvertgame.h index acf585b..8ded936 100644 --- a/QtScrcpy/device/controller/inputconvert/inputconvertgame.h +++ b/QtScrcpy/device/controller/inputconvert/inputconvertgame.h @@ -67,14 +67,14 @@ private: int multiTouchID[MULTI_TOUCH_MAX_NUM] = { 0 }; // steer wheel - struct{ - bool valid = false; - bool touching = false; - int touchKey = Qt::Key_unknown; // the first key pressed - int nKeyPressed = 0; - bool pressedUp = false, pressedDown = false; - bool pressedLeft = false, pressedRight = false; - QPointF centerPos; + struct { + // the first key pressed + int touchKey = Qt::Key_unknown; + bool pressedUp = false; + bool pressedDown = false; + bool pressedLeft = false; + bool pressedRight = false; + // for last up QPointF lastOffset; } m_ctrlSteerWheel;