blob: 1a4990ee0fa9953b881986c485cd71502794a17f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
/*
* Copyright (C) 2007-2018 Team Kodi
* This file is part of Kodi - https://kodi.tv
*
* SPDX-License-Identifier: GPL-2.0-or-later
* See LICENSES/README.md for more information.
*/
#pragma once
#include <stdint.h>
#include <string>
typedef struct struct_XBMCKEYTABLE
{
// The sym is a value that identifies which key was pressed. Note
// that it specifies the key not the character so it is unaffected by
// shift, control, etc.
uint16_t sym;
// If the keypress generates a printing character the unicode and
// ascii member variables contain the character generated. If the
// key is a non-printing character, e.g. a function or arrow key,
// the unicode and ascii member variables are zero.
uint16_t unicode;
char ascii;
// The following two member variables are used to specify the
// action/function assigned to a key.
// The keynames are used as tags in keyboard.xml. When reading keyboard.xml
// TranslateKeyboardString uses the keyname to look up the vkey, and
// this is used in the mapping table.
uint32_t vkey;
const char* keyname;
} XBMCKEYTABLE;
bool KeyTableLookupName(std::string keyname, XBMCKEYTABLE* keytable);
bool KeyTableLookupSym(uint16_t sym, XBMCKEYTABLE* keytable);
bool KeyTableLookupUnicode(uint16_t unicode, XBMCKEYTABLE* keytable);
bool KeyTableLookupSymAndUnicode(uint16_t sym, uint16_t unicode, XBMCKEYTABLE* keytable);
bool KeyTableLookupVKeyName(uint32_t vkey, XBMCKEYTABLE* keytable);
|