key_code_conv.cc revision 4e180b6a0b4720a9b8e9e959a882386f690f08ff
168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)// found in the LICENSE file.
468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chrome/test/remoting/key_code_conv.h"
668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "chrome/test/remoting/key_code_map.h"
868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)namespace remoting {
1068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
1168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)ui::KeyboardCode InvalidKeyboardCode() {
1268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  return key_code_map[0].vkey_code;
1368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)}
1468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
1568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)void GetKeyValuesFromChar(
1668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    char c, const char** code, ui::KeyboardCode* vkey_code, bool* shift) {
1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  *code = NULL;
1868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  *vkey_code = InvalidKeyboardCode();
1968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
2068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  for (size_t i = 0; i < arraysize(key_code_map); ++i) {
2168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    if (key_code_map[i].lower_char == c) {
2268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      *code = key_code_map[i].code;
2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      *vkey_code = key_code_map[i].vkey_code;
2468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      *shift = false;
2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      return;
2668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
2768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
2868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    if (key_code_map[i].upper_char == c) {
2968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      *code = key_code_map[i].code;
3068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      *vkey_code = key_code_map[i].vkey_code;
3168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      *shift = true;
3268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
3368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  }
3468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)}
3568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
3668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)}  // namespace remoting
37