Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: ui/events/ozone/evdev/event_converter_evdev.cc

Issue 1287103004: Sync ui/events to chromium @ https://codereview.chromium.org/1210203002 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: rebased Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <linux/input.h>
6
7 #include "ui/events/ozone/evdev/event_converter_evdev.h"
8
9 #include "base/files/file_path.h"
10 #include "base/logging.h"
11 #include "base/message_loop/message_loop.h"
12 #include "base/trace_event/trace_event.h"
13 #include "ui/events/devices/input_device.h"
14
15 namespace ui {
16
17 EventConverterEvdev::EventConverterEvdev(int fd,
18 const base::FilePath& path,
19 int id,
20 InputDeviceType type,
21 const std::string& name,
22 uint16_t vendor_id,
23 uint16_t product_id)
24 : fd_(fd),
25 path_(path),
26 input_device_(id, type, name, vendor_id, product_id) {
27 }
28
29 EventConverterEvdev::~EventConverterEvdev() {
30 DCHECK(!enabled_);
31 DCHECK(!watching_);
32 if (fd_ >= 0)
33 close(fd_);
34 }
35
36 void EventConverterEvdev::Start() {
37 base::MessageLoopForUI::current()->WatchFileDescriptor(
38 fd_, true, base::MessagePumpLibevent::WATCH_READ, &controller_, this);
39 watching_ = true;
40 }
41
42 void EventConverterEvdev::Stop() {
43 controller_.StopWatchingFileDescriptor();
44 watching_ = false;
45 }
46
47 void EventConverterEvdev::SetEnabled(bool enabled) {
48 if (enabled == enabled_)
49 return;
50 if (enabled) {
51 TRACE_EVENT1("evdev", "EventConverterEvdev::OnEnabled", "path",
52 path_.value());
53 OnEnabled();
54 } else {
55 TRACE_EVENT1("evdev", "EventConverterEvdev::OnDisabled", "path",
56 path_.value());
57 OnDisabled();
58 }
59 enabled_ = enabled;
60 }
61
62 void EventConverterEvdev::OnStopped() {
63 }
64
65 void EventConverterEvdev::OnEnabled() {
66 }
67
68 void EventConverterEvdev::OnDisabled() {
69 }
70
71 void EventConverterEvdev::OnFileCanWriteWithoutBlocking(int fd) {
72 NOTREACHED();
73 }
74
75 bool EventConverterEvdev::HasKeyboard() const {
76 return false;
77 }
78
79 bool EventConverterEvdev::HasMouse() const {
80 return false;
81 }
82
83 bool EventConverterEvdev::HasTouchpad() const {
84 return false;
85 }
86
87 bool EventConverterEvdev::HasTouchscreen() const {
88 return false;
89 }
90
91 bool EventConverterEvdev::HasCapsLockLed() const {
92 return false;
93 }
94
95 gfx::Size EventConverterEvdev::GetTouchscreenSize() const {
96 NOTREACHED();
97 return gfx::Size();
98 }
99
100 int EventConverterEvdev::GetTouchPoints() const {
101 NOTREACHED();
102 return 0;
103 }
104
105 void EventConverterEvdev::SetKeyFilter(bool enable_filter,
106 std::vector<DomCode> allowed_keys) {
107 NOTREACHED();
108 }
109
110 void EventConverterEvdev::SetCapsLockLed(bool enabled) {
111 if (!HasCapsLockLed())
112 return;
113
114 input_event events[2];
115 memset(&events, 0, sizeof(events));
116
117 events[0].type = EV_LED;
118 events[0].code = LED_CAPSL;
119 events[0].value = enabled;
120
121 events[1].type = EV_SYN;
122 events[1].code = SYN_REPORT;
123 events[1].value = 0;
124
125 ssize_t written = write(fd_, events, sizeof(events));
126
127 if (written < 0) {
128 if (errno != ENODEV)
129 PLOG(ERROR) << "cannot set leds for " << path_.value() << ":";
130 Stop();
131 } else if (written != sizeof(events)) {
132 LOG(ERROR) << "short write setting leds for " << path_.value();
133 Stop();
134 }
135 }
136
137 base::TimeDelta EventConverterEvdev::TimeDeltaFromInputEvent(
138 const input_event& event) {
139 return base::TimeDelta::FromMicroseconds(event.time.tv_sec * 1000000 +
140 event.time.tv_usec);
141 }
142 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/ozone/evdev/event_converter_evdev.h ('k') | ui/events/ozone/evdev/event_converter_evdev_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698