Lines Matching refs:device
245 Device* device = mClosingDevices; in ~EventHub() local
246 mClosingDevices = device->next; in ~EventHub()
247 delete device; in ~EventHub()
260 Device* device = getDeviceLocked(deviceId); in getDeviceIdentifier() local
261 if (device == NULL) return InputDeviceIdentifier(); in getDeviceIdentifier()
262 return device->identifier; in getDeviceIdentifier()
267 Device* device = getDeviceLocked(deviceId); in getDeviceClasses() local
268 if (device == NULL) return 0; in getDeviceClasses()
269 return device->classes; in getDeviceClasses()
274 Device* device = getDeviceLocked(deviceId); in getDeviceControllerNumber() local
275 if (device == NULL) return 0; in getDeviceControllerNumber()
276 return device->controllerNumber; in getDeviceControllerNumber()
281 Device* device = getDeviceLocked(deviceId); in getConfiguration() local
282 if (device && device->configuration) { in getConfiguration()
283 *outConfiguration = *device->configuration; in getConfiguration()
296 Device* device = getDeviceLocked(deviceId); in getAbsoluteAxisInfo() local
297 if (device && !device->isVirtual() && test_bit(axis, device->absBitmask)) { in getAbsoluteAxisInfo()
299 if(ioctl(device->fd, EVIOCGABS(axis), &info)) { in getAbsoluteAxisInfo()
301 axis, device->identifier.name.string(), device->fd, errno); in getAbsoluteAxisInfo()
323 Device* device = getDeviceLocked(deviceId); in hasRelativeAxis() local
324 if (device) { in hasRelativeAxis()
325 return test_bit(axis, device->relBitmask); in hasRelativeAxis()
335 Device* device = getDeviceLocked(deviceId); in hasInputProperty() local
336 if (device) { in hasInputProperty()
337 return test_bit(property, device->propBitmask); in hasInputProperty()
347 Device* device = getDeviceLocked(deviceId); in getScanCodeState() local
348 if (device && !device->isVirtual() && test_bit(scanCode, device->keyBitmask)) { in getScanCodeState()
351 if (ioctl(device->fd, EVIOCGKEY(sizeof(keyState)), keyState) >= 0) { in getScanCodeState()
362 Device* device = getDeviceLocked(deviceId); in getKeyCodeState() local
363 if (device && !device->isVirtual() && device->keyMap.haveKeyLayout()) { in getKeyCodeState()
365 device->keyMap.keyLayoutMap->findScanCodesForKey(keyCode, &scanCodes); in getKeyCodeState()
369 if (ioctl(device->fd, EVIOCGKEY(sizeof(keyState)), keyState) >= 0) { in getKeyCodeState()
387 Device* device = getDeviceLocked(deviceId); in getSwitchState() local
388 if (device && !device->isVirtual() && test_bit(sw, device->swBitmask)) { in getSwitchState()
391 if (ioctl(device->fd, EVIOCGSW(sizeof(swState)), swState) >= 0) { in getSwitchState()
405 Device* device = getDeviceLocked(deviceId); in getAbsoluteAxisValue() local
406 if (device && !device->isVirtual() && test_bit(axis, device->absBitmask)) { in getAbsoluteAxisValue()
408 if(ioctl(device->fd, EVIOCGABS(axis), &info)) { in getAbsoluteAxisValue()
410 axis, device->identifier.name.string(), device->fd, errno); in getAbsoluteAxisValue()
425 Device* device = getDeviceLocked(deviceId); in markSupportedKeyCodes() local
426 if (device && device->keyMap.haveKeyLayout()) { in markSupportedKeyCodes()
431 status_t err = device->keyMap.keyLayoutMap->findScanCodesForKey( in markSupportedKeyCodes()
437 if (test_bit(scanCodes[sc], device->keyBitmask)) { in markSupportedKeyCodes()
452 Device* device = getDeviceLocked(deviceId); in mapKey() local
454 if (device) { in mapKey()
456 sp<KeyCharacterMap> kcm = device->getKeyCharacterMap(); in mapKey()
465 if (device->keyMap.haveKeyLayout()) { in mapKey()
466 if (!device->keyMap.keyLayoutMap->mapKey( in mapKey()
480 Device* device = getDeviceLocked(deviceId); in mapAxis() local
482 if (device && device->keyMap.haveKeyLayout()) { in mapAxis()
483 status_t err = device->keyMap.keyLayoutMap->mapAxis(scanCode, outAxisInfo); in mapAxis()
500 Device* device = getDeviceLocked(deviceId); in hasScanCode() local
501 if (device && scanCode >= 0 && scanCode <= KEY_MAX) { in hasScanCode()
502 if (test_bit(scanCode, device->keyBitmask)) { in hasScanCode()
511 Device* device = getDeviceLocked(deviceId); in hasLed() local
512 if (device && led >= 0 && led <= LED_MAX) { in hasLed()
513 if (test_bit(led, device->ledBitmask)) { in hasLed()
522 Device* device = getDeviceLocked(deviceId); in setLedState() local
523 if (device && !device->isVirtual() && led >= 0 && led <= LED_MAX) { in setLedState()
533 nWrite = write(device->fd, &ev, sizeof(struct input_event)); in setLedState()
543 Device* device = getDeviceLocked(deviceId); in getVirtualKeyDefinitions() local
544 if (device && device->virtualKeyMap) { in getVirtualKeyDefinitions()
545 outVirtualKeys.appendVector(device->virtualKeyMap->getVirtualKeys()); in getVirtualKeyDefinitions()
551 Device* device = getDeviceLocked(deviceId); in getKeyCharacterMap() local
552 if (device) { in getKeyCharacterMap()
553 return device->getKeyCharacterMap(); in getKeyCharacterMap()
561 Device* device = getDeviceLocked(deviceId); in setKeyboardLayoutOverlay() local
562 if (device) { in setKeyboardLayoutOverlay()
563 if (map != device->overlayKeyMap) { in setKeyboardLayoutOverlay()
564 device->overlayKeyMap = map; in setKeyboardLayoutOverlay()
565 device->combinedKeyMap = KeyCharacterMap::combine( in setKeyboardLayoutOverlay()
566 device->keyMap.keyCharacterMap, map); in setKeyboardLayoutOverlay()
575 Device* device = getDeviceLocked(deviceId); in vibrate() local
576 if (device && !device->isVirtual()) { in vibrate()
580 effect.id = device->ffEffectId; in vibrate()
585 if (ioctl(device->fd, EVIOCSFF, &effect)) { in vibrate()
587 device->identifier.name.string(), errno); in vibrate()
590 device->ffEffectId = effect.id; in vibrate()
596 ev.code = device->ffEffectId; in vibrate()
598 if (write(device->fd, &ev, sizeof(ev)) != sizeof(ev)) { in vibrate()
600 device->identifier.name.string(), errno); in vibrate()
603 device->ffEffectPlaying = true; in vibrate()
609 Device* device = getDeviceLocked(deviceId); in cancelVibrate() local
610 if (device && !device->isVirtual()) { in cancelVibrate()
611 if (device->ffEffectPlaying) { in cancelVibrate()
612 device->ffEffectPlaying = false; in cancelVibrate()
618 ev.code = device->ffEffectId; in cancelVibrate()
620 if (write(device->fd, &ev, sizeof(ev)) != sizeof(ev)) { in cancelVibrate()
622 device->identifier.name.string(), errno); in cancelVibrate()
639 Device* device = mDevices.valueAt(i); in getDeviceByPathLocked() local
640 if (device->path == devicePath) { in getDeviceByPathLocked()
641 return device; in getDeviceByPathLocked()
673 Device* device = mClosingDevices; in getEvents() local
675 device->id, device->path.string()); in getEvents()
676 mClosingDevices = device->next; in getEvents()
678 event->deviceId = device->id == mBuiltInKeyboardId ? BUILT_IN_KEYBOARD_ID : device->id; in getEvents()
681 delete device; in getEvents()
695 Device* device = mOpeningDevices; in getEvents() local
697 device->id, device->path.string()); in getEvents()
698 mOpeningDevices = device->next; in getEvents()
700 event->deviceId = device->id == mBuiltInKeyboardId ? 0 : device->id; in getEvents()
755 Device* device = mDevices.valueAt(deviceIndex); in getEvents() local
757 int32_t readSize = read(device->fd, readBuffer, in getEvents()
763 device->fd, readSize, bufferSize, capacity, errno); in getEvents()
765 closeDeviceLocked(device); in getEvents()
773 int32_t deviceId = device->id == mBuiltInKeyboardId ? 0 : device->id; in getEvents()
779 device->path.string(), in getEvents()
790 device->timestampOverrideSec = iev.value; in getEvents()
793 device->timestampOverrideUsec = iev.value; in getEvents()
797 if (device->timestampOverrideSec || device->timestampOverrideUsec) { in getEvents()
798 iev.time.tv_sec = device->timestampOverrideSec; in getEvents()
799 iev.time.tv_usec = device->timestampOverrideUsec; in getEvents()
801 device->timestampOverrideSec = 0; in getEvents()
802 device->timestampOverrideUsec = 0; in getEvents()
848 device->path.string(), event->when, time, now); in getEvents()
876 device->identifier.name.string()); in getEvents()
878 closeDeviceLocked(device); in getEvents()
881 eventItem.events, device->identifier.name.string()); in getEvents()
1079 Device* device = new Device(fd, deviceId, String8(devicePath), identifier); in openDeviceLocked() local
1095 loadConfigurationLocked(device); in openDeviceLocked()
1098 ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(device->keyBitmask)), device->keyBitmask); in openDeviceLocked()
1099 ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(device->absBitmask)), device->absBitmask); in openDeviceLocked()
1100 ioctl(fd, EVIOCGBIT(EV_REL, sizeof(device->relBitmask)), device->relBitmask); in openDeviceLocked()
1101 ioctl(fd, EVIOCGBIT(EV_SW, sizeof(device->swBitmask)), device->swBitmask); in openDeviceLocked()
1102 ioctl(fd, EVIOCGBIT(EV_LED, sizeof(device->ledBitmask)), device->ledBitmask); in openDeviceLocked()
1103 ioctl(fd, EVIOCGBIT(EV_FF, sizeof(device->ffBitmask)), device->ffBitmask); in openDeviceLocked()
1104 ioctl(fd, EVIOCGPROP(sizeof(device->propBitmask)), device->propBitmask); in openDeviceLocked()
1108 bool haveKeyboardKeys = containsNonZeroByte(device->keyBitmask, 0, sizeof_bit_array(BTN_MISC)) in openDeviceLocked()
1109 || containsNonZeroByte(device->keyBitmask, sizeof_bit_array(KEY_OK), in openDeviceLocked()
1111 bool haveGamepadButtons = containsNonZeroByte(device->keyBitmask, sizeof_bit_array(BTN_MISC), in openDeviceLocked()
1113 || containsNonZeroByte(device->keyBitmask, sizeof_bit_array(BTN_JOYSTICK), in openDeviceLocked()
1116 device->classes |= INPUT_DEVICE_CLASS_KEYBOARD; in openDeviceLocked()
1120 if (test_bit(BTN_MOUSE, device->keyBitmask) in openDeviceLocked()
1121 && test_bit(REL_X, device->relBitmask) in openDeviceLocked()
1122 && test_bit(REL_Y, device->relBitmask)) { in openDeviceLocked()
1123 device->classes |= INPUT_DEVICE_CLASS_CURSOR; in openDeviceLocked()
1128 if (test_bit(ABS_MT_POSITION_X, device->absBitmask) in openDeviceLocked()
1129 && test_bit(ABS_MT_POSITION_Y, device->absBitmask)) { in openDeviceLocked()
1133 if (test_bit(BTN_TOUCH, device->keyBitmask) || !haveGamepadButtons) { in openDeviceLocked()
1134 device->classes |= INPUT_DEVICE_CLASS_TOUCH | INPUT_DEVICE_CLASS_TOUCH_MT; in openDeviceLocked()
1137 } else if (test_bit(BTN_TOUCH, device->keyBitmask) in openDeviceLocked()
1138 && test_bit(ABS_X, device->absBitmask) in openDeviceLocked()
1139 && test_bit(ABS_Y, device->absBitmask)) { in openDeviceLocked()
1140 device->classes |= INPUT_DEVICE_CLASS_TOUCH; in openDeviceLocked()
1147 uint32_t assumedClasses = device->classes | INPUT_DEVICE_CLASS_JOYSTICK; in openDeviceLocked()
1149 if (test_bit(i, device->absBitmask) in openDeviceLocked()
1151 device->classes = assumedClasses; in openDeviceLocked()
1159 if (test_bit(i, device->swBitmask)) { in openDeviceLocked()
1160 device->classes |= INPUT_DEVICE_CLASS_SWITCH; in openDeviceLocked()
1166 if (test_bit(FF_RUMBLE, device->ffBitmask)) { in openDeviceLocked()
1167 device->classes |= INPUT_DEVICE_CLASS_VIBRATOR; in openDeviceLocked()
1171 if ((device->classes & INPUT_DEVICE_CLASS_TOUCH)) { in openDeviceLocked()
1174 status_t status = loadVirtualKeyMapLocked(device); in openDeviceLocked()
1176 device->classes |= INPUT_DEVICE_CLASS_KEYBOARD; in openDeviceLocked()
1183 if (device->classes & (INPUT_DEVICE_CLASS_KEYBOARD | INPUT_DEVICE_CLASS_JOYSTICK)) { in openDeviceLocked()
1185 keyMapStatus = loadKeyMapLocked(device); in openDeviceLocked()
1189 if (device->classes & INPUT_DEVICE_CLASS_KEYBOARD) { in openDeviceLocked()
1193 && isEligibleBuiltInKeyboard(device->identifier, in openDeviceLocked()
1194 device->configuration, &device->keyMap)) { in openDeviceLocked()
1195 mBuiltInKeyboardId = device->id; in openDeviceLocked()
1199 if (hasKeycodeLocked(device, AKEYCODE_Q)) { in openDeviceLocked()
1200 device->classes |= INPUT_DEVICE_CLASS_ALPHAKEY; in openDeviceLocked()
1204 if (hasKeycodeLocked(device, AKEYCODE_DPAD_UP) && in openDeviceLocked()
1205 hasKeycodeLocked(device, AKEYCODE_DPAD_DOWN) && in openDeviceLocked()
1206 hasKeycodeLocked(device, AKEYCODE_DPAD_LEFT) && in openDeviceLocked()
1207 hasKeycodeLocked(device, AKEYCODE_DPAD_RIGHT) && in openDeviceLocked()
1208 hasKeycodeLocked(device, AKEYCODE_DPAD_CENTER)) { in openDeviceLocked()
1209 device->classes |= INPUT_DEVICE_CLASS_DPAD; in openDeviceLocked()
1214 if (hasKeycodeLocked(device, GAMEPAD_KEYCODES[i])) { in openDeviceLocked()
1215 device->classes |= INPUT_DEVICE_CLASS_GAMEPAD; in openDeviceLocked()
1228 if (device->classes == 0) { in openDeviceLocked()
1230 deviceId, devicePath, device->identifier.name.string()); in openDeviceLocked()
1231 delete device; in openDeviceLocked()
1236 if (isExternalDeviceLocked(device)) { in openDeviceLocked()
1237 device->classes |= INPUT_DEVICE_CLASS_EXTERNAL; in openDeviceLocked()
1240 if (device->classes & (INPUT_DEVICE_CLASS_JOYSTICK | INPUT_DEVICE_CLASS_GAMEPAD)) { in openDeviceLocked()
1241 device->controllerNumber = getNextControllerNumberLocked(device); in openDeviceLocked()
1251 delete device; in openDeviceLocked()
1280 deviceId, fd, devicePath, device->identifier.name.string(), in openDeviceLocked()
1281 device->classes, in openDeviceLocked()
1282 device->configurationFile.string(), in openDeviceLocked()
1283 device->keyMap.keyLayoutFile.string(), in openDeviceLocked()
1284 device->keyMap.keyCharacterMapFile.string(), in openDeviceLocked()
1288 addDeviceLocked(device); in openDeviceLocked()
1298 Device* device = new Device(-1, VIRTUAL_KEYBOARD_ID, String8("<virtual>"), identifier); in createVirtualKeyboardLocked() local
1299 device->classes = INPUT_DEVICE_CLASS_KEYBOARD in createVirtualKeyboardLocked()
1303 loadKeyMapLocked(device); in createVirtualKeyboardLocked()
1304 addDeviceLocked(device); in createVirtualKeyboardLocked()
1307 void EventHub::addDeviceLocked(Device* device) { in addDeviceLocked() argument
1308 mDevices.add(device->id, device); in addDeviceLocked()
1309 device->next = mOpeningDevices; in addDeviceLocked()
1310 mOpeningDevices = device; in addDeviceLocked()
1313 void EventHub::loadConfigurationLocked(Device* device) { in loadConfigurationLocked() argument
1314 device->configurationFile = getInputDeviceConfigurationFilePathByDeviceIdentifier( in loadConfigurationLocked()
1315 device->identifier, INPUT_DEVICE_CONFIGURATION_FILE_TYPE_CONFIGURATION); in loadConfigurationLocked()
1316 if (device->configurationFile.isEmpty()) { in loadConfigurationLocked()
1318 device->identifier.name.string()); in loadConfigurationLocked()
1320 status_t status = PropertyMap::load(device->configurationFile, in loadConfigurationLocked()
1321 &device->configuration); in loadConfigurationLocked()
1325 device->identifier.name.string()); in loadConfigurationLocked()
1330 status_t EventHub::loadVirtualKeyMapLocked(Device* device) { in loadVirtualKeyMapLocked() argument
1334 path.append(device->identifier.name); in loadVirtualKeyMapLocked()
1338 return VirtualKeyMap::load(path, &device->virtualKeyMap); in loadVirtualKeyMapLocked()
1341 status_t EventHub::loadKeyMapLocked(Device* device) { in loadKeyMapLocked() argument
1342 return device->keyMap.load(device->identifier, device->configuration); in loadKeyMapLocked()
1345 bool EventHub::isExternalDeviceLocked(Device* device) { in isExternalDeviceLocked() argument
1346 if (device->configuration) { in isExternalDeviceLocked()
1348 if (device->configuration->tryGetProperty(String8("device.internal"), value)) { in isExternalDeviceLocked()
1352 return device->identifier.bus == BUS_USB || device->identifier.bus == BUS_BLUETOOTH; in isExternalDeviceLocked()
1355 int32_t EventHub::getNextControllerNumberLocked(Device* device) { in getNextControllerNumberLocked() argument
1358 device->identifier.name.string()); in getNextControllerNumberLocked()
1366 void EventHub::releaseControllerNumberLocked(Device* device) { in releaseControllerNumberLocked() argument
1367 int32_t num = device->controllerNumber; in releaseControllerNumberLocked()
1368 device->controllerNumber= 0; in releaseControllerNumberLocked()
1376 bool EventHub::hasKeycodeLocked(Device* device, int keycode) const { in hasKeycodeLocked() argument
1377 if (!device->keyMap.haveKeyLayout() || !device->keyBitmask) { in hasKeycodeLocked()
1382 device->keyMap.keyLayoutMap->findScanCodesForKey(keycode, &scanCodes); in hasKeycodeLocked()
1386 if (sc >= 0 && sc <= KEY_MAX && test_bit(sc, device->keyBitmask)) { in hasKeycodeLocked()
1395 Device* device = getDeviceByPathLocked(devicePath); in closeDeviceByPathLocked() local
1396 if (device) { in closeDeviceByPathLocked()
1397 closeDeviceLocked(device); in closeDeviceByPathLocked()
1410 void EventHub::closeDeviceLocked(Device* device) { in closeDeviceLocked() argument
1412 device->path.string(), device->identifier.name.string(), device->id, in closeDeviceLocked()
1413 device->fd, device->classes); in closeDeviceLocked()
1415 if (device->id == mBuiltInKeyboardId) { in closeDeviceLocked()
1417 device->path.string(), mBuiltInKeyboardId); in closeDeviceLocked()
1421 if (!device->isVirtual()) { in closeDeviceLocked()
1422 if (epoll_ctl(mEpollFd, EPOLL_CTL_DEL, device->fd, NULL)) { in closeDeviceLocked()
1427 releaseControllerNumberLocked(device); in closeDeviceLocked()
1429 mDevices.removeItem(device->id); in closeDeviceLocked()
1430 device->close(); in closeDeviceLocked()
1436 if (entry == device) { in closeDeviceLocked()
1447 ALOGI("Device %s was immediately closed after opening.", device->path.string()); in closeDeviceLocked()
1449 pred->next = device->next; in closeDeviceLocked()
1451 mOpeningDevices = device->next; in closeDeviceLocked()
1453 delete device; in closeDeviceLocked()
1457 device->next = mClosingDevices; in closeDeviceLocked()
1458 mClosingDevices = device; in closeDeviceLocked()
1546 const Device* device = mDevices.valueAt(i); in dump() local
1547 if (mBuiltInKeyboardId == device->id) { in dump()
1549 device->id, device->identifier.name.string()); in dump()
1551 dump.appendFormat(INDENT2 "%d: %s\n", device->id, in dump()
1552 device->identifier.name.string()); in dump()
1554 dump.appendFormat(INDENT3 "Classes: 0x%08x\n", device->classes); in dump()
1555 dump.appendFormat(INDENT3 "Path: %s\n", device->path.string()); in dump()
1556 dump.appendFormat(INDENT3 "Descriptor: %s\n", device->identifier.descriptor.string()); in dump()
1557 dump.appendFormat(INDENT3 "Location: %s\n", device->identifier.location.string()); in dump()
1558 dump.appendFormat(INDENT3 "ControllerNumber: %d\n", device->controllerNumber); in dump()
1559 dump.appendFormat(INDENT3 "UniqueId: %s\n", device->identifier.uniqueId.string()); in dump()
1562 device->identifier.bus, device->identifier.vendor, in dump()
1563 device->identifier.product, device->identifier.version); in dump()
1565 device->keyMap.keyLayoutFile.string()); in dump()
1567 device->keyMap.keyCharacterMapFile.string()); in dump()
1569 device->configurationFile.string()); in dump()
1571 toString(device->overlayKeyMap != NULL)); in dump()