annotate src/app/waveform/waveform.component.ts @ 10:0b24b8ae62f8
Get some wave-ui layers rendering inside the waveform component, a real shame about the global scope of the waves-ui library currently.
author |
Lucas Thompson <dev@lucas.im> |
date |
Thu, 27 Oct 2016 08:20:49 +0100 |
parents |
a50a4e814ff3 |
children |
7e3ab6f8792f |
rev |
line source |
dev@10
|
1 import {
|
dev@10
|
2 Component, OnInit, ViewChild, ElementRef,
|
dev@10
|
3 AfterViewInit
|
dev@10
|
4 } from '@angular/core';
|
dev@8
|
5
|
dev@6
|
6 declare var wavesUI: any;
|
dev@6
|
7
|
dev@6
|
8 @Component({
|
dev@6
|
9 selector: 'app-waveform',
|
dev@6
|
10 templateUrl: './waveform.component.html',
|
dev@6
|
11 styleUrls: ['./waveform.component.css']
|
dev@6
|
12 })
|
dev@10
|
13 export class WaveformComponent implements OnInit, AfterViewInit {
|
dev@8
|
14 @ViewChild('track') trackDiv: ElementRef;
|
dev@6
|
15
|
dev@6
|
16 constructor() {
|
dev@6
|
17 console.log(wavesUI.core);
|
dev@6
|
18 }
|
dev@6
|
19
|
dev@10
|
20 ngOnInit() {}
|
dev@10
|
21
|
dev@10
|
22 ngAfterViewInit(): void {
|
dev@10
|
23 const track: HTMLElement = this.trackDiv.nativeElement;
|
dev@10
|
24 const duration: number = 1.0;
|
dev@10
|
25 const height: number = track.getBoundingClientRect().height;
|
dev@10
|
26 const width: number = track.getBoundingClientRect().width;
|
dev@10
|
27 const pixelsPerSecond = width / duration;
|
dev@10
|
28 const timeline: any = new wavesUI.core.Timeline(pixelsPerSecond, width);
|
dev@10
|
29 timeline.createTrack(track, height, 'main');
|
dev@10
|
30 // time axis
|
dev@10
|
31 const timeAxis = new wavesUI.helpers.TimeAxisLayer({
|
dev@10
|
32 height: height,
|
dev@10
|
33 top: 10,
|
dev@10
|
34 color: 'gray'
|
dev@10
|
35 });
|
dev@10
|
36 timeline.addLayer(timeAxis, 'main', 'default', true);
|
dev@10
|
37 timeline.state = new wavesUI.states.CenteredZoomState(timeline);
|
dev@6
|
38 }
|
dev@6
|
39 }
|