blob: 04a1bc96ed30b15b8ba3742a18ac8828b487c8a9 [file] [log] [blame]
nicholss1e49b6182017-05-22 20:30:471// Copyright 2017 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 "remoting/client/input/text_keyboard_input_strategy.h"
6
7#include "remoting/client/input/client_input_injector.h"
nicholss7666a282017-05-24 15:48:028#include "remoting/client/input/native_device_keymap.h"
nicholss1e49b6182017-05-22 20:30:479#include "ui/events/keycodes/dom/dom_code.h"
10
11namespace remoting {
12
13TextKeyboardInputStrategy::TextKeyboardInputStrategy(
14 ClientInputInjector* input_injector)
15 : input_injector_(input_injector) {}
16
Chris Watkins6fe52aa2017-11-28 03:24:0517TextKeyboardInputStrategy::~TextKeyboardInputStrategy() = default;
nicholss1e49b6182017-05-22 20:30:4718
19// KeyboardInputStrategy
20
21void TextKeyboardInputStrategy::HandleTextEvent(const std::string& text,
22 uint8_t modifiers) {
23 // TODO(nicholss): Handle modifers.
24 input_injector_->SendTextEvent(text);
25}
26
Brett Wilsonb02c0a22017-09-25 22:34:4227void TextKeyboardInputStrategy::HandleKeysEvent(base::queue<KeyEvent> keys) {
nicholss1e49b6182017-05-22 20:30:4728 while (!keys.empty()) {
29 KeyEvent key = keys.front();
30 input_injector_->SendKeyEvent(0, key.keycode, key.keydown);
31 keys.pop();
32 }
33}
34
nicholss1e49b6182017-05-22 20:30:4735} // namespace remoting