[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [wacomtablet] src/common: Use QVector<uint8_t> for X11InputDevice button mapping functions
From: Valeriy Malov <null () kde ! org>
Date: 2018-03-31 21:30:50
Message-ID: E1f2O5K-0007wG-LV () code ! kde ! org
[Download RAW message or body]
Git commit 3ae025a208d4cfcb036c7d9565c48089a88af1ff by Valeriy Malov.
Committed on 31/03/2018 at 21:30.
Pushed by valeriymalov into branch 'master'.
Use QVector<uint8_t> for X11InputDevice button mapping functions
Since X11 calls take & return uint8_t array, use it instead of
QList<int> and get rid of unescessary conversions
M +9 -17 src/common/x11inputdevice-xcb.cpp
M +5 -14 src/common/x11inputdevice-xlib.cpp
M +2 -2 src/common/x11inputdevice.h
M +2 -2 src/common/x11wacom.cpp
https://commits.kde.org/wacomtablet/3ae025a208d4cfcb036c7d9565c48089a88af1ff
diff --git a/src/common/x11inputdevice-xcb.cpp b/src/common/x11inputdevice-xcb.cpp
index 4d70bc1..a546b18 100644
--- a/src/common/x11inputdevice-xcb.cpp
+++ b/src/common/x11inputdevice-xcb.cpp
@@ -112,20 +112,20 @@ bool X11InputDevice::getAtomProperty(const QString& property, QList< long \
int >& }
-const QList< int > X11InputDevice::getDeviceButtonMapping() const
+const QVector<uint8_t> X11InputDevice::getDeviceButtonMapping() const
{
Q_D(const X11InputDevice);
- QList<int> buttonMap;
+ QVector<uint8_t> buttonMap;
if (!isOpen()) {
return buttonMap;
}
- int buttonCount = 0;
+ int buttonCount = 0;
xcb_input_get_device_button_mapping_cookie_t cookie = \
xcb_input_get_device_button_mapping(QX11Info::connection(), d->deviceid);
- xcb_input_get_device_button_mapping_reply_t* reply = \
xcb_input_get_device_button_mapping_reply(QX11Info::connection(), cookie, NULL); + \
xcb_input_get_device_button_mapping_reply_t* reply = \
xcb_input_get_device_button_mapping_reply(QX11Info::connection(), cookie, nullptr);
if (!reply) {
return buttonMap; // the device has no buttons
@@ -135,7 +135,7 @@ const QList< int > X11InputDevice::getDeviceButtonMapping() const
buttonCount = xcb_input_get_device_button_mapping_map_length(reply);
for (int i = 0 ; i < buttonCount ; ++i) {
- buttonMap.append((int)map_return[i]);
+ buttonMap.append(map_return[i]);
}
free(reply);
@@ -313,7 +313,7 @@ bool X11InputDevice::open(X11InputDevice::XID id, const QString& name)
-bool X11InputDevice::setDeviceButtonMapping(const QList< int >& buttonMap) const
+bool X11InputDevice::setDeviceButtonMapping(const QVector<uint8_t> &buttonMap) const
{
Q_D(const X11InputDevice);
@@ -321,15 +321,9 @@ bool X11InputDevice::setDeviceButtonMapping(const QList< int >& buttonMap) \
const return false;
}
- const int nmap = buttonMap.count();
- unsigned char* map = new unsigned char[nmap];
-
- for (int i = 0 ; i < nmap ; ++i) {
- map[i] = (unsigned char)buttonMap.at(i);
- }
-
- xcb_input_set_device_button_mapping_cookie_t cookie = \
xcb_input_set_device_button_mapping(QX11Info::connection(), d->deviceid, nmap, \
map);
- xcb_input_set_device_button_mapping_reply_t* reply = \
xcb_input_set_device_button_mapping_reply(QX11Info::connection(), cookie, NULL); + \
xcb_input_set_device_button_mapping_cookie_t cookie = + \
xcb_input_set_device_button_mapping(QX11Info::connection(), d->deviceid, \
static_cast<uint8_t>(buttonMap.size()), buttonMap.data()); + \
xcb_input_set_device_button_mapping_reply_t* reply = \
xcb_input_set_device_button_mapping_reply(QX11Info::connection(), cookie, nullptr);
uint8_t result = 1;
@@ -338,8 +332,6 @@ bool X11InputDevice::setDeviceButtonMapping(const QList< int >& buttonMap) \
const free(reply);
}
- delete map;
-
return (result == 0);
}
diff --git a/src/common/x11inputdevice-xlib.cpp b/src/common/x11inputdevice-xlib.cpp
index 0c3b6f4..f6eb469 100644
--- a/src/common/x11inputdevice-xlib.cpp
+++ b/src/common/x11inputdevice-xlib.cpp
@@ -112,11 +112,11 @@ bool X11InputDevice::getAtomProperty(const QString& property, QList< long \
int >& }
-const QList< int > X11InputDevice::getDeviceButtonMapping() const
+const QVector<uint8_t> X11InputDevice::getDeviceButtonMapping() const
{
Q_D(const X11InputDevice);
- QList<int> buttonMap;
+ QVector<uint8_t> buttonMap;
if (!isOpen()) {
return buttonMap;
@@ -128,7 +128,7 @@ const QList< int > X11InputDevice::getDeviceButtonMapping() const
int buttonCount = XGetDeviceButtonMapping(d->display, d->device, map_return, 128);
for (int i = 0 ; i < buttonCount ; ++i) {
- buttonMap.append((int)map_return[i]);
+ buttonMap.append(map_return[i]);
}
return buttonMap;
@@ -305,7 +305,7 @@ bool X11InputDevice::open(XID id, const QString& name)
-bool X11InputDevice::setDeviceButtonMapping(const QList< int >& buttonMap) const
+bool X11InputDevice::setDeviceButtonMapping(const QVector<uint8_t> &buttonMap) const
{
Q_D(const X11InputDevice);
@@ -313,16 +313,7 @@ bool X11InputDevice::setDeviceButtonMapping(const QList< int >& buttonMap) \
const return false;
}
- const int nmap = buttonMap.count();
- unsigned char * map = new unsigned char[nmap];
-
- for (int i = 0 ; i < nmap ; ++i) {
- map[i] = (unsigned char)buttonMap.at(i);
- }
-
- int result = XSetDeviceButtonMapping(d->display, d->device, map, nmap);
-
- delete map;
+ int result = XSetDeviceButtonMapping(d->display, d->device, \
QVector<uint8_t>(buttonMap).data(), buttonMap.count());
dbgWacom << "setDeviceButtonMapping returned result" << result;
diff --git a/src/common/x11inputdevice.h b/src/common/x11inputdevice.h
index 1629653..08864c3 100644
--- a/src/common/x11inputdevice.h
+++ b/src/common/x11inputdevice.h
@@ -96,7 +96,7 @@ public:
*
* @return A list of buttons numbers.
*/
- const QList<int> getDeviceButtonMapping() const;
+ const QVector<uint8_t> getDeviceButtonMapping() const;
/**
* Gets the device id of this device.
@@ -196,7 +196,7 @@ public:
*
* @return True on success, false on error.
*/
- bool setDeviceButtonMapping(const QList<int>& buttonMap) const;
+ bool setDeviceButtonMapping(const QVector<uint8_t> &buttonMap) const;
/**
* Sets a float property. The values have to be separated by a single whitespace.
diff --git a/src/common/x11wacom.cpp b/src/common/x11wacom.cpp
index ec6a1bf..13a32a2 100644
--- a/src/common/x11wacom.cpp
+++ b/src/common/x11wacom.cpp
@@ -94,7 +94,7 @@ bool X11Wacom::isScrollDirectionInverted(const QString& deviceName)
return false;
}
- QList<int> buttonMap = device.getDeviceButtonMapping();
+ const auto buttonMap = device.getDeviceButtonMapping();
if (buttonMap.count() == 0 || buttonMap.count() < 5) {
return false;
@@ -140,7 +140,7 @@ bool X11Wacom::setScrollDirection(const QString& deviceName, bool inverted)
return false;
}
- QList<int> buttonMap = device.getDeviceButtonMapping();
+ auto buttonMap = device.getDeviceButtonMapping();
if (buttonMap.count() == 0 || buttonMap.count() < 5) {
return false;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic