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 }
|