mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Linux - Added intiial input provider
This commit is contained in:
parent
971e32f7a5
commit
ccdb0b9711
@ -1,3 +1,5 @@
|
|||||||
|
using Artemis.Core.Services;
|
||||||
|
using Artemis.UI.Linux.Providers.Input;
|
||||||
using Avalonia;
|
using Avalonia;
|
||||||
using Avalonia.Markup.Xaml;
|
using Avalonia.Markup.Xaml;
|
||||||
using Avalonia.Threading;
|
using Avalonia.Threading;
|
||||||
@ -17,6 +19,8 @@ namespace Artemis.UI.Linux
|
|||||||
_kernel = ArtemisBootstrapper.Bootstrap(this);
|
_kernel = ArtemisBootstrapper.Bootstrap(this);
|
||||||
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
|
RxApp.MainThreadScheduler = AvaloniaScheduler.Instance;
|
||||||
AvaloniaXamlLoader.Load(this);
|
AvaloniaXamlLoader.Load(this);
|
||||||
|
|
||||||
|
RegisterProviders();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnFrameworkInitializationCompleted()
|
public override void OnFrameworkInitializationCompleted()
|
||||||
@ -25,5 +29,11 @@ namespace Artemis.UI.Linux
|
|||||||
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
||||||
_applicationStateManager = new ApplicationStateManager(_kernel!, desktop.Args);
|
_applicationStateManager = new ApplicationStateManager(_kernel!, desktop.Args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void RegisterProviders()
|
||||||
|
{
|
||||||
|
IInputService inputService = _kernel.Get<IInputService>();
|
||||||
|
inputService.AddInputProvider(_kernel.Get<LinuxInputProvider>());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -0,0 +1,34 @@
|
|||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
public enum LinuxAbsoluteAxis
|
||||||
|
{
|
||||||
|
ABS_X = 0x00,
|
||||||
|
ABS_Y = 0x01,
|
||||||
|
ABS_Z = 0x02,
|
||||||
|
ABS_RX = 0x03,
|
||||||
|
ABS_RY = 0x04,
|
||||||
|
ABS_RZ = 0x05,
|
||||||
|
ABS_THROTTLE = 0x06,
|
||||||
|
ABS_RUDDER = 0x07,
|
||||||
|
ABS_WHEEL = 0x08,
|
||||||
|
ABS_GAS = 0x09,
|
||||||
|
ABS_BRAKE = 0x0a,
|
||||||
|
ABS_HAT0X = 0x10,
|
||||||
|
ABS_HAT0Y = 0x11,
|
||||||
|
ABS_HAT1X = 0x12,
|
||||||
|
ABS_HAT1Y = 0x13,
|
||||||
|
ABS_HAT2X = 0x14,
|
||||||
|
ABS_HAT2Y = 0x15,
|
||||||
|
ABS_HAT3X = 0x16,
|
||||||
|
ABS_HAT3Y = 0x17,
|
||||||
|
ABS_PRESSURE = 0x18,
|
||||||
|
ABS_DISTANCE = 0x19,
|
||||||
|
ABS_TILT_X = 0x1a,
|
||||||
|
ABS_TILT_Y = 0x1b,
|
||||||
|
ABS_TOOL_WIDTH = 0x1c,
|
||||||
|
|
||||||
|
ABS_VOLUME = 0x20,
|
||||||
|
|
||||||
|
ABS_MISC = 0x28,
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection.Metadata;
|
||||||
|
using Humanizer;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Data transfer object representing a device read from /proc/bus/input/devices
|
||||||
|
/// </summary>
|
||||||
|
public class LinuxInputDevice
|
||||||
|
{
|
||||||
|
public string InputId { get; }
|
||||||
|
public string? Bus { get; }
|
||||||
|
public string? Vendor { get; }
|
||||||
|
public string? Product { get; }
|
||||||
|
public string? Version { get; }
|
||||||
|
public string? Name { get; }
|
||||||
|
public string? Phys { get; }
|
||||||
|
public string? Sysfs { get; }
|
||||||
|
public string? Uniq { get; }
|
||||||
|
public string[]? Handlers { get; }
|
||||||
|
public bool IsMouse => Handlers.Any(h => h.Contains("mouse"));
|
||||||
|
public bool IsKeyboard => Handlers.Any(h => h.Contains("kbd"));
|
||||||
|
public bool IsGamePad => Handlers.Any(h => h.Contains("js"));
|
||||||
|
public string EventPath => $"/dev/input/{Handlers.First(h => h.Contains("event"))}";
|
||||||
|
|
||||||
|
public LinuxInputDevice(IEnumerable<string> lines)
|
||||||
|
{
|
||||||
|
foreach (string line in lines)
|
||||||
|
{
|
||||||
|
char dataType = line.First();
|
||||||
|
string data = line.Substring(3);
|
||||||
|
//get the first character in each line and set the according property with relevant data
|
||||||
|
switch (dataType)
|
||||||
|
{
|
||||||
|
case 'I':
|
||||||
|
InputId = data;
|
||||||
|
foreach (string component in data.Split(" "))
|
||||||
|
{
|
||||||
|
string?[] parts = component.Split('=');
|
||||||
|
switch (parts[0])
|
||||||
|
{
|
||||||
|
case "Bus":
|
||||||
|
Bus = parts[1];
|
||||||
|
break;
|
||||||
|
case "Vendor":
|
||||||
|
Vendor = parts[1];
|
||||||
|
break;
|
||||||
|
case "Product":
|
||||||
|
Product = parts[1];
|
||||||
|
break;
|
||||||
|
case "Version":
|
||||||
|
Version = parts[1];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'N':
|
||||||
|
Name = data.Replace("\"", "")
|
||||||
|
.Replace("Name=", "");
|
||||||
|
break;
|
||||||
|
case 'P':
|
||||||
|
Phys = data.Replace("Phys=", "");
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
Sysfs = data.Replace("Sysfs=", "");
|
||||||
|
break;
|
||||||
|
case 'H':
|
||||||
|
Handlers = data.Replace("Handlers=", "").Split(" ");
|
||||||
|
break;
|
||||||
|
case 'U':
|
||||||
|
Uniq = data.Replace("Uniq=", "");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
//do we need any more of this data?
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Overrides of Object
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public override string ToString() => $"{Name} - {EventPath}";
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
public static class LinuxInputDeviceFinder
|
||||||
|
{
|
||||||
|
private const string DEVICES_FILE = "/proc/bus/input/devices";
|
||||||
|
|
||||||
|
public static IEnumerable<LinuxInputDevice> Find()
|
||||||
|
{
|
||||||
|
return File.ReadAllLines(DEVICES_FILE)
|
||||||
|
.PartitionBy(s => s == "") //split on empty lines
|
||||||
|
.Select(lineGroup => new LinuxInputDevice(lineGroup));
|
||||||
|
}
|
||||||
|
|
||||||
|
//https://stackoverflow.com/questions/56623354
|
||||||
|
private static IEnumerable<IEnumerable<T>> PartitionBy<T>(this IEnumerable<T> a, Func<T, bool> predicate)
|
||||||
|
{
|
||||||
|
int groupNumber = 0;
|
||||||
|
Func<bool, int?> getGroupNumber = skip =>
|
||||||
|
{
|
||||||
|
if (skip)
|
||||||
|
{
|
||||||
|
// prepare next group, we don't care if we increment more than once
|
||||||
|
// we only want to split groups
|
||||||
|
groupNumber++;
|
||||||
|
// null, to be able to filter out group separators
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return groupNumber;
|
||||||
|
};
|
||||||
|
return a
|
||||||
|
.Select(x => new { Value = x, GroupNumber = getGroupNumber(predicate(x))} )
|
||||||
|
.Where(x => x.GroupNumber != null)
|
||||||
|
.GroupBy(x => x.GroupNumber)
|
||||||
|
.Select(g => g.Select(x => x.Value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,60 @@
|
|||||||
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Artemis.UI.Linux.Utilities;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
internal class LinuxInputDeviceReader
|
||||||
|
{
|
||||||
|
private readonly FileStream _stream;
|
||||||
|
private readonly Task _task;
|
||||||
|
private readonly CancellationTokenSource _cts;
|
||||||
|
private readonly byte[] _buffer;
|
||||||
|
internal event EventHandler<LinuxInputEventArgs>? InputEvent;
|
||||||
|
|
||||||
|
public LinuxInputDevice InputDevice { get; }
|
||||||
|
|
||||||
|
public LinuxInputDeviceReader(LinuxInputDevice inputDevice)
|
||||||
|
{
|
||||||
|
InputDevice = inputDevice;
|
||||||
|
|
||||||
|
_buffer = new byte[Marshal.SizeOf<LinuxInputEventArgs>()];
|
||||||
|
_stream = new FileStream(InputDevice.EventPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 2048, FileOptions.Asynchronous);
|
||||||
|
_cts = new CancellationTokenSource();
|
||||||
|
_task = Task.Run(Read, _cts.Token);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task Read()
|
||||||
|
{
|
||||||
|
while (!_cts.IsCancellationRequested)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int readBytes = await _stream.ReadAsync(_buffer, _cts.Token);
|
||||||
|
if (readBytes == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
InputEvent?.Invoke(this, MemoryMarshal.Read<LinuxInputEventArgs>(_buffer));
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
// ignored
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
_cts.Cancel();
|
||||||
|
|
||||||
|
_stream.Flush();
|
||||||
|
_stream.Dispose();
|
||||||
|
|
||||||
|
//_task.Wait(); //TODO: fix this, it hangs
|
||||||
|
_cts.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
//https://www.kernel.org/doc/Documentation/input/input.txt
|
||||||
|
internal readonly struct LinuxInputEventArgs
|
||||||
|
{
|
||||||
|
internal readonly long TimeSeconds;
|
||||||
|
internal readonly long TimeMicroseconds;
|
||||||
|
internal readonly LinuxInputEventType Type;
|
||||||
|
internal readonly short Code;
|
||||||
|
internal readonly int Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// https://www.kernel.org/doc/Documentation/input/event-codes.txt
|
||||||
|
/// </summary>
|
||||||
|
internal enum LinuxInputEventType : ushort
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Used as markers to separate events. Events may be separated in time or in space, such as with the multitouch protocol.
|
||||||
|
/// </summary>
|
||||||
|
SYN = 0x00,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to describe state changes of keyboards, buttons, or other key-like devices.
|
||||||
|
/// </summary>
|
||||||
|
KEY = 0x01,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to describe relative axis value changes, e.g. moving the mouse 5 units to the left.
|
||||||
|
/// </summary>
|
||||||
|
REL = 0x02,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to describe absolute axis value changes, e.g. describing the coordinates of a touch on a touchscreen.
|
||||||
|
/// </summary>
|
||||||
|
ABS = 0x03,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to describe miscellaneous input data that do not fit into other types.
|
||||||
|
/// </summary>
|
||||||
|
MSC = 0x04,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to describe binary state input switches.
|
||||||
|
/// </summary>
|
||||||
|
SW = 0x05,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to turn LEDs on devices on and off.
|
||||||
|
/// </summary>
|
||||||
|
LED = 0x11,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to output sound to devices.
|
||||||
|
/// </summary>
|
||||||
|
SND = 0x12,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used for autorepeating devices.
|
||||||
|
/// </summary>
|
||||||
|
REP = 0x14,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to send force feedback commands to an input device.
|
||||||
|
/// </summary>
|
||||||
|
FF = 0x15,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A special type for power button and switch input.
|
||||||
|
/// </summary>
|
||||||
|
PWR = 0x16,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Used to receive force feedback device status.
|
||||||
|
/// </summary>
|
||||||
|
FF_STATUS = 0x17,
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,119 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Artemis.Core.Services;
|
||||||
|
using Artemis.UI.Linux.Utilities;
|
||||||
|
using Serilog;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
public class LinuxInputProvider : InputProvider
|
||||||
|
{
|
||||||
|
private readonly IInputService _inputService;
|
||||||
|
private readonly ILogger _logger;
|
||||||
|
private readonly List<LinuxInputDeviceReader> _readers;
|
||||||
|
|
||||||
|
public LinuxInputProvider(ILogger logger, IInputService inputService)
|
||||||
|
{
|
||||||
|
_logger = logger;
|
||||||
|
_inputService = inputService;
|
||||||
|
_readers = new List<LinuxInputDeviceReader>();
|
||||||
|
|
||||||
|
foreach (LinuxInputDevice deviceDefinition in LinuxInputDeviceFinder.Find())
|
||||||
|
{
|
||||||
|
LinuxInputDeviceReader? reader = new LinuxInputDeviceReader(deviceDefinition);
|
||||||
|
reader.InputEvent += OnInputEvent;
|
||||||
|
_readers.Add(reader);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInputEvent(object? sender, LinuxInputEventArgs e)
|
||||||
|
{
|
||||||
|
if (sender is not LinuxInputDeviceReader reader)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (reader.InputDevice.IsKeyboard)
|
||||||
|
{
|
||||||
|
HandleKeyboardData(reader.InputDevice, e);
|
||||||
|
}
|
||||||
|
else if (reader.InputDevice.IsMouse)
|
||||||
|
{
|
||||||
|
HandleMouseData(reader.InputDevice, e);
|
||||||
|
}
|
||||||
|
else if (reader.InputDevice.IsGamePad)
|
||||||
|
{
|
||||||
|
//TODO: handle game pad input?
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleKeyboardData(LinuxInputDevice keyboard, LinuxInputEventArgs e)
|
||||||
|
{
|
||||||
|
switch (e.Type)
|
||||||
|
{
|
||||||
|
case LinuxInputEventType.KEY:
|
||||||
|
KeyboardKey key = InputUtilities.KeyFromKeyCode((LinuxKeyboardKeyCodes) e.Code);
|
||||||
|
bool isDown = e.Value != 0;
|
||||||
|
|
||||||
|
_logger.Verbose($"Keyboard Key: {(LinuxKeyboardKeyCodes) e.Code} | Down: {isDown}");
|
||||||
|
|
||||||
|
//TODO: identify
|
||||||
|
|
||||||
|
OnKeyboardDataReceived(null, key, isDown);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
_logger.Verbose($"Unknown keyboard event type: {e.Type}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleMouseData(LinuxInputDevice mouse, LinuxInputEventArgs e)
|
||||||
|
{
|
||||||
|
switch (e.Type)
|
||||||
|
{
|
||||||
|
case LinuxInputEventType.KEY:
|
||||||
|
bool isDown = e.Value != 0;
|
||||||
|
MouseButton button = InputUtilities.MouseButtonFromButtonCode((LinuxKeyboardKeyCodes)e.Code);
|
||||||
|
|
||||||
|
_logger.Verbose($"Mouse Button: {(LinuxKeyboardKeyCodes) e.Code} | Down: {isDown}");
|
||||||
|
|
||||||
|
//TODO: identify
|
||||||
|
|
||||||
|
OnMouseButtonDataReceived(null, button, isDown);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LinuxInputEventType.ABS:
|
||||||
|
LinuxAbsoluteAxis absoluteAxis = (LinuxAbsoluteAxis) e.Code;
|
||||||
|
_logger.Verbose($"Absolute mouse: axis={absoluteAxis} | value={e.Value}");
|
||||||
|
break;
|
||||||
|
case LinuxInputEventType.REL:
|
||||||
|
LinuxRelativeAxis relativeAxis = (LinuxRelativeAxis) e.Code;
|
||||||
|
_logger.Verbose($"Relative mouse: axis={relativeAxis} | value={e.Value}");
|
||||||
|
|
||||||
|
//TODO: handle mouse movement
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
_logger.Verbose($"Unknown mouse event type: {e.Type}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Overrides of InputProvider
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing)
|
||||||
|
{
|
||||||
|
for (int i = _readers.Count - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
_readers[i].InputEvent -= OnInputEvent;
|
||||||
|
_readers[i].Dispose();
|
||||||
|
_readers.RemoveAt(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,620 @@
|
|||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
//https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h
|
||||||
|
public enum LinuxKeyboardKeyCodes
|
||||||
|
{
|
||||||
|
KEY_RESERVED = 0,
|
||||||
|
KEY_ESC = 1,
|
||||||
|
KEY_1 = 2,
|
||||||
|
KEY_2 = 3,
|
||||||
|
KEY_3 = 4,
|
||||||
|
KEY_4 = 5,
|
||||||
|
KEY_5 = 6,
|
||||||
|
KEY_6 = 7,
|
||||||
|
KEY_7 = 8,
|
||||||
|
KEY_8 = 9,
|
||||||
|
KEY_9 = 10,
|
||||||
|
KEY_0 = 11,
|
||||||
|
KEY_MINUS = 12,
|
||||||
|
KEY_EQUAL = 13,
|
||||||
|
KEY_BACKSPACE = 14,
|
||||||
|
KEY_TAB = 15,
|
||||||
|
KEY_Q = 16,
|
||||||
|
KEY_W = 17,
|
||||||
|
KEY_E = 18,
|
||||||
|
KEY_R = 19,
|
||||||
|
KEY_T = 20,
|
||||||
|
KEY_Y = 21,
|
||||||
|
KEY_U = 22,
|
||||||
|
KEY_I = 23,
|
||||||
|
KEY_O = 24,
|
||||||
|
KEY_P = 25,
|
||||||
|
KEY_LEFTBRACE = 26,
|
||||||
|
KEY_RIGHTBRACE = 27,
|
||||||
|
KEY_ENTER = 28,
|
||||||
|
KEY_LEFTCTRL = 29,
|
||||||
|
KEY_A = 30,
|
||||||
|
KEY_S = 31,
|
||||||
|
KEY_D = 32,
|
||||||
|
KEY_F = 33,
|
||||||
|
KEY_G = 34,
|
||||||
|
KEY_H = 35,
|
||||||
|
KEY_J = 36,
|
||||||
|
KEY_K = 37,
|
||||||
|
KEY_L = 38,
|
||||||
|
KEY_SEMICOLON = 39,
|
||||||
|
KEY_APOSTROPHE = 40,
|
||||||
|
KEY_GRAVE = 41,
|
||||||
|
KEY_LEFTSHIFT = 42,
|
||||||
|
KEY_BACKSLASH = 43,
|
||||||
|
KEY_Z = 44,
|
||||||
|
KEY_X = 45,
|
||||||
|
KEY_C = 46,
|
||||||
|
KEY_V = 47,
|
||||||
|
KEY_B = 48,
|
||||||
|
KEY_N = 49,
|
||||||
|
KEY_M = 50,
|
||||||
|
KEY_COMMA = 51,
|
||||||
|
KEY_DOT = 52,
|
||||||
|
KEY_SLASH = 53,
|
||||||
|
KEY_RIGHTSHIFT = 54,
|
||||||
|
KEY_KPASTERISK = 55,
|
||||||
|
KEY_LEFTALT = 56,
|
||||||
|
KEY_SPACE = 57,
|
||||||
|
KEY_CAPSLOCK = 58,
|
||||||
|
KEY_F1 = 59,
|
||||||
|
KEY_F2 = 60,
|
||||||
|
KEY_F3 = 61,
|
||||||
|
KEY_F4 = 62,
|
||||||
|
KEY_F5 = 63,
|
||||||
|
KEY_F6 = 64,
|
||||||
|
KEY_F7 = 65,
|
||||||
|
KEY_F8 = 66,
|
||||||
|
KEY_F9 = 67,
|
||||||
|
KEY_F10 = 68,
|
||||||
|
KEY_NUMLOCK = 69,
|
||||||
|
KEY_SCROLLLOCK = 70,
|
||||||
|
KEY_KP7 = 71,
|
||||||
|
KEY_KP8 = 72,
|
||||||
|
KEY_KP9 = 73,
|
||||||
|
KEY_KPMINUS = 74,
|
||||||
|
KEY_KP4 = 75,
|
||||||
|
KEY_KP5 = 76,
|
||||||
|
KEY_KP6 = 77,
|
||||||
|
KEY_KPPLUS = 78,
|
||||||
|
KEY_KP1 = 79,
|
||||||
|
KEY_KP2 = 80,
|
||||||
|
KEY_KP3 = 81,
|
||||||
|
KEY_KP0 = 82,
|
||||||
|
KEY_KPDOT = 83,
|
||||||
|
KEY_ZENKAKUHANKAKU = 85,
|
||||||
|
KEY_102ND = 86,
|
||||||
|
KEY_F11 = 87,
|
||||||
|
KEY_F12 = 88,
|
||||||
|
KEY_RO = 89,
|
||||||
|
KEY_KATAKANA = 90,
|
||||||
|
KEY_HIRAGANA = 91,
|
||||||
|
KEY_HENKAN = 92,
|
||||||
|
KEY_KATAKANAHIRAGANA = 93,
|
||||||
|
KEY_MUHENKAN = 94,
|
||||||
|
KEY_KPJPCOMMA = 95,
|
||||||
|
KEY_KPENTER = 96,
|
||||||
|
KEY_RIGHTCTRL = 97,
|
||||||
|
KEY_KPSLASH = 98,
|
||||||
|
KEY_SYSRQ = 99,
|
||||||
|
KEY_RIGHTALT = 100,
|
||||||
|
KEY_LINEFEED = 101,
|
||||||
|
KEY_HOME = 102,
|
||||||
|
KEY_UP = 103,
|
||||||
|
KEY_PAGEUP = 104,
|
||||||
|
KEY_LEFT = 105,
|
||||||
|
KEY_RIGHT = 106,
|
||||||
|
KEY_END = 107,
|
||||||
|
KEY_DOWN = 108,
|
||||||
|
KEY_PAGEDOWN = 109,
|
||||||
|
KEY_INSERT = 110,
|
||||||
|
KEY_DELETE = 111,
|
||||||
|
KEY_MACRO = 112,
|
||||||
|
KEY_MUTE = 113,
|
||||||
|
KEY_VOLUMEDOWN = 114,
|
||||||
|
KEY_VOLUMEUP = 115,
|
||||||
|
KEY_POWER = 116, /* SC System Power Down */
|
||||||
|
KEY_KPEQUAL = 117,
|
||||||
|
KEY_KPPLUSMINUS = 118,
|
||||||
|
KEY_PAUSE = 119,
|
||||||
|
KEY_SCALE = 120, /* AL Compiz Scale (Expose) */
|
||||||
|
KEY_KPCOMMA = 121,
|
||||||
|
KEY_HANGEUL = 122,
|
||||||
|
KEY_HANGUEL = KEY_HANGEUL,
|
||||||
|
KEY_HANJA = 123,
|
||||||
|
KEY_YEN = 124,
|
||||||
|
KEY_LEFTMETA = 125,
|
||||||
|
KEY_RIGHTMETA = 126,
|
||||||
|
KEY_COMPOSE = 127,
|
||||||
|
KEY_STOP = 128, /* AC Stop */
|
||||||
|
KEY_AGAIN = 129,
|
||||||
|
KEY_PROPS = 130, /* AC Properties */
|
||||||
|
KEY_UNDO = 131, /* AC Undo */
|
||||||
|
KEY_FRONT = 132,
|
||||||
|
KEY_COPY = 133, /* AC Copy */
|
||||||
|
KEY_OPEN = 134, /* AC Open */
|
||||||
|
KEY_PASTE = 135, /* AC Paste */
|
||||||
|
KEY_FIND = 136, /* AC Search */
|
||||||
|
KEY_CUT = 137, /* AC Cut */
|
||||||
|
KEY_HELP = 138, /* AL Integrated Help Center */
|
||||||
|
KEY_MENU = 139, /* Menu (show menu) */
|
||||||
|
KEY_CALC = 140, /* AL Calculator */
|
||||||
|
KEY_SETUP = 141,
|
||||||
|
KEY_SLEEP = 142, /* SC System Sleep */
|
||||||
|
KEY_WAKEUP = 143, /* System Wake Up */
|
||||||
|
KEY_FILE = 144, /* AL Local Machine Browser */
|
||||||
|
KEY_SENDFILE = 145,
|
||||||
|
KEY_DELETEFILE = 146,
|
||||||
|
KEY_XFER = 147,
|
||||||
|
KEY_PROG1 = 148,
|
||||||
|
KEY_PROG2 = 149,
|
||||||
|
KEY_WWW = 150, /* AL Internet Browser */
|
||||||
|
KEY_MSDOS = 151,
|
||||||
|
KEY_COFFEE = 152, /* AL Terminal Lock/Screensaver */
|
||||||
|
KEY_SCREENLOCK = KEY_COFFEE,
|
||||||
|
KEY_ROTATE_DISPLAY = 153, /* Display orientation for e.g. tablets */
|
||||||
|
KEY_DIRECTION = KEY_ROTATE_DISPLAY,
|
||||||
|
KEY_CYCLEWINDOWS = 154,
|
||||||
|
KEY_MAIL = 155,
|
||||||
|
KEY_BOOKMARKS = 156, /* AC Bookmarks */
|
||||||
|
KEY_COMPUTER = 157,
|
||||||
|
KEY_BACK = 158, /* AC Back */
|
||||||
|
KEY_FORWARD = 159, /* AC Forward */
|
||||||
|
KEY_CLOSECD = 160,
|
||||||
|
KEY_EJECTCD = 161,
|
||||||
|
KEY_EJECTCLOSECD = 162,
|
||||||
|
KEY_NEXTSONG = 163,
|
||||||
|
KEY_PLAYPAUSE = 164,
|
||||||
|
KEY_PREVIOUSSONG = 165,
|
||||||
|
KEY_STOPCD = 166,
|
||||||
|
KEY_RECORD = 167,
|
||||||
|
KEY_REWIND = 168,
|
||||||
|
KEY_PHONE = 169, /* Media Select Telephone */
|
||||||
|
KEY_ISO = 170,
|
||||||
|
KEY_CONFIG = 171, /* AL Consumer Control Configuration */
|
||||||
|
KEY_HOMEPAGE = 172, /* AC Home */
|
||||||
|
KEY_REFRESH = 173, /* AC Refresh */
|
||||||
|
KEY_EXIT = 174, /* AC Exit */
|
||||||
|
KEY_MOVE = 175,
|
||||||
|
KEY_EDIT = 176,
|
||||||
|
KEY_SCROLLUP = 177,
|
||||||
|
KEY_SCROLLDOWN = 178,
|
||||||
|
KEY_KPLEFTPAREN = 179,
|
||||||
|
KEY_KPRIGHTPAREN = 180,
|
||||||
|
KEY_NEW = 181, /* AC New */
|
||||||
|
KEY_REDO = 182, /* AC Redo/Repeat */
|
||||||
|
KEY_F13 = 183,
|
||||||
|
KEY_F14 = 184,
|
||||||
|
KEY_F15 = 185,
|
||||||
|
KEY_F16 = 186,
|
||||||
|
KEY_F17 = 187,
|
||||||
|
KEY_F18 = 188,
|
||||||
|
KEY_F19 = 189,
|
||||||
|
KEY_F20 = 190,
|
||||||
|
KEY_F21 = 191,
|
||||||
|
KEY_F22 = 192,
|
||||||
|
KEY_F23 = 193,
|
||||||
|
KEY_F24 = 194,
|
||||||
|
KEY_PLAYCD = 200,
|
||||||
|
KEY_PAUSECD = 201,
|
||||||
|
KEY_PROG3 = 202,
|
||||||
|
KEY_PROG4 = 203,
|
||||||
|
KEY_DASHBOARD = 204, /* AL Dashboard */
|
||||||
|
KEY_SUSPEND = 205,
|
||||||
|
KEY_CLOSE = 206, /* AC Close */
|
||||||
|
KEY_PLAY = 207,
|
||||||
|
KEY_FASTFORWARD = 208,
|
||||||
|
KEY_BASSBOOST = 209,
|
||||||
|
KEY_PRINT = 210, /* AC Print */
|
||||||
|
KEY_HP = 211,
|
||||||
|
KEY_CAMERA = 212,
|
||||||
|
KEY_SOUND = 213,
|
||||||
|
KEY_QUESTION = 214,
|
||||||
|
KEY_EMAIL = 215,
|
||||||
|
KEY_CHAT = 216,
|
||||||
|
KEY_SEARCH = 217,
|
||||||
|
KEY_CONNECT = 218,
|
||||||
|
KEY_FINANCE = 219, /* AL Checkbook/Finance */
|
||||||
|
KEY_SPORT = 220,
|
||||||
|
KEY_SHOP = 221,
|
||||||
|
KEY_ALTERASE = 222,
|
||||||
|
KEY_CANCEL = 223, /* AC Cancel */
|
||||||
|
KEY_BRIGHTNESSDOWN = 224,
|
||||||
|
KEY_BRIGHTNESSUP = 225,
|
||||||
|
KEY_MEDIA = 226,
|
||||||
|
KEY_SWITCHVIDEOMODE = 227,
|
||||||
|
KEY_KBDILLUMTOGGLE = 228,
|
||||||
|
KEY_KBDILLUMDOWN = 229,
|
||||||
|
KEY_KBDILLUMUP = 230,
|
||||||
|
KEY_SEND = 231, /* AC Send */
|
||||||
|
KEY_REPLY = 232, /* AC Reply */
|
||||||
|
KEY_FORWARDMAIL = 233, /* AC Forward Msg */
|
||||||
|
KEY_SAVE = 234, /* AC Save */
|
||||||
|
KEY_DOCUMENTS = 235,
|
||||||
|
KEY_BATTERY = 236,
|
||||||
|
KEY_BLUETOOTH = 237,
|
||||||
|
KEY_WLAN = 238,
|
||||||
|
KEY_UWB = 239,
|
||||||
|
KEY_UNKNOWN = 240,
|
||||||
|
KEY_VIDEO_NEXT = 241, /* drive next video source */
|
||||||
|
KEY_VIDEO_PREV = 242, /* drive previous video source */
|
||||||
|
KEY_BRIGHTNESS_CYCLE = 243, /* brightness up, after max is min */
|
||||||
|
KEY_BRIGHTNESS_AUTO = 244, /* Set Auto Brightness: manual
|
||||||
|
KEY_BRIGHTNESS_ZERO = KEY_BRIGHTNESS_AUTO,
|
||||||
|
KEY_DISPLAY_OFF = 245, /* display device to off state */
|
||||||
|
KEY_WWAN = 246, /* Wireless WAN (LTE, UMTS, GSM, etc.) */
|
||||||
|
KEY_WIMAX = KEY_WWAN,
|
||||||
|
KEY_RFKILL = 247, /* Key that controls all radios */
|
||||||
|
KEY_MICMUTE = 248, /* Mute / unmute the microphone */
|
||||||
|
BTN_MISC = 0x100,
|
||||||
|
BTN_0 = 0x100,
|
||||||
|
BTN_1 = 0x101,
|
||||||
|
BTN_2 = 0x102,
|
||||||
|
BTN_3 = 0x103,
|
||||||
|
BTN_4 = 0x104,
|
||||||
|
BTN_5 = 0x105,
|
||||||
|
BTN_6 = 0x106,
|
||||||
|
BTN_7 = 0x107,
|
||||||
|
BTN_8 = 0x108,
|
||||||
|
BTN_9 = 0x109,
|
||||||
|
BTN_MOUSE = 0x110,
|
||||||
|
BTN_LEFT = 0x110,
|
||||||
|
BTN_RIGHT = 0x111,
|
||||||
|
BTN_MIDDLE = 0x112,
|
||||||
|
BTN_SIDE = 0x113,
|
||||||
|
BTN_EXTRA = 0x114,
|
||||||
|
BTN_FORWARD = 0x115,
|
||||||
|
BTN_BACK = 0x116,
|
||||||
|
BTN_TASK = 0x117,
|
||||||
|
BTN_JOYSTICK = 0x120,
|
||||||
|
BTN_TRIGGER = 0x120,
|
||||||
|
BTN_THUMB = 0x121,
|
||||||
|
BTN_THUMB2 = 0x122,
|
||||||
|
BTN_TOP = 0x123,
|
||||||
|
BTN_TOP2 = 0x124,
|
||||||
|
BTN_PINKIE = 0x125,
|
||||||
|
BTN_BASE = 0x126,
|
||||||
|
BTN_BASE2 = 0x127,
|
||||||
|
BTN_BASE3 = 0x128,
|
||||||
|
BTN_BASE4 = 0x129,
|
||||||
|
BTN_BASE5 = 0x12a,
|
||||||
|
BTN_BASE6 = 0x12b,
|
||||||
|
BTN_DEAD = 0x12f,
|
||||||
|
BTN_GAMEPAD = 0x130,
|
||||||
|
BTN_SOUTH = 0x130,
|
||||||
|
BTN_A = BTN_SOUTH,
|
||||||
|
BTN_EAST = 0x131,
|
||||||
|
BTN_B = BTN_EAST,
|
||||||
|
BTN_C = 0x132,
|
||||||
|
BTN_NORTH = 0x133,
|
||||||
|
BTN_X = BTN_NORTH,
|
||||||
|
BTN_WEST = 0x134,
|
||||||
|
BTN_Y = BTN_WEST,
|
||||||
|
BTN_Z = 0x135,
|
||||||
|
BTN_TL = 0x136,
|
||||||
|
BTN_TR = 0x137,
|
||||||
|
BTN_TL2 = 0x138,
|
||||||
|
BTN_TR2 = 0x139,
|
||||||
|
BTN_SELECT = 0x13a,
|
||||||
|
BTN_START = 0x13b,
|
||||||
|
BTN_MODE = 0x13c,
|
||||||
|
BTN_THUMBL = 0x13d,
|
||||||
|
BTN_THUMBR = 0x13e,
|
||||||
|
BTN_DIGI = 0x140,
|
||||||
|
BTN_TOOL_PEN = 0x140,
|
||||||
|
BTN_TOOL_RUBBER = 0x141,
|
||||||
|
BTN_TOOL_BRUSH = 0x142,
|
||||||
|
BTN_TOOL_PENCIL = 0x143,
|
||||||
|
BTN_TOOL_AIRBRUSH = 0x144,
|
||||||
|
BTN_TOOL_FINGER = 0x145,
|
||||||
|
BTN_TOOL_MOUSE = 0x146,
|
||||||
|
BTN_TOOL_LENS = 0x147,
|
||||||
|
BTN_TOOL_QUINTTAP = 0x148, /* Five fingers on trackpad */
|
||||||
|
BTN_STYLUS3 = 0x149,
|
||||||
|
BTN_TOUCH = 0x14a,
|
||||||
|
BTN_STYLUS = 0x14b,
|
||||||
|
BTN_STYLUS2 = 0x14c,
|
||||||
|
BTN_TOOL_DOUBLETAP = 0x14d,
|
||||||
|
BTN_TOOL_TRIPLETAP = 0x14e,
|
||||||
|
BTN_TOOL_QUADTAP = 0x14f, /* Four fingers on trackpad */
|
||||||
|
BTN_WHEEL = 0x150,
|
||||||
|
BTN_GEAR_DOWN = 0x150,
|
||||||
|
BTN_GEAR_UP = 0x151,
|
||||||
|
KEY_OK = 0x160,
|
||||||
|
KEY_SELECT = 0x161,
|
||||||
|
KEY_GOTO = 0x162,
|
||||||
|
KEY_CLEAR = 0x163,
|
||||||
|
KEY_POWER2 = 0x164,
|
||||||
|
KEY_OPTION = 0x165,
|
||||||
|
KEY_INFO = 0x166, /* AL OEM Features/Tips/Tutorial */
|
||||||
|
KEY_TIME = 0x167,
|
||||||
|
KEY_VENDOR = 0x168,
|
||||||
|
KEY_ARCHIVE = 0x169,
|
||||||
|
KEY_PROGRAM = 0x16a, /* Media Select Program Guide */
|
||||||
|
KEY_CHANNEL = 0x16b,
|
||||||
|
KEY_FAVORITES = 0x16c,
|
||||||
|
KEY_EPG = 0x16d,
|
||||||
|
KEY_PVR = 0x16e, /* Media Select Home */
|
||||||
|
KEY_MHP = 0x16f,
|
||||||
|
KEY_LANGUAGE = 0x170,
|
||||||
|
KEY_TITLE = 0x171,
|
||||||
|
KEY_SUBTITLE = 0x172,
|
||||||
|
KEY_ANGLE = 0x173,
|
||||||
|
KEY_FULL_SCREEN = 0x174, /* AC View Toggle */
|
||||||
|
KEY_ZOOM = KEY_FULL_SCREEN,
|
||||||
|
KEY_MODE = 0x175,
|
||||||
|
KEY_KEYBOARD = 0x176,
|
||||||
|
KEY_ASPECT_RATIO = 0x177, /* HUTRR37: Aspect */
|
||||||
|
KEY_SCREEN = KEY_ASPECT_RATIO,
|
||||||
|
KEY_PC = 0x178, /* Media Select Computer */
|
||||||
|
KEY_TV = 0x179, /* Media Select TV */
|
||||||
|
KEY_TV2 = 0x17a, /* Media Select Cable */
|
||||||
|
KEY_VCR = 0x17b, /* Media Select VCR */
|
||||||
|
KEY_VCR2 = 0x17c, /* VCR Plus */
|
||||||
|
KEY_SAT = 0x17d, /* Media Select Satellite */
|
||||||
|
KEY_SAT2 = 0x17e,
|
||||||
|
KEY_CD = 0x17f, /* Media Select CD */
|
||||||
|
KEY_TAPE = 0x180, /* Media Select Tape */
|
||||||
|
KEY_RADIO = 0x181,
|
||||||
|
KEY_TUNER = 0x182, /* Media Select Tuner */
|
||||||
|
KEY_PLAYER = 0x183,
|
||||||
|
KEY_TEXT = 0x184,
|
||||||
|
KEY_DVD = 0x185, /* Media Select DVD */
|
||||||
|
KEY_AUX = 0x186,
|
||||||
|
KEY_MP3 = 0x187,
|
||||||
|
KEY_AUDIO = 0x188, /* AL Audio Browser */
|
||||||
|
KEY_VIDEO = 0x189, /* AL Movie Browser */
|
||||||
|
KEY_DIRECTORY = 0x18a,
|
||||||
|
KEY_LIST = 0x18b,
|
||||||
|
KEY_MEMO = 0x18c, /* Media Select Messages */
|
||||||
|
KEY_CALENDAR = 0x18d,
|
||||||
|
KEY_RED = 0x18e,
|
||||||
|
KEY_GREEN = 0x18f,
|
||||||
|
KEY_YELLOW = 0x190,
|
||||||
|
KEY_BLUE = 0x191,
|
||||||
|
KEY_CHANNELUP = 0x192, /* Channel Increment */
|
||||||
|
KEY_CHANNELDOWN = 0x193, /* Channel Decrement */
|
||||||
|
KEY_FIRST = 0x194,
|
||||||
|
KEY_LAST = 0x195, /* Recall Last */
|
||||||
|
KEY_AB = 0x196,
|
||||||
|
KEY_NEXT = 0x197,
|
||||||
|
KEY_RESTART = 0x198,
|
||||||
|
KEY_SLOW = 0x199,
|
||||||
|
KEY_SHUFFLE = 0x19a,
|
||||||
|
KEY_BREAK = 0x19b,
|
||||||
|
KEY_PREVIOUS = 0x19c,
|
||||||
|
KEY_DIGITS = 0x19d,
|
||||||
|
KEY_TEEN = 0x19e,
|
||||||
|
KEY_TWEN = 0x19f,
|
||||||
|
KEY_VIDEOPHONE = 0x1a0, /* Media Select Video Phone */
|
||||||
|
KEY_GAMES = 0x1a1, /* Media Select Games */
|
||||||
|
KEY_ZOOMIN = 0x1a2, /* AC Zoom In */
|
||||||
|
KEY_ZOOMOUT = 0x1a3, /* AC Zoom Out */
|
||||||
|
KEY_ZOOMRESET = 0x1a4, /* AC Zoom */
|
||||||
|
KEY_WORDPROCESSOR = 0x1a5, /* AL Word Processor */
|
||||||
|
KEY_EDITOR = 0x1a6, /* AL Text Editor */
|
||||||
|
KEY_SPREADSHEET = 0x1a7, /* AL Spreadsheet */
|
||||||
|
KEY_GRAPHICSEDITOR = 0x1a8, /* AL Graphics Editor */
|
||||||
|
KEY_PRESENTATION = 0x1a9, /* AL Presentation App */
|
||||||
|
KEY_DATABASE = 0x1aa, /* AL Database App */
|
||||||
|
KEY_NEWS = 0x1ab, /* AL Newsreader */
|
||||||
|
KEY_VOICEMAIL = 0x1ac, /* AL Voicemail */
|
||||||
|
KEY_ADDRESSBOOK = 0x1ad, /* AL Contacts/Address Book */
|
||||||
|
KEY_MESSENGER = 0x1ae, /* AL Instant Messaging */
|
||||||
|
KEY_DISPLAYTOGGLE = 0x1af, /* Turn display (LCD) on and off */
|
||||||
|
KEY_BRIGHTNESS_TOGGLE = KEY_DISPLAYTOGGLE,
|
||||||
|
KEY_SPELLCHECK = 0x1b0, /* AL Spell Check */
|
||||||
|
KEY_LOGOFF = 0x1b1, /* AL Logoff */
|
||||||
|
KEY_DOLLAR = 0x1b2,
|
||||||
|
KEY_EURO = 0x1b3,
|
||||||
|
KEY_FRAMEBACK = 0x1b4, /* Consumer - transport controls */
|
||||||
|
KEY_FRAMEFORWARD = 0x1b5,
|
||||||
|
KEY_CONTEXT_MENU = 0x1b6, /* GenDesc - system context menu */
|
||||||
|
KEY_MEDIA_REPEAT = 0x1b7, /* Consumer - transport control */
|
||||||
|
KEY_10CHANNELSUP = 0x1b8, /* 10 channels up (10+) */
|
||||||
|
KEY_10CHANNELSDOWN = 0x1b9, /* 10 channels down (10-) */
|
||||||
|
KEY_IMAGES = 0x1ba, /* AL Image Browser */
|
||||||
|
KEY_NOTIFICATION_CENTER = 0x1bc, /* Show/hide the notification center */
|
||||||
|
KEY_PICKUP_PHONE = 0x1bd, /* Answer incoming call */
|
||||||
|
KEY_HANGUP_PHONE = 0x1be, /* Decline incoming call */
|
||||||
|
KEY_DEL_EOL = 0x1c0,
|
||||||
|
KEY_DEL_EOS = 0x1c1,
|
||||||
|
KEY_INS_LINE = 0x1c2,
|
||||||
|
KEY_DEL_LINE = 0x1c3,
|
||||||
|
KEY_FN = 0x1d0,
|
||||||
|
KEY_FN_ESC = 0x1d1,
|
||||||
|
KEY_FN_F1 = 0x1d2,
|
||||||
|
KEY_FN_F2 = 0x1d3,
|
||||||
|
KEY_FN_F3 = 0x1d4,
|
||||||
|
KEY_FN_F4 = 0x1d5,
|
||||||
|
KEY_FN_F5 = 0x1d6,
|
||||||
|
KEY_FN_F6 = 0x1d7,
|
||||||
|
KEY_FN_F7 = 0x1d8,
|
||||||
|
KEY_FN_F8 = 0x1d9,
|
||||||
|
KEY_FN_F9 = 0x1da,
|
||||||
|
KEY_FN_F10 = 0x1db,
|
||||||
|
KEY_FN_F11 = 0x1dc,
|
||||||
|
KEY_FN_F12 = 0x1dd,
|
||||||
|
KEY_FN_1 = 0x1de,
|
||||||
|
KEY_FN_2 = 0x1df,
|
||||||
|
KEY_FN_D = 0x1e0,
|
||||||
|
KEY_FN_E = 0x1e1,
|
||||||
|
KEY_FN_F = 0x1e2,
|
||||||
|
KEY_FN_S = 0x1e3,
|
||||||
|
KEY_FN_B = 0x1e4,
|
||||||
|
KEY_FN_RIGHT_SHIFT = 0x1e5,
|
||||||
|
KEY_BRL_DOT1 = 0x1f1,
|
||||||
|
KEY_BRL_DOT2 = 0x1f2,
|
||||||
|
KEY_BRL_DOT3 = 0x1f3,
|
||||||
|
KEY_BRL_DOT4 = 0x1f4,
|
||||||
|
KEY_BRL_DOT5 = 0x1f5,
|
||||||
|
KEY_BRL_DOT6 = 0x1f6,
|
||||||
|
KEY_BRL_DOT7 = 0x1f7,
|
||||||
|
KEY_BRL_DOT8 = 0x1f8,
|
||||||
|
KEY_BRL_DOT9 = 0x1f9,
|
||||||
|
KEY_BRL_DOT10 = 0x1fa,
|
||||||
|
KEY_NUMERIC_0 = 0x200, /* used by phones, remote controls, */
|
||||||
|
KEY_NUMERIC_1 = 0x201, /* and other keypads */
|
||||||
|
KEY_NUMERIC_2 = 0x202,
|
||||||
|
KEY_NUMERIC_3 = 0x203,
|
||||||
|
KEY_NUMERIC_4 = 0x204,
|
||||||
|
KEY_NUMERIC_5 = 0x205,
|
||||||
|
KEY_NUMERIC_6 = 0x206,
|
||||||
|
KEY_NUMERIC_7 = 0x207,
|
||||||
|
KEY_NUMERIC_8 = 0x208,
|
||||||
|
KEY_NUMERIC_9 = 0x209,
|
||||||
|
KEY_NUMERIC_STAR = 0x20a,
|
||||||
|
KEY_NUMERIC_POUND = 0x20b,
|
||||||
|
KEY_NUMERIC_A = 0x20c, /* Phone key A - HUT Telephony 0xb9 */
|
||||||
|
KEY_NUMERIC_B = 0x20d,
|
||||||
|
KEY_NUMERIC_C = 0x20e,
|
||||||
|
KEY_NUMERIC_D = 0x20f,
|
||||||
|
KEY_CAMERA_FOCUS = 0x210,
|
||||||
|
KEY_WPS_BUTTON = 0x211, /* WiFi Protected Setup key */
|
||||||
|
KEY_TOUCHPAD_TOGGLE = 0x212, /* Request switch touchpad on or off */
|
||||||
|
KEY_TOUCHPAD_ON = 0x213,
|
||||||
|
KEY_TOUCHPAD_OFF = 0x214,
|
||||||
|
KEY_CAMERA_ZOOMIN = 0x215,
|
||||||
|
KEY_CAMERA_ZOOMOUT = 0x216,
|
||||||
|
KEY_CAMERA_UP = 0x217,
|
||||||
|
KEY_CAMERA_DOWN = 0x218,
|
||||||
|
KEY_CAMERA_LEFT = 0x219,
|
||||||
|
KEY_CAMERA_RIGHT = 0x21a,
|
||||||
|
KEY_ATTENDANT_ON = 0x21b,
|
||||||
|
KEY_ATTENDANT_OFF = 0x21c,
|
||||||
|
KEY_ATTENDANT_TOGGLE = 0x21d, /* Attendant call on or off */
|
||||||
|
KEY_LIGHTS_TOGGLE = 0x21e, /* Reading light on or off */
|
||||||
|
BTN_DPAD_UP = 0x220,
|
||||||
|
BTN_DPAD_DOWN = 0x221,
|
||||||
|
BTN_DPAD_LEFT = 0x222,
|
||||||
|
BTN_DPAD_RIGHT = 0x223,
|
||||||
|
KEY_ALS_TOGGLE = 0x230, /* Ambient light sensor */
|
||||||
|
KEY_ROTATE_LOCK_TOGGLE = 0x231, /* Display rotation lock */
|
||||||
|
KEY_BUTTONCONFIG = 0x240, /* AL Button Configuration */
|
||||||
|
KEY_TASKMANAGER = 0x241, /* AL Task/Project Manager */
|
||||||
|
KEY_JOURNAL = 0x242, /* AL Log/Journal/Timecard */
|
||||||
|
KEY_CONTROLPANEL = 0x243, /* AL Control Panel */
|
||||||
|
KEY_APPSELECT = 0x244, /* AL Select Task/Application */
|
||||||
|
KEY_SCREENSAVER = 0x245, /* AL Screen Saver */
|
||||||
|
KEY_VOICECOMMAND = 0x246, /* Listening Voice Command */
|
||||||
|
KEY_ASSISTANT = 0x247, /* AL Context-aware desktop assistant */
|
||||||
|
KEY_KBD_LAYOUT_NEXT = 0x248, /* AC Next Keyboard Layout Select */
|
||||||
|
KEY_EMOJI_PICKER = 0x249, /* Show/hide emoji picker (HUTRR101) */
|
||||||
|
KEY_BRIGHTNESS_MIN = 0x250, /* Set Brightness to Minimum */
|
||||||
|
KEY_BRIGHTNESS_MAX = 0x251, /* Set Brightness to Maximum */
|
||||||
|
KEY_KBDINPUTASSIST_PREV = 0x260,
|
||||||
|
KEY_KBDINPUTASSIST_NEXT = 0x261,
|
||||||
|
KEY_KBDINPUTASSIST_PREVGROUP = 0x262,
|
||||||
|
KEY_KBDINPUTASSIST_NEXTGROUP = 0x263,
|
||||||
|
KEY_KBDINPUTASSIST_ACCEPT = 0x264,
|
||||||
|
KEY_KBDINPUTASSIST_CANCEL = 0x265,
|
||||||
|
KEY_RIGHT_UP = 0x266,
|
||||||
|
KEY_RIGHT_DOWN = 0x267,
|
||||||
|
KEY_LEFT_UP = 0x268,
|
||||||
|
KEY_LEFT_DOWN = 0x269,
|
||||||
|
KEY_ROOT_MENU = 0x26a, /* Show Device's Root Menu */
|
||||||
|
KEY_MEDIA_TOP_MENU = 0x26b,
|
||||||
|
KEY_NUMERIC_11 = 0x26c,
|
||||||
|
KEY_NUMERIC_12 = 0x26d,
|
||||||
|
KEY_AUDIO_DESC = 0x26e,
|
||||||
|
KEY_3D_MODE = 0x26f,
|
||||||
|
KEY_NEXT_FAVORITE = 0x270,
|
||||||
|
KEY_STOP_RECORD = 0x271,
|
||||||
|
KEY_PAUSE_RECORD = 0x272,
|
||||||
|
KEY_VOD = 0x273, /* Video on Demand */
|
||||||
|
KEY_UNMUTE = 0x274,
|
||||||
|
KEY_FASTREVERSE = 0x275,
|
||||||
|
KEY_SLOWREVERSE = 0x276,
|
||||||
|
KEY_DATA = 0x277,
|
||||||
|
KEY_ONSCREEN_KEYBOARD = 0x278,
|
||||||
|
KEY_PRIVACY_SCREEN_TOGGLE = 0x279,
|
||||||
|
KEY_SELECTIVE_SCREENSHOT = 0x27a,
|
||||||
|
KEY_MACRO1 = 0x290,
|
||||||
|
KEY_MACRO2 = 0x291,
|
||||||
|
KEY_MACRO3 = 0x292,
|
||||||
|
KEY_MACRO4 = 0x293,
|
||||||
|
KEY_MACRO5 = 0x294,
|
||||||
|
KEY_MACRO6 = 0x295,
|
||||||
|
KEY_MACRO7 = 0x296,
|
||||||
|
KEY_MACRO8 = 0x297,
|
||||||
|
KEY_MACRO9 = 0x298,
|
||||||
|
KEY_MACRO10 = 0x299,
|
||||||
|
KEY_MACRO11 = 0x29a,
|
||||||
|
KEY_MACRO12 = 0x29b,
|
||||||
|
KEY_MACRO13 = 0x29c,
|
||||||
|
KEY_MACRO14 = 0x29d,
|
||||||
|
KEY_MACRO15 = 0x29e,
|
||||||
|
KEY_MACRO16 = 0x29f,
|
||||||
|
KEY_MACRO17 = 0x2a0,
|
||||||
|
KEY_MACRO18 = 0x2a1,
|
||||||
|
KEY_MACRO19 = 0x2a2,
|
||||||
|
KEY_MACRO20 = 0x2a3,
|
||||||
|
KEY_MACRO21 = 0x2a4,
|
||||||
|
KEY_MACRO22 = 0x2a5,
|
||||||
|
KEY_MACRO23 = 0x2a6,
|
||||||
|
KEY_MACRO24 = 0x2a7,
|
||||||
|
KEY_MACRO25 = 0x2a8,
|
||||||
|
KEY_MACRO26 = 0x2a9,
|
||||||
|
KEY_MACRO27 = 0x2aa,
|
||||||
|
KEY_MACRO28 = 0x2ab,
|
||||||
|
KEY_MACRO29 = 0x2ac,
|
||||||
|
KEY_MACRO30 = 0x2ad,
|
||||||
|
KEY_MACRO_RECORD_START = 0x2b0,
|
||||||
|
KEY_MACRO_RECORD_STOP = 0x2b1,
|
||||||
|
KEY_MACRO_PRESET_CYCLE = 0x2b2,
|
||||||
|
KEY_MACRO_PRESET1 = 0x2b3,
|
||||||
|
KEY_MACRO_PRESET2 = 0x2b4,
|
||||||
|
KEY_MACRO_PRESET3 = 0x2b5,
|
||||||
|
KEY_KBD_LCD_MENU1 = 0x2b8,
|
||||||
|
KEY_KBD_LCD_MENU2 = 0x2b9,
|
||||||
|
KEY_KBD_LCD_MENU3 = 0x2ba,
|
||||||
|
KEY_KBD_LCD_MENU4 = 0x2bb,
|
||||||
|
KEY_KBD_LCD_MENU5 = 0x2bc,
|
||||||
|
BTN_TRIGGER_HAPPY = 0x2c0,
|
||||||
|
BTN_TRIGGER_HAPPY1 = 0x2c0,
|
||||||
|
BTN_TRIGGER_HAPPY2 = 0x2c1,
|
||||||
|
BTN_TRIGGER_HAPPY3 = 0x2c2,
|
||||||
|
BTN_TRIGGER_HAPPY4 = 0x2c3,
|
||||||
|
BTN_TRIGGER_HAPPY5 = 0x2c4,
|
||||||
|
BTN_TRIGGER_HAPPY6 = 0x2c5,
|
||||||
|
BTN_TRIGGER_HAPPY7 = 0x2c6,
|
||||||
|
BTN_TRIGGER_HAPPY8 = 0x2c7,
|
||||||
|
BTN_TRIGGER_HAPPY9 = 0x2c8,
|
||||||
|
BTN_TRIGGER_HAPPY10 = 0x2c9,
|
||||||
|
BTN_TRIGGER_HAPPY11 = 0x2ca,
|
||||||
|
BTN_TRIGGER_HAPPY12 = 0x2cb,
|
||||||
|
BTN_TRIGGER_HAPPY13 = 0x2cc,
|
||||||
|
BTN_TRIGGER_HAPPY14 = 0x2cd,
|
||||||
|
BTN_TRIGGER_HAPPY15 = 0x2ce,
|
||||||
|
BTN_TRIGGER_HAPPY16 = 0x2cf,
|
||||||
|
BTN_TRIGGER_HAPPY17 = 0x2d0,
|
||||||
|
BTN_TRIGGER_HAPPY18 = 0x2d1,
|
||||||
|
BTN_TRIGGER_HAPPY19 = 0x2d2,
|
||||||
|
BTN_TRIGGER_HAPPY20 = 0x2d3,
|
||||||
|
BTN_TRIGGER_HAPPY21 = 0x2d4,
|
||||||
|
BTN_TRIGGER_HAPPY22 = 0x2d5,
|
||||||
|
BTN_TRIGGER_HAPPY23 = 0x2d6,
|
||||||
|
BTN_TRIGGER_HAPPY24 = 0x2d7,
|
||||||
|
BTN_TRIGGER_HAPPY25 = 0x2d8,
|
||||||
|
BTN_TRIGGER_HAPPY26 = 0x2d9,
|
||||||
|
BTN_TRIGGER_HAPPY27 = 0x2da,
|
||||||
|
BTN_TRIGGER_HAPPY28 = 0x2db,
|
||||||
|
BTN_TRIGGER_HAPPY29 = 0x2dc,
|
||||||
|
BTN_TRIGGER_HAPPY30 = 0x2dd,
|
||||||
|
BTN_TRIGGER_HAPPY31 = 0x2de,
|
||||||
|
BTN_TRIGGER_HAPPY32 = 0x2df,
|
||||||
|
BTN_TRIGGER_HAPPY33 = 0x2e0,
|
||||||
|
BTN_TRIGGER_HAPPY34 = 0x2e1,
|
||||||
|
BTN_TRIGGER_HAPPY35 = 0x2e2,
|
||||||
|
BTN_TRIGGER_HAPPY36 = 0x2e3,
|
||||||
|
BTN_TRIGGER_HAPPY37 = 0x2e4,
|
||||||
|
BTN_TRIGGER_HAPPY38 = 0x2e5,
|
||||||
|
BTN_TRIGGER_HAPPY39 = 0x2e6,
|
||||||
|
BTN_TRIGGER_HAPPY40 = 0x2e7,
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
namespace Artemis.UI.Linux.Providers.Input
|
||||||
|
{
|
||||||
|
public enum LinuxRelativeAxis
|
||||||
|
{
|
||||||
|
REL_X = 0x00,
|
||||||
|
REL_Y = 0x01,
|
||||||
|
REL_Z = 0x02,
|
||||||
|
REL_RX = 0x03,
|
||||||
|
REL_RY = 0x04,
|
||||||
|
REL_RZ = 0x05,
|
||||||
|
REL_HWHEEL = 0x06,
|
||||||
|
REL_DIAL = 0x07,
|
||||||
|
REL_WHEEL = 0x08,
|
||||||
|
REL_MISC = 0x09,
|
||||||
|
}
|
||||||
|
}
|
||||||
621
src/Avalonia/Artemis.UI.Linux/Utilities/InputUtilities.cs
Normal file
621
src/Avalonia/Artemis.UI.Linux/Utilities/InputUtilities.cs
Normal file
@ -0,0 +1,621 @@
|
|||||||
|
using System;
|
||||||
|
using Artemis.Core.Services;
|
||||||
|
using Artemis.UI.Linux.Providers.Input;
|
||||||
|
|
||||||
|
namespace Artemis.UI.Linux.Utilities
|
||||||
|
{
|
||||||
|
public static class InputUtilities
|
||||||
|
{
|
||||||
|
public static KeyboardKey KeyFromKeyCode(LinuxKeyboardKeyCodes code) => code switch
|
||||||
|
{
|
||||||
|
LinuxKeyboardKeyCodes.KEY_ESC => KeyboardKey.Escape,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_1 => KeyboardKey.D1,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_2 => KeyboardKey.D2,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_3 => KeyboardKey.D3,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_4 => KeyboardKey.D4,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_5 => KeyboardKey.D5,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_6 => KeyboardKey.D6,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_7 => KeyboardKey.D7,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_8 => KeyboardKey.D8,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_9 => KeyboardKey.D9,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_0 => KeyboardKey.D0,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_MINUS => KeyboardKey.OemMinus,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_EQUAL => KeyboardKey.OemPlus,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_BACKSPACE => KeyboardKey.Back,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_TAB => KeyboardKey.Tab,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_Q => KeyboardKey.Q,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_W => KeyboardKey.W,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_E => KeyboardKey.E,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_R => KeyboardKey.R,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_T => KeyboardKey.T,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_Y => KeyboardKey.Y,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_U => KeyboardKey.U,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_I => KeyboardKey.I,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_O => KeyboardKey.O,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_P => KeyboardKey.P,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_LEFTBRACE => KeyboardKey.OemOpenBrackets,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_RIGHTBRACE => KeyboardKey.OemCloseBrackets,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_ENTER => KeyboardKey.Enter,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_LEFTCTRL => KeyboardKey.LeftCtrl,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_A => KeyboardKey.A,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_S => KeyboardKey.S,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_D => KeyboardKey.D,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F => KeyboardKey.F,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_G => KeyboardKey.G,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_H => KeyboardKey.H,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_J => KeyboardKey.J,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_K => KeyboardKey.K,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_L => KeyboardKey.L,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_SEMICOLON => KeyboardKey.OemSemicolon,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_APOSTROPHE => KeyboardKey.OemQuotes,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_GRAVE => KeyboardKey.OemTilde,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_LEFTSHIFT => KeyboardKey.LeftShift,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_BACKSLASH => KeyboardKey.OemBackslash,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_Z => KeyboardKey.Z,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_X => KeyboardKey.X,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_C => KeyboardKey.C,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_V => KeyboardKey.V,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_B => KeyboardKey.B,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_N => KeyboardKey.N,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_M => KeyboardKey.M,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_COMMA => KeyboardKey.OemComma,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_DOT => KeyboardKey.OemPeriod,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_SLASH => KeyboardKey.OemQuestion,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_RIGHTSHIFT => KeyboardKey.RightShift,
|
||||||
|
//LinuxKeyboardKeyCodes.KEY_KPASTERISK => ,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_LEFTALT => KeyboardKey.LeftAlt,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_SPACE => KeyboardKey.Space,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_CAPSLOCK => KeyboardKey.CapsLock,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F1 => KeyboardKey.F1,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F2 => KeyboardKey.F2,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F3 => KeyboardKey.F3,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F4 => KeyboardKey.F4,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F5 => KeyboardKey.F5,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F6 => KeyboardKey.F6,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F7 => KeyboardKey.F7,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F8 => KeyboardKey.F8,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F9 => KeyboardKey.F9,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F10 => KeyboardKey.F10,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_NUMLOCK => KeyboardKey.NumLock,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_SCROLLLOCK => KeyboardKey.Scroll,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP7 => KeyboardKey.NumPad7,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP8 => KeyboardKey.NumPad8,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP9 => KeyboardKey.NumPad9,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KPMINUS => KeyboardKey.Subtract,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP4 => KeyboardKey.NumPad4,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP5 => KeyboardKey.NumPad5,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP6 => KeyboardKey.NumPad6,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KPPLUS => KeyboardKey.Add,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP1 => KeyboardKey.NumPad1,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP2 => KeyboardKey.NumPad2,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP3 => KeyboardKey.NumPad3,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KP0 => KeyboardKey.NumPad0,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KPDOT => KeyboardKey.Decimal,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ZENKAKUHANKAKU => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_102ND => expr,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F11 => KeyboardKey.F11,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_F12 => KeyboardKey.F12,
|
||||||
|
//LinuxKeyboardKeyCodes.KEY_RO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KATAKANA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_HIRAGANA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_HENKAN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KATAKANAHIRAGANA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MUHENKAN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KPJPCOMMA => expr,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KPENTER => KeyboardKey.NumPadEnter,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_RIGHTCTRL => KeyboardKey.RightCtrl,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KPSLASH => KeyboardKey.Divide,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_SYSRQ => KeyboardKey.System,//TODO:?
|
||||||
|
LinuxKeyboardKeyCodes.KEY_RIGHTALT => KeyboardKey.RightAlt,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_LINEFEED => KeyboardKey.LineFeed,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_HOME => KeyboardKey.Home,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_UP => KeyboardKey.Up,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_PAGEUP => KeyboardKey.PageUp,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_LEFT => KeyboardKey.Left,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_RIGHT => KeyboardKey.Right,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_END => KeyboardKey.End,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_DOWN => KeyboardKey.Down,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_PAGEDOWN => KeyboardKey.PageDown,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_INSERT => KeyboardKey.Insert,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_DELETE => KeyboardKey.Delete,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO => KeyboardKey.macro,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_MUTE => KeyboardKey.VolumeMute,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_VOLUMEDOWN => KeyboardKey.VolumeDown,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_VOLUMEUP => KeyboardKey.VolumeUp,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_POWER => KeyboardKey.power,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_KPEQUAL => KeyboardKey.NumPadEnter,//todo: ?
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KPPLUSMINUS => KeyboardKey.numpad,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_PAUSE => KeyboardKey.Pause,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SCALE => KeyboardKey.scal,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KPCOMMA => KeyboardKey.ke,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_HANGEUL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_HANJA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_YEN => expr,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_LEFTMETA => KeyboardKey.LWin,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_RIGHTMETA => KeyboardKey.RWin,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_COMPOSE => ,
|
||||||
|
LinuxKeyboardKeyCodes.KEY_STOP => KeyboardKey.MediaStop,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_AGAIN => ,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PROPS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_UNDO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FRONT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_COPY => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_OPEN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PASTE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FIND => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CUT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_HELP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MENU => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CALC => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SETUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SLEEP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_WAKEUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FILE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SENDFILE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DELETEFILE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_XFER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PROG1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PROG2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_WWW => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MSDOS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_COFFEE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ROTATE_DISPLAY => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CYCLEWINDOWS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MAIL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BOOKMARKS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_COMPUTER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BACK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FORWARD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CLOSECD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EJECTCD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EJECTCLOSECD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NEXTSONG => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PLAYPAUSE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PREVIOUSSONG => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_STOPCD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_RECORD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_REWIND => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PHONE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ISO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CONFIG => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_HOMEPAGE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_REFRESH => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EXIT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MOVE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EDIT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SCROLLUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SCROLLDOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KPLEFTPAREN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KPRIGHTPAREN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NEW => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_REDO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F13 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F14 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F15 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F16 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F17 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F18 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F19 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F20 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F21 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F22 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F23 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_F24 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PLAYCD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PAUSECD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PROG3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PROG4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DASHBOARD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SUSPEND => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CLOSE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PLAY => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FASTFORWARD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BASSBOOST => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PRINT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_HP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CAMERA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SOUND => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_QUESTION => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EMAIL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CHAT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SEARCH => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CONNECT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FINANCE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SPORT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SHOP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ALTERASE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CANCEL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRIGHTNESSDOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRIGHTNESSUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MEDIA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SWITCHVIDEOMODE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDILLUMTOGGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDILLUMDOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDILLUMUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SEND => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_REPLY => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FORWARDMAIL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SAVE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DOCUMENTS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BATTERY => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BLUETOOTH => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_WLAN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_UWB => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_UNKNOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VIDEO_NEXT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VIDEO_PREV => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRIGHTNESS_CYCLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRIGHTNESS_AUTO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_WWAN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_RFKILL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MICMUTE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_MISC => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_5 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_6 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_7 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_8 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_9 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_MOUSE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_RIGHT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_MIDDLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_SIDE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_EXTRA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_FORWARD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_BACK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TASK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_JOYSTICK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_THUMB => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_THUMB2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOP2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_PINKIE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_BASE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_BASE2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_BASE3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_BASE4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_BASE5 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_BASE6 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_DEAD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_GAMEPAD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_EAST => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_C => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_NORTH => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_WEST => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_Z => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TL2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TR2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_SELECT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_START => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_MODE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_THUMBL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_THUMBR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_DIGI => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_RUBBER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_BRUSH => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_PENCIL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_AIRBRUSH => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_FINGER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_MOUSE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_LENS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_QUINTTAP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_STYLUS3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOUCH => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_STYLUS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_STYLUS2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_DOUBLETAP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_TRIPLETAP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TOOL_QUADTAP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_WHEEL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_GEAR_UP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_OK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SELECT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_GOTO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CLEAR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_POWER2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_OPTION => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_INFO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TIME => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VENDOR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ARCHIVE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PROGRAM => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CHANNEL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FAVORITES => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EPG => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PVR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MHP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_LANGUAGE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TITLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SUBTITLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ANGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FULL_SCREEN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MODE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KEYBOARD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ASPECT_RATIO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PC => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TV => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TV2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VCR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VCR2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SAT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SAT2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TAPE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_RADIO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TUNER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PLAYER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TEXT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DVD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_AUX => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MP3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_AUDIO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VIDEO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DIRECTORY => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_LIST => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MEMO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CALENDAR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_RED => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_GREEN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_YELLOW => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BLUE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CHANNELUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CHANNELDOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FIRST => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_LAST => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_AB => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NEXT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_RESTART => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SLOW => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SHUFFLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BREAK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PREVIOUS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DIGITS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TEEN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TWEN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VIDEOPHONE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_GAMES => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ZOOMIN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ZOOMOUT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ZOOMRESET => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_WORDPROCESSOR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EDITOR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SPREADSHEET => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_GRAPHICSEDITOR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PRESENTATION => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DATABASE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NEWS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VOICEMAIL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ADDRESSBOOK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MESSENGER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DISPLAYTOGGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SPELLCHECK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_LOGOFF => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DOLLAR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EURO => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FRAMEBACK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FRAMEFORWARD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CONTEXT_MENU => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MEDIA_REPEAT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_10CHANNELSUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_10CHANNELSDOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_IMAGES => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NOTIFICATION_CENTER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PICKUP_PHONE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_HANGUP_PHONE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DEL_EOL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DEL_EOS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_INS_LINE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DEL_LINE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_ESC => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F5 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F6 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F7 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F8 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F9 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F10 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F11 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F12 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_D => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_E => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_F => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_S => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_B => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FN_RIGHT_SHIFT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT5 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT6 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT7 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT8 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT9 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRL_DOT10 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_0 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_5 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_6 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_7 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_8 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_9 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_STAR => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_POUND => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_A => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_B => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_C => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_D => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CAMERA_FOCUS => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_WPS_BUTTON => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TOUCHPAD_TOGGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TOUCHPAD_ON => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TOUCHPAD_OFF => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CAMERA_ZOOMIN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CAMERA_ZOOMOUT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CAMERA_UP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CAMERA_DOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CAMERA_LEFT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CAMERA_RIGHT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ATTENDANT_ON => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ATTENDANT_OFF => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ATTENDANT_TOGGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_LIGHTS_TOGGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_DPAD_UP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_DPAD_DOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_DPAD_LEFT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_DPAD_RIGHT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ALS_TOGGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ROTATE_LOCK_TOGGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BUTTONCONFIG => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_TASKMANAGER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_JOURNAL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_CONTROLPANEL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_APPSELECT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SCREENSAVER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VOICECOMMAND => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ASSISTANT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBD_LAYOUT_NEXT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_EMOJI_PICKER => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRIGHTNESS_MIN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_BRIGHTNESS_MAX => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDINPUTASSIST_PREV => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDINPUTASSIST_NEXT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDINPUTASSIST_PREVGROUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDINPUTASSIST_NEXTGROUP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDINPUTASSIST_ACCEPT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBDINPUTASSIST_CANCEL => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_RIGHT_UP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_RIGHT_DOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_LEFT_UP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_LEFT_DOWN => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ROOT_MENU => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MEDIA_TOP_MENU => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_11 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NUMERIC_12 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_AUDIO_DESC => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_3D_MODE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_NEXT_FAVORITE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_STOP_RECORD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PAUSE_RECORD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_VOD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_UNMUTE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_FASTREVERSE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SLOWREVERSE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_DATA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_ONSCREEN_KEYBOARD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_PRIVACY_SCREEN_TOGGLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_SELECTIVE_SCREENSHOT => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO5 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO6 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO7 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO8 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO9 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO10 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO11 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO12 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO13 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO14 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO15 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO16 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO17 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO18 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO19 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO20 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO21 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO22 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO23 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO24 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO25 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO26 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO27 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO28 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO29 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO30 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO_RECORD_START => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO_RECORD_STOP => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO_PRESET_CYCLE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO_PRESET1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO_PRESET2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_MACRO_PRESET3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBD_LCD_MENU1 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBD_LCD_MENU2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBD_LCD_MENU3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBD_LCD_MENU4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.KEY_KBD_LCD_MENU5 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY2 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY3 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY4 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY5 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY6 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY7 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY8 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY9 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY10 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY11 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY12 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY13 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY14 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY15 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY16 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY17 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY18 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY19 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY20 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY21 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY22 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY23 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY24 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY25 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY26 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY27 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY28 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY29 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY30 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY31 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY32 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY33 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY34 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY35 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY36 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY37 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY38 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY39 => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TRIGGER_HAPPY40 => expr,
|
||||||
|
_ => KeyboardKey.None
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
public static MouseButton MouseButtonFromButtonCode(LinuxKeyboardKeyCodes eCode) => eCode switch
|
||||||
|
{
|
||||||
|
LinuxKeyboardKeyCodes.BTN_LEFT => MouseButton.Left,
|
||||||
|
LinuxKeyboardKeyCodes.BTN_RIGHT => MouseButton.Right,
|
||||||
|
LinuxKeyboardKeyCodes.BTN_MIDDLE => MouseButton.Middle,
|
||||||
|
//todo: figure these out
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_SIDE => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_EXTRA => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_FORWARD => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_BACK => expr,
|
||||||
|
// LinuxKeyboardKeyCodes.BTN_TASK => expr,
|
||||||
|
_ => throw new ArgumentOutOfRangeException(nameof(eCode), eCode, null)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user