|  | // Copyright 2020 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. | 
|  |  | 
|  | library fuchsia.input.report; | 
|  |  | 
|  | /// Hardcoded max sizes for ConsumerControl vectors. These sizes should be increased | 
|  | /// if we ever see a device with more objects than can be represented. | 
|  | const uint32 CONSUMER_CONTROL_MAX_NUM_BUTTONS = 255; | 
|  |  | 
|  | /// These ControlButtons represent on/off buttons whose purpose is to change | 
|  | /// the host's configuration. | 
|  | enum ConsumerControlButton : uint32 { | 
|  | /// This button represents increasing volume. | 
|  | VOLUME_UP = 1; | 
|  |  | 
|  | /// This button represents decreasing volume. | 
|  | VOLUME_DOWN = 2; | 
|  |  | 
|  | /// This button represents pausing. | 
|  | PAUSE = 3; | 
|  |  | 
|  | /// This button represents factory resetting the host. | 
|  | FACTORY_RESET = 4; | 
|  |  | 
|  | /// This button represents muting the microphone on the host. | 
|  | MIC_MUTE = 5; | 
|  |  | 
|  | /// This button represents rebooting the host. | 
|  | REBOOT = 6; | 
|  |  | 
|  | /// This button represents disabling the camera on the host. | 
|  | CAMERA_DISABLE = 7; | 
|  | }; | 
|  |  | 
|  | /// Describes the format of the input report that will be sent from the | 
|  | /// ConsumerControl device to the host. | 
|  | table ConsumerControlInputDescriptor { | 
|  | /// The list of buttons that this device contains. | 
|  | 1: vector<ConsumerControlButton>:CONSUMER_CONTROL_MAX_NUM_BUTTONS buttons; | 
|  | }; | 
|  |  | 
|  | /// A Fuchsia ConsumerControl represents a device thats purpose is to change | 
|  | /// values on the host. Typical controls are Volume, Power, Media Playback. | 
|  | /// (Consider a TV remote to be a typical ConsumerControl). | 
|  | table ConsumerControlDescriptor { | 
|  | 1: ConsumerControlInputDescriptor input; | 
|  | }; | 
|  |  | 
|  | /// A single report created by a ConsumerControl device. | 
|  | table ConsumerControlInputReport { | 
|  | /// The list of buttons that are currently pressed down. | 
|  | 1: vector<ConsumerControlButton>:CONSUMER_CONTROL_MAX_NUM_BUTTONS pressed_buttons; | 
|  | }; |