Mercurial > hg > ugly-duckling
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 } |