//
// Copyright (C) 2021 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/trace/ui_state.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/trace/ui_state.proto.
 */
export const file_protos_perfetto_trace_ui_state: GenFile = /*@__PURE__*/
  fileDesc("CiRwcm90b3MvcGVyZmV0dG8vdHJhY2UvdWlfc3RhdGUucHJvdG8SD3BlcmZldHRvLnByb3RvcyLFAQoHVWlTdGF0ZRIZChF0aW1lbGluZV9zdGFydF90cxgBIAEoAxIXCg90aW1lbGluZV9lbmRfdHMYAiABKAMSRAoRaGlnaGxpZ2h0X3Byb2Nlc3MYAyABKAsyKS5wZXJmZXR0by5wcm90b3MuVWlTdGF0ZS5IaWdobGlnaHRQcm9jZXNzGkAKEEhpZ2hsaWdodFByb2Nlc3MSDQoDcGlkGAEgASgNSAASEQoHY21kbGluZRgCIAEoCUgAQgoKCHNlbGVjdG9y");

/**
 * Common state for UIs visualizing Perfetto traces.
 * This message can be appended as a TracePacket by UIs to save the
 * visible state (e.g. scroll position/zoom state) for future opening
 * of the trace.
 * Design doc: go/trace-ui-state.
 *
 * @generated from message perfetto.protos.UiState
 */
export type UiState = Message<"perfetto.protos.UiState"> & {
  /**
   * The start and end bounds of the viewport of the UI in nanoseconds.
   *
   * This is the absolute time associated to slices and other events in
   * trace processor tables (i.e. the |ts| column of most tables)
   *
   * @generated from field: optional int64 timeline_start_ts = 1;
   */
  timelineStartTs: bigint;

  /**
   * @generated from field: optional int64 timeline_end_ts = 2;
   */
  timelineEndTs: bigint;

  /**
   * @generated from field: optional perfetto.protos.UiState.HighlightProcess highlight_process = 3;
   */
  highlightProcess?: UiState_HighlightProcess;
};

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

/**
 * Indicates that the given process should be highlighted by the UI.
 *
 * @generated from message perfetto.protos.UiState.HighlightProcess
 */
export type UiState_HighlightProcess = Message<"perfetto.protos.UiState.HighlightProcess"> & {
  /**
   * @generated from oneof perfetto.protos.UiState.HighlightProcess.selector
   */
  selector: {
    /**
     * The pid of the process to highlight. This is useful for UIs to focus
     * on tracks of a particular process in the trace.
     *
     * If more than one process in a trace has the same pid, it is UI
     * implementation specific how the process to be focused will be
     * chosen.
     *
     * @generated from field: uint32 pid = 1;
     */
    value: number;
    case: "pid";
  } | {
    /**
     * The command line of the process to highlight; for most Android apps,
     * this is the package name of the app. This is useful for UIs to focus
     * on a particular app in the trace.
     *
     * If more than one process hasthe same cmdline, it is UI implementation
     * specific how the process to be focused will be chosen.
     *
     * @generated from field: string cmdline = 2;
     */
    value: string;
    case: "cmdline";
  } | { case: undefined; value?: undefined };
};

/**
 * Describes the message perfetto.protos.UiState.HighlightProcess.
 * Use `create(UiState_HighlightProcessSchema)` to create a new message.
 */
export const UiState_HighlightProcessSchema: GenMessage<UiState_HighlightProcess> = /*@__PURE__*/
  messageDesc(file_protos_perfetto_trace_ui_state, 0, 0);

