comparison src/app/visualisations/curve/curve.component.ts @ 488:64ed45a0bad3

Introduce PlayheadRenderer, implement in the waves base. Make VerticallyBounded and VerticalScaleRenderer generic and remove bin equivalents. Forward calls for a PlayheadRenderer from VerticalScaleComponent on to its children. Also update other components accordingly.
author Lucas Thompson <dev@lucas.im>
date Wed, 05 Jul 2017 18:42:12 +0100
parents 89674c064cda
children ab43880f1cd5
comparison
equal deleted inserted replaced
487:f2bb5ddae867 488:64ed45a0bad3
8 ViewChild 8 ViewChild
9 } from '@angular/core'; 9 } from '@angular/core';
10 import {OnSeekHandler} from '../../playhead/PlayHeadHelpers'; 10 import {OnSeekHandler} from '../../playhead/PlayHeadHelpers';
11 import {VectorFeature} from 'piper/HigherLevelUtilities'; 11 import {VectorFeature} from 'piper/HigherLevelUtilities';
12 import { 12 import {
13 PlayheadManager,
14 PlayheadRenderer,
13 VerticallyBounded, 15 VerticallyBounded,
14 VerticalScaleRenderer, 16 VerticalScaleRenderer,
15 VerticalValueInspectorRenderer, 17 VerticalValueInspectorRenderer,
16 WavesComponent 18 WavesComponent
17 } from '../waves-base.component'; 19 } from '../waves-base.component';
31 changeDetection: ChangeDetectionStrategy.OnPush, 33 changeDetection: ChangeDetectionStrategy.OnPush,
32 providers: [ 34 providers: [
33 {provide: VerticallyBounded, useExisting: CurveComponent }, 35 {provide: VerticallyBounded, useExisting: CurveComponent },
34 {provide: VerticalScaleRenderer, useExisting: CurveComponent}, 36 {provide: VerticalScaleRenderer, useExisting: CurveComponent},
35 {provide: VerticalValueInspectorRenderer, useExisting: CurveComponent}, 37 {provide: VerticalValueInspectorRenderer, useExisting: CurveComponent},
38 {provide: PlayheadRenderer, useExisting: CurveComponent },
36 {provide: WavesComponent, useExisting: CurveComponent} 39 {provide: WavesComponent, useExisting: CurveComponent}
37 ] 40 ]
38 }) 41 })
39 export class CurveComponent implements VerticalValueInspectorRenderer { 42 export class CurveComponent
43 implements VerticalValueInspectorRenderer, PlayheadRenderer {
44
40 @Input() timeline: Timeline; // TODO refactor WaveComponents to have own Timeline, sharing a TimeContext 45 @Input() timeline: Timeline; // TODO refactor WaveComponents to have own Timeline, sharing a TimeContext
41 @Input() onSeek: OnSeekHandler; 46 @Input() onSeek: OnSeekHandler;
42 @Input() width: number; 47 @Input() width: number;
43 @Input() curve: VectorFeature; 48 @Input() curve: VectorFeature;
44 @Input() colour: string; 49 @Input() colour: string;
45 @Input() duration: number; 50 @Input() duration: number;
46 @ViewChild(TracksComponent) tracksComponent: TracksComponent; 51 @ViewChild(TracksComponent) tracksComponent: TracksComponent;
52
53 renderPlayhead(initialTime: number, colour: string): PlayheadManager {
54 return this.tracksComponent.renderPlayhead(initialTime, colour);
55 }
47 56
48 renderInspector(range: [number, number], unit?: string): void { 57 renderInspector(range: [number, number], unit?: string): void {
49 this.tracksComponent.renderInspector(range, unit); 58 this.tracksComponent.renderInspector(range, unit);
50 } 59 }
51 60