annotate src/app/playhead/live-play-head.component.ts @ 509:041468f553e1
tip master
Merge pull request #57 from LucasThompson/fix/session-stack-max-call-stack
Fix accidental recursion in PersistentStack
author |
Lucas Thompson <LucasThompson@users.noreply.github.com> |
date |
Mon, 27 Nov 2017 11:04:30 +0000 |
parents |
6015f02ef2c6 |
children |
|
rev |
line source |
dev@345
|
1 /**
|
dev@345
|
2 * Created by lucast on 23/05/2017.
|
dev@345
|
3 */
|
dev@345
|
4 import {
|
dev@345
|
5 ChangeDetectionStrategy,
|
dev@345
|
6 Component,
|
dev@345
|
7 Input,
|
dev@345
|
8 AfterViewInit,
|
dev@401
|
9 ChangeDetectorRef, OnDestroy
|
dev@345
|
10 } from '@angular/core';
|
dev@345
|
11 import {TimePixelMapper} from './PlayHeadHelpers';
|
dev@401
|
12 import {
|
dev@401
|
13 RenderLoopService,
|
dev@401
|
14 TaskRemover
|
dev@401
|
15 } from '../services/render-loop/render-loop.service';
|
dev@345
|
16
|
dev@345
|
17 @Component({
|
dev@345
|
18 selector: 'ugly-live-play-head',
|
dev@345
|
19 template: `<ugly-play-head
|
dev@345
|
20 [currentTime]="currentTime"
|
dev@345
|
21 [timeToPixel]="timeToPixel"
|
dev@345
|
22 [colour]="colour"></ugly-play-head>`,
|
dev@345
|
23 changeDetection: ChangeDetectionStrategy.OnPush
|
dev@345
|
24 })
|
dev@401
|
25 export class LivePlayHeadComponent implements AfterViewInit, OnDestroy {
|
dev@345
|
26 @Input() timeToPixel: TimePixelMapper;
|
dev@345
|
27 @Input() colour: string;
|
dev@345
|
28 private currentTime = 0;
|
dev@401
|
29 private remover: TaskRemover;
|
dev@345
|
30
|
dev@398
|
31 constructor(private renderLoop: RenderLoopService,
|
dev@398
|
32 private ref: ChangeDetectorRef) {}
|
dev@345
|
33
|
dev@345
|
34 ngAfterViewInit(): void {
|
dev@401
|
35 this.remover = this.renderLoop.addPlayingTask((currentTime) => {
|
dev@398
|
36 this.currentTime = currentTime;
|
dev@398
|
37 this.ref.markForCheck();
|
dev@345
|
38 });
|
dev@345
|
39 }
|
dev@401
|
40 ngOnDestroy(): void {
|
dev@401
|
41 this.remover();
|
dev@401
|
42 }
|
dev@345
|
43 }
|