//
// Copyright (C) 2023 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/config/android/surfaceflinger_layers_config.proto (package perfetto.protos, syntax proto2)
/* eslint-disable */

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

/**
 * Describes the file protos/perfetto/config/android/surfaceflinger_layers_config.proto.
 */
export const file_protos_perfetto_config_android_surfaceflinger_layers_config: GenFile = /*@__PURE__*/
  fileDesc("CkFwcm90b3MvcGVyZmV0dG8vY29uZmlnL2FuZHJvaWQvc3VyZmFjZWZsaW5nZXJfbGF5ZXJzX2NvbmZpZy5wcm90bxIPcGVyZmV0dG8ucHJvdG9zIvADChpTdXJmYWNlRmxpbmdlckxheWVyc0NvbmZpZxI+CgRtb2RlGAEgASgOMjAucGVyZmV0dG8ucHJvdG9zLlN1cmZhY2VGbGluZ2VyTGF5ZXJzQ29uZmlnLk1vZGUSSgoLdHJhY2VfZmxhZ3MYAiADKA4yNS5wZXJmZXR0by5wcm90b3MuU3VyZmFjZUZsaW5nZXJMYXllcnNDb25maWcuVHJhY2VGbGFnInMKBE1vZGUSFAoQTU9ERV9VTlNQRUNJRklFRBAAEg8KC01PREVfQUNUSVZFEAESEgoOTU9ERV9HRU5FUkFURUQQAhINCglNT0RFX0RVTVAQAxIhCh1NT0RFX0dFTkVSQVRFRF9CVUdSRVBPUlRfT05MWRAEItABCglUcmFjZUZsYWcSGgoWVFJBQ0VfRkxBR19VTlNQRUNJRklFRBAAEhQKEFRSQUNFX0ZMQUdfSU5QVVQQAhIaChZUUkFDRV9GTEFHX0NPTVBPU0lUSU9OEAQSFAoQVFJBQ0VfRkxBR19FWFRSQRAIEhIKDlRSQUNFX0ZMQUdfSFdDEBASFgoSVFJBQ0VfRkxBR19CVUZGRVJTECASHwobVFJBQ0VfRkxBR19WSVJUVUFMX0RJU1BMQVlTEEASEgoOVFJBQ0VfRkxBR19BTEwQDg");

/**
 * Custom configuration for the "android.surfaceflinger.layers" data source.
 *
 * @generated from message perfetto.protos.SurfaceFlingerLayersConfig
 */
export type SurfaceFlingerLayersConfig = Message<"perfetto.protos.SurfaceFlingerLayersConfig"> & {
  /**
   * @generated from field: optional perfetto.protos.SurfaceFlingerLayersConfig.Mode mode = 1;
   */
  mode: SurfaceFlingerLayersConfig_Mode;

  /**
   * @generated from field: repeated perfetto.protos.SurfaceFlingerLayersConfig.TraceFlag trace_flags = 2;
   */
  traceFlags: SurfaceFlingerLayersConfig_TraceFlag[];
};

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

/**
 * @generated from enum perfetto.protos.SurfaceFlingerLayersConfig.Mode
 */
export enum SurfaceFlingerLayersConfig_Mode {
  /**
   * @generated from enum value: MODE_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * Trace layers snapshots. A snapshot is taken every time a layers change
   * occurs.
   *
   * @generated from enum value: MODE_ACTIVE = 1;
   */
  ACTIVE = 1,

  /**
   * Generate layers snapshots from the transactions kept in the
   * SurfaceFlinger's internal ring buffer.
   * The layers snapshots generation occurs when this data source is flushed.
   *
   * @generated from enum value: MODE_GENERATED = 2;
   */
  GENERATED = 2,

  /**
   * Trace a single layers snapshot.
   *
   * @generated from enum value: MODE_DUMP = 3;
   */
  DUMP = 3,

  /**
   * Default mode (applied by SurfaceFlinger if no mode is specified).
   * Same as MODE_GENERATED, but triggers the layers snapshots generation only when a bugreport
   * is taken.
   *
   * @generated from enum value: MODE_GENERATED_BUGREPORT_ONLY = 4;
   */
  GENERATED_BUGREPORT_ONLY = 4,
}

/**
 * Describes the enum perfetto.protos.SurfaceFlingerLayersConfig.Mode.
 */
export const SurfaceFlingerLayersConfig_ModeSchema: GenEnum<SurfaceFlingerLayersConfig_Mode> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_config_android_surfaceflinger_layers_config, 0, 0);

/**
 * @generated from enum perfetto.protos.SurfaceFlingerLayersConfig.TraceFlag
 */
export enum SurfaceFlingerLayersConfig_TraceFlag {
  /**
   * @generated from enum value: TRACE_FLAG_UNSPECIFIED = 0;
   */
  UNSPECIFIED = 0,

  /**
   * @generated from enum value: TRACE_FLAG_INPUT = 2;
   */
  INPUT = 2,

  /**
   * @generated from enum value: TRACE_FLAG_COMPOSITION = 4;
   */
  COMPOSITION = 4,

  /**
   * @generated from enum value: TRACE_FLAG_EXTRA = 8;
   */
  EXTRA = 8,

  /**
   * @generated from enum value: TRACE_FLAG_HWC = 16;
   */
  HWC = 16,

  /**
   * @generated from enum value: TRACE_FLAG_BUFFERS = 32;
   */
  BUFFERS = 32,

  /**
   * @generated from enum value: TRACE_FLAG_VIRTUAL_DISPLAYS = 64;
   */
  VIRTUAL_DISPLAYS = 64,

  /**
   * INPUT | COMPOSITION | EXTRA
   *
   * @generated from enum value: TRACE_FLAG_ALL = 14;
   */
  ALL = 14,
}

/**
 * Describes the enum perfetto.protos.SurfaceFlingerLayersConfig.TraceFlag.
 */
export const SurfaceFlingerLayersConfig_TraceFlagSchema: GenEnum<SurfaceFlingerLayersConfig_TraceFlag> = /*@__PURE__*/
  enumDesc(file_protos_perfetto_config_android_surfaceflinger_layers_config, 0, 1);

