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