annotate src/app/notebook-feed/notebook-feed.component.ts @ 184:7643e60dc1dd

Half height.
author Lucas Thompson <dev@lucas.im>
date Wed, 22 Mar 2017 11:22:48 +0000
parents 7cd274d296a3
children a50feba0d7f0
rev   line source
dev@171 1 /**
dev@171 2 * Created by lucast on 21/03/2017.
dev@171 3 */
dev@171 4 import {Component, Input} from "@angular/core";
dev@178 5 import Waves from 'waves-ui';
dev@178 6 import {EventEmitter} from 'events';
dev@178 7
dev@178 8 export interface PartialEventEmitter {
dev@178 9 on(event: string|symbol, listener: Function): void;
dev@178 10 }
dev@178 11
dev@178 12 class NotifyingTimeContext extends Waves.core.TimelineTimeContext
dev@178 13 implements PartialEventEmitter {
dev@178 14
dev@178 15 private eventEmitter: EventEmitter;
dev@178 16
dev@178 17 constructor(pixelsPerSecond: number, visibleWidth: number) {
dev@178 18 super(pixelsPerSecond, visibleWidth);
dev@178 19 this.eventEmitter = new EventEmitter();
dev@178 20 }
dev@178 21
dev@178 22 get offset(){
dev@178 23 return super.offset;
dev@178 24 }
dev@178 25
dev@178 26 set offset(value: number) {
dev@178 27 if (value !== this.offset) {
dev@178 28 this.eventEmitter.emit('offset');
dev@178 29 }
dev@178 30 super.offset = value;
dev@178 31 }
dev@178 32
dev@178 33 get zoom(){
dev@178 34 return super.zoom;
dev@178 35 }
dev@178 36
dev@178 37 set zoom(value: number) {
dev@178 38 if (value !== this.zoom) {
dev@178 39 this.eventEmitter.emit('zoom');
dev@178 40 }
dev@178 41 super.zoom = value;
dev@178 42 }
dev@178 43
dev@178 44 on(event: string|symbol, listener: Function): void {
dev@178 45 this.eventEmitter.on(event, listener);
dev@178 46 }
dev@178 47 }
dev@171 48
dev@171 49 @Component({
dev@171 50 selector: 'ugly-notebook-feed',
dev@171 51 templateUrl: './notebook-feed.component.html',
dev@171 52 styleUrls: ['./notebook-feed.component.css']
dev@171 53 })
dev@171 54 export class NotebookFeedComponent {
dev@171 55 private _audioBuffer: AudioBuffer;
dev@181 56 sharedTimeContext: TimelineTimeContext;
dev@171 57
dev@171 58
dev@171 59 @Input()
dev@171 60 set audioBuffer(buffer: AudioBuffer) {
dev@171 61 this._audioBuffer = buffer || undefined;
dev@171 62 if (this.audioBuffer) {
dev@171 63
dev@171 64 }
dev@171 65 }
dev@171 66
dev@171 67 get audioBuffer(): AudioBuffer {
dev@171 68 return this._audioBuffer;
dev@171 69 }
dev@181 70
dev@181 71 constructor() {
dev@181 72 this.sharedTimeContext = new NotifyingTimeContext(100, 1000);
dev@181 73 }
dev@171 74 }