// 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;

/// The VendorId represents the vendor that created this Input device. If the
/// Input device is a HID device, the VendorId maps directly to the HID
/// VendorId. If the Input device is not a HID device, then the VendorId
/// will be greater than 0xFFFF, which is the max HID VendorId.
type VendorId = flexible enum : uint32 {
    /// Below are the HID VendorIds, range 0x0000 - 0xFFFF.
    GOOGLE = 0x000018d1;
};

/// Below are ProductIds which represents which product this Input device represents. If the
/// Input device is a HID device, the ProductId maps directly to the HID
/// ProductId. If the Input device is not a HID device, then the ProductId
/// will be greater than 0xFFFF, which is the max HID ProductId.
type VendorGoogleProductId = flexible enum : uint32 {
    /// Below are the non-HID VendorIds
    FOCALTECH_TOUCHSCREEN = 0x00010001;
    AMS_LIGHT_SENSOR = 0x00010002;
    PC_PS2_KEYBOARD = 0x00010003;
    PC_PS2_MOUSE = 0x00010004;
    GOLDFISH_ACCELERATION_SENSOR = 0x901D0001;
    GOLDFISH_GYROSCOPE_SENSOR = 0x901D0002;
    GOLDFISH_RGBC_LIGHT_SENSOR = 0x901D0003;
};
