//
// Copyright (C) 2020 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// @generated by protoc-gen-es v2.2.2 with parameter "target=ts"
// @generated from file protos/perfetto/metrics/android/display_metrics.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv1";
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv1";
import type { Message } from "@bufbuild/protobuf";

/**
 * Describes the file protos/perfetto/metrics/android/display_metrics.proto.
 */
export const file_protos_perfetto_metrics_android_display_metrics: GenFile = /*@__PURE__*/
  fileDesc("CjVwcm90b3MvcGVyZmV0dG8vbWV0cmljcy9hbmRyb2lkL2Rpc3BsYXlfbWV0cmljcy5wcm90bxIPcGVyZmV0dG8ucHJvdG9zIuIDChVBbmRyb2lkRGlzcGxheU1ldHJpY3MSHgoWdG90YWxfZHVwbGljYXRlX2ZyYW1lcxgBIAEoDRIfChdkdXBsaWNhdGVfZnJhbWVzX2xvZ2dlZBgCIAEoDRIgChh0b3RhbF9kcHVfdW5kZXJydW5fY291bnQYAyABKA0SHQoVcmVmcmVzaF9yYXRlX3N3aXRjaGVzGAQgASgNElIKEnJlZnJlc2hfcmF0ZV9zdGF0cxgFIAMoCzI2LnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkRGlzcGxheU1ldHJpY3MuUmVmcmVzaFJhdGVTdGF0ElMKEnVwZGF0ZV9wb3dlcl9zdGF0ZRgGIAEoCzI3LnBlcmZldHRvLnByb3Rvcy5BbmRyb2lkRGlzcGxheU1ldHJpY3MuVXBkYXRlUG93ZXJTdGF0ZRpkCg9SZWZyZXNoUmF0ZVN0YXQSGAoQcmVmcmVzaF9yYXRlX2ZwcxgBIAEoDRINCgVjb3VudBgCIAEoDRIUCgx0b3RhbF9kdXJfbXMYAyABKAESEgoKYXZnX2R1cl9tcxgEIAEoARo4ChBVcGRhdGVQb3dlclN0YXRlEh4KFmF2Z19ydW50aW1lX21pY3JvX3NlY3MYAiABKA1KBAgBEAI");

/**
 * @generated from message perfetto.protos.AndroidDisplayMetrics
 */
export type AndroidDisplayMetrics = Message<"perfetto.protos.AndroidDisplayMetrics"> & {
  /**
   * Stat that reports the number of duplicate frames submitted
   * to the display for rendering. That is frames that have the same
   * pixels values but where still submitted. It is tracked based on
   * comparing the MISR of the current frame vs previous frame.
   *
   * @generated from field: optional uint32 total_duplicate_frames = 1;
   */
  totalDuplicateFrames: number;

  /**
   * Stat reports whether there is any duplicate_frames tracked
   *
   * @generated from field: optional uint32 duplicate_frames_logged = 2;
   */
  duplicateFramesLogged: number;

  /**
   * Stat that reports the number of dpu underrrun occurs count.
   *
   * @generated from field: optional uint32 total_dpu_underrun_count = 3;
   */
  totalDpuUnderrunCount: number;

  /**
   * Calculate the total number of refresh rate changes
   *
   * @generated from field: optional uint32 refresh_rate_switches = 4;
   */
  refreshRateSwitches: number;

  /**
   * The statistics for each refresh rate value
   *
   * @generated from field: repeated perfetto.protos.AndroidDisplayMetrics.RefreshRateStat refresh_rate_stats = 5;
   */
  refreshRateStats: AndroidDisplayMetrics_RefreshRateStat[];

  /**
   * @generated from field: optional perfetto.protos.AndroidDisplayMetrics.UpdatePowerState update_power_state = 6;
   */
  updatePowerState?: AndroidDisplayMetrics_UpdatePowerState;
};

/**
 * Describes the message perfetto.protos.AndroidDisplayMetrics.
 * Use `create(AndroidDisplayMetricsSchema)` to create a new message.
 */
export const AndroidDisplayMetricsSchema: GenMessage<AndroidDisplayMetrics> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_display_metrics, 0);

/**
 * @generated from message perfetto.protos.AndroidDisplayMetrics.RefreshRateStat
 */
export type AndroidDisplayMetrics_RefreshRateStat = Message<"perfetto.protos.AndroidDisplayMetrics.RefreshRateStat"> & {
  /**
   * The refresh rate value (the number of frames per second)
   *
   * @generated from field: optional uint32 refresh_rate_fps = 1;
   */
  refreshRateFps: number;

  /**
   * Calculate the number of refresh rate switches to this fps
   *
   * @generated from field: optional uint32 count = 2;
   */
  count: number;

  /**
   * Calculate the total duration of refresh rate stays at this fps
   *
   * @generated from field: optional double total_dur_ms = 3;
   */
  totalDurMs: number;

  /**
   * Calculate the average duration of refresh rate stays at this fps
   *
   * @generated from field: optional double avg_dur_ms = 4;
   */
  avgDurMs: number;
};

/**
 * Describes the message perfetto.protos.AndroidDisplayMetrics.RefreshRateStat.
 * Use `create(AndroidDisplayMetrics_RefreshRateStatSchema)` to create a new message.
 */
export const AndroidDisplayMetrics_RefreshRateStatSchema: GenMessage<AndroidDisplayMetrics_RefreshRateStat> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_display_metrics, 0, 0);

/**
 * Stats to measure the runtime of updating the power state in
 * DisplayPowerController
 *
 * @generated from message perfetto.protos.AndroidDisplayMetrics.UpdatePowerState
 */
export type AndroidDisplayMetrics_UpdatePowerState = Message<"perfetto.protos.AndroidDisplayMetrics.UpdatePowerState"> & {
  /**
   * @generated from field: optional uint32 avg_runtime_micro_secs = 2;
   */
  avgRuntimeMicroSecs: number;
};

/**
 * Describes the message perfetto.protos.AndroidDisplayMetrics.UpdatePowerState.
 * Use `create(AndroidDisplayMetrics_UpdatePowerStateSchema)` to create a new message.
 */
export const AndroidDisplayMetrics_UpdatePowerStateSchema: GenMessage<AndroidDisplayMetrics_UpdatePowerState> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_metrics_android_display_metrics, 0, 1);

