|  | // Copyright 2021 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. | 
|  | /// This library contains the APIs used to manage and distribute user's | 
|  | /// preferences related to keymap choice. | 
|  | library fuchsia.input.keymap; | 
|  |  | 
|  | /// Keymaps that should always be present and selectable.  The fallback keymaps | 
|  | /// may be useful on their own but are mainly here to ensure that at least some | 
|  | /// keymap is present if no other custom keymaps have been defined or in use. | 
|  | type Id = flexible enum { | 
|  | /// The US_QWERTY keymap.  This is also the default if no settings are | 
|  | /// ever applied. | 
|  | US_QWERTY = 0; | 
|  | /// The FR AZERTY keymap. | 
|  | FR_AZERTY = 1; | 
|  | /// The US Dvorak keymap. | 
|  | US_DVORAK = 2; | 
|  | }; | 
|  |  | 
|  | /// Mutator interface to the keymap configuration. | 
|  | @discoverable | 
|  | protocol Configuration { | 
|  | /// Set a keymap by ID. | 
|  | /// If a keymap has never been set before, "US_QWERTY" is the assumed default. | 
|  | SetLayout(struct { | 
|  | keymap Id; | 
|  | }) -> (); | 
|  | }; |