forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
popcorn.d.ts
129 lines (114 loc) · 3.22 KB
/
popcorn.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// Type definitions for Popcorn 1.3.0
// Project: https://github.com/mozilla/popcorn-js
// Definitions by: grapswiz <https://github.com/grapswiz/>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare var Popcorn:PopcornStatic;
interface PopcornStatic {
(callback:Function):PopcornImpl;
(selector:string, options?:any):PopcornImpl;
plugin:{
(pluginName:string, info:PopcornPlugin, manifest?:any);
debug:boolean;
errors:any[];
};
util:{
toSeconds(smpte:string, fps?:number):number;
};
destroy(insntace:PopcornImpl);
extend(target:string, source, ...rest:any[]);
forEach( object:any, callback:Function, context?:any);
getJSONP(url:string, successCallback:Function);
getScript(url:string, successCallback:Function);
guid(prefix:string);
locale: PopcornLocale;
parser(parserName, fn, data);
}
interface PopcornLocale {
get():string;
set(langRegion:string);
}
interface PopcornImpl {
media:HTMLMediaElement;
footnote(data:Footnote);
autoplay(flag:boolean);
buffered():TimeRanges;
compose(name:string, definitionObject, manifest?);
controls(flag:boolean);
cue(time:string, callback:Function);
cue(time:number, callback:Function);
currentTime(time?:string):number;
currentTime(time?:number):number;
defaults(pluginName:string, options);
destroy();
disable(pluginName:string);
duration():number;
emit(eventName:string, dataObject?);
enable(pluginName:string):PopcornImpl;
exec(time:string, callback:Function);
exec(time:number, callback:Function);
listen(eventName:string, callback:Function);
load();
loop(flag:boolean);
mute();
muted(flag:boolean);
off(eventName:string, callback:Function);
on(eventName:string, callback:Function);
pause(time ?:number);
pause(time ?:string);
paused():boolean;
play(time?:number);
play(time?:string);
playbackRate(rate?:number);
played():TimeRanges;
position():ClientRect;
preload(state:string);
readyState():number;
roundTime():number;
seekable():any; // TimeRages?
seeking():boolean;
toggle(pluginName:string);
trigger(eventName:string, dataObject?);
unlisten(eventName:string, callback:Function);
unmute();
volume(value?:number):number;
getLastTrackEventId():string;
removeTrackEvent(id:string);
}
interface PopcornPlugin {
(options:any);
_setup?(track?:TrackEvent);
_update?(track?:TrackEvent);
_teardown?(track?:TrackEvent);
start?(event:any, track?:TrackEvent);
end?(event:any, track?:TrackEvent);
frame?(event:any, track?:TrackEvent);
toString?():string;
manifest?:PopcornManifest;
}
interface PopcornManifest {
about:PopcornManifestAbout;
options:PopcornManifestOptions;
}
interface PopcornManifestAbout {
name:string;
version:string;
author:string;
website:string;
}
interface PopcornManifestOptions {
start:PopcornManifestOption;
end:PopcornManifestOption;
target:string;
text:PopcornManifestOption;
}
interface PopcornManifestOption {
elem:string;
type:string;
label:string;
}
interface Footnote {
start:number;
end:number;
target:string;
text:string;
}