annotate src/app/visualisations/grid/grid.component.ts @ 405:3ace7672638b

Angular DI can't figure out these are derived from WavesComponent. Add provider for base.
author Lucas Thompson <dev@lucas.im>
date Sun, 04 Jun 2017 20:15:20 +0100
parents afe2fa4a3215
children b69a223166b5
rev   line source
dev@382 1 /**
dev@382 2 * Created by lucast on 31/05/2017.
dev@382 3 */
dev@382 4 import {WavesComponent} from '../waves-base.component';
dev@382 5 import {
dev@382 6 ChangeDetectionStrategy,
dev@382 7 Component,
dev@382 8 Input,
dev@382 9 } from '@angular/core';
dev@382 10 import Waves from 'waves-ui-piper';
dev@382 11 import {MatrixFeature} from 'piper/HigherLevelUtilities';
dev@382 12 import {iceMapper} from '../../spectrogram/ColourMap';
dev@382 13 import {estimatePercentile} from '../../spectrogram/MatrixUtils';
dev@382 14
dev@382 15 @Component({
dev@382 16 selector: 'ugly-grid',
dev@382 17 templateUrl: '../waves-template.html',
dev@382 18 styleUrls: ['../waves-template.css'],
dev@405 19 changeDetection: ChangeDetectionStrategy.OnPush,
dev@405 20 providers: [
dev@405 21 {provide: WavesComponent, useExisting: GridComponent}
dev@405 22 ]
dev@382 23 })
dev@383 24 export class GridComponent extends WavesComponent<MatrixFeature> {
dev@383 25
dev@382 26 @Input() set grid(grid: MatrixFeature) {
dev@383 27 this.feature = grid;
dev@382 28 }
dev@382 29
dev@383 30 protected get featureLayers(): Layer[] {
dev@383 31 const startTime = this.feature.startTime; // !!! + make use of
dev@383 32 const stepDuration = this.feature.stepDuration;
dev@383 33 const matrixData = this.feature.data;
dev@382 34
dev@382 35 if (matrixData.length === 0) {
dev@383 36 return [];
dev@382 37 }
dev@382 38
dev@382 39 const targetValue = estimatePercentile(matrixData, 95);
dev@382 40 const gain = (targetValue > 0.0 ? (1.0 / targetValue) : 1.0);
dev@382 41 const matrixEntity = new Waves.utils.PrefilledMatrixEntity(
dev@382 42 matrixData,
dev@382 43 0, // startTime
dev@382 44 stepDuration
dev@382 45 );
dev@382 46
dev@383 47 return [
dev@382 48 new Waves.helpers.MatrixLayer(
dev@382 49 matrixEntity,
dev@382 50 {
dev@382 51 gain: gain,
dev@382 52 height: this.height,
dev@382 53 normalise: 'none',
dev@382 54 mapper: iceMapper()
dev@382 55 }
dev@383 56 )
dev@383 57 ];
dev@382 58 }
dev@382 59 }