blob: 166b932ef7ea687d9de1678ca1cdfd0963118d60 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Braille display access private API.
namespace brailleDisplayPrivate {
// Braille display keyboard command.
enum KeyCommand {
line_up,
line_down,
pan_left,
pan_right,
top,
bottom,
routing,
secondary_routing,
dots,
standard_key
};
// A keyboard event. This is not a standard keyboard event because
// braille display keyboards look significantly different from standard
// keyboards.
dictionary KeyEvent {
KeyCommand command;
// 0-based display position for commands that involve a routing key.
long? displayPosition;
// Braille dot keys that were pressed, stored in the low-order bits.
// Dot 1 is stored in bit 0, dot2 in bit 1, etc.
long? brailleDots;
// DOM keyboard event for a key that corresponds to a standard key.
DOMString? standardKeyName;
// Whether the space key was pressed.
boolean? spaceKey;
// Whether the alt key was pressed.
boolean? altKey;
// Whether the shift key was pressed.
boolean? shiftKey;
// Whether the ctrl key was pressed.
boolean? ctrlKey;
};
// The current braille display state.
dictionary DisplayState {
// Whether a braille display is currently available.
boolean available;
// Number of braille cells on the currently connected display.
long? textCellCount;
};
callback DisplayStateCallback = void(DisplayState result);
interface Functions {
// Gets the current display state.
static void getDisplayState(DisplayStateCallback callback);
// Write the given dot patterns to the display. The buffer contains one
// byte for each braille cell on the display, starting from the leftmost
// cell. Each byte contains a bit pattern indicating which dots should be
// raised in the corresponding cell with the low-order bit representing
// dot 1 and so on until bit 7 which corresponds to dot 8. If the number
// of bytes in the buffer is not equal to the display size, the buffer
// will either be clipped or padded with blank cells on the right.
static void writeDots(ArrayBuffer cells);
};
interface Events {
// Fired when a braille display is connected or disconnected.
static void onDisplayStateChanged(DisplayState state);
// Fired when an input event is received from the display.
static void onKeyEvent(KeyEvent event);
};
};