From c69c0b0c2526dc40f58c97fcdb800cc34f201b0d Mon Sep 17 00:00:00 2001 From: Barry <870709864@qq.com> Date: Sun, 11 Nov 2018 17:14:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E5=AF=B9=E6=8E=A5?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=A4=9A=E7=82=B9=E8=A7=A6=E6=91=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/inputcontrol/controlevent.cpp | 12 ++++++ src/inputcontrol/controlevent.h | 12 +++++- src/inputcontrol/inputconvertgame.cpp | 56 +++++++++++++------------- src/scrcpy-server.jar | Bin 18802 -> 48320 bytes src/videoform.cpp | 4 +- 5 files changed, 54 insertions(+), 30 deletions(-) diff --git a/src/inputcontrol/controlevent.cpp b/src/inputcontrol/controlevent.cpp index ac806b9..99c8a79 100644 --- a/src/inputcontrol/controlevent.cpp +++ b/src/inputcontrol/controlevent.cpp @@ -29,6 +29,13 @@ void ControlEvent::setMouseEventData(AndroidMotioneventAction action, AndroidMot m_data.mouseEvent.position = position; } +void ControlEvent::setTouchEventData(quint32 id, AndroidMotioneventAction action, QRect position) +{ + m_data.touchEvent.action = action; + m_data.touchEvent.id = id; + m_data.touchEvent.position = position; +} + void ControlEvent::setScrollEventData(QRect position, qint32 hScroll, qint32 vScroll) { m_data.scrollEvent.position = position; @@ -93,6 +100,11 @@ QByteArray ControlEvent::serializeData() write32(buffer, m_data.mouseEvent.buttons); writePosition(buffer, m_data.mouseEvent.position); break; + case CET_TOUCH: + buffer.putChar(m_data.touchEvent.id); + buffer.putChar(m_data.touchEvent.action); + writePosition(buffer, m_data.touchEvent.position); + break; case CET_SCROLL: writePosition(buffer, m_data.scrollEvent.position); write32(buffer, m_data.scrollEvent.hScroll); diff --git a/src/inputcontrol/controlevent.h b/src/inputcontrol/controlevent.h index 4bd827f..7629854 100644 --- a/src/inputcontrol/controlevent.h +++ b/src/inputcontrol/controlevent.h @@ -16,9 +16,10 @@ public: enum ControlEventType { CET_KEYCODE, CET_TEXT, - CET_MOUSE, + CET_MOUSE, CET_SCROLL, CET_COMMAND, + CET_TOUCH, }; ControlEvent(ControlEventType controlEventType); @@ -26,6 +27,10 @@ public: void setKeycodeEventData(AndroidKeyeventAction action, AndroidKeycode keycode, AndroidMetastate metastate); void setTextEventData(QString text); void setMouseEventData(AndroidMotioneventAction action, AndroidMotioneventButtons buttons, QRect position); + // id 代表一个触摸点,最多支持10个触摸点[0,9] + // action 只能是AMOTION_EVENT_ACTION_DOWN,AMOTION_EVENT_ACTION_UP,AMOTION_EVENT_ACTION_MOVE + // position action动作对应的位置 + void setTouchEventData(quint32 id, AndroidMotioneventAction action, QRect position); void setScrollEventData(QRect position, qint32 hScroll, qint32 vScroll); void setCommandEventData(qint32 action); @@ -53,6 +58,11 @@ private: AndroidMotioneventButtons buttons; QRect position; } mouseEvent; + struct { + quint32 id; + AndroidMotioneventAction action; + QRect position; + } touchEvent; struct { QRect position; qint32 hScroll; diff --git a/src/inputcontrol/inputconvertgame.cpp b/src/inputcontrol/inputconvertgame.cpp index b7662cc..29258d7 100644 --- a/src/inputcontrol/inputconvertgame.cpp +++ b/src/inputcontrol/inputconvertgame.cpp @@ -24,43 +24,31 @@ void InputConvertGame::keyEvent(const QKeyEvent *from, const QSize& frameSize, c return; } - int action = 0; + AndroidMotioneventAction action; // pos QPointF pos; + // id + int id = 0; - // pointer index - int pointerIndex = 0; - - if (from->key() == Qt::Key_W) { - pointerIndex = 0x0000; + if (from->key() == Qt::Key_A) { + id = 0; pos.setX(showSize.width() * 0.25f); - pos.setY(showSize.height() * 0.5f); - } else if (from->key() == Qt::Key_D) { - pointerIndex = 0x0100; - pos.setX(showSize.width() * 0.5f); pos.setY(showSize.height() * 0.25f); + } else if (from->key() == Qt::Key_S) { + id = 1; + pos.setX(showSize.width() * 0.35f); + pos.setY(showSize.height() * 0.35f); } else { return; } - - action |= pointerIndex; - // action switch (from->type()) { case QEvent::KeyPress: - if (from->key() == Qt::Key_W) { - action |= AMOTION_EVENT_ACTION_DOWN; - } else { - action |= AMOTION_EVENT_ACTION_POINTER_DOWN; - } + action = AMOTION_EVENT_ACTION_DOWN; break; case QEvent::KeyRelease: - if (from->key() == Qt::Key_W) { - action |= AMOTION_EVENT_ACTION_UP; - } else { - action |= AMOTION_EVENT_ACTION_POINTER_UP; - } + action = AMOTION_EVENT_ACTION_UP; break; default: return; @@ -71,14 +59,27 @@ void InputConvertGame::keyEvent(const QKeyEvent *from, const QSize& frameSize, c pos.setY(pos.y() * frameSize.height() / showSize.height()); // set data - ControlEvent* controlEvent = new ControlEvent(ControlEvent::CET_MOUSE); + ControlEvent* controlEvent = new ControlEvent(ControlEvent::CET_TOUCH); if (!controlEvent) { return; - } - controlEvent->setMouseEventData((AndroidMotioneventAction)action, AMOTION_EVENT_BUTTON_PRIMARY, QRect(pos.toPoint(), frameSize)); + } + controlEvent->setTouchEventData(id, action, QRect(pos.toPoint(), frameSize)); sendControlEvent(controlEvent); - return; + if (QEvent::KeyPress == from->type() && from->key() == Qt::Key_S) { + // set data + ControlEvent* controlEvent2 = new ControlEvent(ControlEvent::CET_TOUCH); + if (!controlEvent2) { + return; + } + pos.setX(pos.x() + 50); + pos.setY(pos.y() + 50); + controlEvent2->setTouchEventData(id, AMOTION_EVENT_ACTION_MOVE, QRect(pos.toPoint(), frameSize)); + sendControlEvent(controlEvent2); + } + + return; +/* if (QEvent::KeyPress == from->type()) { ControlEvent* controlEvent2 = new ControlEvent(ControlEvent::CET_MOUSE); if (!controlEvent2) { @@ -90,4 +91,5 @@ void InputConvertGame::keyEvent(const QKeyEvent *from, const QSize& frameSize, c controlEvent2->setMouseEventData((AndroidMotioneventAction)action, AMOTION_EVENT_BUTTON_PRIMARY, QRect(pos.toPoint(), frameSize)); sendControlEvent(controlEvent2); } + */ } diff --git a/src/scrcpy-server.jar b/src/scrcpy-server.jar index e14dbb8202259030dc61467f804624ac9db51c77..3dcf27dee50d00ec96a6f9d193d60f745594ae9b 100644 GIT binary patch delta 24576 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 XB>~>7Y#?PU3@i*k7#J8*JU~1E6x5oG diff --git a/src/videoform.cpp b/src/videoform.cpp index 955a6b0..1a31d7f 100644 --- a/src/videoform.cpp +++ b/src/videoform.cpp @@ -119,12 +119,12 @@ void VideoForm::wheelEvent(QWheelEvent *event) void VideoForm::keyPressEvent(QKeyEvent *event) { - qDebug() << "keyPressEvent" << event->isAutoRepeat(); + //qDebug() << "keyPressEvent" << event->isAutoRepeat(); m_inputConvert.keyEvent(event, ui->videoWidget->frameSize(), size()); } void VideoForm::keyReleaseEvent(QKeyEvent *event) { - qDebug() << "keyReleaseEvent" << event->isAutoRepeat(); + //qDebug() << "keyReleaseEvent" << event->isAutoRepeat(); m_inputConvert.keyEvent(event, ui->videoWidget->frameSize(), size()); }