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