// Copyright 2017 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.

module cros.mojom;

import "camera/mojo/camera_metadata_tags.mojom";

enum EntryType {
  TYPE_BYTE = 0,
  TYPE_INT32 = 1,
  TYPE_FLOAT = 2,
  TYPE_INT64 = 3,
  TYPE_DOUBLE = 4,
  TYPE_RATIONAL = 5,
  NUM_TYPES
};

// CameraMetadataEntry is a translation of the camera_metadata_entry_t in
// Android camera HAL v3 API (https://goo.gl/OC8sOH).  A CameraMetadataEntry
// holds the values of one type of metadata specified by |tag|.
struct CameraMetadataEntry {
  uint32 index;
  CameraMetadataTag tag;
  EntryType type;
  uint32 count;  // The number of data entries as |type| in |data|.
  array<uint8> data;
};

// CameraMetadata is a translation of the camera_metadata struct in Android
// camera HAL v3 API (https://goo.gl/G7ligz).  A CameraMetadata holds a
// collection of metadata tags and their values.
struct CameraMetadata {
  uint32 size;
  uint32 entry_count;
  uint32 entry_capacity;
  uint32 data_count;
  uint32 data_capacity;
  array<CameraMetadataEntry>? entries;
};
