| // Copyright 2017 The Fuchsia Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #pragma once | 
 |  | 
 | #include <stdint.h> | 
 | #include <zircon/types.h> | 
 | #include "vc.h" | 
 |  | 
 | #define MOD_LSHIFT (1 << 0) | 
 | #define MOD_RSHIFT (1 << 1) | 
 | #define MOD_LALT (1 << 2) | 
 | #define MOD_RALT (1 << 3) | 
 | #define MOD_LCTRL (1 << 4) | 
 | #define MOD_RCTRL (1 << 5) | 
 | #define MOD_CAPSLOCK (1 << 6) | 
 |  | 
 | #define MOD_SHIFT (MOD_LSHIFT | MOD_RSHIFT) | 
 | #define MOD_ALT (MOD_LALT | MOD_RALT) | 
 | #define MOD_CTRL (MOD_LCTRL | MOD_RCTRL) | 
 |  | 
 | typedef struct vc_input vc_input_t; | 
 |  | 
 | zx_status_t vc_input_create(vc_input_t** out, keypress_handler_t handler, int fd); | 
 |  | 
 | bool vc_input_process(vc_input_t* vi, uint8_t report[8]); |