Source file pointer_button.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
type t =
| Key_unknown [@name "key_unknown"]
| Btn_0 [@name "btn_0"]
| Btn_1 [@name "btn_1"]
| Btn_2 [@name "btn_2"]
| Btn_3 [@name "btn_3"]
| Btn_4 [@name "btn_4"]
| Btn_5 [@name "btn_5"]
| Btn_6 [@name "btn_6"]
| Btn_7 [@name "btn_7"]
| Btn_8 [@name "btn_8"]
| Btn_9 [@name "btn_9"]
| Btn_left [@name "btn_left"]
| Btn_right [@name "btn_right"]
| Btn_middle [@name "btn_middle"]
| Btn_side [@name "btn_side"]
| Btn_forward [@name "btn_forward"]
| Btn_back [@name "btn_back"]
| Btn_task [@name "btn_task"]
[@@deriving yojson]
let all =
[ Btn_0
; Btn_1
; Btn_2
; Btn_3
; Btn_4
; Btn_5
; Btn_6
; Btn_7
; Btn_8
; Btn_9
; Btn_left
; Btn_right
; Btn_middle
; Btn_side
; Btn_extra
; Btn_forward
; Btn_back
; Btn_task
]
;;
let of_string = function
| "Btn_0" -> Ok Btn_0
| "Btn_1" -> Ok Btn_1
| "Btn_2" -> Ok Btn_2
| "Btn_3" -> Ok Btn_3
| "Btn_4" -> Ok Btn_4
| "Btn_5" -> Ok Btn_5
| "Btn_6" -> Ok Btn_6
| "Btn_7" -> Ok Btn_7
| "Btn_8" -> Ok Btn_8
| "Btn_9" -> Ok Btn_9
| "Btn_left" -> Ok Btn_left
| "Btn_right" -> Ok Btn_right
| "Btn_middle" -> Ok Btn_middle
| "Btn_side" -> Ok Btn_side
| "Btn_extra" -> Ok Btn_extra
| "Btn_forward" -> Ok Btn_forward
| "Btn_back" -> Ok Btn_back
| "Btn_task" -> Ok Btn_task
| s -> Error (Printf.sprintf "unrecognized input event: %S" s)
;;
let to_string = function
| Btn_0 -> "Btn_0"
| Btn_1 -> "Btn_1"
| Btn_2 -> "Btn_2"
| Btn_3 -> "Btn_3"
| Btn_4 -> "Btn_4"
| Btn_5 -> "Btn_5"
| Btn_6 -> "Btn_6"
| Btn_7 -> "Btn_7"
| Btn_8 -> "Btn_8"
| Btn_9 -> "Btn_9"
| Btn_left -> "Btn_left"
| Btn_right -> "Btn_right"
| Btn_middle -> "Btn_middle"
| Btn_side -> "Btn_side"
| Btn_extra -> "Btn_extra"
| Btn_forward -> "Btn_forward"
| Btn_back -> "Btn_back"
| Btn_task -> "Btn_task"
| Key_unknown -> "Key_unknown"
;;
let of_int32 = function
| 0x100l -> Btn_0
| 0x101l -> Btn_1
| 0x102l -> Btn_2
| 0x103l -> Btn_3
| 0x104l -> Btn_4
| 0x105l -> Btn_5
| 0x106l -> Btn_6
| 0x107l -> Btn_7
| 0x108l -> Btn_8
| 0x109l -> Btn_9
| 0x110l -> Btn_left
| 0x111l -> Btn_right
| 0x112l -> Btn_middle
| 0x113l -> Btn_side
| 0x114l -> Btn_extra
| 0x115l -> Btn_forward
| 0x116l -> Btn_back
| 0x117l -> Btn_task
| _ -> Key_unknown
;;
let to_int32 = function
| Btn_0 -> 0x100l
| Btn_1 -> 0x101l
| Btn_2 -> 0x102l
| Btn_3 -> 0x103l
| Btn_4 -> 0x104l
| Btn_5 -> 0x105l
| Btn_6 -> 0x106l
| Btn_7 -> 0x107l
| Btn_8 -> 0x108l
| Btn_9 -> 0x109l
| Btn_left -> 0x110l
| Btn_right -> 0x111l
| Btn_middle -> 0x112l
| Btn_side -> 0x113l
| Btn_extra -> 0x114l
| Btn_forward -> 0x115l
| Btn_back -> 0x116l
| Btn_task -> 0x117l
| Key_unknown -> 240l
;;