mirror of
https://github.com/barry-ran/QtScrcpy.git
synced 2025-08-03 14:18:45 +00:00
feat: ready for key map script
This commit is contained in:
parent
bbb758e684
commit
7887f38d57
4 changed files with 96 additions and 0 deletions
|
@ -10,3 +10,8 @@ SOURCES += \
|
||||||
$$PWD/inputconvertnormal.cpp \
|
$$PWD/inputconvertnormal.cpp \
|
||||||
$$PWD/controlmsg.cpp
|
$$PWD/controlmsg.cpp
|
||||||
|
|
||||||
|
include ($$PWD/keymap/keymap.pri)
|
||||||
|
|
||||||
|
INCLUDEPATH += \
|
||||||
|
$$PWD/keymap
|
||||||
|
|
||||||
|
|
39
QtScrcpy/device/controller/inputconvert/keymap/keymap.cpp
Normal file
39
QtScrcpy/device/controller/inputconvert/keymap/keymap.cpp
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#include "keymap.h"
|
||||||
|
|
||||||
|
KeyMap::KeyMap()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void KeyMap::loadKeyMapNode()
|
||||||
|
{
|
||||||
|
KeyMapNode node;
|
||||||
|
node.type = KMT_CLICK;
|
||||||
|
node.click.keyNode.key = Qt::Key_J;
|
||||||
|
node.click.keyNode.pos = QPointF(0.5f, 0.5f);
|
||||||
|
node.click.quitMap = false;
|
||||||
|
|
||||||
|
m_keyMapNodes.push_back(node);
|
||||||
|
}
|
||||||
|
|
||||||
|
KeyMap::KeyMapNode KeyMap::getKeyMapNode(int key)
|
||||||
|
{
|
||||||
|
KeyMapNode retNode;
|
||||||
|
bool find = false;
|
||||||
|
for (auto& node : m_keyMapNodes) {
|
||||||
|
switch (node.type) {
|
||||||
|
case KMT_CLICK:
|
||||||
|
if (node.click.keyNode.key == key) {
|
||||||
|
retNode = node;
|
||||||
|
find = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (find) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return retNode;
|
||||||
|
}
|
47
QtScrcpy/device/controller/inputconvert/keymap/keymap.h
Normal file
47
QtScrcpy/device/controller/inputconvert/keymap/keymap.h
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
#ifndef KEYMAP_H
|
||||||
|
#define KEYMAP_H
|
||||||
|
#include <QPointF>
|
||||||
|
#include <QVector>
|
||||||
|
|
||||||
|
|
||||||
|
class KeyMap
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
enum KeyMapType {
|
||||||
|
KMT_INVALID = -1,
|
||||||
|
KMT_CLICK = 0,
|
||||||
|
KMT_CLICK_TWICE,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct KeyNode {
|
||||||
|
int key = Qt::Key_unknown;
|
||||||
|
QPointF pos = QPointF(0, 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct KeyMapNode {
|
||||||
|
KeyMapType type = KMT_INVALID;
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
KeyNode keyNode;
|
||||||
|
bool quitMap = false;
|
||||||
|
} click;
|
||||||
|
struct {
|
||||||
|
KeyNode keyNode;
|
||||||
|
bool quitMap = false;
|
||||||
|
} clickTwice;
|
||||||
|
};
|
||||||
|
KeyMapNode() {}
|
||||||
|
~KeyMapNode() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
KeyMap();
|
||||||
|
|
||||||
|
void loadKeyMapNode();
|
||||||
|
KeyMap::KeyMapNode getKeyMapNode(int key);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QVector<KeyMapNode> m_keyMapNodes;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // KEYMAP_H
|
|
@ -0,0 +1,5 @@
|
||||||
|
HEADERS += \
|
||||||
|
$$PWD/keymap.h
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
$$PWD/keymap.cpp
|
Loading…
Add table
Add a link
Reference in a new issue