annotate src/app/visualisations/waveform/waves-ui-piper.d.ts @ 347:82d476b976e0

Move waveform.component and remove all logic not concerned with rendering an audio buffer as a waveform. Wire app in app.component.
author Lucas Thompson <dev@lucas.im>
date Thu, 25 May 2017 17:55:29 +0100
parents
children a9ce5516c17d
rev   line source
dev@347 1 /// <reference path="../../../../node_modules/@types/node/index.d.ts"/>
dev@347 2 declare const AmbientInstance: WavesUserInterface;
dev@347 3
dev@347 4 declare module 'waves-ui-piper' {
dev@347 5 export default AmbientInstance;
dev@347 6 }
dev@347 7
dev@347 8 interface WavesUserInterface {
dev@347 9 core: Core;
dev@347 10 helpers: any;
dev@347 11 states: any;
dev@347 12 utils: Utilities;
dev@347 13 shapes: any;
dev@347 14 }
dev@347 15
dev@347 16 interface MatrixEntity {
dev@347 17 getColumnCount(): number;
dev@347 18 getColumnHeight(): number;
dev@347 19 getColumn(n: number): Float32Array | number[];
dev@347 20 getStepDuration(): number;
dev@347 21 getStartTime(): number;
dev@347 22 dispose(): void;
dev@347 23 }
dev@347 24
dev@347 25 type TimeContext = any; // TODO
dev@347 26
dev@347 27 interface Area {
dev@347 28 top: number;
dev@347 29 left: number;
dev@347 30 width: number;
dev@347 31 height: number;
dev@347 32 }
dev@347 33
dev@347 34 interface Layer extends NodeJS.EventEmitter {
dev@347 35 start: number;
dev@347 36 offset: number;
dev@347 37 duration: number;
dev@347 38 stretchRatio: number;
dev@347 39 yDomain: number[];
dev@347 40 opacity: number;
dev@347 41 readonly timeToPixel: () => (time: number) => number;
dev@347 42 readonly valueToPixel: () => (value: number) => number;
dev@347 43 readonly items: Element[];
dev@347 44 readonly selectedItems: Element[];
dev@347 45 data: ArrayLike<any> | Object;
dev@347 46 destroy(): void;
dev@347 47 configureTimeContextBehaviour(ctor: ObjectConstructor): void;
dev@347 48 setTimeContext(context: TimeContext): void;
dev@347 49 configureShape(ctor: ObjectConstructor /* TODO BaseShape*/,
dev@347 50 accessors: Object,
dev@347 51 options: Object): void;
dev@347 52 configureCommonShape(ctor: ObjectConstructor /* TODO BaseShape*/,
dev@347 53 accessors: Object,
dev@347 54 options: Object): void;
dev@347 55 setBehaviour(behaviour: Object /* TODO BaseBehavior */): void;
dev@347 56 select(...$items: Element[]);
dev@347 57 unselect(...$items: Element[]);
dev@347 58 toggleSelection(...$items: Element[]);
dev@347 59 edit($items: Element[], dx: number, dy: number, $target: Element): void;
dev@347 60 setContextEditable(bool: boolean): void;
dev@347 61 editContext(dx: number, dy: number, $target: Element): void;
dev@347 62 stretchContext(dx: number, dy: number, $target: Element): void;
dev@347 63 getItemFromDOMElement($el: Element): Element | null;
dev@347 64 getDatumFromItem($item: Element): Object | any[] | null;
dev@347 65 getDatumFromDOMElement($item: Element): Object | any[] | null;
dev@347 66 hasItem($item: Element): boolean;
dev@347 67 hasElement($el: Element): boolean;
dev@347 68 getItemsInArea(area: Area): Element[];
dev@347 69 render(): void;
dev@347 70 update(): void;
dev@347 71 updateContainer(): void;
dev@347 72 updateShapes(): void;
dev@347 73 }
dev@347 74
dev@347 75 interface LayerConstructor {
dev@347 76 new(dataType: 'entity' | 'collection',
dev@347 77 data: ArrayLike<any> | Object,
dev@347 78 options: Object): Layer;
dev@347 79 }
dev@347 80
dev@347 81 interface MatrixEntityConstructor {
dev@347 82 new(): MatrixEntity;
dev@347 83 }
dev@347 84
dev@347 85 interface PrefilledMatrixEntityConstructor {
dev@347 86 new(data: Float32Array[] | number[][],
dev@347 87 startTime: number,
dev@347 88 stepDuration: number): MatrixEntity;
dev@347 89 }
dev@347 90
dev@347 91 interface Utilities {
dev@347 92 MatrixEntity: MatrixEntityConstructor;
dev@347 93 PrefilledMatrixEntity: PrefilledMatrixEntityConstructor;
dev@347 94 scales: any;
dev@347 95 }
dev@347 96
dev@347 97 type Timeline = any;
dev@347 98
dev@347 99 interface Core {
dev@347 100 Layer: LayerConstructor;
dev@347 101 LayerTimeContext: any; // TODO
dev@347 102 Timeline: Timeline; // TODO
dev@347 103 TimelineTimeContext: TimelineTimeContextConstructor;
dev@347 104 }
dev@347 105
dev@347 106 interface TimelineTimeContext {
dev@347 107 pixelsPerSecond: number;
dev@347 108 readonly computedPixelsPerSecond: number;
dev@347 109 offset: number;
dev@347 110 zoom: number;
dev@347 111 visibleWidth: number;
dev@347 112 readonly visibleDuration: number;
dev@347 113 maintainVisibleDuration: boolean;
dev@347 114 timeToPixel: (time: number) => number;
dev@347 115 }
dev@347 116
dev@347 117 interface TimelineTimeContextConstructor {
dev@347 118 new(pixelsPerSecond: number, visibleWidth: number): TimelineTimeContext;
dev@347 119 }