42#include "qinputinfo.h"
44#if defined(LOMIRI_MOCKS)
45#include "qinputdeviceinfo_mock_p.h"
46#elif defined(Q_OS_LINUX)
47#include "linux/qinputdeviceinfo_linux_p.h"
50Q_GLOBAL_STATIC(QInputDeviceManagerPrivate, inputDeviceManagerPrivate)
54QInputDeviceManagerPrivate * QInputDeviceManagerPrivate::instance()
56 QInputDeviceManagerPrivate *priv = inputDeviceManagerPrivate();
60QInputDevicePrivate::QInputDevicePrivate(QObject *parent) :
62 type(QInputDevice::Unknown)
66QInputDevice::QInputDevice(QObject *parent) :
68 d_ptr(new QInputDevicePrivate(this))
75QString QInputDevice::name()
const
83void QInputDevice::setName(
const QString &name)
91QString QInputDevice::devicePath()
const
93 return d_ptr->devicePath;
99void QInputDevice::setDevicePath(
const QString &path)
101 d_ptr->devicePath = path;
107QList <int> QInputDevice::buttons()
const
109 return d_ptr->buttons;
115void QInputDevice::addButton(
int buttonCode)
117 d_ptr->buttons.append(buttonCode);
123QList <int> QInputDevice::switches()
const
125 return d_ptr->switches;
131void QInputDevice::addSwitch(
int switchCode)
133 d_ptr->switches.append(switchCode);
139QList <int> QInputDevice::relativeAxis()
const
141 return d_ptr->relativeAxis;
146void QInputDevice::addRelativeAxis(
int axisCode)
148 d_ptr->relativeAxis.append(axisCode);
154QList <int> QInputDevice::absoluteAxis()
const
156 return d_ptr->absoluteAxis;
161void QInputDevice::addAbsoluteAxis(
int axisCode)
163 d_ptr->absoluteAxis.append(axisCode);
169QInputDevice::InputTypeFlags QInputDevice::type()
const
176void QInputDevice::setType(QInputDevice::InputTypeFlags type)
181QInputDeviceManager::QInputDeviceManager(QObject *parent) :
183 d_ptr(inputDeviceManagerPrivate)
185 connect(d_ptr, &QInputDeviceManagerPrivate::deviceAdded,
this,&QInputDeviceManager::addedDevice);
186 connect(d_ptr, &QInputDeviceManagerPrivate::deviceRemoved,
this,&QInputDeviceManager::deviceRemoved);
188 connect(d_ptr,SIGNAL(ready()),
this,SIGNAL(ready()));
194QMap <QString, QInputDevice *> QInputDeviceManager::deviceMap()
196 return d_ptr->deviceMap;
201void QInputDeviceManager::addedDevice(
const QString & devicePath)
203 Q_EMIT deviceAdded(devicePath);
209QVector <QInputDevice *> QInputDeviceManager::deviceListOfType(QInputDevice::InputType filter)
211 QVector <QInputDevice *> dList;
212 QMapIterator<QString, QInputDevice *> i(d_ptr->deviceMap);
213 while (i.hasNext()) {
215 if (i.value()->type().testFlag(filter) || filter == QInputDevice::Unknown) {
216 dList.append(i.value());
227int QInputDeviceManager::deviceCount()
const
229 return deviceCount(
static_cast< QInputDevice::InputType
>(d_ptr->currentFilter));
235int QInputDeviceManager::deviceCount(
const QInputDevice::InputType filter)
const
238 QMapIterator<QString, QInputDevice *> i(d_ptr->deviceMap);
239 while (i.hasNext()) {
244 if (i.value()->type().testFlag(filter)) {
254QInputDevice::InputType QInputDeviceManager::deviceFilter()
256 return d_ptr->currentFilter;
262void QInputDeviceManager::setDeviceFilter(QInputDevice::InputType filter)
264 if (filter != d_ptr->currentFilter) {
265 d_ptr->currentFilter = filter;
266 Q_EMIT deviceFilterChanged(filter);