1use vizia_core::prelude::CursorIcon as ViziaCursorIcon;
2use vizia_input::Code as ViziaCode;
3use vizia_input::Key as ViziaKey;
4use winit::keyboard::KeyCode;
5use winit::keyboard::NamedKey;
6use winit::window::CursorIcon as WinitCursorIcon;
7
8pub fn cursor_icon_to_cursor_icon(cursor_icon: ViziaCursorIcon) -> Option<WinitCursorIcon> {
9 match cursor_icon {
10 ViziaCursorIcon::Default => Some(WinitCursorIcon::Default),
11 ViziaCursorIcon::Crosshair => Some(WinitCursorIcon::Crosshair),
12 ViziaCursorIcon::Hand => Some(WinitCursorIcon::Pointer),
13 ViziaCursorIcon::Arrow => Some(WinitCursorIcon::Default),
14 ViziaCursorIcon::Move => Some(WinitCursorIcon::Move),
15 ViziaCursorIcon::Text => Some(WinitCursorIcon::Text),
16 ViziaCursorIcon::Wait => Some(WinitCursorIcon::Wait),
17 ViziaCursorIcon::Help => Some(WinitCursorIcon::Help),
18 ViziaCursorIcon::Progress => Some(WinitCursorIcon::Progress),
19 ViziaCursorIcon::NotAllowed => Some(WinitCursorIcon::NotAllowed),
20 ViziaCursorIcon::ContextMenu => Some(WinitCursorIcon::ContextMenu),
21 ViziaCursorIcon::Cell => Some(WinitCursorIcon::Cell),
22 ViziaCursorIcon::VerticalText => Some(WinitCursorIcon::VerticalText),
23 ViziaCursorIcon::Alias => Some(WinitCursorIcon::Alias),
24 ViziaCursorIcon::Copy => Some(WinitCursorIcon::Copy),
25 ViziaCursorIcon::NoDrop => Some(WinitCursorIcon::NoDrop),
26 ViziaCursorIcon::Grab => Some(WinitCursorIcon::Grab),
27 ViziaCursorIcon::Grabbing => Some(WinitCursorIcon::Grabbing),
28 ViziaCursorIcon::AllScroll => Some(WinitCursorIcon::AllScroll),
29 ViziaCursorIcon::ZoomIn => Some(WinitCursorIcon::ZoomIn),
30 ViziaCursorIcon::ZoomOut => Some(WinitCursorIcon::ZoomOut),
31 ViziaCursorIcon::EResize => Some(WinitCursorIcon::EResize),
32 ViziaCursorIcon::NResize => Some(WinitCursorIcon::NResize),
33 ViziaCursorIcon::NeResize => Some(WinitCursorIcon::NeResize),
34 ViziaCursorIcon::NwResize => Some(WinitCursorIcon::NwResize),
35 ViziaCursorIcon::SResize => Some(WinitCursorIcon::SResize),
36 ViziaCursorIcon::SeResize => Some(WinitCursorIcon::SeResize),
37 ViziaCursorIcon::SwResize => Some(WinitCursorIcon::SwResize),
38 ViziaCursorIcon::WResize => Some(WinitCursorIcon::WResize),
39 ViziaCursorIcon::EwResize => Some(WinitCursorIcon::EwResize),
40 ViziaCursorIcon::NsResize => Some(WinitCursorIcon::NsResize),
41 ViziaCursorIcon::NeswResize => Some(WinitCursorIcon::NeswResize),
42 ViziaCursorIcon::NwseResize => Some(WinitCursorIcon::NwseResize),
43 ViziaCursorIcon::ColResize => Some(WinitCursorIcon::ColResize),
44 ViziaCursorIcon::RowResize => Some(WinitCursorIcon::RowResize),
45 ViziaCursorIcon::None => None,
46 }
47}
48
49pub fn winit_key_code_to_code(virtual_key_code: KeyCode) -> ViziaCode {
50 use winit::keyboard::KeyCode::*;
51 match virtual_key_code {
52 Digit1 => ViziaCode::Digit1,
53 Digit2 => ViziaCode::Digit2,
54 Digit3 => ViziaCode::Digit3,
55 Digit4 => ViziaCode::Digit4,
56 Digit5 => ViziaCode::Digit5,
57 Digit6 => ViziaCode::Digit6,
58 Digit7 => ViziaCode::Digit7,
59 Digit8 => ViziaCode::Digit8,
60 Digit9 => ViziaCode::Digit9,
61 Digit0 => ViziaCode::Digit0,
62 KeyA => ViziaCode::KeyA,
63 KeyB => ViziaCode::KeyB,
64 KeyC => ViziaCode::KeyC,
65 KeyD => ViziaCode::KeyD,
66 KeyE => ViziaCode::KeyE,
67 KeyF => ViziaCode::KeyF,
68 KeyG => ViziaCode::KeyG,
69 KeyH => ViziaCode::KeyH,
70 KeyI => ViziaCode::KeyI,
71 KeyJ => ViziaCode::KeyJ,
72 KeyK => ViziaCode::KeyK,
73 KeyL => ViziaCode::KeyL,
74 KeyM => ViziaCode::KeyM,
75 KeyN => ViziaCode::KeyN,
76 KeyO => ViziaCode::KeyO,
77 KeyP => ViziaCode::KeyP,
78 KeyQ => ViziaCode::KeyQ,
79 KeyR => ViziaCode::KeyR,
80 KeyS => ViziaCode::KeyS,
81 KeyT => ViziaCode::KeyT,
82 KeyU => ViziaCode::KeyU,
83 KeyV => ViziaCode::KeyV,
84 KeyW => ViziaCode::KeyW,
85 KeyX => ViziaCode::KeyX,
86 KeyY => ViziaCode::KeyY,
87 KeyZ => ViziaCode::KeyZ,
88 Escape => ViziaCode::Escape,
89 F1 => ViziaCode::F1,
90 F2 => ViziaCode::F2,
91 F3 => ViziaCode::F3,
92 F4 => ViziaCode::F4,
93 F5 => ViziaCode::F5,
94 F6 => ViziaCode::F6,
95 F7 => ViziaCode::F7,
96 F8 => ViziaCode::F8,
97 F9 => ViziaCode::F9,
98 F10 => ViziaCode::F10,
99 F11 => ViziaCode::F11,
100 F12 => ViziaCode::F12,
101 Insert => ViziaCode::Insert,
102 Home => ViziaCode::Home,
103 Delete => ViziaCode::Delete,
104 End => ViziaCode::End,
105 PageDown => ViziaCode::PageDown,
106 PageUp => ViziaCode::PageUp,
107 ArrowLeft => ViziaCode::ArrowLeft,
108 ArrowUp => ViziaCode::ArrowUp,
109 ArrowRight => ViziaCode::ArrowRight,
110 ArrowDown => ViziaCode::ArrowDown,
111 Backspace => ViziaCode::Backspace,
112 Enter => ViziaCode::Enter,
113 Space => ViziaCode::Space,
114 Numpad0 => ViziaCode::Numpad0,
115 Numpad1 => ViziaCode::Numpad1,
116 Numpad2 => ViziaCode::Numpad2,
117 Numpad3 => ViziaCode::Numpad3,
118 Numpad4 => ViziaCode::Numpad4,
119 Numpad5 => ViziaCode::Numpad5,
120 Numpad6 => ViziaCode::Numpad6,
121 Numpad7 => ViziaCode::Numpad7,
122 Numpad8 => ViziaCode::Numpad8,
123 Numpad9 => ViziaCode::Numpad9,
124 NumpadAdd => ViziaCode::NumpadAdd,
125 NumpadDivide => ViziaCode::NumpadDivide,
126 NumpadDecimal => ViziaCode::NumpadDecimal,
127 NumpadComma => ViziaCode::NumpadComma,
128 NumpadEnter => ViziaCode::NumpadEnter,
129 NumpadEqual => ViziaCode::NumpadEqual,
130 NumpadMultiply => ViziaCode::NumpadMultiply,
131 NumpadSubtract => ViziaCode::NumpadSubtract,
132 Comma => ViziaCode::Comma,
133 Equal => ViziaCode::Equal,
134 Backquote => ViziaCode::Backquote,
135 AltLeft => ViziaCode::AltLeft,
136 BracketLeft => ViziaCode::BracketLeft,
137 ControlLeft => ViziaCode::ControlLeft,
138 ShiftLeft => ViziaCode::ShiftLeft,
139 Minus => ViziaCode::Minus,
140 Period => ViziaCode::Period,
141 Semicolon => ViziaCode::Semicolon,
142 Slash => ViziaCode::Slash,
143 Tab => ViziaCode::Tab,
144 _ => ViziaCode::NonConvert,
145 }
146}
147
148pub fn _scan_code_to_code(scan_code: u32) -> ViziaCode {
149 match scan_code {
150 0x001 => ViziaCode::Escape,
151 0x002 => ViziaCode::Digit1,
152 0x003 => ViziaCode::Digit2,
153 0x004 => ViziaCode::Digit3,
154 0x005 => ViziaCode::Digit4,
155 0x006 => ViziaCode::Digit5,
156 0x007 => ViziaCode::Digit6,
157 0x008 => ViziaCode::Digit7,
158 0x009 => ViziaCode::Digit8,
159 0x00A => ViziaCode::Digit9,
160 0x00B => ViziaCode::Digit0,
161 0x00C => ViziaCode::Minus,
162 0x00D => ViziaCode::Equal,
163 0x00E => ViziaCode::Backspace,
164 0x00F => ViziaCode::Tab,
165 0x010 => ViziaCode::KeyQ,
166 0x011 => ViziaCode::KeyW,
167 0x012 => ViziaCode::KeyE,
168 0x013 => ViziaCode::KeyR,
169 0x014 => ViziaCode::KeyT,
170 0x015 => ViziaCode::KeyY,
171 0x016 => ViziaCode::KeyU,
172 0x017 => ViziaCode::KeyI,
173 0x018 => ViziaCode::KeyO,
174 0x019 => ViziaCode::KeyP,
175 0x01A => ViziaCode::BracketLeft,
176 0x01B => ViziaCode::BracketRight,
177 0x01C => ViziaCode::Enter,
178 0x01D => ViziaCode::ControlLeft,
179 0x01E => ViziaCode::KeyA,
180 0x01F => ViziaCode::KeyS,
181 0x020 => ViziaCode::KeyD,
182 0x021 => ViziaCode::KeyF,
183 0x022 => ViziaCode::KeyG,
184 0x023 => ViziaCode::KeyH,
185 0x024 => ViziaCode::KeyJ,
186 0x025 => ViziaCode::KeyK,
187 0x026 => ViziaCode::KeyL,
188 0x027 => ViziaCode::Semicolon,
189 0x028 => ViziaCode::Quote,
190 0x029 => ViziaCode::Backquote,
191 0x02A => ViziaCode::ShiftLeft,
192 0x02B => ViziaCode::Backslash,
193 0x02C => ViziaCode::KeyZ,
194 0x02D => ViziaCode::KeyX,
195 0x02E => ViziaCode::KeyC,
196 0x02F => ViziaCode::KeyV,
197 0x030 => ViziaCode::KeyB,
198 0x031 => ViziaCode::KeyN,
199 0x032 => ViziaCode::KeyM,
200 0x033 => ViziaCode::Comma,
201 0x034 => ViziaCode::Period,
202 0x035 => ViziaCode::Slash,
203 0x036 => ViziaCode::ShiftRight,
204 0x037 => ViziaCode::NumpadMultiply,
205 0x038 => ViziaCode::AltLeft,
206 0x039 => ViziaCode::Space,
207 0x03A => ViziaCode::CapsLock,
208 0x03B => ViziaCode::F1,
209 0x03C => ViziaCode::F2,
210 0x03D => ViziaCode::F3,
211 0x03E => ViziaCode::F4,
212 0x03F => ViziaCode::F5,
213 0x040 => ViziaCode::F6,
214 0x041 => ViziaCode::F7,
215 0x042 => ViziaCode::F8,
216 0x043 => ViziaCode::F9,
217 0x044 => ViziaCode::F10,
218 0x045 => ViziaCode::Pause,
219 0x046 => ViziaCode::ScrollLock,
220 0x047 => ViziaCode::Numpad7,
221 0x048 => ViziaCode::Numpad8,
222 0x049 => ViziaCode::Numpad9,
223 0x04A => ViziaCode::NumpadSubtract,
224 0x04B => ViziaCode::Numpad4,
225 0x04C => ViziaCode::Numpad5,
226 0x04D => ViziaCode::Numpad6,
227 0x04E => ViziaCode::NumpadAdd,
228 0x04F => ViziaCode::Numpad1,
229 0x050 => ViziaCode::Numpad2,
230 0x051 => ViziaCode::Numpad3,
231 0x052 => ViziaCode::Numpad0,
232 0x053 => ViziaCode::NumpadDecimal,
233 0x054 => ViziaCode::PrintScreen,
234 0x056 => ViziaCode::IntlBackslash,
235 0x057 => ViziaCode::F11,
236 0x058 => ViziaCode::F12,
237 0x059 => ViziaCode::NumpadEqual,
238 0x070 => ViziaCode::KanaMode,
239 0x071 => ViziaCode::Lang2,
240 0x072 => ViziaCode::Lang1,
241 0x073 => ViziaCode::IntlRo,
242 0x079 => ViziaCode::Convert,
243 0x07B => ViziaCode::NonConvert,
244 0x07D => ViziaCode::IntlYen,
245 0x07E => ViziaCode::NumpadComma,
246 0x110 => ViziaCode::MediaTrackPrevious,
247 0x119 => ViziaCode::MediaTrackNext,
248 0x11C => ViziaCode::NumpadEnter,
249 0x11D => ViziaCode::ControlRight,
250 0x120 => ViziaCode::AudioVolumeMute,
251 0x121 => ViziaCode::LaunchApp2,
252 0x122 => ViziaCode::MediaPlayPause,
253 0x124 => ViziaCode::MediaStop,
254 0x12E => ViziaCode::AudioVolumeDown,
255 0x130 => ViziaCode::AudioVolumeUp,
256 0x132 => ViziaCode::BrowserHome,
257 0x135 => ViziaCode::NumpadDivide,
258 0x137 => ViziaCode::PrintScreen,
259 0x138 => ViziaCode::AltRight,
260 0x145 => ViziaCode::NumLock,
261 0x147 => ViziaCode::Home,
262 0x148 => ViziaCode::ArrowUp,
263 0x149 => ViziaCode::PageUp,
264 0x14B => ViziaCode::ArrowLeft,
265 0x14D => ViziaCode::ArrowRight,
266 0x14F => ViziaCode::End,
267 0x150 => ViziaCode::ArrowDown,
268 0x151 => ViziaCode::PageDown,
269 0x152 => ViziaCode::Insert,
270 0x153 => ViziaCode::Delete,
271 0x15B => ViziaCode::MetaLeft,
272 0x15C => ViziaCode::MetaRight,
273 0x15D => ViziaCode::ContextMenu,
274 0x15E => ViziaCode::Power,
275 0x165 => ViziaCode::BrowserSearch,
276 0x166 => ViziaCode::BrowserFavorites,
277 0x167 => ViziaCode::BrowserRefresh,
278 0x168 => ViziaCode::BrowserStop,
279 0x169 => ViziaCode::BrowserForward,
280 0x16A => ViziaCode::BrowserBack,
281 0x16B => ViziaCode::LaunchApp1,
282 0x16C => ViziaCode::LaunchMail,
283 0x16D => ViziaCode::MediaSelect,
284 0x1F1 => ViziaCode::Lang2,
285 0x1F2 => ViziaCode::Lang1,
286 _ => ViziaCode::Unidentified,
287 }
288}
289
290pub fn winit_key_to_key(virtual_key_code: NamedKey) -> Option<ViziaKey> {
291 use winit::keyboard::NamedKey::*;
292 match virtual_key_code {
293 Backspace => Some(ViziaKey::Backspace),
294 Tab => Some(ViziaKey::Tab),
295 Enter => Some(ViziaKey::Enter),
296 Shift => Some(ViziaKey::Shift),
297 Control => Some(ViziaKey::Control),
298 Alt => Some(ViziaKey::Alt),
299 Pause => Some(ViziaKey::Pause),
300 CapsLock => Some(ViziaKey::CapsLock),
301 KanaMode => Some(ViziaKey::KanaMode),
303 KanjiMode => Some(ViziaKey::KanjiMode),
304 Escape => Some(ViziaKey::Escape),
305 PageUp => Some(ViziaKey::PageUp),
306 PageDown => Some(ViziaKey::PageDown),
307 End => Some(ViziaKey::End),
308 Home => Some(ViziaKey::Home),
309 ArrowLeft => Some(ViziaKey::ArrowLeft),
310 ArrowUp => Some(ViziaKey::ArrowUp),
311 ArrowRight => Some(ViziaKey::ArrowRight),
312 ArrowDown => Some(ViziaKey::ArrowDown),
313 Select => Some(ViziaKey::Select),
314 Print => Some(ViziaKey::Print),
315 Insert => Some(ViziaKey::Insert),
316 Delete => Some(ViziaKey::Delete),
317 Meta => Some(ViziaKey::Meta),
318 ContextMenu => Some(ViziaKey::ContextMenu),
319 Standby => Some(ViziaKey::Standby),
320 F1 => Some(ViziaKey::F1),
321 F2 => Some(ViziaKey::F2),
322 F3 => Some(ViziaKey::F3),
323 F4 => Some(ViziaKey::F4),
324 F5 => Some(ViziaKey::F5),
325 F6 => Some(ViziaKey::F6),
326 F7 => Some(ViziaKey::F7),
327 F8 => Some(ViziaKey::F8),
328 F9 => Some(ViziaKey::F9),
329 F10 => Some(ViziaKey::F10),
330 F11 => Some(ViziaKey::F11),
331 F12 => Some(ViziaKey::F12),
332 NumLock => Some(ViziaKey::NumLock),
333 ScrollLock => Some(ViziaKey::ScrollLock),
334 AltGraph => Some(ViziaKey::AltGraph),
335 Fn => Some(ViziaKey::Fn),
336 FnLock => Some(ViziaKey::FnLock),
337 Symbol => Some(ViziaKey::Symbol),
338 SymbolLock => Some(ViziaKey::SymbolLock),
339 Hyper => Some(ViziaKey::Hyper),
340 Super => Some(ViziaKey::Super),
341 Space => None,
342 Clear => Some(ViziaKey::Clear),
343 Copy => Some(ViziaKey::Copy),
344 CrSel => Some(ViziaKey::CrSel),
345 Cut => Some(ViziaKey::Cut),
346 EraseEof => Some(ViziaKey::EraseEof),
347 ExSel => Some(ViziaKey::ExSel),
348 Paste => Some(ViziaKey::Paste),
349 Redo => Some(ViziaKey::Redo),
350 Undo => Some(ViziaKey::Undo),
351 Accept => Some(ViziaKey::Accept),
352 Again => Some(ViziaKey::Again),
353 Attn => Some(ViziaKey::Attn),
354 Cancel => Some(ViziaKey::Cancel),
355 Execute => Some(ViziaKey::Execute),
356 Find => Some(ViziaKey::Find),
357 Help => Some(ViziaKey::Help),
358 Play => Some(ViziaKey::Play),
359 Props => Some(ViziaKey::Props),
360 ZoomIn => Some(ViziaKey::ZoomIn),
361 ZoomOut => Some(ViziaKey::ZoomOut),
362 BrightnessDown => Some(ViziaKey::BrightnessDown),
363 BrightnessUp => Some(ViziaKey::BrightnessUp),
364 Eject => Some(ViziaKey::Eject),
365 LogOff => Some(ViziaKey::LogOff),
366 Power => Some(ViziaKey::Power),
367 PowerOff => Some(ViziaKey::PowerOff),
368 PrintScreen => Some(ViziaKey::PrintScreen),
369 Hibernate => Some(ViziaKey::Hibernate),
370 WakeUp => Some(ViziaKey::WakeUp),
371 AllCandidates => Some(ViziaKey::AllCandidates),
372 Alphanumeric => Some(ViziaKey::Alphanumeric),
373 CodeInput => Some(ViziaKey::CodeInput),
374 Compose => Some(ViziaKey::Compose),
375 Convert => Some(ViziaKey::Convert),
376 FinalMode => Some(ViziaKey::FinalMode),
377 GroupFirst => Some(ViziaKey::GroupFirst),
378 GroupLast => Some(ViziaKey::GroupLast),
379 GroupNext => Some(ViziaKey::GroupNext),
380 GroupPrevious => Some(ViziaKey::GroupPrevious),
381 ModeChange => Some(ViziaKey::ModeChange),
382 NextCandidate => Some(ViziaKey::NextCandidate),
383 NonConvert => Some(ViziaKey::NonConvert),
384 PreviousCandidate => Some(ViziaKey::PreviousCandidate),
385 Process => Some(ViziaKey::Process),
386 SingleCandidate => Some(ViziaKey::SingleCandidate),
387 HangulMode => Some(ViziaKey::HangulMode),
388 HanjaMode => Some(ViziaKey::HanjaMode),
389 JunjaMode => Some(ViziaKey::JunjaMode),
390 Eisu => Some(ViziaKey::Eisu),
391 Hankaku => Some(ViziaKey::Hankaku),
392 Hiragana => Some(ViziaKey::Hiragana),
393 HiraganaKatakana => Some(ViziaKey::HiraganaKatakana),
394 Katakana => Some(ViziaKey::Katakana),
395 Romaji => Some(ViziaKey::Romaji),
396 Zenkaku => Some(ViziaKey::Zenkaku),
397 ZenkakuHankaku => Some(ViziaKey::ZenkakuHankaku),
398 Soft1 => Some(ViziaKey::Soft1),
399 Soft2 => Some(ViziaKey::Soft2),
400 Soft3 => Some(ViziaKey::Soft3),
401 Soft4 => Some(ViziaKey::Soft4),
402 ChannelDown => Some(ViziaKey::ChannelDown),
403 ChannelUp => Some(ViziaKey::ChannelUp),
404 Close => Some(ViziaKey::Close),
405 MailForward => Some(ViziaKey::MailForward),
406 MailReply => Some(ViziaKey::MailReply),
407 MailSend => Some(ViziaKey::MailSend),
408 MediaClose => Some(ViziaKey::MediaClose),
409 MediaFastForward => Some(ViziaKey::MediaFastForward),
410 MediaPause => Some(ViziaKey::MediaPause),
411 MediaPlay => Some(ViziaKey::MediaPlay),
412 MediaPlayPause => Some(ViziaKey::MediaPlayPause),
413 MediaRecord => Some(ViziaKey::MediaRecord),
414 MediaRewind => Some(ViziaKey::MediaRewind),
415 MediaStop => Some(ViziaKey::MediaStop),
416 MediaTrackNext => Some(ViziaKey::MediaTrackNext),
417 MediaTrackPrevious => Some(ViziaKey::MediaTrackPrevious),
418 New => Some(ViziaKey::New),
419 Open => Some(ViziaKey::Open),
420 Save => Some(ViziaKey::Save),
421 SpellCheck => Some(ViziaKey::SpellCheck),
422 Key11 => Some(ViziaKey::Key11),
423 Key12 => Some(ViziaKey::Key12),
424 AudioBalanceLeft => Some(ViziaKey::AudioBalanceLeft),
425 AudioBalanceRight => Some(ViziaKey::AudioBalanceRight),
426 AudioBassBoostDown => Some(ViziaKey::AudioBassBoostDown),
427 AudioBassBoostToggle => Some(ViziaKey::AudioBassBoostToggle),
428 AudioBassBoostUp => Some(ViziaKey::AudioBassBoostUp),
429 AudioFaderFront => Some(ViziaKey::AudioFaderFront),
430 AudioFaderRear => Some(ViziaKey::AudioFaderRear),
431 AudioSurroundModeNext => Some(ViziaKey::AudioSurroundModeNext),
432 AudioTrebleDown => Some(ViziaKey::AudioTrebleDown),
433 AudioTrebleUp => Some(ViziaKey::AudioTrebleUp),
434 AudioVolumeDown => Some(ViziaKey::AudioVolumeDown),
435 AudioVolumeUp => Some(ViziaKey::AudioVolumeUp),
436 AudioVolumeMute => Some(ViziaKey::AudioVolumeMute),
437 MicrophoneToggle => Some(ViziaKey::MicrophoneToggle),
438 MicrophoneVolumeDown => Some(ViziaKey::MicrophoneVolumeDown),
439 MicrophoneVolumeUp => Some(ViziaKey::MicrophoneVolumeUp),
440 MicrophoneVolumeMute => Some(ViziaKey::MicrophoneVolumeMute),
441 SpeechCorrectionList => Some(ViziaKey::SpeechCorrectionList),
442 SpeechInputToggle => Some(ViziaKey::SpeechInputToggle),
443 LaunchApplication1 => Some(ViziaKey::LaunchApplication1),
444 LaunchApplication2 => Some(ViziaKey::LaunchApplication2),
445 LaunchCalendar => Some(ViziaKey::LaunchCalendar),
446 LaunchContacts => Some(ViziaKey::LaunchContacts),
447 LaunchMail => Some(ViziaKey::LaunchMail),
448 LaunchMediaPlayer => Some(ViziaKey::LaunchMediaPlayer),
449 LaunchMusicPlayer => Some(ViziaKey::LaunchMusicPlayer),
450 LaunchPhone => Some(ViziaKey::LaunchPhone),
451 LaunchScreenSaver => Some(ViziaKey::LaunchScreenSaver),
452 LaunchSpreadsheet => Some(ViziaKey::LaunchSpreadsheet),
453 LaunchWebBrowser => Some(ViziaKey::LaunchWebBrowser),
454 LaunchWebCam => Some(ViziaKey::LaunchWebCam),
455 LaunchWordProcessor => Some(ViziaKey::LaunchWordProcessor),
456 BrowserBack => Some(ViziaKey::BrowserBack),
457 BrowserFavorites => Some(ViziaKey::BrowserFavorites),
458 BrowserForward => Some(ViziaKey::BrowserForward),
459 BrowserHome => Some(ViziaKey::BrowserHome),
460 BrowserRefresh => Some(ViziaKey::BrowserRefresh),
461 BrowserSearch => Some(ViziaKey::BrowserSearch),
462 BrowserStop => Some(ViziaKey::BrowserStop),
463 AppSwitch => Some(ViziaKey::AppSwitch),
464 Call => Some(ViziaKey::Call),
465 Camera => Some(ViziaKey::Camera),
466 CameraFocus => Some(ViziaKey::CameraFocus),
467 EndCall => Some(ViziaKey::EndCall),
468 GoBack => Some(ViziaKey::GoBack),
469 GoHome => Some(ViziaKey::GoHome),
470 HeadsetHook => Some(ViziaKey::HeadsetHook),
471 LastNumberRedial => Some(ViziaKey::LastNumberRedial),
472 Notification => Some(ViziaKey::Notification),
473 MannerMode => Some(ViziaKey::MannerMode),
474 VoiceDial => Some(ViziaKey::VoiceDial),
475 TV => Some(ViziaKey::TV),
476 TV3DMode => Some(ViziaKey::TV3DMode),
477 TVAntennaCable => Some(ViziaKey::TVAntennaCable),
478 TVAudioDescription => Some(ViziaKey::TVAudioDescription),
479 TVAudioDescriptionMixDown => Some(ViziaKey::TVAudioDescriptionMixDown),
480 TVAudioDescriptionMixUp => Some(ViziaKey::TVAudioDescriptionMixUp),
481 TVContentsMenu => Some(ViziaKey::TVContentsMenu),
482 TVDataService => Some(ViziaKey::TVDataService),
483 TVInput => Some(ViziaKey::TVInput),
484 TVInputComponent1 => Some(ViziaKey::TVInputComponent1),
485 TVInputComponent2 => Some(ViziaKey::TVInputComponent2),
486 TVInputComposite1 => Some(ViziaKey::TVInputComposite1),
487 TVInputComposite2 => Some(ViziaKey::TVInputComposite2),
488 TVInputHDMI1 => Some(ViziaKey::TVInputHDMI1),
489 TVInputHDMI2 => Some(ViziaKey::TVInputHDMI2),
490 TVInputHDMI3 => Some(ViziaKey::TVInputHDMI3),
491 TVInputHDMI4 => Some(ViziaKey::TVInputHDMI4),
492 TVInputVGA1 => Some(ViziaKey::TVInputVGA1),
493 TVMediaContext => Some(ViziaKey::TVMediaContext),
494 TVNetwork => Some(ViziaKey::TVNetwork),
495 TVNumberEntry => Some(ViziaKey::TVNumberEntry),
496 TVPower => Some(ViziaKey::TVPower),
497 TVRadioService => Some(ViziaKey::TVRadioService),
498 TVSatellite => Some(ViziaKey::TVSatellite),
499 TVSatelliteBS => Some(ViziaKey::TVSatelliteBS),
500 TVSatelliteCS => Some(ViziaKey::TVSatelliteCS),
501 TVSatelliteToggle => Some(ViziaKey::TVSatelliteToggle),
502 TVTerrestrialAnalog => Some(ViziaKey::TVTerrestrialAnalog),
503 TVTerrestrialDigital => Some(ViziaKey::TVTerrestrialDigital),
504 TVTimer => Some(ViziaKey::TVTimer),
505 AVRInput => Some(ViziaKey::AVRInput),
506 AVRPower => Some(ViziaKey::AVRPower),
507 ColorF0Red => Some(ViziaKey::ColorF0Red),
508 ColorF1Green => Some(ViziaKey::ColorF1Green),
509 ColorF2Yellow => Some(ViziaKey::ColorF2Yellow),
510 ColorF3Blue => Some(ViziaKey::ColorF3Blue),
511 ColorF4Grey => Some(ViziaKey::ColorF4Grey),
512 ColorF5Brown => Some(ViziaKey::ColorF5Brown),
513 ClosedCaptionToggle => Some(ViziaKey::ClosedCaptionToggle),
514 Dimmer => Some(ViziaKey::Dimmer),
515 DisplaySwap => Some(ViziaKey::DisplaySwap),
516 DVR => Some(ViziaKey::DVR),
517 Exit => Some(ViziaKey::Exit),
518 FavoriteClear0 => Some(ViziaKey::FavoriteClear0),
519 FavoriteClear1 => Some(ViziaKey::FavoriteClear1),
520 FavoriteClear2 => Some(ViziaKey::FavoriteClear2),
521 FavoriteClear3 => Some(ViziaKey::FavoriteClear3),
522 FavoriteRecall0 => Some(ViziaKey::FavoriteRecall0),
523 FavoriteRecall1 => Some(ViziaKey::FavoriteRecall1),
524 FavoriteRecall2 => Some(ViziaKey::FavoriteRecall2),
525 FavoriteRecall3 => Some(ViziaKey::FavoriteRecall3),
526 FavoriteStore0 => Some(ViziaKey::FavoriteStore0),
527 FavoriteStore1 => Some(ViziaKey::FavoriteStore1),
528 FavoriteStore2 => Some(ViziaKey::FavoriteStore2),
529 FavoriteStore3 => Some(ViziaKey::FavoriteStore3),
530 Guide => Some(ViziaKey::Guide),
531 GuideNextDay => Some(ViziaKey::GuideNextDay),
532 GuidePreviousDay => Some(ViziaKey::GuidePreviousDay),
533 Info => Some(ViziaKey::Info),
534 InstantReplay => Some(ViziaKey::InstantReplay),
535 Link => Some(ViziaKey::Link),
536 ListProgram => Some(ViziaKey::ListProgram),
537 LiveContent => Some(ViziaKey::LiveContent),
538 Lock => Some(ViziaKey::Lock),
539 MediaApps => Some(ViziaKey::MediaApps),
540 MediaAudioTrack => Some(ViziaKey::MediaAudioTrack),
541 MediaLast => Some(ViziaKey::MediaLast),
542 MediaSkipBackward => Some(ViziaKey::MediaSkipBackward),
543 MediaSkipForward => Some(ViziaKey::MediaSkipForward),
544 MediaStepBackward => Some(ViziaKey::MediaStepBackward),
545 MediaStepForward => Some(ViziaKey::MediaStepForward),
546 MediaTopMenu => Some(ViziaKey::MediaTopMenu),
547 NavigateIn => Some(ViziaKey::NavigateIn),
548 NavigateNext => Some(ViziaKey::NavigateNext),
549 NavigateOut => Some(ViziaKey::NavigateOut),
550 NavigatePrevious => Some(ViziaKey::NavigatePrevious),
551 NextFavoriteChannel => Some(ViziaKey::NextFavoriteChannel),
552 NextUserProfile => Some(ViziaKey::NextUserProfile),
553 OnDemand => Some(ViziaKey::OnDemand),
554 Pairing => Some(ViziaKey::Pairing),
555 PinPDown => Some(ViziaKey::PinPDown),
556 PinPMove => Some(ViziaKey::PinPMove),
557 PinPToggle => Some(ViziaKey::PinPToggle),
558 PinPUp => Some(ViziaKey::PinPUp),
559 PlaySpeedDown => Some(ViziaKey::PlaySpeedDown),
560 PlaySpeedReset => Some(ViziaKey::PlaySpeedReset),
561 PlaySpeedUp => Some(ViziaKey::PlaySpeedUp),
562 RandomToggle => Some(ViziaKey::RandomToggle),
563 RcLowBattery => Some(ViziaKey::RcLowBattery),
564 RecordSpeedNext => Some(ViziaKey::RecordSpeedNext),
565 RfBypass => Some(ViziaKey::RfBypass),
566 ScanChannelsToggle => Some(ViziaKey::ScanChannelsToggle),
567 ScreenModeNext => Some(ViziaKey::ScreenModeNext),
568 Settings => Some(ViziaKey::Settings),
569 SplitScreenToggle => Some(ViziaKey::SplitScreenToggle),
570 STBInput => Some(ViziaKey::STBInput),
571 STBPower => Some(ViziaKey::STBPower),
572 Subtitle => Some(ViziaKey::Subtitle),
573 Teletext => Some(ViziaKey::Teletext),
574 VideoModeNext => Some(ViziaKey::VideoModeNext),
575 Wink => Some(ViziaKey::Wink),
576 ZoomToggle => Some(ViziaKey::ZoomToggle),
577 F13 => Some(ViziaKey::F13),
578 F14 => Some(ViziaKey::F14),
579 F15 => Some(ViziaKey::F15),
580 F16 => Some(ViziaKey::F16),
581 F17 => Some(ViziaKey::F17),
582 F18 => Some(ViziaKey::F18),
583 F19 => Some(ViziaKey::F19),
584 F20 => Some(ViziaKey::F20),
585 F21 => Some(ViziaKey::F21),
586 F22 => Some(ViziaKey::F22),
587 F23 => Some(ViziaKey::F23),
588 F24 => Some(ViziaKey::F24),
589 F25 => None,
590 F26 => None,
591 F27 => None,
592 F28 => None,
593 F29 => None,
594 F30 => None,
595 F31 => None,
596 F32 => None,
597 F33 => None,
598 F34 => None,
599 F35 => None,
600 _ => None,
601 }
602}