MCPcopy Index your code
hub / github.com/JavaCS3/xterm-player / constructor

Method constructor

src/Frame.ts:110–133  ·  view source on GitHub ↗
(
    cast: ICastObject,
    step: number = DEFAULT_FRAME_EVENTS_STEP,
    snapshotFn: FrameSnapshotFn = DEFAULT_FRAME_SNAPSHOT_FN
  )

Source from the content-addressed store, hash-verified

108 private _frames: Array<IFrame> = []
109
110 constructor(
111 cast: ICastObject,
112 step: number = DEFAULT_FRAME_EVENTS_STEP,
113 snapshotFn: FrameSnapshotFn = DEFAULT_FRAME_SNAPSHOT_FN
114 ) {
115 const duration = cast.header.duration
116 const events = cast.events
117
118 this._frames = new Array<IFrame>(2 + Math.ceil(events.length / step))
119 this._frames[0] = START_FRAME
120 this._frames[this._frames.length - 1] = this._endFrame = new NullFrame(duration, duration)
121
122 for (let start = 0, n = 1, prev: IFrame = START_FRAME; start < events.length; start += step) {
123 const end = start + step
124 const slice = new Slice<ICastEvent>(cast.events, start, end) // TODO: Do a benchmark of [].slice vs Slice
125 const startTime = slice.get(0).time
126 const endTime = end < events.length ? events[end].time : duration
127 const f = new CastEventsFrame(startTime, endTime, slice, snapshotFn)
128 f.prev = prev
129 this._frames[n++] = prev = f
130 }
131
132 this._endFrame.prev = this._frames[this._frames.length - 2]
133 }
134 public isEnd(frame: IFrame): boolean { return frame === this._endFrame }
135 public len(): number { return this._frames.length - 2 }
136 public frame(time: number): IFrame {

Callers

nothing calls this directly

Calls 1

getMethod · 0.95

Tested by

no test coverage detected