Documentation ¶
Index ¶
- Constants
- Variables
- func CodeName(t EvType, c EvCode) string
- func DestroyDevice(dev *InputDevice) error
- func PropName(p EvProp) string
- func TypeName(t EvType) string
- type AbsInfo
- type EvCode
- type EvProp
- type EvType
- type InputDevice
- func CloneDevice(name string, dev *InputDevice) (*InputDevice, error)
- func CreateDevice(name string, id InputID, capabilities map[EvType][]EvCode) (*InputDevice, error)
- func Open(path string) (*InputDevice, error)
- func OpenByName(name string) (*InputDevice, error)
- func OpenByNameWithFlags(name string, flags int) (*InputDevice, error)
- func OpenWithFlags(path string, flags int) (*InputDevice, error)
- func (d *InputDevice) AbsInfos() (map[EvCode]AbsInfo, error)
- func (d *InputDevice) CapableEvents(t EvType) []EvCode
- func (d *InputDevice) CapableTypes() []EvType
- func (d *InputDevice) Close() error
- func (d *InputDevice) DriverVersion() (int, int, int)
- func (d *InputDevice) Grab() error
- func (d *InputDevice) InputID() (InputID, error)
- func (d *InputDevice) Name() (string, error)
- func (d *InputDevice) NonBlock() error
- func (d *InputDevice) Path() string
- func (d *InputDevice) PhysicalLocation() (string, error)
- func (d *InputDevice) Properties() []EvProp
- func (d *InputDevice) ReadOne() (*InputEvent, error)
- func (d *InputDevice) Revoke() error
- func (d *InputDevice) State(t EvType) (StateMap, error)
- func (d *InputDevice) Ungrab() error
- func (d *InputDevice) UniqueID() (string, error)
- func (d *InputDevice) WriteOne(event *InputEvent) error
- type InputEvent
- type InputID
- type InputKeymapEntry
- type InputMask
- type InputPath
- type StateMap
- type UinputUserDevice
Constants ¶
const ( INPUT_PROP_POINTER = 0x00 // needs a pointer INPUT_PROP_DIRECT = 0x01 // direct input devices INPUT_PROP_BUTTONPAD = 0x02 // has button(s) under pad INPUT_PROP_SEMI_MT = 0x03 // touch rectangle only INPUT_PROP_TOPBUTTONPAD = 0x04 // softbuttons at top of pad INPUT_PROP_POINTING_STICK = 0x05 // is a pointing stick INPUT_PROP_ACCELEROMETER = 0x06 // has accelerometer INPUT_PROP_MAX = 0x1f INPUT_PROP_CNT = (INPUT_PROP_MAX + 1) )
Device properties and quirks
const ( EV_SYN = 0x00 EV_KEY = 0x01 EV_REL = 0x02 EV_ABS = 0x03 EV_MSC = 0x04 EV_SW = 0x05 EV_LED = 0x11 EV_SND = 0x12 EV_REP = 0x14 EV_FF = 0x15 EV_PWR = 0x16 EV_FF_STATUS = 0x17 EV_MAX = 0x1f EV_CNT = (EV_MAX + 1) )
Event types
const ( SYN_REPORT = 0 SYN_CONFIG = 1 SYN_MT_REPORT = 2 SYN_DROPPED = 3 SYN_MAX = 0xf SYN_CNT = (SYN_MAX + 1) )
Synchronization events.
const ( 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_ALL_APPLICATIONS = 204 // AC Desktop Show All Applications KEY_DASHBOARD = KEY_ALL_APPLICATIONS 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 // Cycle between available videooutputs (Monitor/LCD/TV-out/etc) 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: manualbrightness control is off,rely on ambient 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_DICTATE = 0x24a // Start or Stop Voice Dictation Session (HUTRR99) KEY_CAMERA_ACCESS_ENABLE = 0x24b // Enables programmatic access to camera devices. (HUTRR72) KEY_CAMERA_ACCESS_DISABLE = 0x24c // Disables programmatic access to camera devices. (HUTRR72) KEY_CAMERA_ACCESS_TOGGLE = 0x24d // Toggles the current state of the camera access control. (HUTRR72) 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_NEXT_ELEMENT = 0x27b KEY_PREVIOUS_ELEMENT = 0x27c KEY_AUTOPILOT_ENGAGE_TOGGLE = 0x27d KEY_MARK_WAYPOINT = 0x27e KEY_SOS = 0x27f KEY_NAV_CHART = 0x280 KEY_FISHING_CHART = 0x281 KEY_SINGLE_RANGE_RADAR = 0x282 KEY_DUAL_RANGE_RADAR = 0x283 KEY_RADAR_OVERLAY = 0x284 KEY_TRADITIONAL_SONAR = 0x285 KEY_CLEARVU_SONAR = 0x286 KEY_SIDEVU_SONAR = 0x287 KEY_NAV_INFO = 0x288 KEY_BRIGHTNESS_MENU = 0x289 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 KEY_MIN_INTERESTING = KEY_MUTE KEY_MAX = 0x2ff KEY_CNT = (KEY_MAX + 1) )
Keys and buttons Most of the keys/buttons are modeled after USB HUT 1.12 (see http://www.usb.org/developers/hidpage). Abbreviations in the comments: AC - Application Control AL - Application Launch Button SC - System Control
const ( 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 REL_RESERVED = 0x0a REL_WHEEL_HI_RES = 0x0b REL_HWHEEL_HI_RES = 0x0c REL_MAX = 0x0f REL_CNT = (REL_MAX + 1) )
Relative axes
const ( 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_PROFILE = 0x21 ABS_MISC = 0x28 ABS_RESERVED = 0x2e ABS_MT_SLOT = 0x2f // MT slot being modified ABS_MT_TOUCH_MAJOR = 0x30 // Major axis of touching ellipse ABS_MT_TOUCH_MINOR = 0x31 // Minor axis (omit if circular) ABS_MT_WIDTH_MAJOR = 0x32 // Major axis of approaching ellipse ABS_MT_WIDTH_MINOR = 0x33 // Minor axis (omit if circular) ABS_MT_ORIENTATION = 0x34 // Ellipse orientation ABS_MT_POSITION_X = 0x35 // Center X touch position ABS_MT_POSITION_Y = 0x36 // Center Y touch position ABS_MT_TOOL_TYPE = 0x37 // Type of touching device ABS_MT_BLOB_ID = 0x38 // Group a set of packets as a blob ABS_MT_TRACKING_ID = 0x39 // Unique ID of initiated contact ABS_MT_PRESSURE = 0x3a // Pressure on contact area ABS_MT_DISTANCE = 0x3b // Contact hover distance ABS_MT_TOOL_X = 0x3c // Center X tool position ABS_MT_TOOL_Y = 0x3d // Center Y tool position ABS_MAX = 0x3f ABS_CNT = (ABS_MAX + 1) )
Absolute axes
const ( SW_LID = 0x00 // set = lid shut SW_TABLET_MODE = 0x01 // set = tablet mode SW_HEADPHONE_INSERT = 0x02 // set = inserted SW_RFKILL_ALL = 0x03 // rfkill master switch, type "any"set = radio enabled SW_RADIO = SW_RFKILL_ALL // deprecated SW_MICROPHONE_INSERT = 0x04 // set = inserted SW_DOCK = 0x05 // set = plugged into dock SW_LINEOUT_INSERT = 0x06 // set = inserted SW_JACK_PHYSICAL_INSERT = 0x07 // set = mechanical switch set SW_VIDEOOUT_INSERT = 0x08 // set = inserted SW_CAMERA_LENS_COVER = 0x09 // set = lens covered SW_KEYPAD_SLIDE = 0x0a // set = keypad slide out SW_FRONT_PROXIMITY = 0x0b // set = front proximity sensor active SW_ROTATE_LOCK = 0x0c // set = rotate locked/disabled SW_LINEIN_INSERT = 0x0d // set = inserted SW_MUTE_DEVICE = 0x0e // set = device disabled SW_PEN_INSERTED = 0x0f // set = pen inserted SW_MACHINE_COVER = 0x10 // set = cover closed SW_MAX = 0x10 SW_CNT = (SW_MAX + 1) )
Switch events
const ( MSC_SERIAL = 0x00 MSC_PULSELED = 0x01 MSC_GESTURE = 0x02 MSC_RAW = 0x03 MSC_SCAN = 0x04 MSC_TIMESTAMP = 0x05 MSC_MAX = 0x07 MSC_CNT = (MSC_MAX + 1) )
Misc events
const ( LED_NUML = 0x00 LED_CAPSL = 0x01 LED_SCROLLL = 0x02 LED_COMPOSE = 0x03 LED_KANA = 0x04 LED_SLEEP = 0x05 LED_SUSPEND = 0x06 LED_MUTE = 0x07 LED_MISC = 0x08 LED_MAIL = 0x09 LED_CHARGING = 0x0a LED_MAX = 0x0f LED_CNT = (LED_MAX + 1) )
LEDs
const ( REP_DELAY = 0x00 REP_PERIOD = 0x01 REP_MAX = 0x01 REP_CNT = (REP_MAX + 1) )
Autorepeat values
const ( SND_CLICK = 0x00 SND_BELL = 0x01 SND_TONE = 0x02 SND_MAX = 0x07 SND_CNT = (SND_MAX + 1) )
Sounds
const ( ID_BUS = 0 ID_VENDOR = 1 ID_PRODUCT = 2 ID_VERSION = 3 )
IDs.
const ( BUS_PCI = 0x01 BUS_ISAPNP = 0x02 BUS_USB = 0x03 BUS_HIL = 0x04 BUS_BLUETOOTH = 0x05 BUS_VIRTUAL = 0x06 BUS_ISA = 0x10 BUS_I8042 = 0x11 BUS_XTKBD = 0x12 BUS_RS232 = 0x13 BUS_GAMEPORT = 0x14 BUS_PARPORT = 0x15 BUS_AMIGA = 0x16 BUS_ADB = 0x17 BUS_I2C = 0x18 BUS_HOST = 0x19 BUS_GSC = 0x1A BUS_ATARI = 0x1B BUS_SPI = 0x1C BUS_RMI = 0x1D BUS_CEC = 0x1E BUS_INTEL_ISHTP = 0x1F BUS_AMD_SFH = 0x20 )
const ( MT_TOOL_FINGER = 0x00 MT_TOOL_PEN = 0x01 MT_TOOL_PALM = 0x02 MT_TOOL_DIAL = 0x0a MT_TOOL_MAX = 0x0f )
MT_TOOL types
const ( FF_STATUS_STOPPED = 0x00 FF_STATUS_PLAYING = 0x01 FF_STATUS_MAX = 0x01 FF_RUMBLE = 0x50 FF_PERIODIC = 0x51 FF_CONSTANT = 0x52 FF_SPRING = 0x53 FF_FRICTION = 0x54 FF_DAMPER = 0x55 FF_INERTIA = 0x56 FF_RAMP = 0x57 FF_EFFECT_MIN = FF_RUMBLE FF_EFFECT_MAX = FF_RAMP FF_SQUARE = 0x58 FF_TRIANGLE = 0x59 FF_SINE = 0x5a FF_SAW_UP = 0x5b FF_SAW_DOWN = 0x5c FF_CUSTOM = 0x5d FF_WAVEFORM_MIN = FF_SQUARE FF_WAVEFORM_MAX = FF_CUSTOM FF_GAIN = 0x60 FF_AUTOCENTER = 0x61 FF_MAX_EFFECTS = FF_GAIN FF_MAX = 0x7f FF_CNT = (FF_MAX + 1) )
Values describing the status of a force-feedback effect
Variables ¶
var ABSFromString = map[string]EvCode{ "ABS_X": ABS_X, "ABS_Y": ABS_Y, "ABS_Z": ABS_Z, "ABS_RX": ABS_RX, "ABS_RY": ABS_RY, "ABS_RZ": ABS_RZ, "ABS_THROTTLE": ABS_THROTTLE, "ABS_RUDDER": ABS_RUDDER, "ABS_WHEEL": ABS_WHEEL, "ABS_GAS": ABS_GAS, "ABS_BRAKE": ABS_BRAKE, "ABS_HAT0X": ABS_HAT0X, "ABS_HAT0Y": ABS_HAT0Y, "ABS_HAT1X": ABS_HAT1X, "ABS_HAT1Y": ABS_HAT1Y, "ABS_HAT2X": ABS_HAT2X, "ABS_HAT2Y": ABS_HAT2Y, "ABS_HAT3X": ABS_HAT3X, "ABS_HAT3Y": ABS_HAT3Y, "ABS_PRESSURE": ABS_PRESSURE, "ABS_DISTANCE": ABS_DISTANCE, "ABS_TILT_X": ABS_TILT_X, "ABS_TILT_Y": ABS_TILT_Y, "ABS_TOOL_WIDTH": ABS_TOOL_WIDTH, "ABS_VOLUME": ABS_VOLUME, "ABS_PROFILE": ABS_PROFILE, "ABS_MISC": ABS_MISC, "ABS_RESERVED": ABS_RESERVED, "ABS_MT_SLOT": ABS_MT_SLOT, "ABS_MT_TOUCH_MAJOR": ABS_MT_TOUCH_MAJOR, "ABS_MT_TOUCH_MINOR": ABS_MT_TOUCH_MINOR, "ABS_MT_WIDTH_MAJOR": ABS_MT_WIDTH_MAJOR, "ABS_MT_WIDTH_MINOR": ABS_MT_WIDTH_MINOR, "ABS_MT_ORIENTATION": ABS_MT_ORIENTATION, "ABS_MT_POSITION_X": ABS_MT_POSITION_X, "ABS_MT_POSITION_Y": ABS_MT_POSITION_Y, "ABS_MT_TOOL_TYPE": ABS_MT_TOOL_TYPE, "ABS_MT_BLOB_ID": ABS_MT_BLOB_ID, "ABS_MT_TRACKING_ID": ABS_MT_TRACKING_ID, "ABS_MT_PRESSURE": ABS_MT_PRESSURE, "ABS_MT_DISTANCE": ABS_MT_DISTANCE, "ABS_MT_TOOL_X": ABS_MT_TOOL_X, "ABS_MT_TOOL_Y": ABS_MT_TOOL_Y, "ABS_MAX": ABS_MAX, "ABS_CNT": ABS_CNT, }
var ABSNames = map[EvCode]string{ ABS_X: "ABS_X", ABS_Y: "ABS_Y", ABS_Z: "ABS_Z", ABS_RX: "ABS_RX", ABS_RY: "ABS_RY", ABS_RZ: "ABS_RZ", ABS_THROTTLE: "ABS_THROTTLE", ABS_RUDDER: "ABS_RUDDER", ABS_WHEEL: "ABS_WHEEL", ABS_GAS: "ABS_GAS", ABS_BRAKE: "ABS_BRAKE", ABS_HAT0X: "ABS_HAT0X", ABS_HAT0Y: "ABS_HAT0Y", ABS_HAT1X: "ABS_HAT1X", ABS_HAT1Y: "ABS_HAT1Y", ABS_HAT2X: "ABS_HAT2X", ABS_HAT2Y: "ABS_HAT2Y", ABS_HAT3X: "ABS_HAT3X", ABS_HAT3Y: "ABS_HAT3Y", ABS_PRESSURE: "ABS_PRESSURE", ABS_DISTANCE: "ABS_DISTANCE", ABS_TILT_X: "ABS_TILT_X", ABS_TILT_Y: "ABS_TILT_Y", ABS_TOOL_WIDTH: "ABS_TOOL_WIDTH", ABS_VOLUME: "ABS_VOLUME", ABS_PROFILE: "ABS_PROFILE", ABS_MISC: "ABS_MISC", ABS_RESERVED: "ABS_RESERVED", ABS_MT_SLOT: "ABS_MT_SLOT", ABS_MT_TOUCH_MAJOR: "ABS_MT_TOUCH_MAJOR", ABS_MT_TOUCH_MINOR: "ABS_MT_TOUCH_MINOR", ABS_MT_WIDTH_MAJOR: "ABS_MT_WIDTH_MAJOR", ABS_MT_WIDTH_MINOR: "ABS_MT_WIDTH_MINOR", ABS_MT_ORIENTATION: "ABS_MT_ORIENTATION", ABS_MT_POSITION_X: "ABS_MT_POSITION_X", ABS_MT_POSITION_Y: "ABS_MT_POSITION_Y", ABS_MT_TOOL_TYPE: "ABS_MT_TOOL_TYPE", ABS_MT_BLOB_ID: "ABS_MT_BLOB_ID", ABS_MT_TRACKING_ID: "ABS_MT_TRACKING_ID", ABS_MT_PRESSURE: "ABS_MT_PRESSURE", ABS_MT_DISTANCE: "ABS_MT_DISTANCE", ABS_MT_TOOL_X: "ABS_MT_TOOL_X", ABS_MT_TOOL_Y: "ABS_MT_TOOL_Y", ABS_MAX: "ABS_MAX", ABS_CNT: "ABS_CNT", }
var ABSToString = map[EvCode]string{ ABS_X: "ABS_X", ABS_Y: "ABS_Y", ABS_Z: "ABS_Z", ABS_RX: "ABS_RX", ABS_RY: "ABS_RY", ABS_RZ: "ABS_RZ", ABS_THROTTLE: "ABS_THROTTLE", ABS_RUDDER: "ABS_RUDDER", ABS_WHEEL: "ABS_WHEEL", ABS_GAS: "ABS_GAS", ABS_BRAKE: "ABS_BRAKE", ABS_HAT0X: "ABS_HAT0X", ABS_HAT0Y: "ABS_HAT0Y", ABS_HAT1X: "ABS_HAT1X", ABS_HAT1Y: "ABS_HAT1Y", ABS_HAT2X: "ABS_HAT2X", ABS_HAT2Y: "ABS_HAT2Y", ABS_HAT3X: "ABS_HAT3X", ABS_HAT3Y: "ABS_HAT3Y", ABS_PRESSURE: "ABS_PRESSURE", ABS_DISTANCE: "ABS_DISTANCE", ABS_TILT_X: "ABS_TILT_X", ABS_TILT_Y: "ABS_TILT_Y", ABS_TOOL_WIDTH: "ABS_TOOL_WIDTH", ABS_VOLUME: "ABS_VOLUME", ABS_PROFILE: "ABS_PROFILE", ABS_MISC: "ABS_MISC", ABS_RESERVED: "ABS_RESERVED", ABS_MT_SLOT: "ABS_MT_SLOT", ABS_MT_TOUCH_MAJOR: "ABS_MT_TOUCH_MAJOR", ABS_MT_TOUCH_MINOR: "ABS_MT_TOUCH_MINOR", ABS_MT_WIDTH_MAJOR: "ABS_MT_WIDTH_MAJOR", ABS_MT_WIDTH_MINOR: "ABS_MT_WIDTH_MINOR", ABS_MT_ORIENTATION: "ABS_MT_ORIENTATION", ABS_MT_POSITION_X: "ABS_MT_POSITION_X", ABS_MT_POSITION_Y: "ABS_MT_POSITION_Y", ABS_MT_TOOL_TYPE: "ABS_MT_TOOL_TYPE", ABS_MT_BLOB_ID: "ABS_MT_BLOB_ID", ABS_MT_TRACKING_ID: "ABS_MT_TRACKING_ID", ABS_MT_PRESSURE: "ABS_MT_PRESSURE", ABS_MT_DISTANCE: "ABS_MT_DISTANCE", ABS_MT_TOOL_X: "ABS_MT_TOOL_X", ABS_MT_TOOL_Y: "ABS_MT_TOOL_Y", ABS_MAX: "ABS_MAX", ABS_CNT: "ABS_CNT", }
var BUSFromString = map[string]EvCode{ "BUS_PCI": BUS_PCI, "BUS_ISAPNP": BUS_ISAPNP, "BUS_USB": BUS_USB, "BUS_HIL": BUS_HIL, "BUS_BLUETOOTH": BUS_BLUETOOTH, "BUS_VIRTUAL": BUS_VIRTUAL, "BUS_ISA": BUS_ISA, "BUS_I8042": BUS_I8042, "BUS_XTKBD": BUS_XTKBD, "BUS_RS232": BUS_RS232, "BUS_GAMEPORT": BUS_GAMEPORT, "BUS_PARPORT": BUS_PARPORT, "BUS_AMIGA": BUS_AMIGA, "BUS_ADB": BUS_ADB, "BUS_I2C": BUS_I2C, "BUS_HOST": BUS_HOST, "BUS_GSC": BUS_GSC, "BUS_ATARI": BUS_ATARI, "BUS_SPI": BUS_SPI, "BUS_RMI": BUS_RMI, "BUS_CEC": BUS_CEC, "BUS_INTEL_ISHTP": BUS_INTEL_ISHTP, "BUS_AMD_SFH": BUS_AMD_SFH, }
var BUSNames = map[EvCode]string{ BUS_PCI: "BUS_PCI", BUS_ISAPNP: "BUS_ISAPNP", BUS_USB: "BUS_USB", BUS_HIL: "BUS_HIL", BUS_BLUETOOTH: "BUS_BLUETOOTH", BUS_VIRTUAL: "BUS_VIRTUAL", BUS_ISA: "BUS_ISA", BUS_I8042: "BUS_I8042", BUS_XTKBD: "BUS_XTKBD", BUS_RS232: "BUS_RS232", BUS_GAMEPORT: "BUS_GAMEPORT", BUS_PARPORT: "BUS_PARPORT", BUS_AMIGA: "BUS_AMIGA", BUS_ADB: "BUS_ADB", BUS_I2C: "BUS_I2C", BUS_HOST: "BUS_HOST", BUS_GSC: "BUS_GSC", BUS_ATARI: "BUS_ATARI", BUS_SPI: "BUS_SPI", BUS_RMI: "BUS_RMI", BUS_CEC: "BUS_CEC", BUS_INTEL_ISHTP: "BUS_INTEL_ISHTP", BUS_AMD_SFH: "BUS_AMD_SFH", }
var BUSToString = map[EvCode]string{ BUS_PCI: "BUS_PCI", BUS_ISAPNP: "BUS_ISAPNP", BUS_USB: "BUS_USB", BUS_HIL: "BUS_HIL", BUS_BLUETOOTH: "BUS_BLUETOOTH", BUS_VIRTUAL: "BUS_VIRTUAL", BUS_ISA: "BUS_ISA", BUS_I8042: "BUS_I8042", BUS_XTKBD: "BUS_XTKBD", BUS_RS232: "BUS_RS232", BUS_GAMEPORT: "BUS_GAMEPORT", BUS_PARPORT: "BUS_PARPORT", BUS_AMIGA: "BUS_AMIGA", BUS_ADB: "BUS_ADB", BUS_I2C: "BUS_I2C", BUS_HOST: "BUS_HOST", BUS_GSC: "BUS_GSC", BUS_ATARI: "BUS_ATARI", BUS_SPI: "BUS_SPI", BUS_RMI: "BUS_RMI", BUS_CEC: "BUS_CEC", BUS_INTEL_ISHTP: "BUS_INTEL_ISHTP", BUS_AMD_SFH: "BUS_AMD_SFH", }
var EVFromString = map[string]EvType{ "EV_SYN": EV_SYN, "EV_KEY": EV_KEY, "EV_REL": EV_REL, "EV_ABS": EV_ABS, "EV_MSC": EV_MSC, "EV_SW": EV_SW, "EV_LED": EV_LED, "EV_SND": EV_SND, "EV_REP": EV_REP, "EV_FF": EV_FF, "EV_PWR": EV_PWR, "EV_FF_STATUS": EV_FF_STATUS, "EV_MAX": EV_MAX, "EV_CNT": EV_CNT, }
var EVNames = map[EvType]string{ EV_SYN: "EV_SYN", EV_KEY: "EV_KEY", EV_REL: "EV_REL", EV_ABS: "EV_ABS", EV_MSC: "EV_MSC", EV_SW: "EV_SW", EV_LED: "EV_LED", EV_SND: "EV_SND", EV_REP: "EV_REP", EV_FF: "EV_FF", EV_PWR: "EV_PWR", EV_FF_STATUS: "EV_FF_STATUS", EV_MAX: "EV_MAX", EV_CNT: "EV_CNT", }
var EVToString = map[EvType]string{ EV_SYN: "EV_SYN", EV_KEY: "EV_KEY", EV_REL: "EV_REL", EV_ABS: "EV_ABS", EV_MSC: "EV_MSC", EV_SW: "EV_SW", EV_LED: "EV_LED", EV_SND: "EV_SND", EV_REP: "EV_REP", EV_FF: "EV_FF", EV_PWR: "EV_PWR", EV_FF_STATUS: "EV_FF_STATUS", EV_MAX: "EV_MAX", EV_CNT: "EV_CNT", }
var EvCodeNameLookup = map[EvType]map[EvCode]string{ EV_SYN: SYNNames, EV_KEY: KEYNames, EV_REL: RELNames, EV_ABS: ABSNames, EV_MSC: MSCNames, EV_SW: SWNames, EV_LED: LEDNames, EV_SND: SNDNames, EV_REP: REPNames, EV_FF: FFNames, }
var FFFromString = map[string]EvCode{ "FF_STATUS_STOPPED": FF_STATUS_STOPPED, "FF_STATUS_PLAYING": FF_STATUS_PLAYING, "FF_STATUS_MAX": FF_STATUS_MAX, "FF_RUMBLE": FF_RUMBLE, "FF_PERIODIC": FF_PERIODIC, "FF_CONSTANT": FF_CONSTANT, "FF_SPRING": FF_SPRING, "FF_FRICTION": FF_FRICTION, "FF_DAMPER": FF_DAMPER, "FF_INERTIA": FF_INERTIA, "FF_RAMP": FF_RAMP, "FF_EFFECT_MIN": FF_EFFECT_MIN, "FF_EFFECT_MAX": FF_EFFECT_MAX, "FF_SQUARE": FF_SQUARE, "FF_TRIANGLE": FF_TRIANGLE, "FF_SINE": FF_SINE, "FF_SAW_UP": FF_SAW_UP, "FF_SAW_DOWN": FF_SAW_DOWN, "FF_CUSTOM": FF_CUSTOM, "FF_WAVEFORM_MIN": FF_WAVEFORM_MIN, "FF_WAVEFORM_MAX": FF_WAVEFORM_MAX, "FF_GAIN": FF_GAIN, "FF_AUTOCENTER": FF_AUTOCENTER, "FF_MAX_EFFECTS": FF_MAX_EFFECTS, "FF_MAX": FF_MAX, "FF_CNT": FF_CNT, }
var FFNames = map[EvCode]string{ FF_STATUS_STOPPED: "FF_STATUS_STOPPED", FF_STATUS_PLAYING: "FF_STATUS_PLAYING/FF_STATUS_MAX", FF_RUMBLE: "FF_RUMBLE/FF_EFFECT_MIN", FF_PERIODIC: "FF_PERIODIC", FF_CONSTANT: "FF_CONSTANT", FF_SPRING: "FF_SPRING", FF_FRICTION: "FF_FRICTION", FF_DAMPER: "FF_DAMPER", FF_INERTIA: "FF_INERTIA", FF_RAMP: "FF_RAMP/FF_EFFECT_MAX", FF_SQUARE: "FF_SQUARE/FF_WAVEFORM_MIN", FF_TRIANGLE: "FF_TRIANGLE", FF_SINE: "FF_SINE", FF_SAW_UP: "FF_SAW_UP", FF_SAW_DOWN: "FF_SAW_DOWN", FF_CUSTOM: "FF_CUSTOM/FF_WAVEFORM_MAX", FF_GAIN: "FF_GAIN/FF_MAX_EFFECTS", FF_AUTOCENTER: "FF_AUTOCENTER", FF_MAX: "FF_MAX", FF_CNT: "FF_CNT", }
var FFToString = map[EvCode]string{ FF_STATUS_STOPPED: "FF_STATUS_STOPPED", FF_STATUS_PLAYING: "FF_STATUS_PLAYING", FF_RUMBLE: "FF_RUMBLE", FF_PERIODIC: "FF_PERIODIC", FF_CONSTANT: "FF_CONSTANT", FF_SPRING: "FF_SPRING", FF_FRICTION: "FF_FRICTION", FF_DAMPER: "FF_DAMPER", FF_INERTIA: "FF_INERTIA", FF_RAMP: "FF_RAMP", FF_SQUARE: "FF_SQUARE", FF_TRIANGLE: "FF_TRIANGLE", FF_SINE: "FF_SINE", FF_SAW_UP: "FF_SAW_UP", FF_SAW_DOWN: "FF_SAW_DOWN", FF_CUSTOM: "FF_CUSTOM", FF_GAIN: "FF_GAIN", FF_AUTOCENTER: "FF_AUTOCENTER", FF_MAX: "FF_MAX", FF_CNT: "FF_CNT", }
var IDFromString = map[string]EvCode{ "ID_BUS": ID_BUS, "ID_VENDOR": ID_VENDOR, "ID_PRODUCT": ID_PRODUCT, "ID_VERSION": ID_VERSION, }
var IDNames = map[EvCode]string{ ID_BUS: "ID_BUS", ID_VENDOR: "ID_VENDOR", ID_PRODUCT: "ID_PRODUCT", ID_VERSION: "ID_VERSION", }
var IDToString = map[EvCode]string{ ID_BUS: "ID_BUS", ID_VENDOR: "ID_VENDOR", ID_PRODUCT: "ID_PRODUCT", ID_VERSION: "ID_VERSION", }
var INPUTFromString = map[string]EvProp{ "INPUT_PROP_POINTER": INPUT_PROP_POINTER, "INPUT_PROP_DIRECT": INPUT_PROP_DIRECT, "INPUT_PROP_BUTTONPAD": INPUT_PROP_BUTTONPAD, "INPUT_PROP_SEMI_MT": INPUT_PROP_SEMI_MT, "INPUT_PROP_TOPBUTTONPAD": INPUT_PROP_TOPBUTTONPAD, "INPUT_PROP_POINTING_STICK": INPUT_PROP_POINTING_STICK, "INPUT_PROP_ACCELEROMETER": INPUT_PROP_ACCELEROMETER, "INPUT_PROP_MAX": INPUT_PROP_MAX, "INPUT_PROP_CNT": INPUT_PROP_CNT, }
var INPUTNames = map[EvProp]string{ INPUT_PROP_POINTER: "INPUT_PROP_POINTER", INPUT_PROP_DIRECT: "INPUT_PROP_DIRECT", INPUT_PROP_BUTTONPAD: "INPUT_PROP_BUTTONPAD", INPUT_PROP_SEMI_MT: "INPUT_PROP_SEMI_MT", INPUT_PROP_TOPBUTTONPAD: "INPUT_PROP_TOPBUTTONPAD", INPUT_PROP_POINTING_STICK: "INPUT_PROP_POINTING_STICK", INPUT_PROP_ACCELEROMETER: "INPUT_PROP_ACCELEROMETER", INPUT_PROP_MAX: "INPUT_PROP_MAX", INPUT_PROP_CNT: "INPUT_PROP_CNT", }
var INPUTToString = map[EvProp]string{ INPUT_PROP_POINTER: "INPUT_PROP_POINTER", INPUT_PROP_DIRECT: "INPUT_PROP_DIRECT", INPUT_PROP_BUTTONPAD: "INPUT_PROP_BUTTONPAD", INPUT_PROP_SEMI_MT: "INPUT_PROP_SEMI_MT", INPUT_PROP_TOPBUTTONPAD: "INPUT_PROP_TOPBUTTONPAD", INPUT_PROP_POINTING_STICK: "INPUT_PROP_POINTING_STICK", INPUT_PROP_ACCELEROMETER: "INPUT_PROP_ACCELEROMETER", INPUT_PROP_MAX: "INPUT_PROP_MAX", INPUT_PROP_CNT: "INPUT_PROP_CNT", }
var KEYFromString = map[string]EvCode{}/* 636 elements not displayed */
var KEYNames = map[EvCode]string{}/* 615 elements not displayed */
var KEYToString = map[EvCode]string{}/* 615 elements not displayed */
var LEDFromString = map[string]EvCode{ "LED_NUML": LED_NUML, "LED_CAPSL": LED_CAPSL, "LED_SCROLLL": LED_SCROLLL, "LED_COMPOSE": LED_COMPOSE, "LED_KANA": LED_KANA, "LED_SLEEP": LED_SLEEP, "LED_SUSPEND": LED_SUSPEND, "LED_MUTE": LED_MUTE, "LED_MISC": LED_MISC, "LED_MAIL": LED_MAIL, "LED_CHARGING": LED_CHARGING, "LED_MAX": LED_MAX, "LED_CNT": LED_CNT, }
var LEDNames = map[EvCode]string{ LED_NUML: "LED_NUML", LED_CAPSL: "LED_CAPSL", LED_SCROLLL: "LED_SCROLLL", LED_COMPOSE: "LED_COMPOSE", LED_KANA: "LED_KANA", LED_SLEEP: "LED_SLEEP", LED_SUSPEND: "LED_SUSPEND", LED_MUTE: "LED_MUTE", LED_MISC: "LED_MISC", LED_MAIL: "LED_MAIL", LED_CHARGING: "LED_CHARGING", LED_MAX: "LED_MAX", LED_CNT: "LED_CNT", }
var LEDToString = map[EvCode]string{ LED_NUML: "LED_NUML", LED_CAPSL: "LED_CAPSL", LED_SCROLLL: "LED_SCROLLL", LED_COMPOSE: "LED_COMPOSE", LED_KANA: "LED_KANA", LED_SLEEP: "LED_SLEEP", LED_SUSPEND: "LED_SUSPEND", LED_MUTE: "LED_MUTE", LED_MISC: "LED_MISC", LED_MAIL: "LED_MAIL", LED_CHARGING: "LED_CHARGING", LED_MAX: "LED_MAX", LED_CNT: "LED_CNT", }
var MSCFromString = map[string]EvCode{ "MSC_SERIAL": MSC_SERIAL, "MSC_PULSELED": MSC_PULSELED, "MSC_GESTURE": MSC_GESTURE, "MSC_RAW": MSC_RAW, "MSC_SCAN": MSC_SCAN, "MSC_TIMESTAMP": MSC_TIMESTAMP, "MSC_MAX": MSC_MAX, "MSC_CNT": MSC_CNT, }
var MSCNames = map[EvCode]string{ MSC_SERIAL: "MSC_SERIAL", MSC_PULSELED: "MSC_PULSELED", MSC_GESTURE: "MSC_GESTURE", MSC_RAW: "MSC_RAW", MSC_SCAN: "MSC_SCAN", MSC_TIMESTAMP: "MSC_TIMESTAMP", MSC_MAX: "MSC_MAX", MSC_CNT: "MSC_CNT", }
var MSCToString = map[EvCode]string{ MSC_SERIAL: "MSC_SERIAL", MSC_PULSELED: "MSC_PULSELED", MSC_GESTURE: "MSC_GESTURE", MSC_RAW: "MSC_RAW", MSC_SCAN: "MSC_SCAN", MSC_TIMESTAMP: "MSC_TIMESTAMP", MSC_MAX: "MSC_MAX", MSC_CNT: "MSC_CNT", }
var MTFromString = map[string]EvCode{ "MT_TOOL_FINGER": MT_TOOL_FINGER, "MT_TOOL_PEN": MT_TOOL_PEN, "MT_TOOL_PALM": MT_TOOL_PALM, "MT_TOOL_DIAL": MT_TOOL_DIAL, "MT_TOOL_MAX": MT_TOOL_MAX, }
var MTNames = map[EvCode]string{ MT_TOOL_FINGER: "MT_TOOL_FINGER", MT_TOOL_PEN: "MT_TOOL_PEN", MT_TOOL_PALM: "MT_TOOL_PALM", MT_TOOL_DIAL: "MT_TOOL_DIAL", MT_TOOL_MAX: "MT_TOOL_MAX", }
var MTToString = map[EvCode]string{ MT_TOOL_FINGER: "MT_TOOL_FINGER", MT_TOOL_PEN: "MT_TOOL_PEN", MT_TOOL_PALM: "MT_TOOL_PALM", MT_TOOL_DIAL: "MT_TOOL_DIAL", MT_TOOL_MAX: "MT_TOOL_MAX", }
var RELFromString = map[string]EvCode{ "REL_X": REL_X, "REL_Y": REL_Y, "REL_Z": REL_Z, "REL_RX": REL_RX, "REL_RY": REL_RY, "REL_RZ": REL_RZ, "REL_HWHEEL": REL_HWHEEL, "REL_DIAL": REL_DIAL, "REL_WHEEL": REL_WHEEL, "REL_MISC": REL_MISC, "REL_RESERVED": REL_RESERVED, "REL_WHEEL_HI_RES": REL_WHEEL_HI_RES, "REL_HWHEEL_HI_RES": REL_HWHEEL_HI_RES, "REL_MAX": REL_MAX, "REL_CNT": REL_CNT, }
var RELNames = map[EvCode]string{ REL_X: "REL_X", REL_Y: "REL_Y", REL_Z: "REL_Z", REL_RX: "REL_RX", REL_RY: "REL_RY", REL_RZ: "REL_RZ", REL_HWHEEL: "REL_HWHEEL", REL_DIAL: "REL_DIAL", REL_WHEEL: "REL_WHEEL", REL_MISC: "REL_MISC", REL_RESERVED: "REL_RESERVED", REL_WHEEL_HI_RES: "REL_WHEEL_HI_RES", REL_HWHEEL_HI_RES: "REL_HWHEEL_HI_RES", REL_MAX: "REL_MAX", REL_CNT: "REL_CNT", }
var RELToString = map[EvCode]string{ REL_X: "REL_X", REL_Y: "REL_Y", REL_Z: "REL_Z", REL_RX: "REL_RX", REL_RY: "REL_RY", REL_RZ: "REL_RZ", REL_HWHEEL: "REL_HWHEEL", REL_DIAL: "REL_DIAL", REL_WHEEL: "REL_WHEEL", REL_MISC: "REL_MISC", REL_RESERVED: "REL_RESERVED", REL_WHEEL_HI_RES: "REL_WHEEL_HI_RES", REL_HWHEEL_HI_RES: "REL_HWHEEL_HI_RES", REL_MAX: "REL_MAX", REL_CNT: "REL_CNT", }
var REPFromString = map[string]EvCode{ "REP_DELAY": REP_DELAY, "REP_PERIOD": REP_PERIOD, "REP_MAX": REP_MAX, "REP_CNT": REP_CNT, }
var REPNames = map[EvCode]string{ REP_DELAY: "REP_DELAY", REP_PERIOD: "REP_PERIOD/REP_MAX", REP_CNT: "REP_CNT", }
var REPToString = map[EvCode]string{ REP_DELAY: "REP_DELAY", REP_PERIOD: "REP_PERIOD", REP_CNT: "REP_CNT", }
var SNDFromString = map[string]EvCode{ "SND_CLICK": SND_CLICK, "SND_BELL": SND_BELL, "SND_TONE": SND_TONE, "SND_MAX": SND_MAX, "SND_CNT": SND_CNT, }
var SNDNames = map[EvCode]string{ SND_CLICK: "SND_CLICK", SND_BELL: "SND_BELL", SND_TONE: "SND_TONE", SND_MAX: "SND_MAX", SND_CNT: "SND_CNT", }
var SNDToString = map[EvCode]string{ SND_CLICK: "SND_CLICK", SND_BELL: "SND_BELL", SND_TONE: "SND_TONE", SND_MAX: "SND_MAX", SND_CNT: "SND_CNT", }
var SWFromString = map[string]EvCode{ "SW_LID": SW_LID, "SW_TABLET_MODE": SW_TABLET_MODE, "SW_HEADPHONE_INSERT": SW_HEADPHONE_INSERT, "SW_RFKILL_ALL": SW_RFKILL_ALL, "SW_RADIO": SW_RADIO, "SW_MICROPHONE_INSERT": SW_MICROPHONE_INSERT, "SW_DOCK": SW_DOCK, "SW_LINEOUT_INSERT": SW_LINEOUT_INSERT, "SW_JACK_PHYSICAL_INSERT": SW_JACK_PHYSICAL_INSERT, "SW_VIDEOOUT_INSERT": SW_VIDEOOUT_INSERT, "SW_CAMERA_LENS_COVER": SW_CAMERA_LENS_COVER, "SW_KEYPAD_SLIDE": SW_KEYPAD_SLIDE, "SW_FRONT_PROXIMITY": SW_FRONT_PROXIMITY, "SW_ROTATE_LOCK": SW_ROTATE_LOCK, "SW_LINEIN_INSERT": SW_LINEIN_INSERT, "SW_MUTE_DEVICE": SW_MUTE_DEVICE, "SW_PEN_INSERTED": SW_PEN_INSERTED, "SW_MACHINE_COVER": SW_MACHINE_COVER, "SW_MAX": SW_MAX, "SW_CNT": SW_CNT, }
var SWNames = map[EvCode]string{ SW_LID: "SW_LID", SW_TABLET_MODE: "SW_TABLET_MODE", SW_HEADPHONE_INSERT: "SW_HEADPHONE_INSERT", SW_RFKILL_ALL: "SW_RFKILL_ALL/SW_RADIO", SW_MICROPHONE_INSERT: "SW_MICROPHONE_INSERT", SW_DOCK: "SW_DOCK", SW_LINEOUT_INSERT: "SW_LINEOUT_INSERT", SW_JACK_PHYSICAL_INSERT: "SW_JACK_PHYSICAL_INSERT", SW_VIDEOOUT_INSERT: "SW_VIDEOOUT_INSERT", SW_CAMERA_LENS_COVER: "SW_CAMERA_LENS_COVER", SW_KEYPAD_SLIDE: "SW_KEYPAD_SLIDE", SW_FRONT_PROXIMITY: "SW_FRONT_PROXIMITY", SW_ROTATE_LOCK: "SW_ROTATE_LOCK", SW_LINEIN_INSERT: "SW_LINEIN_INSERT", SW_MUTE_DEVICE: "SW_MUTE_DEVICE", SW_PEN_INSERTED: "SW_PEN_INSERTED", SW_MACHINE_COVER: "SW_MACHINE_COVER/SW_MAX", SW_CNT: "SW_CNT", }
var SWToString = map[EvCode]string{ SW_LID: "SW_LID", SW_TABLET_MODE: "SW_TABLET_MODE", SW_HEADPHONE_INSERT: "SW_HEADPHONE_INSERT", SW_RFKILL_ALL: "SW_RFKILL_ALL", SW_MICROPHONE_INSERT: "SW_MICROPHONE_INSERT", SW_DOCK: "SW_DOCK", SW_LINEOUT_INSERT: "SW_LINEOUT_INSERT", SW_JACK_PHYSICAL_INSERT: "SW_JACK_PHYSICAL_INSERT", SW_VIDEOOUT_INSERT: "SW_VIDEOOUT_INSERT", SW_CAMERA_LENS_COVER: "SW_CAMERA_LENS_COVER", SW_KEYPAD_SLIDE: "SW_KEYPAD_SLIDE", SW_FRONT_PROXIMITY: "SW_FRONT_PROXIMITY", SW_ROTATE_LOCK: "SW_ROTATE_LOCK", SW_LINEIN_INSERT: "SW_LINEIN_INSERT", SW_MUTE_DEVICE: "SW_MUTE_DEVICE", SW_PEN_INSERTED: "SW_PEN_INSERTED", SW_MACHINE_COVER: "SW_MACHINE_COVER", SW_CNT: "SW_CNT", }
var SYNFromString = map[string]EvCode{ "SYN_REPORT": SYN_REPORT, "SYN_CONFIG": SYN_CONFIG, "SYN_MT_REPORT": SYN_MT_REPORT, "SYN_DROPPED": SYN_DROPPED, "SYN_MAX": SYN_MAX, "SYN_CNT": SYN_CNT, }
var SYNNames = map[EvCode]string{ SYN_REPORT: "SYN_REPORT", SYN_CONFIG: "SYN_CONFIG", SYN_MT_REPORT: "SYN_MT_REPORT", SYN_DROPPED: "SYN_DROPPED", SYN_MAX: "SYN_MAX", SYN_CNT: "SYN_CNT", }
var SYNToString = map[EvCode]string{ SYN_REPORT: "SYN_REPORT", SYN_CONFIG: "SYN_CONFIG", SYN_MT_REPORT: "SYN_MT_REPORT", SYN_DROPPED: "SYN_DROPPED", SYN_MAX: "SYN_MAX", SYN_CNT: "SYN_CNT", }
Functions ¶
func CodeName ¶
CodeName returns the name of an EvfCode in the given EvType, or "UNKNOWN" of the code is not valid.
func DestroyDevice ¶
func DestroyDevice(dev *InputDevice) error
Destroy destroys an input device, removing it from the system This is designed to be called on self created virtual devices and may fail if called on real devices attached to the system
Types ¶
type AbsInfo ¶
type AbsInfo struct { Value int32 Minimum int32 Maximum int32 Fuzz int32 Flat int32 Resolution int32 }
AbsInfo describes details on ABS input types
type EvProp ¶
type EvProp uint16
EvProp describes device properties (eg. INPUT_PROP_ACCELEROMETER, INPUT_PROP_BUTTONPAD, ...)
type InputDevice ¶
type InputDevice struct {
// contains filtered or unexported fields
}
InputDevice represent a Linux kernel input device in userspace. It can be used to query and write device properties, read input events, or grab it for exclusive access.
func CloneDevice ¶
func CloneDevice(name string, dev *InputDevice) (*InputDevice, error)
CloneDevice creates a new device from an existing one all capabilites will be coppied over to the new virtual device If set up fails the device will be removed from the system, once set up it can be removed by calling dev.Close
func CreateDevice ¶
CreateDevice creates a device from scratch with the provided capabilities and name If set up fails the device will be removed from the system, once set up it can be removed by calling dev.Close
func Open ¶
func Open(path string) (*InputDevice, error)
Open creates a new InputDevice from the given path. The input device is opened with flag O_RDWR. Returns an error if the device node could not be opened or its properties failed to read.
func OpenByName ¶
func OpenByName(name string) (*InputDevice, error)
OpenByName creates a new InputDevice from the device name as reported by the kernel. The input device is opened with flag O_RDWR. Returns an error if the name does not exist, or the device node could not be opened or its properties failed to read.
func OpenByNameWithFlags ¶
func OpenByNameWithFlags(name string, flags int) (*InputDevice, error)
OpenByNameWithFlags creates a new InputDevice from the device name as reported by the kernel. The input device is opened with the specified flags (O_RDONLY etc.). It is the responsibility of the user to provide sane flags and handle potential errors resulting from inappropriate flag combinations or permissions. Returns an error if the name does not exist, or the device node could not be opened or its properties failed to read.
func OpenWithFlags ¶
func OpenWithFlags(path string, flags int) (*InputDevice, error)
OpenWithFlags creates a new InputDevice from the given path. The input device is opened with the specified flags (O_RDONLY etc.). It is the responsibility of the user to provide sane flags and handle potential errors resulting from inappropriate flag combinations or permissions. Returns an error if the device node could not be opened or its properties failed to read.
func (*InputDevice) AbsInfos ¶
func (d *InputDevice) AbsInfos() (map[EvCode]AbsInfo, error)
AbsInfos returns the AbsInfo struct for all axis the device supports.
func (*InputDevice) CapableEvents ¶
func (d *InputDevice) CapableEvents(t EvType) []EvCode
CapableEvents returns a slice of EvCode that are the device supports for given EvType
func (*InputDevice) CapableTypes ¶
func (d *InputDevice) CapableTypes() []EvType
CapableTypes returns a slice of EvType that are the device supports
func (*InputDevice) Close ¶
func (d *InputDevice) Close() error
Close releases the resources held by an InputDevice. After calling this function, the InputDevice is no longer operational.
func (*InputDevice) DriverVersion ¶
func (d *InputDevice) DriverVersion() (int, int, int)
DriverVersion returns the version of the Linux Evdev driver. The three ints returned by this function describe the major, minor and micro parts of the version code.
func (*InputDevice) Grab ¶
func (d *InputDevice) Grab() error
Grab grabs the device for exclusive access. No other process will receive input events until the device instance is active.
func (*InputDevice) InputID ¶
func (d *InputDevice) InputID() (InputID, error)
InputID returns the device's vendor/product/busType/version information as reported by the kernel.
func (*InputDevice) Name ¶
func (d *InputDevice) Name() (string, error)
Name returns the device's name as reported by the kernel.
func (*InputDevice) NonBlock ¶
func (d *InputDevice) NonBlock() error
NonBlock sets file descriptor into nonblocking mode. This way it is possible to interrupt ReadOne call by closing the device. Note: file.Fd() call will set file descriptor back to blocking mode so make sure your program is not using any other method than ReadOne after NonBlock call.
func (*InputDevice) Path ¶
func (d *InputDevice) Path() string
Path returns the device's node path it was opened under.
func (*InputDevice) PhysicalLocation ¶
func (d *InputDevice) PhysicalLocation() (string, error)
PhysicalLocation returns the device's physical location as reported by the kernel.
func (*InputDevice) Properties ¶
func (d *InputDevice) Properties() []EvProp
Properties returns a slice of EvProp that are the device supports
func (*InputDevice) ReadOne ¶
func (d *InputDevice) ReadOne() (*InputEvent, error)
ReadOne reads one InputEvent from the device. It blocks until an event has been received or an error has occurred.
func (*InputDevice) State ¶
func (d *InputDevice) State(t EvType) (StateMap, error)
State return a StateMap for the given type. The map will be empty if the requested type is not supported by the device.
func (*InputDevice) Ungrab ¶
func (d *InputDevice) Ungrab() error
Ungrab releases a previously taken exclusive use with Grab().
func (*InputDevice) UniqueID ¶
func (d *InputDevice) UniqueID() (string, error)
UniqueID returns the device's unique identifier as reported by the kernel.
func (*InputDevice) WriteOne ¶
func (d *InputDevice) WriteOne(event *InputEvent) error
WriteOne writes one InputEvent to the device. Useful for controlling LEDs of the device
type InputEvent ¶
type InputEvent struct { Time syscall.Timeval // time in seconds since epoch at which event occurred Type EvType // event type - one of ecodes.EV_* Code EvCode // event code related to the event type Value int32 // event value related to the event type }
InputEvent describes an event that is generated by an InputDevice
func (*InputEvent) CodeName ¶
func (e *InputEvent) CodeName() string
func (*InputEvent) String ¶
func (e *InputEvent) String() string
func (*InputEvent) TypeName ¶
func (e *InputEvent) TypeName() string
type InputKeymapEntry ¶
type InputKeymapEntry struct { Flags uint8 Len uint8 Index uint16 KeyCode uint32 ScanCode [32]uint8 }
InputKeymapEntry is used to retrieve and modify keymap data
type InputPath ¶
InputPath contains information about an InputDevice Name & Path
func ListDevicePaths ¶
ListDevicePaths lists all available input devices, returning their filename path, and the name as reported by the kernel.