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

Side by Side Diff: remoting/host/event_executor_win.cc

Issue 9968071: Ensure display hardware is powered up during Chromoting sessions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « remoting/host/capturer_win.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/host/event_executor.h" 5 #include "remoting/host/event_executor.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 uint16_t UsbKeycodeToWinScancode(uint32_t usb_keycode) { 87 uint16_t UsbKeycodeToWinScancode(uint32_t usb_keycode) {
88 for (int i = 0; i < arraysize(usb_keycode_map); i++) { 88 for (int i = 0; i < arraysize(usb_keycode_map); i++) {
89 if (usb_keycode_map[i].usb_keycode == usb_keycode) 89 if (usb_keycode_map[i].usb_keycode == usb_keycode)
90 return usb_keycode_map[i].native_keycode; 90 return usb_keycode_map[i].native_keycode;
91 } 91 }
92 92
93 return INVALID_KEYCODE; 93 return INVALID_KEYCODE;
94 } 94 }
95 95
96 void EventExecutorWin::HandleKey(const KeyEvent& event) { 96 void EventExecutorWin::HandleKey(const KeyEvent& event) {
97 // Reset the system idle suspend timeout.
98 SetThreadExecutionState(ES_SYSTEM_REQUIRED);
99
100 // Calculate scan code from key event.
97 int key = event.keycode(); 101 int key = event.keycode();
98 bool down = event.pressed(); 102 bool down = event.pressed();
99
100 // Calculate scan code from key event.
101 int scancode = INVALID_KEYCODE; 103 int scancode = INVALID_KEYCODE;
102 if (event.has_usb_keycode() && event.usb_keycode() != 0) { 104 if (event.has_usb_keycode() && event.usb_keycode() != 0) {
103 scancode = UsbKeycodeToWinScancode(event.usb_keycode()); 105 scancode = UsbKeycodeToWinScancode(event.usb_keycode());
104 LOG(INFO) << std::hex << "Host received keycode: " << event.keycode() 106 LOG(INFO) << std::hex << "Host received keycode: " << event.keycode()
105 << " usb_keycode: " << event.usb_keycode() 107 << " usb_keycode: " << event.usb_keycode()
106 << " to scancode: " << scancode 108 << " to scancode: " << scancode
107 << std::dec; 109 << std::dec;
108 } else { 110 } else {
109 HKL hkl = GetKeyboardLayout(0); 111 HKL hkl = GetKeyboardLayout(0);
110 scancode = MapVirtualKeyEx(key, MAPVK_VK_TO_VSC_EX, hkl); 112 scancode = MapVirtualKeyEx(key, MAPVK_VK_TO_VSC_EX, hkl);
(...skipping 20 matching lines...) Expand all
131 if (!down) { 133 if (!down) {
132 input.ki.dwFlags |= KEYEVENTF_KEYUP; 134 input.ki.dwFlags |= KEYEVENTF_KEYUP;
133 } 135 }
134 136
135 if (SendInput(1, &input, sizeof(INPUT)) == 0) { 137 if (SendInput(1, &input, sizeof(INPUT)) == 0) {
136 LOG_GETLASTERROR(ERROR) << "Failed to inject a key event"; 138 LOG_GETLASTERROR(ERROR) << "Failed to inject a key event";
137 } 139 }
138 } 140 }
139 141
140 void EventExecutorWin::HandleMouse(const MouseEvent& event) { 142 void EventExecutorWin::HandleMouse(const MouseEvent& event) {
143 // Reset the system idle suspend timeout.
144 SetThreadExecutionState(ES_SYSTEM_REQUIRED);
145
141 // TODO(garykac) Collapse mouse (x,y) and button events into a single 146 // TODO(garykac) Collapse mouse (x,y) and button events into a single
142 // input event when possible. 147 // input event when possible.
143 if (event.has_x() && event.has_y()) { 148 if (event.has_x() && event.has_y()) {
144 int x = event.x(); 149 int x = event.x();
145 int y = event.y(); 150 int y = event.y();
146 151
147 INPUT input; 152 INPUT input;
148 input.type = INPUT_MOUSE; 153 input.type = INPUT_MOUSE;
149 input.mi.time = 0; 154 input.mi.time = 0;
150 SkISize screen_size = capturer_->size_most_recent(); 155 SkISize screen_size = capturer_->size_most_recent();
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 218
214 } // namespace 219 } // namespace
215 220
216 scoped_ptr<protocol::HostEventStub> EventExecutor::Create( 221 scoped_ptr<protocol::HostEventStub> EventExecutor::Create(
217 MessageLoop* message_loop, Capturer* capturer) { 222 MessageLoop* message_loop, Capturer* capturer) {
218 return scoped_ptr<protocol::HostEventStub>( 223 return scoped_ptr<protocol::HostEventStub>(
219 new EventExecutorWin(message_loop, capturer)); 224 new EventExecutorWin(message_loop, capturer));
220 } 225 }
221 226
222 } // namespace remoting 227 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/capturer_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698