xref: /aosp_15_r20/external/perfetto/ui/src/public/timeline.ts (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker// Copyright (C) 2024 The Android Open Source Project
2*6dbdd20aSAndroid Build Coastguard Worker//
3*6dbdd20aSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*6dbdd20aSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*6dbdd20aSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*6dbdd20aSAndroid Build Coastguard Worker//
7*6dbdd20aSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*6dbdd20aSAndroid Build Coastguard Worker//
9*6dbdd20aSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*6dbdd20aSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*6dbdd20aSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*6dbdd20aSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*6dbdd20aSAndroid Build Coastguard Worker// limitations under the License.
14*6dbdd20aSAndroid Build Coastguard Worker
15*6dbdd20aSAndroid Build Coastguard Workerimport {HighPrecisionTimeSpan} from '../base/high_precision_time_span';
16*6dbdd20aSAndroid Build Coastguard Workerimport {time} from '../base/time';
17*6dbdd20aSAndroid Build Coastguard Worker
18*6dbdd20aSAndroid Build Coastguard Workerexport enum TimestampFormat {
19*6dbdd20aSAndroid Build Coastguard Worker  Timecode = 'timecode',
20*6dbdd20aSAndroid Build Coastguard Worker  TraceNs = 'traceNs',
21*6dbdd20aSAndroid Build Coastguard Worker  TraceNsLocale = 'traceNsLocale',
22*6dbdd20aSAndroid Build Coastguard Worker  Seconds = 'seconds',
23*6dbdd20aSAndroid Build Coastguard Worker  Milliseconds = 'milliseconds',
24*6dbdd20aSAndroid Build Coastguard Worker  Microseconds = 'microseconds',
25*6dbdd20aSAndroid Build Coastguard Worker  UTC = 'utc',
26*6dbdd20aSAndroid Build Coastguard Worker  TraceTz = 'traceTz',
27*6dbdd20aSAndroid Build Coastguard Worker}
28*6dbdd20aSAndroid Build Coastguard Worker
29*6dbdd20aSAndroid Build Coastguard Workerexport enum DurationPrecision {
30*6dbdd20aSAndroid Build Coastguard Worker  Full = 'full',
31*6dbdd20aSAndroid Build Coastguard Worker  HumanReadable = 'human_readable',
32*6dbdd20aSAndroid Build Coastguard Worker}
33*6dbdd20aSAndroid Build Coastguard Worker
34*6dbdd20aSAndroid Build Coastguard Workerexport interface Timeline {
35*6dbdd20aSAndroid Build Coastguard Worker  // Bring a timestamp into view.
36*6dbdd20aSAndroid Build Coastguard Worker  panToTimestamp(ts: time): void;
37*6dbdd20aSAndroid Build Coastguard Worker
38*6dbdd20aSAndroid Build Coastguard Worker  // Move the viewport.
39*6dbdd20aSAndroid Build Coastguard Worker  setViewportTime(start: time, end: time): void;
40*6dbdd20aSAndroid Build Coastguard Worker
41*6dbdd20aSAndroid Build Coastguard Worker  // A span representing the current viewport location.
42*6dbdd20aSAndroid Build Coastguard Worker  readonly visibleWindow: HighPrecisionTimeSpan;
43*6dbdd20aSAndroid Build Coastguard Worker
44*6dbdd20aSAndroid Build Coastguard Worker  // Render a vertical line on the timeline at this timestamp.
45*6dbdd20aSAndroid Build Coastguard Worker  hoverCursorTimestamp: time | undefined;
46*6dbdd20aSAndroid Build Coastguard Worker
47*6dbdd20aSAndroid Build Coastguard Worker  hoveredNoteTimestamp: time | undefined;
48*6dbdd20aSAndroid Build Coastguard Worker  highlightedSliceId: number | undefined;
49*6dbdd20aSAndroid Build Coastguard Worker
50*6dbdd20aSAndroid Build Coastguard Worker  hoveredUtid: number | undefined;
51*6dbdd20aSAndroid Build Coastguard Worker  hoveredPid: number | undefined;
52*6dbdd20aSAndroid Build Coastguard Worker
53*6dbdd20aSAndroid Build Coastguard Worker  // Get the current timestamp offset.
54*6dbdd20aSAndroid Build Coastguard Worker  timestampOffset(): time;
55*6dbdd20aSAndroid Build Coastguard Worker
56*6dbdd20aSAndroid Build Coastguard Worker  // Get a time in the current domain as specified by timestampOffset.
57*6dbdd20aSAndroid Build Coastguard Worker  toDomainTime(ts: time): time;
58*6dbdd20aSAndroid Build Coastguard Worker
59*6dbdd20aSAndroid Build Coastguard Worker  // These control how timestamps and durations are formatted throughout the UI
60*6dbdd20aSAndroid Build Coastguard Worker  timestampFormat: TimestampFormat;
61*6dbdd20aSAndroid Build Coastguard Worker  durationPrecision: DurationPrecision;
62*6dbdd20aSAndroid Build Coastguard Worker}
63