| // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto3"; |
| |
| package prototype; |
| |
| option go_package = "go.chromium.org/chromiumos/infra/proto/go/prototype"; |
| |
| import "prototype/common.proto"; |
| import "prototype/partner.proto"; |
| |
| message ProgramId { |
| string value = 1; |
| } |
| |
| message DesignId { |
| string value = 1; |
| } |
| |
| message DesignVariantId { |
| string value = 1; |
| } |
| |
| message DesignOptions { |
| Fingerprint fingerprint = 1; |
| Feature front_camera = 2; |
| Feature rear_camera = 3; |
| Feature base_accelerometer = 4; |
| Feature lid_accelerometer = 5; |
| Feature base_gyroscope = 6; |
| Feature lid_gyroscope = 7; |
| Feature base_magnetometer = 8; |
| Feature lid_magnetometer = 9; |
| Feature base_light_sensor = 10; |
| Feature lid_light_sensor = 11; |
| Feature touchscreen = 12; |
| Stylus stylus = 13; |
| |
| // General feature presense proto that can be used |
| // for any features that don't have specific attributes. |
| // E.g. See Fingerprint below |
| message Feature { |
| Presence.Indicator presence = 1; |
| } |
| |
| message Fingerprint { |
| enum Location { |
| FINGERPRINT_LOCATION_UNKNOWN = 0; |
| POWER_BUTTON_TOP_LEFT = 1; |
| KEYBOARD_TOP_RIGHT = 2; |
| KEYBOARD_BOTTOM_RIGHT = 3; |
| } |
| Presence.Indicator presence = 1; |
| Location location = 2; |
| } |
| |
| message Stylus { |
| enum Category { |
| STYLUS_CATEGORY_UNKNOWN = 0; |
| INTERNAL = 1; |
| EXTERNAL = 2; |
| } |
| Presence.Indicator presence = 1; |
| Category category = 2; |
| } |
| } |
| |
| message Design { |
| DesignId id = 1; |
| ProgramId program_id = 2; |
| PartnerId odm_id = 3; |
| string name = 4; |
| |
| repeated Variant variants = 6; |
| |
| message Variant { |
| DesignVariantId id = 1; |
| FormFactor form_factor = 2; |
| DesignOptions design_options = 3; |
| } |
| |
| enum FormFactor { |
| FORM_FACTOR_UNDEFINED = 0; |
| CLAMSHELL = 1; |
| CONVERTIBLE = 2; |
| DETACHABLE = 3; |
| CHROMEBASE = 4; |
| CHROMEBOX = 5; |
| CHROMEBIT = 6; |
| CHROMESLATE = 7; |
| } |
| } |
| |
| message DesignList { |
| repeated Design value = 1; |
| } |