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 }