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 }