github.com/amitbet/vnc2video@v0.0.0-20190616012314-9d50b9dab1d9/keys.go (about)

     1  package vnc2video
     2  
     3  import "fmt"
     4  
     5  // Key represents a VNC key press.
     6  type Key uint32
     7  
     8  //go:generate stringer -type=Key
     9  
    10  // Keys is a slice of Key values.
    11  type Keys []Key
    12  
    13  var keymap = map[rune]Key{
    14  	'-': Minus,
    15  	'0': Digit0,
    16  	'1': Digit1,
    17  	'2': Digit2,
    18  	'3': Digit3,
    19  	'4': Digit4,
    20  	'5': Digit5,
    21  	'6': Digit6,
    22  	'7': Digit7,
    23  	'8': Digit8,
    24  	'9': Digit9,
    25  }
    26  
    27  // IntToKeys returns Keys that represent the key presses required to type an int.
    28  func IntToKeys(v int) Keys {
    29  	k := Keys{}
    30  	for _, c := range fmt.Sprintf("%d", v) {
    31  		k = append(k, keymap[c])
    32  	}
    33  	return k
    34  }
    35  
    36  // Latin 1 (byte 3 = 0)
    37  // ISO/IEC 8859-1 = Unicode U+0020..U+00FF
    38  const (
    39  	Space   Key = iota + 0x0020
    40  	Exclaim     // exclamation mark
    41  	QuoteDbl
    42  	NumberSign
    43  	Dollar
    44  	Percent
    45  	Ampersand
    46  	Apostrophe
    47  	ParenLeft
    48  	ParenRight
    49  	Asterisk
    50  	Plus
    51  	Comma
    52  	Minus
    53  	Period
    54  	Slash
    55  	Digit0
    56  	Digit1
    57  	Digit2
    58  	Digit3
    59  	Digit4
    60  	Digit5
    61  	Digit6
    62  	Digit7
    63  	Digit8
    64  	Digit9
    65  	Colon
    66  	Semicolon
    67  	Less
    68  	Equal
    69  	Greater
    70  	Question
    71  	At
    72  	A
    73  	B
    74  	C
    75  	D
    76  	E
    77  	F
    78  	G
    79  	H
    80  	I
    81  	J
    82  	K
    83  	L
    84  	M
    85  	N
    86  	O
    87  	P
    88  	Q
    89  	R
    90  	S
    91  	T
    92  	U
    93  	V
    94  	W
    95  	X
    96  	Y
    97  	Z
    98  	BracketLeft
    99  	Backslash
   100  	BracketRight
   101  	AsciiCircum
   102  	Underscore
   103  	Grave
   104  	SmallA
   105  	SmallB
   106  	SmallC
   107  	SmallD
   108  	SmallE
   109  	SmallF
   110  	SmallG
   111  	SmallH
   112  	SmallI
   113  	SmallJ
   114  	SmallK
   115  	SmallL
   116  	SmallM
   117  	SmallN
   118  	SmallO
   119  	SmallP
   120  	SmallQ
   121  	SmallR
   122  	SmallS
   123  	SmallT
   124  	SmallU
   125  	SmallV
   126  	SmallW
   127  	SmallX
   128  	SmallY
   129  	SmallZ
   130  	BraceLeft
   131  	Bar
   132  	BraceRight
   133  	AsciiTilde
   134  )
   135  
   136  const (
   137  	BackSpace Key = iota + 0xff08
   138  	Tab
   139  	Linefeed
   140  	Clear
   141  	_
   142  	Return
   143  )
   144  
   145  const (
   146  	Pause Key = iota + 0xff13
   147  	ScrollLock
   148  	SysReq
   149  	Escape Key = 0xff1b
   150  	Delete Key = 0xffff
   151  )
   152  
   153  const ( // Cursor control & motion.
   154  	Home Key = iota + 0xff50
   155  	Left
   156  	Up
   157  	Right
   158  	Down
   159  	PageUp
   160  	PageDown
   161  	End
   162  	Begin
   163  )
   164  
   165  const ( // Misc functions.
   166  	Select Key = 0xff60
   167  	Print
   168  	Execute
   169  	Insert
   170  	Undo
   171  	Redo
   172  	Menu
   173  	Find
   174  	Cancel
   175  	Help
   176  	Break
   177  	ModeSwitch Key = 0xff7e
   178  	NumLock    Key = 0xff7f
   179  )
   180  
   181  const ( // Keypad functions.
   182  	KeypadSpace Key = 0xff80
   183  	KeypadTab   Key = 0xff89
   184  	KeypadEnter Key = 0xff8d
   185  )
   186  
   187  const ( // Keypad functions cont.
   188  	KeypadF1 Key = iota + 0xff91
   189  	KeypadF2
   190  	KeypadF3
   191  	KeypadF4
   192  	KeypadHome
   193  	KeypadLeft
   194  	KeypadUp
   195  	KeypadRight
   196  	KeypadDown
   197  	KeypadPrior
   198  	KeypadPageUp
   199  	KeypadNext
   200  	KeypadPageDown
   201  	KeypadEnd
   202  	KeypadBegin
   203  	KeypadInsert
   204  	KeypadDelete
   205  	KeypadMultiply
   206  	KeypadAdd
   207  	KeypadSeparator
   208  	KeypadSubtract
   209  	KeypadDecimal
   210  	KeypadDivide
   211  	Keypad0
   212  	Keypad1
   213  	Keypad2
   214  	Keypad3
   215  	Keypad4
   216  	Keypad5
   217  	Keypad6
   218  	Keypad7
   219  	Keypad8
   220  	Keypad9
   221  	KeypadEqual Key = 0xffbd
   222  )
   223  
   224  const (
   225  	F1 Key = iota + 0xffbe
   226  	F2
   227  	F3
   228  	F4
   229  	F5
   230  	F6
   231  	F7
   232  	F8
   233  	F9
   234  	F10
   235  	F11
   236  	F12
   237  )
   238  
   239  const (
   240  	ShiftLeft Key = iota + 0xffe1
   241  	ShiftRight
   242  	ControlLeft
   243  	ControlRight
   244  	CapsLock
   245  	ShiftLock
   246  	MetaLeft
   247  	MetaRight
   248  	AltLeft
   249  	AltRight
   250  	SuperLeft
   251  	SuperRight
   252  	HyperLeft
   253  	HyperRight
   254  )