| author | Edwin Razafimahatratra <edwin@robotalismsoft.com> |
| Mon, 22 Oct 2012 12:03:53 +0200 | |
| changeset 23 | 45b05706b516 |
| parent 18 | f6232b308fbd |
| child 36 | 6cd5bc3dc7a2 |
| permissions | -rw-r--r-- |
|
18
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1 |
/* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2 |
* popcorn.js version 1.3 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3 |
* http://popcornjs.org |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5 |
* Copyright 2011, Mozilla Foundation |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6 |
* Licensed under the MIT license |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9 |
(function(global, document) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
10 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
11 |
// Popcorn.js does not support archaic browsers |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
12 |
if ( !document.addEventListener ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
13 |
global.Popcorn = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
14 |
isSupported: false |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
15 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
16 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
17 |
var methods = ( "byId forEach extend effects error guid sizeOf isArray nop position disable enable destroy" + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
18 |
"addTrackEvent removeTrackEvent getTrackEvents getTrackEvent getLastTrackEventId " + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
19 |
"timeUpdate plugin removePlugin compose effect xhr getJSONP getScript" ).split(/\s+/); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
20 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
21 |
while ( methods.length ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
22 |
global.Popcorn[ methods.shift() ] = function() {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
23 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
24 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
25 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
26 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
27 |
var |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
28 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
29 |
AP = Array.prototype, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
30 |
OP = Object.prototype, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
31 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
32 |
forEach = AP.forEach, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
33 |
slice = AP.slice, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
34 |
hasOwn = OP.hasOwnProperty, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
35 |
toString = OP.toString, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
36 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
37 |
// Copy global Popcorn (may not exist) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
38 |
_Popcorn = global.Popcorn, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
39 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
40 |
// Ready fn cache |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
41 |
readyStack = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
42 |
readyBound = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
43 |
readyFired = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
44 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
45 |
// Non-public internal data object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
46 |
internal = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
47 |
events: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
48 |
hash: {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
49 |
apis: {}
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
50 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
51 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
52 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
53 |
// Non-public `requestAnimFrame` |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
54 |
// http://paulirish.com/2011/requestanimationframe-for-smart-animating/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
55 |
requestAnimFrame = (function(){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
56 |
return global.requestAnimationFrame || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
57 |
global.webkitRequestAnimationFrame || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
58 |
global.mozRequestAnimationFrame || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
59 |
global.oRequestAnimationFrame || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
60 |
global.msRequestAnimationFrame || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
61 |
function( callback, element ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
62 |
global.setTimeout( callback, 16 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
63 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
64 |
}()), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
65 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
66 |
// Non-public `getKeys`, return an object's keys as an array |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
67 |
getKeys = function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
68 |
return Object.keys ? Object.keys( obj ) : (function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
69 |
var item, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
70 |
list = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
71 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
72 |
for ( item in obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
73 |
if ( hasOwn.call( obj, item ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
74 |
list.push( item ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
75 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
76 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
77 |
return list; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
78 |
})( obj ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
79 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
80 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
81 |
// Declare constructor |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
82 |
// Returns an instance object. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
83 |
Popcorn = function( entity, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
84 |
// Return new Popcorn object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
85 |
return new Popcorn.p.init( entity, options || null ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
86 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
87 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
88 |
// Popcorn API version, automatically inserted via build system. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
89 |
Popcorn.version = "1.3"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
90 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
91 |
// Boolean flag allowing a client to determine if Popcorn can be supported |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
92 |
Popcorn.isSupported = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
93 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
94 |
// Instance caching |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
95 |
Popcorn.instances = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
96 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
97 |
// Declare a shortcut (Popcorn.p) to and a definition of |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
98 |
// the new prototype for our Popcorn constructor |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
99 |
Popcorn.p = Popcorn.prototype = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
100 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
101 |
init: function( entity, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
102 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
103 |
var matches, nodeName, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
104 |
self = this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
105 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
106 |
// Supports Popcorn(function () { /../ })
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
107 |
// Originally proposed by Daniel Brooks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
108 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
109 |
if ( typeof entity === "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
110 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
111 |
// If document ready has already fired |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
112 |
if ( document.readyState === "complete" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
113 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
114 |
entity( document, Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
115 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
116 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
117 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
118 |
// Add `entity` fn to ready stack |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
119 |
readyStack.push( entity ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
120 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
121 |
// This process should happen once per page load |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
122 |
if ( !readyBound ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
123 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
124 |
// set readyBound flag |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
125 |
readyBound = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
126 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
127 |
var DOMContentLoaded = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
128 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
129 |
readyFired = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
130 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
131 |
// Remove global DOM ready listener |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
132 |
document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
133 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
134 |
// Execute all ready function in the stack |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
135 |
for ( var i = 0, readyStackLength = readyStack.length; i < readyStackLength; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
136 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
137 |
readyStack[ i ].call( document, Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
138 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
139 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
140 |
// GC readyStack |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
141 |
readyStack = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
142 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
143 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
144 |
// Register global DOM ready listener |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
145 |
document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
146 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
147 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
148 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
149 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
150 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
151 |
if ( typeof entity === "string" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
152 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
153 |
matches = document.querySelector( entity ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
154 |
} catch( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
155 |
throw new Error( "Popcorn.js Error: Invalid media element selector: " + entity ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
156 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
157 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
158 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
159 |
// Get media element by id or object reference |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
160 |
this.media = matches || entity; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
161 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
162 |
// inner reference to this media element's nodeName string value |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
163 |
nodeName = ( this.media.nodeName && this.media.nodeName.toLowerCase() ) || "video"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
164 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
165 |
// Create an audio or video element property reference |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
166 |
this[ nodeName ] = this.media; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
167 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
168 |
this.options = options || {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
169 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
170 |
// Resolve custom ID or default prefixed ID |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
171 |
this.id = this.options.id || Popcorn.guid( nodeName ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
172 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
173 |
// Throw if an attempt is made to use an ID that already exists |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
174 |
if ( Popcorn.byId( this.id ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
175 |
throw new Error( "Popcorn.js Error: Cannot use duplicate ID (" + this.id + ")" );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
176 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
177 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
178 |
this.isDestroyed = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
179 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
180 |
this.data = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
181 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
182 |
// data structure of all |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
183 |
running: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
184 |
cue: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
185 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
186 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
187 |
// Executed by either timeupdate event or in rAF loop |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
188 |
timeUpdate: Popcorn.nop, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
189 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
190 |
// Allows disabling a plugin per instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
191 |
disabled: {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
192 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
193 |
// Stores DOM event queues by type |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
194 |
events: {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
195 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
196 |
// Stores Special event hooks data |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
197 |
hooks: {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
198 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
199 |
// Store track event history data |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
200 |
history: [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
201 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
202 |
// Stores ad-hoc state related data] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
203 |
state: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
204 |
volume: this.media.volume |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
205 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
206 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
207 |
// Store track event object references by trackId |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
208 |
trackRefs: {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
209 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
210 |
// Playback track event queues |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
211 |
trackEvents: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
212 |
byStart: [{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
213 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
214 |
start: -1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
215 |
end: -1 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
216 |
}], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
217 |
byEnd: [{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
218 |
start: -1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
219 |
end: -1 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
220 |
}], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
221 |
animating: [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
222 |
startIndex: 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
223 |
endIndex: 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
224 |
previousUpdateTime: -1 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
225 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
226 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
227 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
228 |
// Register new instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
229 |
Popcorn.instances.push( this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
230 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
231 |
// function to fire when video is ready |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
232 |
var isReady = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
233 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
234 |
// chrome bug: http://code.google.com/p/chromium/issues/detail?id=119598 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
235 |
// it is possible the video's time is less than 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
236 |
// this has the potential to call track events more than once, when they should not |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
237 |
// start: 0, end: 1 will start, end, start again, when it should just start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
238 |
// just setting it to 0 if it is below 0 fixes this issue |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
239 |
if ( self.media.currentTime < 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
240 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
241 |
self.media.currentTime = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
242 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
243 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
244 |
self.media.removeEventListener( "loadeddata", isReady, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
245 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
246 |
var duration, videoDurationPlus, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
247 |
runningPlugins, runningPlugin, rpLength, rpNatives; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
248 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
249 |
// Adding padding to the front and end of the arrays |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
250 |
// this is so we do not fall off either end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
251 |
duration = self.media.duration; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
252 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
253 |
// Check for no duration info (NaN) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
254 |
videoDurationPlus = duration != duration ? Number.MAX_VALUE : duration + 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
255 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
256 |
Popcorn.addTrackEvent( self, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
257 |
start: videoDurationPlus, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
258 |
end: videoDurationPlus |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
259 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
260 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
261 |
if ( self.options.frameAnimation ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
262 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
263 |
// if Popcorn is created with frameAnimation option set to true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
264 |
// requestAnimFrame is used instead of "timeupdate" media event. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
265 |
// This is for greater frame time accuracy, theoretically up to |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
266 |
// 60 frames per second as opposed to ~4 ( ~every 15-250ms) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
267 |
self.data.timeUpdate = function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
268 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
269 |
Popcorn.timeUpdate( self, {} );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
270 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
271 |
// fire frame for each enabled active plugin of every type |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
272 |
Popcorn.forEach( Popcorn.manifest, function( key, val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
273 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
274 |
runningPlugins = self.data.running[ val ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
275 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
276 |
// ensure there are running plugins on this type on this instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
277 |
if ( runningPlugins ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
278 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
279 |
rpLength = runningPlugins.length; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
280 |
for ( var i = 0; i < rpLength; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
281 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
282 |
runningPlugin = runningPlugins[ i ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
283 |
rpNatives = runningPlugin._natives; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
284 |
rpNatives && rpNatives.frame && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
285 |
rpNatives.frame.call( self, {}, runningPlugin, self.currentTime() );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
286 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
287 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
288 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
289 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
290 |
self.emit( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
291 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
292 |
!self.isDestroyed && requestAnimFrame( self.data.timeUpdate ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
293 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
294 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
295 |
!self.isDestroyed && requestAnimFrame( self.data.timeUpdate ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
296 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
297 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
298 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
299 |
self.data.timeUpdate = function( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
300 |
Popcorn.timeUpdate( self, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
301 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
302 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
303 |
if ( !self.isDestroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
304 |
self.media.addEventListener( "timeupdate", self.data.timeUpdate, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
305 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
306 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
307 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
308 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
309 |
Object.defineProperty( this, "error", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
310 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
311 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
312 |
return self.media.error; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
313 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
314 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
315 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
316 |
if ( self.media.readyState >= 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
317 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
318 |
isReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
319 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
320 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
321 |
self.media.addEventListener( "loadeddata", isReady, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
322 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
323 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
324 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
325 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
326 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
327 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
328 |
// Extend constructor prototype to instance prototype |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
329 |
// Allows chaining methods to instances |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
330 |
Popcorn.p.init.prototype = Popcorn.p; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
331 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
332 |
Popcorn.byId = function( str ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
333 |
var instances = Popcorn.instances, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
334 |
length = instances.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
335 |
i = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
336 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
337 |
for ( ; i < length; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
338 |
if ( instances[ i ].id === str ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
339 |
return instances[ i ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
340 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
341 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
342 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
343 |
return null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
344 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
345 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
346 |
Popcorn.forEach = function( obj, fn, context ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
347 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
348 |
if ( !obj || !fn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
349 |
return {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
350 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
351 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
352 |
context = context || this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
353 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
354 |
var key, len; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
355 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
356 |
// Use native whenever possible |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
357 |
if ( forEach && obj.forEach === forEach ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
358 |
return obj.forEach( fn, context ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
359 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
360 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
361 |
if ( toString.call( obj ) === "[object NodeList]" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
362 |
for ( key = 0, len = obj.length; key < len; key++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
363 |
fn.call( context, obj[ key ], key, obj ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
364 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
365 |
return obj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
366 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
367 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
368 |
for ( key in obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
369 |
if ( hasOwn.call( obj, key ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
370 |
fn.call( context, obj[ key ], key, obj ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
371 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
372 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
373 |
return obj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
374 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
375 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
376 |
Popcorn.extend = function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
377 |
var dest = obj, src = slice.call( arguments, 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
378 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
379 |
Popcorn.forEach( src, function( copy ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
380 |
for ( var prop in copy ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
381 |
dest[ prop ] = copy[ prop ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
382 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
383 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
384 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
385 |
return dest; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
386 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
387 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
388 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
389 |
// A Few reusable utils, memoized onto Popcorn |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
390 |
Popcorn.extend( Popcorn, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
391 |
noConflict: function( deep ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
392 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
393 |
if ( deep ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
394 |
global.Popcorn = _Popcorn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
395 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
396 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
397 |
return Popcorn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
398 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
399 |
error: function( msg ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
400 |
throw new Error( msg ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
401 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
402 |
guid: function( prefix ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
403 |
Popcorn.guid.counter++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
404 |
return ( prefix ? prefix : "" ) + ( +new Date() + Popcorn.guid.counter ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
405 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
406 |
sizeOf: function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
407 |
var size = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
408 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
409 |
for ( var prop in obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
410 |
size++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
411 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
412 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
413 |
return size; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
414 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
415 |
isArray: Array.isArray || function( array ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
416 |
return toString.call( array ) === "[object Array]"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
417 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
418 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
419 |
nop: function() {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
420 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
421 |
position: function( elem ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
422 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
423 |
var clientRect = elem.getBoundingClientRect(), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
424 |
bounds = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
425 |
doc = elem.ownerDocument, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
426 |
docElem = document.documentElement, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
427 |
body = document.body, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
428 |
clientTop, clientLeft, scrollTop, scrollLeft, top, left; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
429 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
430 |
// Determine correct clientTop/Left |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
431 |
clientTop = docElem.clientTop || body.clientTop || 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
432 |
clientLeft = docElem.clientLeft || body.clientLeft || 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
433 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
434 |
// Determine correct scrollTop/Left |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
435 |
scrollTop = ( global.pageYOffset && docElem.scrollTop || body.scrollTop ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
436 |
scrollLeft = ( global.pageXOffset && docElem.scrollLeft || body.scrollLeft ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
437 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
438 |
// Temp top/left |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
439 |
top = Math.ceil( clientRect.top + scrollTop - clientTop ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
440 |
left = Math.ceil( clientRect.left + scrollLeft - clientLeft ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
441 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
442 |
for ( var p in clientRect ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
443 |
bounds[ p ] = Math.round( clientRect[ p ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
444 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
445 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
446 |
return Popcorn.extend({}, bounds, { top: top, left: left });
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
447 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
448 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
449 |
disable: function( instance, plugin ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
450 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
451 |
if ( !instance.data.disabled[ plugin ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
452 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
453 |
instance.data.disabled[ plugin ] = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
454 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
455 |
for ( var i = instance.data.running[ plugin ].length - 1, event; i >= 0; i-- ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
456 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
457 |
event = instance.data.running[ plugin ][ i ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
458 |
event._natives.end.call( instance, null, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
459 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
460 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
461 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
462 |
return instance; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
463 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
464 |
enable: function( instance, plugin ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
465 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
466 |
if ( instance.data.disabled[ plugin ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
467 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
468 |
instance.data.disabled[ plugin ] = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
469 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
470 |
for ( var i = instance.data.running[ plugin ].length - 1, event; i >= 0; i-- ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
471 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
472 |
event = instance.data.running[ plugin ][ i ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
473 |
event._natives.start.call( instance, null, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
474 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
475 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
476 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
477 |
return instance; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
478 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
479 |
destroy: function( instance ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
480 |
var events = instance.data.events, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
481 |
trackEvents = instance.data.trackEvents, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
482 |
singleEvent, item, fn, plugin; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
483 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
484 |
// Iterate through all events and remove them |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
485 |
for ( item in events ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
486 |
singleEvent = events[ item ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
487 |
for ( fn in singleEvent ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
488 |
delete singleEvent[ fn ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
489 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
490 |
events[ item ] = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
491 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
492 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
493 |
// remove all plugins off the given instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
494 |
for ( plugin in Popcorn.registryByName ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
495 |
Popcorn.removePlugin( instance, plugin ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
496 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
497 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
498 |
// Remove all data.trackEvents #1178 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
499 |
trackEvents.byStart.length = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
500 |
trackEvents.byEnd.length = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
501 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
502 |
if ( !instance.isDestroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
503 |
instance.data.timeUpdate && instance.media.removeEventListener( "timeupdate", instance.data.timeUpdate, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
504 |
instance.isDestroyed = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
505 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
506 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
507 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
508 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
509 |
// Memoized GUID Counter |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
510 |
Popcorn.guid.counter = 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
511 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
512 |
// Factory to implement getters, setters and controllers |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
513 |
// as Popcorn instance methods. The IIFE will create and return |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
514 |
// an object with defined methods |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
515 |
Popcorn.extend(Popcorn.p, (function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
516 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
517 |
var methods = "load play pause currentTime playbackRate volume duration preload playbackRate " + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
518 |
"autoplay loop controls muted buffered readyState seeking paused played seekable ended", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
519 |
ret = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
520 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
521 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
522 |
// Build methods, store in object that is returned and passed to extend |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
523 |
Popcorn.forEach( methods.split( /\s+/g ), function( name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
524 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
525 |
ret[ name ] = function( arg ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
526 |
var previous; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
527 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
528 |
if ( typeof this.media[ name ] === "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
529 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
530 |
// Support for shorthanded play(n)/pause(n) jump to currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
531 |
// If arg is not null or undefined and called by one of the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
532 |
// allowed shorthandable methods, then set the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
533 |
// Supports time as seconds or SMPTE |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
534 |
if ( arg != null && /play|pause/.test( name ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
535 |
this.media.currentTime = Popcorn.util.toSeconds( arg ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
536 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
537 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
538 |
this.media[ name ](); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
539 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
540 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
541 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
542 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
543 |
if ( arg != null ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
544 |
// Capture the current value of the attribute property |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
545 |
previous = this.media[ name ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
546 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
547 |
// Set the attribute property with the new value |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
548 |
this.media[ name ] = arg; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
549 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
550 |
// If the new value is not the same as the old value |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
551 |
// emit an "attrchanged event" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
552 |
if ( previous !== arg ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
553 |
this.emit( "attrchange", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
554 |
attribute: name, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
555 |
previousValue: previous, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
556 |
currentValue: arg |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
557 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
558 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
559 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
560 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
561 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
562 |
return this.media[ name ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
563 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
564 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
565 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
566 |
return ret; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
567 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
568 |
})() |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
569 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
570 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
571 |
Popcorn.forEach( "enable disable".split(" "), function( method ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
572 |
Popcorn.p[ method ] = function( plugin ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
573 |
return Popcorn[ method ]( this, plugin ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
574 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
575 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
576 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
577 |
Popcorn.extend(Popcorn.p, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
578 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
579 |
// Rounded currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
580 |
roundTime: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
581 |
return Math.round( this.media.currentTime ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
582 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
583 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
584 |
// Attach an event to a single point in time |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
585 |
exec: function( id, time, fn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
586 |
var length = arguments.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
587 |
trackEvent, sec; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
588 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
589 |
// Check if first could possibly be a SMPTE string |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
590 |
// p.cue( "smpte string", fn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
591 |
// try/catch avoid awful throw in Popcorn.util.toSeconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
592 |
// TODO: Get rid of that, replace with NaN return? |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
593 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
594 |
sec = Popcorn.util.toSeconds( id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
595 |
} catch ( e ) {}
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
596 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
597 |
// If it can be converted into a number then |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
598 |
// it's safe to assume that the string was SMPTE |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
599 |
if ( typeof sec === "number" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
600 |
id = sec; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
601 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
602 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
603 |
// Shift arguments based on use case |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
604 |
// |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
605 |
// Back compat for: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
606 |
// p.cue( time, fn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
607 |
if ( typeof id === "number" && length === 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
608 |
fn = time; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
609 |
time = id; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
610 |
id = Popcorn.guid( "cue" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
611 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
612 |
// Support for new forms |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
613 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
614 |
// p.cue( "empty-cue" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
615 |
if ( length === 1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
616 |
// Set a time for an empty cue. It's not important what |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
617 |
// the time actually is, because the cue is a no-op |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
618 |
time = -1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
619 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
620 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
621 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
622 |
// Get the trackEvent that matches the given id. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
623 |
trackEvent = this.getTrackEvent( id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
624 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
625 |
if ( trackEvent ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
626 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
627 |
// p.cue( "my-id", 12 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
628 |
// p.cue( "my-id", function() { ... });
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
629 |
if ( typeof id === "string" && length === 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
630 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
631 |
// p.cue( "my-id", 12 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
632 |
// The path will update the cue time. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
633 |
if ( typeof time === "number" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
634 |
// Re-use existing trackEvent start callback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
635 |
fn = trackEvent._natives.start; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
636 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
637 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
638 |
// p.cue( "my-id", function() { ... });
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
639 |
// The path will update the cue function |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
640 |
if ( typeof time === "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
641 |
fn = time; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
642 |
// Re-use existing trackEvent start time |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
643 |
time = trackEvent.start; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
644 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
645 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
646 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
647 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
648 |
if ( length >= 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
649 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
650 |
// p.cue( "a", "00:00:00"); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
651 |
if ( typeof time === "string" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
652 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
653 |
sec = Popcorn.util.toSeconds( time ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
654 |
} catch ( e ) {}
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
655 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
656 |
time = sec; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
657 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
658 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
659 |
// p.cue( "b", 11 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
660 |
if ( typeof time === "number" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
661 |
fn = Popcorn.nop(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
662 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
663 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
664 |
// p.cue( "c", function() {});
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
665 |
if ( typeof time === "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
666 |
fn = time; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
667 |
time = -1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
668 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
669 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
670 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
671 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
672 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
673 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
674 |
// Creating a one second track event with an empty end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
675 |
// Or update an existing track event with new values |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
676 |
Popcorn.addTrackEvent( this, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
677 |
id: id, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
678 |
start: time, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
679 |
end: time + 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
680 |
_running: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
681 |
_natives: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
682 |
start: fn || Popcorn.nop, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
683 |
end: Popcorn.nop, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
684 |
type: "cue" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
685 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
686 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
687 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
688 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
689 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
690 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
691 |
// Mute the calling media, optionally toggle |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
692 |
mute: function( toggle ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
693 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
694 |
var event = toggle == null || toggle === true ? "muted" : "unmuted"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
695 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
696 |
// If `toggle` is explicitly `false`, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
697 |
// unmute the media and restore the volume level |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
698 |
if ( event === "unmuted" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
699 |
this.media.muted = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
700 |
this.media.volume = this.data.state.volume; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
701 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
702 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
703 |
// If `toggle` is either null or undefined, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
704 |
// save the current volume and mute the media element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
705 |
if ( event === "muted" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
706 |
this.data.state.volume = this.media.volume; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
707 |
this.media.muted = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
708 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
709 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
710 |
// Trigger either muted|unmuted event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
711 |
this.emit( event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
712 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
713 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
714 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
715 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
716 |
// Convenience method, unmute the calling media |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
717 |
unmute: function( toggle ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
718 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
719 |
return this.mute( toggle == null ? false : !toggle ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
720 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
721 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
722 |
// Get the client bounding box of an instance element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
723 |
position: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
724 |
return Popcorn.position( this.media ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
725 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
726 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
727 |
// Toggle a plugin's playback behaviour (on or off) per instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
728 |
toggle: function( plugin ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
729 |
return Popcorn[ this.data.disabled[ plugin ] ? "enable" : "disable" ]( this, plugin ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
730 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
731 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
732 |
// Set default values for plugin options objects per instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
733 |
defaults: function( plugin, defaults ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
734 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
735 |
// If an array of default configurations is provided, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
736 |
// iterate and apply each to this instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
737 |
if ( Popcorn.isArray( plugin ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
738 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
739 |
Popcorn.forEach( plugin, function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
740 |
for ( var name in obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
741 |
this.defaults( name, obj[ name ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
742 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
743 |
}, this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
744 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
745 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
746 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
747 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
748 |
if ( !this.options.defaults ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
749 |
this.options.defaults = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
750 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
751 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
752 |
if ( !this.options.defaults[ plugin ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
753 |
this.options.defaults[ plugin ] = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
754 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
755 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
756 |
Popcorn.extend( this.options.defaults[ plugin ], defaults ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
757 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
758 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
759 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
760 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
761 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
762 |
Popcorn.Events = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
763 |
UIEvents: "blur focus focusin focusout load resize scroll unload", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
764 |
MouseEvents: "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave click dblclick", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
765 |
Events: "loadstart progress suspend emptied stalled play pause error " + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
766 |
"loadedmetadata loadeddata waiting playing canplay canplaythrough " + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
767 |
"seeking seeked timeupdate ended ratechange durationchange volumechange" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
768 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
769 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
770 |
Popcorn.Events.Natives = Popcorn.Events.UIEvents + " " + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
771 |
Popcorn.Events.MouseEvents + " " + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
772 |
Popcorn.Events.Events; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
773 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
774 |
internal.events.apiTypes = [ "UIEvents", "MouseEvents", "Events" ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
775 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
776 |
// Privately compile events table at load time |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
777 |
(function( events, data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
778 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
779 |
var apis = internal.events.apiTypes, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
780 |
eventsList = events.Natives.split( /\s+/g ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
781 |
idx = 0, len = eventsList.length, prop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
782 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
783 |
for( ; idx < len; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
784 |
data.hash[ eventsList[idx] ] = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
785 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
786 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
787 |
apis.forEach(function( val, idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
788 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
789 |
data.apis[ val ] = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
790 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
791 |
var apiEvents = events[ val ].split( /\s+/g ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
792 |
len = apiEvents.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
793 |
k = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
794 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
795 |
for ( ; k < len; k++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
796 |
data.apis[ val ][ apiEvents[ k ] ] = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
797 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
798 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
799 |
})( Popcorn.Events, internal.events ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
800 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
801 |
Popcorn.events = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
802 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
803 |
isNative: function( type ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
804 |
return !!internal.events.hash[ type ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
805 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
806 |
getInterface: function( type ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
807 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
808 |
if ( !Popcorn.events.isNative( type ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
809 |
return false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
810 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
811 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
812 |
var eventApi = internal.events, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
813 |
apis = eventApi.apiTypes, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
814 |
apihash = eventApi.apis, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
815 |
idx = 0, len = apis.length, api, tmp; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
816 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
817 |
for ( ; idx < len; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
818 |
tmp = apis[ idx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
819 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
820 |
if ( apihash[ tmp ][ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
821 |
api = tmp; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
822 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
823 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
824 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
825 |
return api; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
826 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
827 |
// Compile all native events to single array |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
828 |
all: Popcorn.Events.Natives.split( /\s+/g ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
829 |
// Defines all Event handling static functions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
830 |
fn: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
831 |
trigger: function( type, data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
832 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
833 |
var eventInterface, evt; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
834 |
// setup checks for custom event system |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
835 |
if ( this.data.events[ type ] && Popcorn.sizeOf( this.data.events[ type ] ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
836 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
837 |
eventInterface = Popcorn.events.getInterface( type ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
838 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
839 |
if ( eventInterface ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
840 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
841 |
evt = document.createEvent( eventInterface ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
842 |
evt.initEvent( type, true, true, global, 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
843 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
844 |
this.media.dispatchEvent( evt ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
845 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
846 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
847 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
848 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
849 |
// Custom events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
850 |
Popcorn.forEach( this.data.events[ type ], function( obj, key ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
851 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
852 |
obj.call( this, data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
853 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
854 |
}, this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
855 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
856 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
857 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
858 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
859 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
860 |
listen: function( type, fn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
861 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
862 |
var self = this, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
863 |
hasEvents = true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
864 |
eventHook = Popcorn.events.hooks[ type ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
865 |
origType = type, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
866 |
tmp; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
867 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
868 |
if ( !this.data.events[ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
869 |
this.data.events[ type ] = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
870 |
hasEvents = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
871 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
872 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
873 |
// Check and setup event hooks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
874 |
if ( eventHook ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
875 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
876 |
// Execute hook add method if defined |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
877 |
if ( eventHook.add ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
878 |
eventHook.add.call( this, {}, fn );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
879 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
880 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
881 |
// Reassign event type to our piggyback event type if defined |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
882 |
if ( eventHook.bind ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
883 |
type = eventHook.bind; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
884 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
885 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
886 |
// Reassign handler if defined |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
887 |
if ( eventHook.handler ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
888 |
tmp = fn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
889 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
890 |
fn = function wrapper( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
891 |
eventHook.handler.call( self, event, tmp ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
892 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
893 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
894 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
895 |
// assume the piggy back event is registered |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
896 |
hasEvents = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
897 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
898 |
// Setup event registry entry |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
899 |
if ( !this.data.events[ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
900 |
this.data.events[ type ] = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
901 |
// Toggle if the previous assumption was untrue |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
902 |
hasEvents = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
903 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
904 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
905 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
906 |
// Register event and handler |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
907 |
this.data.events[ type ][ fn.name || ( fn.toString() + Popcorn.guid() ) ] = fn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
908 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
909 |
// only attach one event of any type |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
910 |
if ( !hasEvents && Popcorn.events.all.indexOf( type ) > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
911 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
912 |
this.media.addEventListener( type, function( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
913 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
914 |
Popcorn.forEach( self.data.events[ type ], function( obj, key ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
915 |
if ( typeof obj === "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
916 |
obj.call( self, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
917 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
918 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
919 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
920 |
}, false); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
921 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
922 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
923 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
924 |
unlisten: function( type, fn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
925 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
926 |
if ( this.data.events[ type ] && this.data.events[ type ][ fn ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
927 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
928 |
delete this.data.events[ type ][ fn ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
929 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
930 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
931 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
932 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
933 |
this.data.events[ type ] = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
934 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
935 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
936 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
937 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
938 |
hooks: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
939 |
canplayall: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
940 |
bind: "canplaythrough", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
941 |
add: function( event, callback ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
942 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
943 |
var state = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
944 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
945 |
if ( this.media.readyState ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
946 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
947 |
callback.call( this, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
948 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
949 |
state = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
950 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
951 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
952 |
this.data.hooks.canplayall = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
953 |
fired: state |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
954 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
955 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
956 |
// declare special handling instructions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
957 |
handler: function canplayall( event, callback ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
958 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
959 |
if ( !this.data.hooks.canplayall.fired ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
960 |
// trigger original user callback once |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
961 |
callback.call( this, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
962 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
963 |
this.data.hooks.canplayall.fired = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
964 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
965 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
966 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
967 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
968 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
969 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
970 |
// Extend Popcorn.events.fns (listen, unlisten, trigger) to all Popcorn instances |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
971 |
// Extend aliases (on, off, emit) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
972 |
Popcorn.forEach( [ [ "trigger", "emit" ], [ "listen", "on" ], [ "unlisten", "off" ] ], function( key ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
973 |
Popcorn.p[ key[ 0 ] ] = Popcorn.p[ key[ 1 ] ] = Popcorn.events.fn[ key[ 0 ] ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
974 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
975 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
976 |
// Internal Only - Adds track events to the instance object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
977 |
Popcorn.addTrackEvent = function( obj, track ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
978 |
var trackEvent, isUpdate, eventType; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
979 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
980 |
// Do a lookup for existing trackevents with this id |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
981 |
if ( track.id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
982 |
trackEvent = obj.getTrackEvent( track.id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
983 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
984 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
985 |
// If a track event by this id currently exists, modify it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
986 |
if ( trackEvent ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
987 |
isUpdate = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
988 |
// Create a new object with the existing trackEvent |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
989 |
// Extend with new track properties |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
990 |
track = Popcorn.extend( {}, trackEvent, track );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
991 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
992 |
// Remove the existing track from the instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
993 |
obj.removeTrackEvent( track.id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
994 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
995 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
996 |
// Determine if this track has default options set for it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
997 |
// If so, apply them to the track object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
998 |
if ( track && track._natives && track._natives.type && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
999 |
( obj.options.defaults && obj.options.defaults[ track._natives.type ] ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1000 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1001 |
track = Popcorn.extend( {}, obj.options.defaults[ track._natives.type ], track );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1002 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1003 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1004 |
if ( track._natives ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1005 |
// Supports user defined track event id |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1006 |
track._id = track.id || track._id || Popcorn.guid( track._natives.type ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1007 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1008 |
// Push track event ids into the history |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1009 |
obj.data.history.push( track._id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1010 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1011 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1012 |
track.start = Popcorn.util.toSeconds( track.start, obj.options.framerate ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1013 |
track.end = Popcorn.util.toSeconds( track.end, obj.options.framerate ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1014 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1015 |
// Store this definition in an array sorted by times |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1016 |
var byStart = obj.data.trackEvents.byStart, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1017 |
byEnd = obj.data.trackEvents.byEnd, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1018 |
startIndex, endIndex; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1019 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1020 |
for ( startIndex = byStart.length - 1; startIndex >= 0; startIndex-- ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1021 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1022 |
if ( track.start >= byStart[ startIndex ].start ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1023 |
byStart.splice( startIndex + 1, 0, track ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1024 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1025 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1026 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1027 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1028 |
for ( endIndex = byEnd.length - 1; endIndex >= 0; endIndex-- ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1029 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1030 |
if ( track.end > byEnd[ endIndex ].end ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1031 |
byEnd.splice( endIndex + 1, 0, track ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1032 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1033 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1034 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1035 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1036 |
// Display track event immediately if it's enabled and current |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1037 |
if ( track.end > obj.media.currentTime && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1038 |
track.start <= obj.media.currentTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1039 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1040 |
track._running = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1041 |
obj.data.running[ track._natives.type ].push( track ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1042 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1043 |
if ( !obj.data.disabled[ track._natives.type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1044 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1045 |
track._natives.start.call( obj, null, track ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1046 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1047 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1048 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1049 |
// update startIndex and endIndex |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1050 |
if ( startIndex <= obj.data.trackEvents.startIndex && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1051 |
track.start <= obj.data.trackEvents.previousUpdateTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1052 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1053 |
obj.data.trackEvents.startIndex++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1054 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1055 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1056 |
if ( endIndex <= obj.data.trackEvents.endIndex && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1057 |
track.end < obj.data.trackEvents.previousUpdateTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1058 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1059 |
obj.data.trackEvents.endIndex++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1060 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1061 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1062 |
this.timeUpdate( obj, null, true ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1063 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1064 |
// Store references to user added trackevents in ref table |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1065 |
if ( track._id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1066 |
Popcorn.addTrackEvent.ref( obj, track ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1067 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1068 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1069 |
// If the call to addTrackEvent was an update/modify call, fire an event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1070 |
if ( isUpdate ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1071 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1072 |
// Determine appropriate event type to trigger |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1073 |
// they are identical in function, but the naming |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1074 |
// adds some level of intuition for the end developer |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1075 |
// to rely on |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1076 |
if ( track._natives.type === "cue" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1077 |
eventType = "cuechange"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1078 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1079 |
eventType = "trackchange"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1080 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1081 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1082 |
// Fire an event with change information |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1083 |
obj.emit( eventType, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1084 |
id: track.id, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1085 |
previousValue: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1086 |
time: trackEvent.start, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1087 |
fn: trackEvent._natives.start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1088 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1089 |
currentValue: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1090 |
time: track.start, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1091 |
fn: track._natives.start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1092 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1093 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1094 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1095 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1096 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1097 |
// Internal Only - Adds track event references to the instance object's trackRefs hash table |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1098 |
Popcorn.addTrackEvent.ref = function( obj, track ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1099 |
obj.data.trackRefs[ track._id ] = track; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1100 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1101 |
return obj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1102 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1103 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1104 |
Popcorn.removeTrackEvent = function( obj, removeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1105 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1106 |
var start, end, animate, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1107 |
historyLen = obj.data.history.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1108 |
length = obj.data.trackEvents.byStart.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1109 |
index = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1110 |
indexWasAt = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1111 |
byStart = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1112 |
byEnd = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1113 |
animating = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1114 |
history = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1115 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1116 |
while ( --length > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1117 |
start = obj.data.trackEvents.byStart[ index ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1118 |
end = obj.data.trackEvents.byEnd[ index ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1119 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1120 |
// Padding events will not have _id properties. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1121 |
// These should be safely pushed onto the front and back of the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1122 |
// track event array |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1123 |
if ( !start._id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1124 |
byStart.push( start ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1125 |
byEnd.push( end ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1126 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1127 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1128 |
// Filter for user track events (vs system track events) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1129 |
if ( start._id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1130 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1131 |
// If not a matching start event for removal |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1132 |
if ( start._id !== removeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1133 |
byStart.push( start ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1134 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1135 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1136 |
// If not a matching end event for removal |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1137 |
if ( end._id !== removeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1138 |
byEnd.push( end ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1139 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1140 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1141 |
// If the _id is matched, capture the current index |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1142 |
if ( start._id === removeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1143 |
indexWasAt = index; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1144 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1145 |
// If a _teardown function was defined, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1146 |
// enforce for track event removals |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1147 |
if ( start._natives._teardown ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1148 |
start._natives._teardown.call( obj, start ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1149 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1150 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1151 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1152 |
// Increment the track index |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1153 |
index++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1154 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1155 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1156 |
// Reset length to be used by the condition below to determine |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1157 |
// if animating track events should also be filtered for removal. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1158 |
// Reset index below to be used by the reverse while as an |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1159 |
// incrementing counter |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1160 |
length = obj.data.trackEvents.animating.length; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1161 |
index = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1162 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1163 |
if ( length ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1164 |
while ( --length > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1165 |
animate = obj.data.trackEvents.animating[ index ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1166 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1167 |
// Padding events will not have _id properties. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1168 |
// These should be safely pushed onto the front and back of the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1169 |
// track event array |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1170 |
if ( !animate._id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1171 |
animating.push( animate ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1172 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1173 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1174 |
// If not a matching animate event for removal |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1175 |
if ( animate._id && animate._id !== removeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1176 |
animating.push( animate ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1177 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1178 |
// Increment the track index |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1179 |
index++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1180 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1181 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1182 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1183 |
// Update |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1184 |
if ( indexWasAt <= obj.data.trackEvents.startIndex ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1185 |
obj.data.trackEvents.startIndex--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1186 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1187 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1188 |
if ( indexWasAt <= obj.data.trackEvents.endIndex ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1189 |
obj.data.trackEvents.endIndex--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1190 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1191 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1192 |
obj.data.trackEvents.byStart = byStart; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1193 |
obj.data.trackEvents.byEnd = byEnd; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1194 |
obj.data.trackEvents.animating = animating; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1195 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1196 |
for ( var i = 0; i < historyLen; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1197 |
if ( obj.data.history[ i ] !== removeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1198 |
history.push( obj.data.history[ i ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1199 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1200 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1201 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1202 |
// Update ordered history array |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1203 |
obj.data.history = history; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1204 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1205 |
// Update track event references |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1206 |
Popcorn.removeTrackEvent.ref( obj, removeId ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1207 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1208 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1209 |
// Internal Only - Removes track event references from instance object's trackRefs hash table |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1210 |
Popcorn.removeTrackEvent.ref = function( obj, removeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1211 |
delete obj.data.trackRefs[ removeId ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1212 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1213 |
return obj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1214 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1215 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1216 |
// Return an array of track events bound to this instance object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1217 |
Popcorn.getTrackEvents = function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1218 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1219 |
var trackevents = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1220 |
refs = obj.data.trackEvents.byStart, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1221 |
length = refs.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1222 |
idx = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1223 |
ref; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1224 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1225 |
for ( ; idx < length; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1226 |
ref = refs[ idx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1227 |
// Return only user attributed track event references |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1228 |
if ( ref._id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1229 |
trackevents.push( ref ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1230 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1231 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1232 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1233 |
return trackevents; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1234 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1235 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1236 |
// Internal Only - Returns an instance object's trackRefs hash table |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1237 |
Popcorn.getTrackEvents.ref = function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1238 |
return obj.data.trackRefs; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1239 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1240 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1241 |
// Return a single track event bound to this instance object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1242 |
Popcorn.getTrackEvent = function( obj, trackId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1243 |
return obj.data.trackRefs[ trackId ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1244 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1245 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1246 |
// Internal Only - Returns an instance object's track reference by track id |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1247 |
Popcorn.getTrackEvent.ref = function( obj, trackId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1248 |
return obj.data.trackRefs[ trackId ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1249 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1250 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1251 |
Popcorn.getLastTrackEventId = function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1252 |
return obj.data.history[ obj.data.history.length - 1 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1253 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1254 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1255 |
Popcorn.timeUpdate = function( obj, event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1256 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1257 |
var currentTime = obj.media.currentTime, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1258 |
previousTime = obj.data.trackEvents.previousUpdateTime, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1259 |
tracks = obj.data.trackEvents, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1260 |
end = tracks.endIndex, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1261 |
start = tracks.startIndex, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1262 |
byStartLen = tracks.byStart.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1263 |
byEndLen = tracks.byEnd.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1264 |
registryByName = Popcorn.registryByName, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1265 |
trackstart = "trackstart", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1266 |
trackend = "trackend", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1267 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1268 |
byEnd, byStart, byAnimate, natives, type, runningPlugins; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1269 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1270 |
// Playbar advancing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1271 |
if ( previousTime <= currentTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1272 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1273 |
while ( tracks.byEnd[ end ] && tracks.byEnd[ end ].end <= currentTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1274 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1275 |
byEnd = tracks.byEnd[ end ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1276 |
natives = byEnd._natives; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1277 |
type = natives && natives.type; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1278 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1279 |
// If plugin does not exist on this instance, remove it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1280 |
if ( !natives || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1281 |
( !!registryByName[ type ] || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1282 |
!!obj[ type ] ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1283 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1284 |
if ( byEnd._running === true ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1285 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1286 |
byEnd._running = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1287 |
runningPlugins = obj.data.running[ type ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1288 |
runningPlugins.splice( runningPlugins.indexOf( byEnd ), 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1289 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1290 |
if ( !obj.data.disabled[ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1291 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1292 |
natives.end.call( obj, event, byEnd ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1293 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1294 |
obj.emit( trackend, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1295 |
Popcorn.extend({}, byEnd, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1296 |
plugin: type, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1297 |
type: trackend |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1298 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1299 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1300 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1301 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1302 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1303 |
end++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1304 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1305 |
// remove track event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1306 |
Popcorn.removeTrackEvent( obj, byEnd._id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1307 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1308 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1309 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1310 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1311 |
while ( tracks.byStart[ start ] && tracks.byStart[ start ].start <= currentTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1312 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1313 |
byStart = tracks.byStart[ start ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1314 |
natives = byStart._natives; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1315 |
type = natives && natives.type; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1316 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1317 |
// If plugin does not exist on this instance, remove it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1318 |
if ( !natives || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1319 |
( !!registryByName[ type ] || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1320 |
!!obj[ type ] ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1321 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1322 |
if ( byStart.end > currentTime && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1323 |
byStart._running === false ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1324 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1325 |
byStart._running = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1326 |
obj.data.running[ type ].push( byStart ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1327 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1328 |
if ( !obj.data.disabled[ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1329 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1330 |
natives.start.call( obj, event, byStart ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1331 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1332 |
obj.emit( trackstart, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1333 |
Popcorn.extend({}, byStart, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1334 |
plugin: type, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1335 |
type: trackstart |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1336 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1337 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1338 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1339 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1340 |
start++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1341 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1342 |
// remove track event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1343 |
Popcorn.removeTrackEvent( obj, byStart._id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1344 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1345 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1346 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1347 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1348 |
// Playbar receding |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1349 |
} else if ( previousTime > currentTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1350 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1351 |
while ( tracks.byStart[ start ] && tracks.byStart[ start ].start > currentTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1352 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1353 |
byStart = tracks.byStart[ start ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1354 |
natives = byStart._natives; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1355 |
type = natives && natives.type; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1356 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1357 |
// if plugin does not exist on this instance, remove it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1358 |
if ( !natives || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1359 |
( !!registryByName[ type ] || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1360 |
!!obj[ type ] ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1361 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1362 |
if ( byStart._running === true ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1363 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1364 |
byStart._running = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1365 |
runningPlugins = obj.data.running[ type ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1366 |
runningPlugins.splice( runningPlugins.indexOf( byStart ), 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1367 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1368 |
if ( !obj.data.disabled[ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1369 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1370 |
natives.end.call( obj, event, byStart ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1371 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1372 |
obj.emit( trackend, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1373 |
Popcorn.extend({}, byStart, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1374 |
plugin: type, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1375 |
type: trackend |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1376 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1377 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1378 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1379 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1380 |
start--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1381 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1382 |
// remove track event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1383 |
Popcorn.removeTrackEvent( obj, byStart._id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1384 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1385 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1386 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1387 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1388 |
while ( tracks.byEnd[ end ] && tracks.byEnd[ end ].end > currentTime ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1389 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1390 |
byEnd = tracks.byEnd[ end ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1391 |
natives = byEnd._natives; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1392 |
type = natives && natives.type; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1393 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1394 |
// if plugin does not exist on this instance, remove it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1395 |
if ( !natives || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1396 |
( !!registryByName[ type ] || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1397 |
!!obj[ type ] ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1398 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1399 |
if ( byEnd.start <= currentTime && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1400 |
byEnd._running === false ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1401 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1402 |
byEnd._running = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1403 |
obj.data.running[ type ].push( byEnd ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1404 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1405 |
if ( !obj.data.disabled[ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1406 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1407 |
natives.start.call( obj, event, byEnd ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1408 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1409 |
obj.emit( trackstart, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1410 |
Popcorn.extend({}, byEnd, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1411 |
plugin: type, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1412 |
type: trackstart |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1413 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1414 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1415 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1416 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1417 |
end--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1418 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1419 |
// remove track event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1420 |
Popcorn.removeTrackEvent( obj, byEnd._id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1421 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1422 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1423 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1424 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1425 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1426 |
tracks.endIndex = end; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1427 |
tracks.startIndex = start; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1428 |
tracks.previousUpdateTime = currentTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1429 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1430 |
//enforce index integrity if trackRemoved |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1431 |
tracks.byStart.length < byStartLen && tracks.startIndex--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1432 |
tracks.byEnd.length < byEndLen && tracks.endIndex--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1433 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1434 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1435 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1436 |
// Map and Extend TrackEvent functions to all Popcorn instances |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1437 |
Popcorn.extend( Popcorn.p, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1438 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1439 |
getTrackEvents: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1440 |
return Popcorn.getTrackEvents.call( null, this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1441 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1442 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1443 |
getTrackEvent: function( id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1444 |
return Popcorn.getTrackEvent.call( null, this, id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1445 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1446 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1447 |
getLastTrackEventId: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1448 |
return Popcorn.getLastTrackEventId.call( null, this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1449 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1450 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1451 |
removeTrackEvent: function( id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1452 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1453 |
Popcorn.removeTrackEvent.call( null, this, id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1454 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1455 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1456 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1457 |
removePlugin: function( name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1458 |
Popcorn.removePlugin.call( null, this, name ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1459 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1460 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1461 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1462 |
timeUpdate: function( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1463 |
Popcorn.timeUpdate.call( null, this, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1464 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1465 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1466 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1467 |
destroy: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1468 |
Popcorn.destroy.call( null, this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1469 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1470 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1471 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1472 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1473 |
// Plugin manifests |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1474 |
Popcorn.manifest = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1475 |
// Plugins are registered |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1476 |
Popcorn.registry = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1477 |
Popcorn.registryByName = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1478 |
// An interface for extending Popcorn |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1479 |
// with plugin functionality |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1480 |
Popcorn.plugin = function( name, definition, manifest ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1481 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1482 |
if ( Popcorn.protect.natives.indexOf( name.toLowerCase() ) >= 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1483 |
Popcorn.error( "'" + name + "' is a protected function name" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1484 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1485 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1486 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1487 |
// Provides some sugar, but ultimately extends |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1488 |
// the definition into Popcorn.p |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1489 |
var reserved = [ "start", "end" ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1490 |
plugin = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1491 |
setup, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1492 |
isfn = typeof definition === "function", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1493 |
methods = [ "_setup", "_teardown", "start", "end", "frame" ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1494 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1495 |
// combines calls of two function calls into one |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1496 |
var combineFn = function( first, second ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1497 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1498 |
first = first || Popcorn.nop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1499 |
second = second || Popcorn.nop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1500 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1501 |
return function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1502 |
first.apply( this, arguments ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1503 |
second.apply( this, arguments ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1504 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1505 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1506 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1507 |
// If `manifest` arg is undefined, check for manifest within the `definition` object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1508 |
// If no `definition.manifest`, an empty object is a sufficient fallback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1509 |
Popcorn.manifest[ name ] = manifest = manifest || definition.manifest || {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1510 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1511 |
// apply safe, and empty default functions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1512 |
methods.forEach(function( method ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1513 |
definition[ method ] = safeTry( definition[ method ] || Popcorn.nop, name ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1514 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1515 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1516 |
var pluginFn = function( setup, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1517 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1518 |
if ( !options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1519 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1520 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1521 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1522 |
// When the "ranges" property is set and its value is an array, short-circuit |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1523 |
// the pluginFn definition to recall itself with an options object generated from |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1524 |
// each range object in the ranges array. (eg. { start: 15, end: 16 } )
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1525 |
if ( options.ranges && Popcorn.isArray(options.ranges) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1526 |
Popcorn.forEach( options.ranges, function( range ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1527 |
// Create a fresh object, extend with current options |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1528 |
// and start/end range object's properties |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1529 |
// Works with in/out as well. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1530 |
var opts = Popcorn.extend( {}, options, range );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1531 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1532 |
// Remove the ranges property to prevent infinitely |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1533 |
// entering this condition |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1534 |
delete opts.ranges; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1535 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1536 |
// Call the plugin with the newly created opts object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1537 |
this[ name ]( opts ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1538 |
}, this); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1539 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1540 |
// Return the Popcorn instance to avoid creating an empty track event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1541 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1542 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1543 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1544 |
// Storing the plugin natives |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1545 |
var natives = options._natives = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1546 |
compose = "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1547 |
originalOpts, manifestOpts; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1548 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1549 |
Popcorn.extend( natives, setup ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1550 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1551 |
options._natives.type = name; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1552 |
options._running = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1553 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1554 |
natives.start = natives.start || natives[ "in" ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1555 |
natives.end = natives.end || natives[ "out" ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1556 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1557 |
if ( options.once ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1558 |
natives.end = combineFn( natives.end, function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1559 |
this.removeTrackEvent( options._id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1560 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1561 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1562 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1563 |
// extend teardown to always call end if running |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1564 |
natives._teardown = combineFn(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1565 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1566 |
var args = slice.call( arguments ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1567 |
runningPlugins = this.data.running[ natives.type ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1568 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1569 |
// end function signature is not the same as teardown, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1570 |
// put null on the front of arguments for the event parameter |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1571 |
args.unshift( null ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1572 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1573 |
// only call end if event is running |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1574 |
args[ 1 ]._running && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1575 |
runningPlugins.splice( runningPlugins.indexOf( options ), 1 ) && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1576 |
natives.end.apply( this, args ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1577 |
}, natives._teardown ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1578 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1579 |
// default to an empty string if no effect exists |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1580 |
// split string into an array of effects |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1581 |
options.compose = options.compose && options.compose.split( " " ) || []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1582 |
options.effect = options.effect && options.effect.split( " " ) || []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1583 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1584 |
// join the two arrays together |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1585 |
options.compose = options.compose.concat( options.effect ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1586 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1587 |
options.compose.forEach(function( composeOption ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1588 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1589 |
// if the requested compose is garbage, throw it away |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1590 |
compose = Popcorn.compositions[ composeOption ] || {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1591 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1592 |
// extends previous functions with compose function |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1593 |
methods.forEach(function( method ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1594 |
natives[ method ] = combineFn( natives[ method ], compose[ method ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1595 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1596 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1597 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1598 |
// Ensure a manifest object, an empty object is a sufficient fallback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1599 |
options._natives.manifest = manifest; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1600 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1601 |
// Checks for expected properties |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1602 |
if ( !( "start" in options ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1603 |
options.start = options[ "in" ] || 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1604 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1605 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1606 |
if ( !options.end && options.end !== 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1607 |
options.end = options[ "out" ] || Number.MAX_VALUE; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1608 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1609 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1610 |
// Use hasOwn to detect non-inherited toString, since all |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1611 |
// objects will receive a toString - its otherwise undetectable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1612 |
if ( !hasOwn.call( options, "toString" ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1613 |
options.toString = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1614 |
var props = [ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1615 |
"start: " + options.start, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1616 |
"end: " + options.end, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1617 |
"id: " + (options.id || options._id) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1618 |
]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1619 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1620 |
// Matches null and undefined, allows: false, 0, "" and truthy |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1621 |
if ( options.target != null ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1622 |
props.push( "target: " + options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1623 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1624 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1625 |
return name + " ( " + props.join(", ") + " )";
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1626 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1627 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1628 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1629 |
// Resolves 239, 241, 242 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1630 |
if ( !options.target ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1631 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1632 |
// Sometimes the manifest may be missing entirely |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1633 |
// or it has an options object that doesn't have a `target` property |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1634 |
manifestOpts = "options" in manifest && manifest.options; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1635 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1636 |
options.target = manifestOpts && "target" in manifestOpts && manifestOpts.target; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1637 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1638 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1639 |
if ( options._natives ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1640 |
// ensure an initial id is there before setup is called |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1641 |
options._id = Popcorn.guid( options._natives.type ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1642 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1643 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1644 |
// Trigger _setup method if exists |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1645 |
options._natives._setup && options._natives._setup.call( this, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1646 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1647 |
// Create new track event for this instance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1648 |
Popcorn.addTrackEvent( this, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1649 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1650 |
// Future support for plugin event definitions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1651 |
// for all of the native events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1652 |
Popcorn.forEach( setup, function( callback, type ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1653 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1654 |
if ( type !== "type" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1655 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1656 |
if ( reserved.indexOf( type ) === -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1657 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1658 |
this.on( type, callback ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1659 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1660 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1661 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1662 |
}, this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1663 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1664 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1665 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1666 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1667 |
// Extend Popcorn.p with new named definition |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1668 |
// Assign new named definition |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1669 |
Popcorn.p[ name ] = plugin[ name ] = function( id, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1670 |
var length = arguments.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1671 |
trackEvent, defaults, mergedSetupOpts; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1672 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1673 |
// Shift arguments based on use case |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1674 |
// |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1675 |
// Back compat for: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1676 |
// p.plugin( options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1677 |
if ( id && !options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1678 |
options = id; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1679 |
id = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1680 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1681 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1682 |
// Get the trackEvent that matches the given id. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1683 |
trackEvent = this.getTrackEvent( id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1684 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1685 |
// If the track event does not exist, ensure that the options |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1686 |
// object has a proper id |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1687 |
if ( !trackEvent ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1688 |
options.id = id; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1689 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1690 |
// If the track event does exist, merge the updated properties |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1691 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1692 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1693 |
options = Popcorn.extend( {}, trackEvent, options );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1694 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1695 |
Popcorn.addTrackEvent( this, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1696 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1697 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1698 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1699 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1700 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1701 |
this.data.running[ name ] = this.data.running[ name ] || []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1702 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1703 |
// Merge with defaults if they exist, make sure per call is prioritized |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1704 |
defaults = ( this.options.defaults && this.options.defaults[ name ] ) || {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1705 |
mergedSetupOpts = Popcorn.extend( {}, defaults, options );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1706 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1707 |
return pluginFn.call( this, isfn ? definition.call( this, mergedSetupOpts ) : definition, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1708 |
mergedSetupOpts ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1709 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1710 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1711 |
// if the manifest parameter exists we should extend it onto the definition object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1712 |
// so that it shows up when calling Popcorn.registry and Popcorn.registryByName |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1713 |
if ( manifest ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1714 |
Popcorn.extend( definition, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1715 |
manifest: manifest |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1716 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1717 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1718 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1719 |
// Push into the registry |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1720 |
var entry = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1721 |
fn: plugin[ name ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1722 |
definition: definition, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1723 |
base: definition, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1724 |
parents: [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1725 |
name: name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1726 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1727 |
Popcorn.registry.push( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1728 |
Popcorn.extend( plugin, entry, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1729 |
type: name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1730 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1731 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1732 |
Popcorn.registryByName[ name ] = entry; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1733 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1734 |
return plugin; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1735 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1736 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1737 |
// Storage for plugin function errors |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1738 |
Popcorn.plugin.errors = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1739 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1740 |
// Returns wrapped plugin function |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1741 |
function safeTry( fn, pluginName ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1742 |
return function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1743 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1744 |
// When Popcorn.plugin.debug is true, do not suppress errors |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1745 |
if ( Popcorn.plugin.debug ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1746 |
return fn.apply( this, arguments ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1747 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1748 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1749 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1750 |
return fn.apply( this, arguments ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1751 |
} catch ( ex ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1752 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1753 |
// Push plugin function errors into logging queue |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1754 |
Popcorn.plugin.errors.push({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1755 |
plugin: pluginName, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1756 |
thrown: ex, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1757 |
source: fn.toString() |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1758 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1759 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1760 |
// Trigger an error that the instance can listen for |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1761 |
// and react to |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1762 |
this.emit( "pluginerror", Popcorn.plugin.errors ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1763 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1764 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1765 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1766 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1767 |
// Debug-mode flag for plugin development |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1768 |
// True for Popcorn development versions, false for stable/tagged versions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1769 |
Popcorn.plugin.debug = ( Popcorn.version === "@" + "VERSION" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1770 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1771 |
// removePlugin( type ) removes all tracks of that from all instances of popcorn |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1772 |
// removePlugin( obj, type ) removes all tracks of type from obj, where obj is a single instance of popcorn |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1773 |
Popcorn.removePlugin = function( obj, name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1774 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1775 |
// Check if we are removing plugin from an instance or from all of Popcorn |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1776 |
if ( !name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1777 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1778 |
// Fix the order |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1779 |
name = obj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1780 |
obj = Popcorn.p; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1781 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1782 |
if ( Popcorn.protect.natives.indexOf( name.toLowerCase() ) >= 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1783 |
Popcorn.error( "'" + name + "' is a protected function name" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1784 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1785 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1786 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1787 |
var registryLen = Popcorn.registry.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1788 |
registryIdx; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1789 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1790 |
// remove plugin reference from registry |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1791 |
for ( registryIdx = 0; registryIdx < registryLen; registryIdx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1792 |
if ( Popcorn.registry[ registryIdx ].name === name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1793 |
Popcorn.registry.splice( registryIdx, 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1794 |
delete Popcorn.registryByName[ name ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1795 |
delete Popcorn.manifest[ name ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1796 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1797 |
// delete the plugin |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1798 |
delete obj[ name ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1799 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1800 |
// plugin found and removed, stop checking, we are done |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1801 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1802 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1803 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1804 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1805 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1806 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1807 |
var byStart = obj.data.trackEvents.byStart, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1808 |
byEnd = obj.data.trackEvents.byEnd, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1809 |
animating = obj.data.trackEvents.animating, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1810 |
idx, sl; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1811 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1812 |
// remove all trackEvents |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1813 |
for ( idx = 0, sl = byStart.length; idx < sl; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1814 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1815 |
if ( byStart[ idx ] && byStart[ idx ]._natives && byStart[ idx ]._natives.type === name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1816 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1817 |
byStart[ idx ]._natives._teardown && byStart[ idx ]._natives._teardown.call( obj, byStart[ idx ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1818 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1819 |
byStart.splice( idx, 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1820 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1821 |
// update for loop if something removed, but keep checking |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1822 |
idx--; sl--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1823 |
if ( obj.data.trackEvents.startIndex <= idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1824 |
obj.data.trackEvents.startIndex--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1825 |
obj.data.trackEvents.endIndex--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1826 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1827 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1828 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1829 |
// clean any remaining references in the end index |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1830 |
// we do this seperate from the above check because they might not be in the same order |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1831 |
if ( byEnd[ idx ] && byEnd[ idx ]._natives && byEnd[ idx ]._natives.type === name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1832 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1833 |
byEnd.splice( idx, 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1834 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1835 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1836 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1837 |
//remove all animating events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1838 |
for ( idx = 0, sl = animating.length; idx < sl; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1839 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1840 |
if ( animating[ idx ] && animating[ idx ]._natives && animating[ idx ]._natives.type === name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1841 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1842 |
animating.splice( idx, 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1843 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1844 |
// update for loop if something removed, but keep checking |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1845 |
idx--; sl--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1846 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1847 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1848 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1849 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1850 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1851 |
Popcorn.compositions = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1852 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1853 |
// Plugin inheritance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1854 |
Popcorn.compose = function( name, definition, manifest ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1855 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1856 |
// If `manifest` arg is undefined, check for manifest within the `definition` object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1857 |
// If no `definition.manifest`, an empty object is a sufficient fallback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1858 |
Popcorn.manifest[ name ] = manifest = manifest || definition.manifest || {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1859 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1860 |
// register the effect by name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1861 |
Popcorn.compositions[ name ] = definition; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1862 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1863 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1864 |
Popcorn.plugin.effect = Popcorn.effect = Popcorn.compose; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1865 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1866 |
var rnaiveExpr = /^(?:\.|#|\[)/; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1867 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1868 |
// Basic DOM utilities and helpers API. See #1037 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1869 |
Popcorn.dom = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1870 |
debug: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1871 |
// Popcorn.dom.find( selector, context ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1872 |
// |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1873 |
// Returns the first element that matches the specified selector |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1874 |
// Optionally provide a context element, defaults to `document` |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1875 |
// |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1876 |
// eg. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1877 |
// Popcorn.dom.find("video") returns the first video element
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1878 |
// Popcorn.dom.find("#foo") returns the first element with `id="foo"`
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1879 |
// Popcorn.dom.find("foo") returns the first element with `id="foo"`
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1880 |
// Note: Popcorn.dom.find("foo") is the only allowed deviation
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1881 |
// from valid querySelector selector syntax |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1882 |
// |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1883 |
// Popcorn.dom.find(".baz") returns the first element with `class="baz"`
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1884 |
// Popcorn.dom.find("[preload]") returns the first element with `preload="..."`
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1885 |
// ... |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1886 |
// See https://developer.mozilla.org/En/DOM/Document.querySelector |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1887 |
// |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1888 |
// |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1889 |
find: function( selector, context ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1890 |
var node = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1891 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1892 |
// Trim leading/trailing whitespace to avoid false negatives |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1893 |
selector = selector.trim(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1894 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1895 |
// Default context is the `document` |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1896 |
context = context || document; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1897 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1898 |
if ( selector ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1899 |
// If the selector does not begin with "#", "." or "[", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1900 |
// it could be either a nodeName or ID w/o "#" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1901 |
if ( !rnaiveExpr.test( selector ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1902 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1903 |
// Try finding an element that matches by ID first |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1904 |
node = document.getElementById( selector ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1905 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1906 |
// If a match was found by ID, return the element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1907 |
if ( node !== null ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1908 |
return node; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1909 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1910 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1911 |
// Assume no elements have been found yet |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1912 |
// Catch any invalid selector syntax errors and bury them. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1913 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1914 |
node = context.querySelector( selector ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1915 |
} catch ( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1916 |
if ( Popcorn.dom.debug ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1917 |
throw new Error(e); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1918 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1919 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1920 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1921 |
return node; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1922 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1923 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1924 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1925 |
// Cache references to reused RegExps |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1926 |
var rparams = /\?/, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1927 |
// XHR Setup object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1928 |
setup = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1929 |
url: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1930 |
data: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1931 |
dataType: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1932 |
success: Popcorn.nop, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1933 |
type: "GET", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1934 |
async: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1935 |
xhr: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1936 |
return new global.XMLHttpRequest(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1937 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1938 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1939 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1940 |
Popcorn.xhr = function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1941 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1942 |
options.dataType = options.dataType && options.dataType.toLowerCase() || null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1943 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1944 |
if ( options.dataType && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1945 |
( options.dataType === "jsonp" || options.dataType === "script" ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1946 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1947 |
Popcorn.xhr.getJSONP( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1948 |
options.url, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1949 |
options.success, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1950 |
options.dataType === "script" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1951 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1952 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1953 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1954 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1955 |
var settings = Popcorn.extend( {}, setup, options );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1956 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1957 |
// Create new XMLHttpRequest object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1958 |
settings.ajax = settings.xhr(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1959 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1960 |
if ( settings.ajax ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1961 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1962 |
if ( settings.type === "GET" && settings.data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1963 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1964 |
// append query string |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1965 |
settings.url += ( rparams.test( settings.url ) ? "&" : "?" ) + settings.data; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1966 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1967 |
// Garbage collect and reset settings.data |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1968 |
settings.data = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1969 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1970 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1971 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1972 |
settings.ajax.open( settings.type, settings.url, settings.async ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1973 |
settings.ajax.send( settings.data || null ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1974 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1975 |
return Popcorn.xhr.httpData( settings ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1976 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1977 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1978 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1979 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1980 |
Popcorn.xhr.httpData = function( settings ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1981 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1982 |
var data, json = null, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1983 |
parser, xml = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1984 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1985 |
settings.ajax.onreadystatechange = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1986 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1987 |
if ( settings.ajax.readyState === 4 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1988 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1989 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1990 |
json = JSON.parse( settings.ajax.responseText ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1991 |
} catch( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1992 |
//suppress |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1993 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1994 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1995 |
data = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1996 |
xml: settings.ajax.responseXML, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1997 |
text: settings.ajax.responseText, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1998 |
json: json |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
1999 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2000 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2001 |
// Normalize: data.xml is non-null in IE9 regardless of if response is valid xml |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2002 |
if ( !data.xml || !data.xml.documentElement ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2003 |
data.xml = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2004 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2005 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2006 |
parser = new DOMParser(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2007 |
xml = parser.parseFromString( settings.ajax.responseText, "text/xml" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2008 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2009 |
if ( !xml.getElementsByTagName( "parsererror" ).length ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2010 |
data.xml = xml; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2011 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2012 |
} catch ( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2013 |
// data.xml remains null |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2014 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2015 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2016 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2017 |
// If a dataType was specified, return that type of data |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2018 |
if ( settings.dataType ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2019 |
data = data[ settings.dataType ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2020 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2021 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2022 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2023 |
settings.success.call( settings.ajax, data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2024 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2025 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2026 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2027 |
return data; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2028 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2029 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2030 |
Popcorn.xhr.getJSONP = function( url, success, isScript ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2031 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2032 |
var head = document.head || document.getElementsByTagName( "head" )[ 0 ] || document.documentElement, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2033 |
script = document.createElement( "script" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2034 |
isFired = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2035 |
params = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2036 |
rjsonp = /(=)\?(?=&|$)|\?\?/, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2037 |
replaceInUrl, prefix, paramStr, callback, callparam; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2038 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2039 |
if ( !isScript ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2040 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2041 |
// is there a calback already in the url |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2042 |
callparam = url.match( /(callback=[^&]*)/ ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2043 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2044 |
if ( callparam !== null && callparam.length ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2045 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2046 |
prefix = callparam[ 1 ].split( "=" )[ 1 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2047 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2048 |
// Since we need to support developer specified callbacks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2049 |
// and placeholders in harmony, make sure matches to "callback=" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2050 |
// aren't just placeholders. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2051 |
// We coded ourselves into a corner here. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2052 |
// JSONP callbacks should never have been |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2053 |
// allowed to have developer specified callbacks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2054 |
if ( prefix === "?" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2055 |
prefix = "jsonp"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2056 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2057 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2058 |
// get the callback name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2059 |
callback = Popcorn.guid( prefix ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2060 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2061 |
// replace existing callback name with unique callback name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2062 |
url = url.replace( /(callback=[^&]*)/, "callback=" + callback ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2063 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2064 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2065 |
callback = Popcorn.guid( "jsonp" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2066 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2067 |
if ( rjsonp.test( url ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2068 |
url = url.replace( rjsonp, "$1" + callback ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2069 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2070 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2071 |
// split on first question mark, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2072 |
// this is to capture the query string |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2073 |
params = url.split( /\?(.+)?/ ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2074 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2075 |
// rebuild url with callback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2076 |
url = params[ 0 ] + "?"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2077 |
if ( params[ 1 ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2078 |
url += params[ 1 ] + "&"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2079 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2080 |
url += "callback=" + callback; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2081 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2082 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2083 |
// Define the JSONP success callback globally |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2084 |
window[ callback ] = function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2085 |
// Fire success callbacks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2086 |
success && success( data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2087 |
isFired = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2088 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2089 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2090 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2091 |
script.addEventListener( "load", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2092 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2093 |
// Handling remote script loading callbacks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2094 |
if ( isScript ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2095 |
// getScript |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2096 |
success && success(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2097 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2098 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2099 |
// Executing for JSONP requests |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2100 |
if ( isFired ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2101 |
// Garbage collect the callback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2102 |
delete window[ callback ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2103 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2104 |
// Garbage collect the script resource |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2105 |
head.removeChild( script ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2106 |
}, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2107 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2108 |
script.src = url; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2109 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2110 |
head.insertBefore( script, head.firstChild ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2111 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2112 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2113 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2114 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2115 |
Popcorn.getJSONP = Popcorn.xhr.getJSONP; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2116 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2117 |
Popcorn.getScript = Popcorn.xhr.getScript = function( url, success ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2118 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2119 |
return Popcorn.xhr.getJSONP( url, success, true ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2120 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2121 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2122 |
Popcorn.util = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2123 |
// Simple function to parse a timestamp into seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2124 |
// Acceptable formats are: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2125 |
// HH:MM:SS.MMM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2126 |
// HH:MM:SS;FF |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2127 |
// Hours and minutes are optional. They default to 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2128 |
toSeconds: function( timeStr, framerate ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2129 |
// Hours and minutes are optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2130 |
// Seconds must be specified |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2131 |
// Seconds can be followed by milliseconds OR by the frame information |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2132 |
var validTimeFormat = /^([0-9]+:){0,2}[0-9]+([.;][0-9]+)?$/,
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2133 |
errorMessage = "Invalid time format", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2134 |
digitPairs, lastIndex, lastPair, firstPair, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2135 |
frameInfo, frameTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2136 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2137 |
if ( typeof timeStr === "number" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2138 |
return timeStr; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2139 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2140 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2141 |
if ( typeof timeStr === "string" && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2142 |
!validTimeFormat.test( timeStr ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2143 |
Popcorn.error( errorMessage ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2144 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2145 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2146 |
digitPairs = timeStr.split( ":" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2147 |
lastIndex = digitPairs.length - 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2148 |
lastPair = digitPairs[ lastIndex ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2149 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2150 |
// Fix last element: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2151 |
if ( lastPair.indexOf( ";" ) > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2152 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2153 |
frameInfo = lastPair.split( ";" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2154 |
frameTime = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2155 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2156 |
if ( framerate && ( typeof framerate === "number" ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2157 |
frameTime = parseFloat( frameInfo[ 1 ], 10 ) / framerate; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2158 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2159 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2160 |
digitPairs[ lastIndex ] = parseInt( frameInfo[ 0 ], 10 ) + frameTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2161 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2162 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2163 |
firstPair = digitPairs[ 0 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2164 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2165 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2166 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2167 |
1: parseFloat( firstPair, 10 ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2168 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2169 |
2: ( parseInt( firstPair, 10 ) * 60 ) + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2170 |
parseFloat( digitPairs[ 1 ], 10 ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2171 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2172 |
3: ( parseInt( firstPair, 10 ) * 3600 ) + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2173 |
( parseInt( digitPairs[ 1 ], 10 ) * 60 ) + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2174 |
parseFloat( digitPairs[ 2 ], 10 ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2175 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2176 |
}[ digitPairs.length || 1 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2177 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2178 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2179 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2180 |
// alias for exec function |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2181 |
Popcorn.p.cue = Popcorn.p.exec; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2182 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2183 |
// Protected API methods |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2184 |
Popcorn.protect = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2185 |
natives: getKeys( Popcorn.p ).map(function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2186 |
return val.toLowerCase(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2187 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2188 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2189 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2190 |
// Setup logging for deprecated methods |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2191 |
Popcorn.forEach({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2192 |
// Deprecated: Recommended |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2193 |
"listen": "on", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2194 |
"unlisten": "off", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2195 |
"trigger": "emit", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2196 |
"exec": "cue" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2197 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2198 |
}, function( recommend, api ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2199 |
var original = Popcorn.p[ api ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2200 |
// Override the deprecated api method with a method of the same name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2201 |
// that logs a warning and defers to the new recommended method |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2202 |
Popcorn.p[ api ] = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2203 |
if ( typeof console !== "undefined" && console.warn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2204 |
console.warn( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2205 |
"Deprecated method '" + api + "', " + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2206 |
(recommend == null ? "do not use." : "use '" + recommend + "' instead." ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2207 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2208 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2209 |
// Restore api after first warning |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2210 |
Popcorn.p[ api ] = original; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2211 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2212 |
return Popcorn.p[ recommend ].apply( this, [].slice.call( arguments ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2213 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2214 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2215 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2216 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2217 |
// Exposes Popcorn to global context |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2218 |
global.Popcorn = Popcorn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2219 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2220 |
})(window, window.document); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2221 |
/*! |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2222 |
* Popcorn.sequence |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2223 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2224 |
* Copyright 2011, Rick Waldron |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2225 |
* Licensed under MIT license. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2226 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2227 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2228 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2229 |
/* jslint forin: true, maxerr: 50, indent: 4, es5: true */ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2230 |
/* global Popcorn: true */ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2231 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2232 |
// Requires Popcorn.js |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2233 |
(function( global, Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2234 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2235 |
// TODO: as support increases, migrate to element.dataset |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2236 |
var doc = global.document, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2237 |
location = global.location, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2238 |
rprotocol = /:\/\//, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2239 |
// TODO: better solution to this sucky stop-gap |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2240 |
lochref = location.href.replace( location.href.split("/").slice(-1)[0], "" ),
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2241 |
// privately held |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2242 |
range = function(start, stop, step) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2243 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2244 |
start = start || 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2245 |
stop = ( stop || start || 0 ) + 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2246 |
step = step || 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2247 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2248 |
var len = Math.ceil((stop - start) / step) || 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2249 |
idx = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2250 |
range = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2251 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2252 |
range.length = len; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2253 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2254 |
while (idx < len) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2255 |
range[idx++] = start; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2256 |
start += step; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2257 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2258 |
return range; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2259 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2260 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2261 |
Popcorn.sequence = function( parent, list ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2262 |
return new Popcorn.sequence.init( parent, list ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2263 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2264 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2265 |
Popcorn.sequence.init = function( parent, list ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2266 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2267 |
// Video element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2268 |
this.parent = doc.getElementById( parent ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2269 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2270 |
// Store ref to a special ID |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2271 |
this.seqId = Popcorn.guid( "__sequenced" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2272 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2273 |
// List of HTMLVideoElements |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2274 |
this.queue = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2275 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2276 |
// List of Popcorn objects |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2277 |
this.playlist = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2278 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2279 |
// Lists of in/out points |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2280 |
this.inOuts = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2281 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2282 |
// Stores the video in/out times for each video in sequence |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2283 |
ofVideos: [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2284 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2285 |
// Stores the clip in/out times for each clip in sequences |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2286 |
ofClips: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2287 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2288 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2289 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2290 |
// Store first video dimensions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2291 |
this.dims = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2292 |
width: 0, //this.video.videoWidth, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2293 |
height: 0 //this.video.videoHeight |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2294 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2295 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2296 |
this.active = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2297 |
this.cycling = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2298 |
this.playing = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2299 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2300 |
this.times = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2301 |
last: 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2302 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2303 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2304 |
// Store event pointers and queues |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2305 |
this.events = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2306 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2307 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2308 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2309 |
var self = this, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2310 |
clipOffset = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2311 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2312 |
// Create `video` elements |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2313 |
Popcorn.forEach( list, function( media, idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2314 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2315 |
var video = doc.createElement( "video" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2316 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2317 |
video.preload = "auto"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2318 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2319 |
// Setup newly created video element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2320 |
video.controls = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2321 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2322 |
// If the first, show it, if the after, hide it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2323 |
video.style.display = ( idx && "none" ) || "" ; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2324 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2325 |
// Seta registered sequence id |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2326 |
video.id = self.seqId + "-" + idx ; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2327 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2328 |
// Push this video into the sequence queue |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2329 |
self.queue.push( video ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2330 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2331 |
var //satisfy lint |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2332 |
mIn = media["in"], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2333 |
mOut = media["out"]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2334 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2335 |
// Push the in/out points into sequence ioVideos |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2336 |
self.inOuts.ofVideos.push({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2337 |
"in": ( mIn !== undefined && mIn ) || 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2338 |
"out": ( mOut !== undefined && mOut ) || 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2339 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2340 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2341 |
self.inOuts.ofVideos[ idx ]["out"] = self.inOuts.ofVideos[ idx ]["out"] || self.inOuts.ofVideos[ idx ]["in"] + 2; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2342 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2343 |
// Set the sources |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2344 |
video.src = !rprotocol.test( media.src ) ? lochref + media.src : media.src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2345 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2346 |
// Set some squence specific data vars |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2347 |
video.setAttribute("data-sequence-owner", parent );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2348 |
video.setAttribute("data-sequence-guid", self.seqId );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2349 |
video.setAttribute("data-sequence-id", idx );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2350 |
video.setAttribute("data-sequence-clip", [ self.inOuts.ofVideos[ idx ]["in"], self.inOuts.ofVideos[ idx ]["out"] ].join(":") );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2351 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2352 |
// Append the video to the parent element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2353 |
self.parent.appendChild( video ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2354 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2355 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2356 |
self.playlist.push( Popcorn("#" + video.id ) );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2357 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2358 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2359 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2360 |
self.inOuts.ofVideos.forEach(function( obj ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2361 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2362 |
var clipDuration = obj["out"] - obj["in"], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2363 |
offs = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2364 |
"in": clipOffset, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2365 |
"out": clipOffset + clipDuration |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2366 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2367 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2368 |
self.inOuts.ofClips.push( offs ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2369 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2370 |
clipOffset = offs["out"] + 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2371 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2372 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2373 |
Popcorn.forEach( this.queue, function( media, idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2374 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2375 |
function canPlayThrough( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2376 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2377 |
// If this is idx zero, use it as dimension for all |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2378 |
if ( !idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2379 |
self.dims.width = media.videoWidth; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2380 |
self.dims.height = media.videoHeight; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2381 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2382 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2383 |
media.currentTime = self.inOuts.ofVideos[ idx ]["in"] - 0.5; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2384 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2385 |
media.removeEventListener( "canplaythrough", canPlayThrough, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2386 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2387 |
return true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2388 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2389 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2390 |
// Hook up event listeners for managing special playback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2391 |
media.addEventListener( "canplaythrough", canPlayThrough, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2392 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2393 |
// TODO: consolidate & DRY |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2394 |
media.addEventListener( "play", function( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2395 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2396 |
self.playing = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2397 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2398 |
}, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2399 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2400 |
media.addEventListener( "pause", function( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2401 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2402 |
self.playing = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2403 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2404 |
}, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2405 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2406 |
media.addEventListener( "timeupdate", function( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2407 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2408 |
var target = event.srcElement || event.target, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2409 |
seqIdx = +( (target.dataset && target.dataset.sequenceId) || target.getAttribute("data-sequence-id") ),
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2410 |
floor = Math.floor( media.currentTime ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2411 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2412 |
if ( self.times.last !== floor && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2413 |
seqIdx === self.active ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2414 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2415 |
self.times.last = floor; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2416 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2417 |
if ( floor === self.inOuts.ofVideos[ seqIdx ]["out"] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2418 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2419 |
Popcorn.sequence.cycle.call( self, seqIdx ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2420 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2421 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2422 |
}, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2423 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2424 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2425 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2426 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2427 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2428 |
Popcorn.sequence.init.prototype = Popcorn.sequence.prototype; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2429 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2430 |
// |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2431 |
Popcorn.sequence.cycle = function( idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2432 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2433 |
if ( !this.queue ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2434 |
Popcorn.error("Popcorn.sequence.cycle is not a public method");
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2435 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2436 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2437 |
var // Localize references |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2438 |
queue = this.queue, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2439 |
ioVideos = this.inOuts.ofVideos, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2440 |
current = queue[ idx ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2441 |
nextIdx = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2442 |
next, clip; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2443 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2444 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2445 |
var // Popcorn instances |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2446 |
$popnext, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2447 |
$popprev; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2448 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2449 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2450 |
if ( queue[ idx + 1 ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2451 |
nextIdx = idx + 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2452 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2453 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2454 |
// Reset queue |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2455 |
if ( !queue[ idx + 1 ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2456 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2457 |
nextIdx = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2458 |
this.playlist[ idx ].pause(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2459 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2460 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2461 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2462 |
next = queue[ nextIdx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2463 |
clip = ioVideos[ nextIdx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2464 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2465 |
// Constrain dimentions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2466 |
Popcorn.extend( next, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2467 |
width: this.dims.width, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2468 |
height: this.dims.height |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2469 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2470 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2471 |
$popnext = this.playlist[ nextIdx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2472 |
$popprev = this.playlist[ idx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2473 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2474 |
// When not resetting to 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2475 |
current.pause(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2476 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2477 |
this.active = nextIdx; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2478 |
this.times.last = clip["in"] - 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2479 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2480 |
// Play the next video in the sequence |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2481 |
$popnext.currentTime( clip["in"] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2482 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2483 |
$popnext[ nextIdx ? "play" : "pause" ](); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2484 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2485 |
// Trigger custom cycling event hook |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2486 |
this.trigger( "cycle", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2487 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2488 |
position: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2489 |
previous: idx, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2490 |
current: nextIdx |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2491 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2492 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2493 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2494 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2495 |
// Set the previous back to it's beginning time |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2496 |
// $popprev.currentTime( ioVideos[ idx ].in ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2497 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2498 |
if ( nextIdx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2499 |
// Hide the currently ending video |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2500 |
current.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2501 |
// Show the next video in the sequence |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2502 |
next.style.display = ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2503 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2504 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2505 |
this.cycling = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2506 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2507 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2508 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2509 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2510 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2511 |
var excludes = [ "timeupdate", "play", "pause" ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2512 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2513 |
// Sequence object prototype |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2514 |
Popcorn.extend( Popcorn.sequence.prototype, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2515 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2516 |
// Returns Popcorn object from sequence at index |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2517 |
eq: function( idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2518 |
return this.playlist[ idx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2519 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2520 |
// Remove a sequence from it's playback display container |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2521 |
remove: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2522 |
this.parent.innerHTML = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2523 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2524 |
// Returns Clip object from sequence at index |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2525 |
clip: function( idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2526 |
return this.inOuts.ofVideos[ idx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2527 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2528 |
// Returns sum duration for all videos in sequence |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2529 |
duration: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2530 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2531 |
var ret = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2532 |
seq = this.inOuts.ofClips, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2533 |
idx = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2534 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2535 |
for ( ; idx < seq.length; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2536 |
ret += seq[ idx ]["out"] - seq[ idx ]["in"] + 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2537 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2538 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2539 |
return ret - 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2540 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2541 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2542 |
play: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2543 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2544 |
this.playlist[ this.active ].play(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2545 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2546 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2547 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2548 |
// Attach an event to a single point in time |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2549 |
exec: function ( time, fn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2550 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2551 |
var index = this.active; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2552 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2553 |
this.inOuts.ofClips.forEach(function( off, idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2554 |
if ( time >= off["in"] && time <= off["out"] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2555 |
index = idx; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2556 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2557 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2558 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2559 |
//offsetBy = time - self.inOuts.ofVideos[ index ].in; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2560 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2561 |
time += this.inOuts.ofVideos[ index ]["in"] - this.inOuts.ofClips[ index ]["in"]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2562 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2563 |
// Creating a one second track event with an empty end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2564 |
Popcorn.addTrackEvent( this.playlist[ index ], {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2565 |
start: time - 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2566 |
end: time, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2567 |
_running: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2568 |
_natives: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2569 |
start: fn || Popcorn.nop, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2570 |
end: Popcorn.nop, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2571 |
type: "exec" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2572 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2573 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2574 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2575 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2576 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2577 |
// Binds event handlers that fire only when all |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2578 |
// videos in sequence have heard the event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2579 |
listen: function( type, callback ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2580 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2581 |
var self = this, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2582 |
seq = this.playlist, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2583 |
total = seq.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2584 |
count = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2585 |
fnName; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2586 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2587 |
if ( !callback ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2588 |
callback = Popcorn.nop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2589 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2590 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2591 |
// Handling for DOM and Media events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2592 |
if ( Popcorn.Events.Natives.indexOf( type ) > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2593 |
Popcorn.forEach( seq, function( video ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2594 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2595 |
video.listen( type, function( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2596 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2597 |
event.active = self; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2598 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2599 |
if ( excludes.indexOf( type ) > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2600 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2601 |
callback.call( video, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2602 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2603 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2604 |
if ( ++count === total ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2605 |
callback.call( video, event ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2606 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2607 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2608 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2609 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2610 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2611 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2612 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2613 |
// If no events registered with this name, create a cache |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2614 |
if ( !this.events[ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2615 |
this.events[ type ] = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2616 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2617 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2618 |
// Normalize a callback name key |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2619 |
fnName = callback.name || Popcorn.guid( "__" + type ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2620 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2621 |
// Store in event cache |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2622 |
this.events[ type ][ fnName ] = callback; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2623 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2624 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2625 |
// Return the sequence object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2626 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2627 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2628 |
unlisten: function( type, name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2629 |
// TODO: finish implementation |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2630 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2631 |
trigger: function( type, data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2632 |
var self = this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2633 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2634 |
// Handling for DOM and Media events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2635 |
if ( Popcorn.Events.Natives.indexOf( type ) > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2636 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2637 |
// find the active video and trigger api events on that video. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2638 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2639 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2640 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2641 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2642 |
// Only proceed if there are events of this type |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2643 |
// currently registered on the sequence |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2644 |
if ( this.events[ type ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2645 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2646 |
Popcorn.forEach( this.events[ type ], function( callback, name ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2647 |
callback.call( self, { type: type }, data );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2648 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2649 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2650 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2651 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2652 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2653 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2654 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2655 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2656 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2657 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2658 |
Popcorn.forEach( Popcorn.manifest, function( obj, plugin ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2659 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2660 |
// Implement passthrough methods to plugins |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2661 |
Popcorn.sequence.prototype[ plugin ] = function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2662 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2663 |
// console.log( this, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2664 |
var videos = {}, assignTo = [],
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2665 |
idx, off, inOuts, inIdx, outIdx, keys, clip, clipInOut, clipRange; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2666 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2667 |
for ( idx = 0; idx < this.inOuts.ofClips.length; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2668 |
// store reference |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2669 |
off = this.inOuts.ofClips[ idx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2670 |
// array to test against |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2671 |
inOuts = range( off["in"], off["out"] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2672 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2673 |
inIdx = inOuts.indexOf( options.start ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2674 |
outIdx = inOuts.indexOf( options.end ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2675 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2676 |
if ( inIdx > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2677 |
videos[ idx ] = Popcorn.extend( {}, off, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2678 |
start: inOuts[ inIdx ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2679 |
clipIdx: inIdx |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2680 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2681 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2682 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2683 |
if ( outIdx > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2684 |
videos[ idx ] = Popcorn.extend( {}, off, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2685 |
end: inOuts[ outIdx ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2686 |
clipIdx: outIdx |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2687 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2688 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2689 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2690 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2691 |
keys = Object.keys( videos ).map(function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2692 |
return +val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2693 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2694 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2695 |
assignTo = range( keys[ 0 ], keys[ 1 ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2696 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2697 |
//console.log( "PLUGIN CALL MAPS: ", videos, keys, assignTo ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2698 |
for ( idx = 0; idx < assignTo.length; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2699 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2700 |
var compile = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2701 |
play = assignTo[ idx ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2702 |
vClip = videos[ play ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2703 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2704 |
if ( vClip ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2705 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2706 |
// has instructions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2707 |
clip = this.inOuts.ofVideos[ play ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2708 |
clipInOut = vClip.clipIdx; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2709 |
clipRange = range( clip["in"], clip["out"] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2710 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2711 |
if ( vClip.start ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2712 |
compile.start = clipRange[ clipInOut ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2713 |
compile.end = clipRange[ clipRange.length - 1 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2714 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2715 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2716 |
if ( vClip.end ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2717 |
compile.start = clipRange[ 0 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2718 |
compile.end = clipRange[ clipInOut ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2719 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2720 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2721 |
//compile.start += 0.1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2722 |
//compile.end += 0.9; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2723 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2724 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2725 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2726 |
compile.start = this.inOuts.ofVideos[ play ]["in"]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2727 |
compile.end = this.inOuts.ofVideos[ play ]["out"]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2728 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2729 |
//compile.start += 0.1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2730 |
//compile.end += 0.9; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2731 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2732 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2733 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2734 |
// Handling full clip persistance |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2735 |
//if ( compile.start === compile.end ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2736 |
//compile.start -= 0.1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2737 |
//compile.end += 0.9; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2738 |
//} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2739 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2740 |
// Call the plugin on the appropriate Popcorn object in the playlist |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2741 |
// Merge original options object & compiled (start/end) object into |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2742 |
// a new fresh object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2743 |
this.playlist[ play ][ plugin ]( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2744 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2745 |
Popcorn.extend( {}, options, compile )
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2746 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2747 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2748 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2749 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2750 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2751 |
// Return the sequence object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2752 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2753 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2754 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2755 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2756 |
})( this, Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2757 |
(function( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2758 |
document.addEventListener( "DOMContentLoaded", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2759 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2760 |
// Supports non-specific elements |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2761 |
var dataAttr = "data-timeline-sources", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2762 |
medias = document.querySelectorAll( "[" + dataAttr + "]" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2763 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2764 |
Popcorn.forEach( medias, function( idx, key ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2765 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2766 |
var media = medias[ key ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2767 |
hasDataSources = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2768 |
dataSources, data, popcornMedia; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2769 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2770 |
// Ensure that the DOM has an id |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2771 |
if ( !media.id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2772 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2773 |
media.id = Popcorn.guid( "__popcorn" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2774 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2775 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2776 |
// Ensure we're looking at a dom node |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2777 |
if ( media.nodeType && media.nodeType === 1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2778 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2779 |
popcornMedia = Popcorn( "#" + media.id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2780 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2781 |
dataSources = ( media.getAttribute( dataAttr ) || "" ).split( "," ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2782 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2783 |
if ( dataSources[ 0 ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2784 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2785 |
Popcorn.forEach( dataSources, function( source ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2786 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2787 |
// split the parser and data as parser!file |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2788 |
data = source.split( "!" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2789 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2790 |
// if no parser is defined for the file, assume "parse" + file extension |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2791 |
if ( data.length === 1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2792 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2793 |
// parse a relative URL for the filename, split to get extension |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2794 |
data = source.match( /(.*)[\/\\]([^\/\\]+\.\w+)$/ )[ 2 ].split( "." ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2795 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2796 |
data[ 0 ] = "parse" + data[ 1 ].toUpperCase(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2797 |
data[ 1 ] = source; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2798 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2799 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2800 |
// If the media has data sources and the correct parser is registered, continue to load |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2801 |
if ( dataSources[ 0 ] && popcornMedia[ data[ 0 ] ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2802 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2803 |
// Set up the media and load in the datasources |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2804 |
popcornMedia[ data[ 0 ] ]( data[ 1 ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2805 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2806 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2807 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2808 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2809 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2810 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2811 |
// Only play the media if it was specified to do so |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2812 |
if ( !!popcornMedia.autoplay() ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2813 |
popcornMedia.play(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2814 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2815 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2816 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2817 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2818 |
}, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2819 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2820 |
})( Popcorn );(function( global, Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2821 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2822 |
var navigator = global.navigator; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2823 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2824 |
// Initialize locale data |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2825 |
// Based on http://en.wikipedia.org/wiki/Language_localisation#Language_tags_and_codes |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2826 |
function initLocale( arg ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2827 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2828 |
var locale = typeof arg === "string" ? arg : [ arg.language, arg.region ].join( "-" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2829 |
parts = locale.split( "-" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2830 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2831 |
// Setup locale data table |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2832 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2833 |
iso6391: locale, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2834 |
language: parts[ 0 ] || "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2835 |
region: parts[ 1 ] || "" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2836 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2837 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2838 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2839 |
// Declare locale data table |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2840 |
var localeData = initLocale( navigator.userLanguage || navigator.language ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2841 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2842 |
Popcorn.locale = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2843 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2844 |
// Popcorn.locale.get() |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2845 |
// returns reference to privately |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2846 |
// defined localeData |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2847 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2848 |
return localeData; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2849 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2850 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2851 |
// Popcorn.locale.set( string|object ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2852 |
set: function( arg ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2853 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2854 |
localeData = initLocale( arg ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2855 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2856 |
Popcorn.locale.broadcast(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2857 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2858 |
return localeData; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2859 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2860 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2861 |
// Popcorn.locale.broadcast( type ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2862 |
// Sends events to all popcorn media instances that are |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2863 |
// listening for locale events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2864 |
broadcast: function( type ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2865 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2866 |
var instances = Popcorn.instances, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2867 |
length = instances.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2868 |
idx = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2869 |
instance; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2870 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2871 |
type = type || "locale:changed"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2872 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2873 |
// Iterate all current instances |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2874 |
for ( ; idx < length; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2875 |
instance = instances[ idx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2876 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2877 |
// For those instances with locale event listeners, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2878 |
// trigger a locale change event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2879 |
if ( type in instance.data.events ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2880 |
instance.trigger( type ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2881 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2882 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2883 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2884 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2885 |
})( this, this.Popcorn );(function( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2886 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2887 |
var |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2888 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2889 |
AP = Array.prototype, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2890 |
OP = Object.prototype, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2891 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2892 |
forEach = AP.forEach, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2893 |
slice = AP.slice, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2894 |
hasOwn = OP.hasOwnProperty, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2895 |
toString = OP.toString; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2896 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2897 |
// stores parsers keyed on filetype |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2898 |
Popcorn.parsers = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2899 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2900 |
// An interface for extending Popcorn |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2901 |
// with parser functionality |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2902 |
Popcorn.parser = function( name, type, definition ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2903 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2904 |
if ( Popcorn.protect.natives.indexOf( name.toLowerCase() ) >= 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2905 |
Popcorn.error( "'" + name + "' is a protected function name" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2906 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2907 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2908 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2909 |
// fixes parameters for overloaded function call |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2910 |
if ( typeof type === "function" && !definition ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2911 |
definition = type; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2912 |
type = ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2913 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2914 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2915 |
if ( typeof definition !== "function" || typeof type !== "string" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2916 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2917 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2918 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2919 |
// Provides some sugar, but ultimately extends |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2920 |
// the definition into Popcorn.p |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2921 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2922 |
var natives = Popcorn.events.all, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2923 |
parseFn, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2924 |
parser = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2925 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2926 |
parseFn = function( filename, callback ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2927 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2928 |
if ( !filename ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2929 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2930 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2931 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2932 |
var that = this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2933 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2934 |
Popcorn.xhr({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2935 |
url: filename, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2936 |
dataType: type, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2937 |
success: function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2938 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2939 |
var tracksObject = definition( data ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2940 |
tracksData, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2941 |
tracksDataLen, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2942 |
tracksDef, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2943 |
idx = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2944 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2945 |
tracksData = tracksObject.data || []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2946 |
tracksDataLen = tracksData.length; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2947 |
tracksDef = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2948 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2949 |
// If no tracks to process, return immediately |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2950 |
if ( !tracksDataLen ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2951 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2952 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2953 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2954 |
// Create tracks out of parsed object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2955 |
for ( ; idx < tracksDataLen; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2956 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2957 |
tracksDef = tracksData[ idx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2958 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2959 |
for ( var key in tracksDef ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2960 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2961 |
if ( hasOwn.call( tracksDef, key ) && !!that[ key ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2962 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2963 |
that[ key ]( tracksDef[ key ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2964 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2965 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2966 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2967 |
if ( callback ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2968 |
callback(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2969 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2970 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2971 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2972 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2973 |
return this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2974 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2975 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2976 |
// Assign new named definition |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2977 |
parser[ name ] = parseFn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2978 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2979 |
// Extend Popcorn.p with new named definition |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2980 |
Popcorn.extend( Popcorn.p, parser ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2981 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2982 |
// keys the function name by filetype extension |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2983 |
//Popcorn.parsers[ name ] = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2984 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2985 |
return parser; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2986 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2987 |
})( Popcorn );(function( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2988 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2989 |
// combines calls of two function calls into one |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2990 |
var combineFn = function( first, second ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2991 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2992 |
first = first || Popcorn.nop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2993 |
second = second || Popcorn.nop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2994 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2995 |
return function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2996 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2997 |
first.apply( this, arguments ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2998 |
second.apply( this, arguments ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
2999 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3000 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3001 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3002 |
// ID string matching |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3003 |
var rIdExp = /^(#([\w\-\_\.]+))$/; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3004 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3005 |
var audioExtensions = "ogg|oga|aac|mp3|wav", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3006 |
videoExtensions = "ogg|ogv|mp4|webm", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3007 |
mediaExtensions = audioExtensions + "|" + videoExtensions; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3008 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3009 |
var audioExtensionRegexp = new RegExp( "^.*\\.(" + audioExtensions + ")($|\\?)" ),
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3010 |
mediaExtensionRegexp = new RegExp( "^.*\\.(" + mediaExtensions + ")($|\\?)" );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3011 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3012 |
Popcorn.player = function( name, player ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3013 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3014 |
// return early if a player already exists under this name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3015 |
if ( Popcorn[ name ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3016 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3017 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3018 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3019 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3020 |
player = player || {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3021 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3022 |
var playerFn = function( target, src, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3023 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3024 |
options = options || {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3025 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3026 |
// List of events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3027 |
var date = new Date() / 1000, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3028 |
baselineTime = date, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3029 |
currentTime = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3030 |
readyState = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3031 |
volume = 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3032 |
muted = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3033 |
events = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3034 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3035 |
// The container div of the resource |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3036 |
container = typeof target === "string" ? Popcorn.dom.find( target ) : target, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3037 |
basePlayer = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3038 |
timeout, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3039 |
popcorn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3040 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3041 |
if ( !Object.prototype.__defineGetter__ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3042 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3043 |
basePlayer = container || document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3044 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3045 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3046 |
// copies a div into the media object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3047 |
for( var val in container ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3048 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3049 |
// don't copy properties if using container as baseplayer |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3050 |
if ( val in basePlayer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3051 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3052 |
continue; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3053 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3054 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3055 |
if ( typeof container[ val ] === "object" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3056 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3057 |
basePlayer[ val ] = container[ val ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3058 |
} else if ( typeof container[ val ] === "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3059 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3060 |
basePlayer[ val ] = (function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3061 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3062 |
// this is a stupid ugly kludgy hack in honour of Safari |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3063 |
// in Safari a NodeList is a function, not an object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3064 |
if ( "length" in container[ value ] && !container[ value ].call ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3065 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3066 |
return container[ value ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3067 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3068 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3069 |
return function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3070 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3071 |
return container[ value ].apply( container, arguments ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3072 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3073 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3074 |
}( val )); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3075 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3076 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3077 |
Popcorn.player.defineProperty( basePlayer, val, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3078 |
get: (function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3079 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3080 |
return function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3081 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3082 |
return container[ value ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3083 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3084 |
}( val )), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3085 |
set: Popcorn.nop, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3086 |
configurable: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3087 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3088 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3089 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3090 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3091 |
var timeupdate = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3092 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3093 |
date = new Date() / 1000; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3094 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3095 |
if ( !basePlayer.paused ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3096 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3097 |
basePlayer.currentTime = basePlayer.currentTime + ( date - baselineTime ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3098 |
basePlayer.dispatchEvent( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3099 |
timeout = setTimeout( timeupdate, 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3100 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3101 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3102 |
baselineTime = date; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3103 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3104 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3105 |
basePlayer.play = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3106 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3107 |
this.paused = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3108 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3109 |
if ( basePlayer.readyState >= 4 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3110 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3111 |
baselineTime = new Date() / 1000; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3112 |
basePlayer.dispatchEvent( "play" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3113 |
timeupdate(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3114 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3115 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3116 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3117 |
basePlayer.pause = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3118 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3119 |
this.paused = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3120 |
basePlayer.dispatchEvent( "pause" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3121 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3122 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3123 |
Popcorn.player.defineProperty( basePlayer, "currentTime", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3124 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3125 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3126 |
return currentTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3127 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3128 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3129 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3130 |
// make sure val is a number |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3131 |
currentTime = +val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3132 |
basePlayer.dispatchEvent( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3133 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3134 |
return currentTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3135 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3136 |
configurable: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3137 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3138 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3139 |
Popcorn.player.defineProperty( basePlayer, "volume", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3140 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3141 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3142 |
return volume; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3143 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3144 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3145 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3146 |
// make sure val is a number |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3147 |
volume = +val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3148 |
basePlayer.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3149 |
return volume; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3150 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3151 |
configurable: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3152 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3153 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3154 |
Popcorn.player.defineProperty( basePlayer, "muted", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3155 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3156 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3157 |
return muted; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3158 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3159 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3160 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3161 |
// make sure val is a number |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3162 |
muted = +val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3163 |
basePlayer.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3164 |
return muted; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3165 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3166 |
configurable: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3167 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3168 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3169 |
Popcorn.player.defineProperty( basePlayer, "readyState", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3170 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3171 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3172 |
return readyState; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3173 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3174 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3175 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3176 |
readyState = val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3177 |
return readyState; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3178 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3179 |
configurable: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3180 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3181 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3182 |
// Adds an event listener to the object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3183 |
basePlayer.addEventListener = function( evtName, fn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3184 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3185 |
if ( !events[ evtName ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3186 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3187 |
events[ evtName ] = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3188 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3189 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3190 |
events[ evtName ].push( fn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3191 |
return fn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3192 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3193 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3194 |
// Removes an event listener from the object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3195 |
basePlayer.removeEventListener = function( evtName, fn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3196 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3197 |
var i, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3198 |
listeners = events[ evtName ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3199 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3200 |
if ( !listeners ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3201 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3202 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3203 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3204 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3205 |
// walk backwards so we can safely splice |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3206 |
for ( i = events[ evtName ].length - 1; i >= 0; i-- ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3207 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3208 |
if( fn === listeners[ i ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3209 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3210 |
listeners.splice(i, 1); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3211 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3212 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3213 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3214 |
return fn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3215 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3216 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3217 |
// Can take event object or simple string |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3218 |
basePlayer.dispatchEvent = function( oEvent ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3219 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3220 |
var evt, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3221 |
self = this, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3222 |
eventInterface, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3223 |
eventName = oEvent.type; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3224 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3225 |
// A string was passed, create event object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3226 |
if ( !eventName ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3227 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3228 |
eventName = oEvent; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3229 |
eventInterface = Popcorn.events.getInterface( eventName ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3230 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3231 |
if ( eventInterface ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3232 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3233 |
evt = document.createEvent( eventInterface ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3234 |
evt.initEvent( eventName, true, true, window, 1 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3235 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3236 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3237 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3238 |
if ( events[ eventName ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3239 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3240 |
for ( var i = events[ eventName ].length - 1; i >= 0; i-- ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3241 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3242 |
events[ eventName ][ i ].call( self, evt, self ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3243 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3244 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3245 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3246 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3247 |
// Attempt to get src from playerFn parameter |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3248 |
basePlayer.src = src || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3249 |
basePlayer.duration = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3250 |
basePlayer.paused = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3251 |
basePlayer.ended = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3252 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3253 |
options && options.events && Popcorn.forEach( options.events, function( val, key ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3254 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3255 |
basePlayer.addEventListener( key, val, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3256 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3257 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3258 |
// true and undefined returns on canPlayType means we should attempt to use it, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3259 |
// false means we cannot play this type |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3260 |
if ( player._canPlayType( container.nodeName, src ) !== false ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3261 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3262 |
if ( player._setup ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3263 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3264 |
player._setup.call( basePlayer, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3265 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3266 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3267 |
// there is no setup, which means there is nothing to load |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3268 |
basePlayer.readyState = 4; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3269 |
basePlayer.dispatchEvent( "loadedmetadata" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3270 |
basePlayer.dispatchEvent( "loadeddata" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3271 |
basePlayer.dispatchEvent( "canplaythrough" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3272 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3273 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3274 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3275 |
// Asynchronous so that users can catch this event |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3276 |
setTimeout( function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3277 |
basePlayer.dispatchEvent( "error" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3278 |
}, 0 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3279 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3280 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3281 |
popcorn = new Popcorn.p.init( basePlayer, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3282 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3283 |
if ( player._teardown ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3284 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3285 |
popcorn.destroy = combineFn( popcorn.destroy, function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3286 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3287 |
player._teardown.call( basePlayer, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3288 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3289 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3290 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3291 |
return popcorn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3292 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3293 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3294 |
playerFn.canPlayType = player._canPlayType = player._canPlayType || Popcorn.nop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3295 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3296 |
Popcorn[ name ] = Popcorn.player.registry[ name ] = playerFn; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3297 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3298 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3299 |
Popcorn.player.registry = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3300 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3301 |
Popcorn.player.defineProperty = Object.defineProperty || function( object, description, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3302 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3303 |
object.__defineGetter__( description, options.get || Popcorn.nop ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3304 |
object.__defineSetter__( description, options.set || Popcorn.nop ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3305 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3306 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3307 |
// player queue is to help players queue things like play and pause |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3308 |
// HTML5 video's play and pause are asynch, but do fire in sequence |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3309 |
// play() should really mean "requestPlay()" or "queuePlay()" and |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3310 |
// stash a callback that will play the media resource when it's ready to be played |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3311 |
Popcorn.player.playerQueue = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3312 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3313 |
var _queue = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3314 |
_running = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3315 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3316 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3317 |
next: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3318 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3319 |
_running = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3320 |
_queue.shift(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3321 |
_queue[ 0 ] && _queue[ 0 ](); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3322 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3323 |
add: function( callback ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3324 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3325 |
_queue.push(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3326 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3327 |
_running = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3328 |
callback && callback(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3329 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3330 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3331 |
// if there is only one item on the queue, start it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3332 |
!_running && _queue[ 0 ](); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3333 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3334 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3335 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3336 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3337 |
// smart will attempt to find you a match, if it does not find a match, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3338 |
// it will attempt to create a video element with the source, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3339 |
// if that failed, it will throw. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3340 |
Popcorn.smart = function( target, src, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3341 |
var playerType, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3342 |
elementTypes = [ "AUDIO", "VIDEO" ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3343 |
sourceNode, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3344 |
firstSrc, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3345 |
node = Popcorn.dom.find( target ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3346 |
i, srcResult, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3347 |
canPlayTypeTester = document.createElement( "video" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3348 |
canPlayTypes = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3349 |
"ogg": "video/ogg", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3350 |
"ogv": "video/ogg", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3351 |
"oga": "audio/ogg", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3352 |
"webm": "video/webm", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3353 |
"mp4": "video/mp4", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3354 |
"mp3": "audio/mp3" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3355 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3356 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3357 |
var canPlayType = function( type ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3358 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3359 |
return canPlayTypeTester.canPlayType( canPlayTypes[ type ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3360 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3361 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3362 |
var canPlaySrc = function( src ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3363 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3364 |
srcResult = mediaExtensionRegexp.exec( src ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3365 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3366 |
if ( !srcResult || !srcResult[ 1 ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3367 |
return false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3368 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3369 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3370 |
return canPlayType( srcResult[ 1 ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3371 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3372 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3373 |
if ( !node ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3374 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3375 |
Popcorn.error( "Specified target " + target + " was not found." ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3376 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3377 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3378 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3379 |
// For when no src is defined. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3380 |
// Usually this is a video element with a src already on it. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3381 |
if ( elementTypes.indexOf( node.nodeName ) > -1 && !src ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3382 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3383 |
if ( typeof src === "object" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3384 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3385 |
options = src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3386 |
src = undefined; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3387 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3388 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3389 |
return Popcorn( node, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3390 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3391 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3392 |
// if our src is not an array, create an array of one. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3393 |
if ( typeof( src ) === "string" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3394 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3395 |
src = [ src ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3396 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3397 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3398 |
// go through each src, and find the first playable. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3399 |
// this only covers player sources popcorn knows of, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3400 |
// and not things like a youtube src that is private. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3401 |
// it will still consider a private youtube video to be playable. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3402 |
for ( i = 0, srcLength = src.length; i < srcLength; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3403 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3404 |
// src is a playable HTML5 video, we don't need to check custom players. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3405 |
if ( canPlaySrc( src[ i ] ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3406 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3407 |
src = src[ i ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3408 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3409 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3410 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3411 |
// for now we loop through and use the first valid player we find. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3412 |
for ( var key in Popcorn.player.registry ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3413 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3414 |
if ( Popcorn.player.registry.hasOwnProperty( key ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3415 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3416 |
if ( Popcorn.player.registry[ key ].canPlayType( node.nodeName, src[ i ] ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3417 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3418 |
// Popcorn.smart( player, src, /* options */ ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3419 |
return Popcorn[ key ]( node, src[ i ], options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3420 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3421 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3422 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3423 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3424 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3425 |
// Popcorn.smart( div, src, /* options */ ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3426 |
// attempting to create a video in a container |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3427 |
if ( elementTypes.indexOf( node.nodeName ) === -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3428 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3429 |
firstSrc = typeof( src ) === "string" ? src : src.length ? src[ 0 ] : src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3430 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3431 |
target = document.createElement( !!audioExtensionRegexp.exec( firstSrc ) ? elementTypes[ 0 ] : elementTypes[ 1 ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3432 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3433 |
// Controls are defaulted to being present |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3434 |
target.controls = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3435 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3436 |
node.appendChild( target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3437 |
node = target; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3438 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3439 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3440 |
options && options.events && options.events.error && node.addEventListener( "error", options.events.error, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3441 |
node.src = src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3442 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3443 |
return Popcorn( node, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3444 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3445 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3446 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3447 |
// PLUGIN: mediaspawner |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3448 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3449 |
* mediaspawner Popcorn Plugin. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3450 |
* Adds Video/Audio to the page using Popcorns players |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3451 |
* Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3452 |
* End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3453 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3454 |
* @param {HTML} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3455 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3456 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3457 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3458 |
.mediaspawner( {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3459 |
source: "http://www.youtube.com/watch?v=bUB1L3zGVvc", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3460 |
target: "mediaspawnerdiv", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3461 |
start: 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3462 |
end: 10, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3463 |
caption: "This is a test. We are assuming conrol. We are assuming control." |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3464 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3465 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3466 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3467 |
(function ( Popcorn, global ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3468 |
var PLAYER_URL = "http://popcornjs.org/code/modules/player/popcorn.player.js", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3469 |
urlRegex = /(?:http:\/\/www\.|http:\/\/|www\.|\.|^)(youtu|vimeo|soundcloud|baseplayer)/, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3470 |
forEachPlayer, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3471 |
playerTypeLoading = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3472 |
playerTypesLoaded = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3473 |
"vimeo": false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3474 |
"youtube": false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3475 |
"soundcloud": false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3476 |
"module": false |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3477 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3478 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3479 |
Object.defineProperty( playerTypeLoading, forEachPlayer, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3480 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3481 |
return playerTypesLoaded[ forEachPlayer ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3482 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3483 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3484 |
playerTypesLoaded[ forEachPlayer ] = val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3485 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3486 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3487 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3488 |
Popcorn.plugin( "mediaspawner", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3489 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3490 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3491 |
name: "Popcorn Media Spawner Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3492 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3493 |
author: "Matthew Schranz, @mjschranz", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3494 |
website: "mschranz.wordpress.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3495 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3496 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3497 |
source: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3498 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3499 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3500 |
label: "Media Source", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3501 |
"default": "http://www.youtube.com/watch?v=CXDstfD9eJ0" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3502 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3503 |
caption: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3504 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3505 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3506 |
label: "Media Caption", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3507 |
"default": "Popcorn Popping", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3508 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3509 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3510 |
target: "mediaspawner-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3511 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3512 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3513 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3514 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3515 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3516 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3517 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3518 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3519 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3520 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3521 |
autoplay: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3522 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3523 |
type: "checkbox", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3524 |
label: "Autoplay Video", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3525 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3526 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3527 |
width: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3528 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3529 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3530 |
label: "Media Width", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3531 |
"default": 400, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3532 |
units: "px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3533 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3534 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3535 |
height: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3536 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3537 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3538 |
label: "Media Height", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3539 |
"default": 200, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3540 |
units: "px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3541 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3542 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3543 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3544 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3545 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3546 |
var target = document.getElementById( options.target ) || {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3547 |
mediaType, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3548 |
container, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3549 |
capContainer, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3550 |
regexResult; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3551 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3552 |
regexResult = urlRegex.exec( options.source ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3553 |
if ( regexResult ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3554 |
mediaType = regexResult[ 1 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3555 |
// our regex only handles youtu ( incase the url looks something like youtu.be ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3556 |
if ( mediaType === "youtu" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3557 |
mediaType = "youtube"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3558 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3559 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3560 |
else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3561 |
// if the regex didn't return anything we know it's an HTML5 source |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3562 |
mediaType = "HTML5"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3563 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3564 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3565 |
// Store Reference to Type for use in end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3566 |
options._type = mediaType; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3567 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3568 |
// Create separate container for plugin |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3569 |
options._container = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3570 |
container = options._container; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3571 |
container.id = "mediaSpawnerdiv-" + Popcorn.guid(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3572 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3573 |
// Default width and height of media |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3574 |
options.width = options.width || 400; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3575 |
options.height = options.height || 200; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3576 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3577 |
// Captions now need to be in their own container, due to the problem with flash players |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3578 |
// described in start/end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3579 |
if ( options.caption ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3580 |
capContainer = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3581 |
capContainer.innerHTML = options.caption; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3582 |
capContainer.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3583 |
options._capCont = capContainer; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3584 |
container.appendChild( capContainer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3585 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3586 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3587 |
target && target.appendChild( container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3588 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3589 |
function constructMedia(){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3590 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3591 |
function checkPlayerTypeLoaded() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3592 |
if ( mediaType !== "HTML5" && !window.Popcorn[ mediaType ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3593 |
setTimeout( function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3594 |
checkPlayerTypeLoaded(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3595 |
}, 300 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3596 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3597 |
options.id = options._container.id; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3598 |
// Set the width/height of the container before calling Popcorn.smart |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3599 |
// Allows youtube to pickup on the specified height an create the player |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3600 |
// with specified dimensions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3601 |
options._container.style.width = options.width + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3602 |
options._container.style.height = options.height + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3603 |
options.popcorn = Popcorn.smart( "#" + options.id, options.source ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3604 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3605 |
if ( mediaType === "HTML5" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3606 |
options.popcorn.controls( true ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3607 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3608 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3609 |
// Set them to 0 now so it is hidden |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3610 |
options._container.style.width = "0px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3611 |
options._container.style.height = "0px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3612 |
options._container.style.visibility = "hidden"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3613 |
options._container.style.overflow = "hidden"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3614 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3615 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3616 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3617 |
if ( mediaType !== "HTML5" && !window.Popcorn[ mediaType ] && !playerTypeLoading[ mediaType ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3618 |
playerTypeLoading[ mediaType ] = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3619 |
Popcorn.getScript( "http://popcornjs.org/code/players/" + mediaType + "/popcorn." + mediaType + ".js", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3620 |
checkPlayerTypeLoaded(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3621 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3622 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3623 |
else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3624 |
checkPlayerTypeLoaded(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3625 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3626 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3627 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3628 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3629 |
// If Player script needed to be loaded, keep checking until it is and then fire readycallback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3630 |
function isPlayerReady() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3631 |
if ( !window.Popcorn.player ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3632 |
setTimeout( function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3633 |
isPlayerReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3634 |
}, 300 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3635 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3636 |
constructMedia(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3637 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3638 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3639 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3640 |
// If player script isn't present, retrieve script |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3641 |
if ( !window.Popcorn.player && !playerTypeLoading.module ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3642 |
playerTypeLoading.module = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3643 |
Popcorn.getScript( PLAYER_URL, isPlayerReady ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3644 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3645 |
isPlayerReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3646 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3647 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3648 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3649 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3650 |
if( options._capCont ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3651 |
options._capCont.style.display = ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3652 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3653 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3654 |
/* Using this style for Start/End is required because of the flash players |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3655 |
* Without it on end an internal cleanup is called, causing the flash players |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3656 |
* to be out of sync with Popcorn, as they are then rebuilt. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3657 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3658 |
options._container.style.width = options.width + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3659 |
options._container.style.height = options.height + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3660 |
options._container.style.visibility = "visible"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3661 |
options._container.style.overflow = "visible"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3662 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3663 |
if ( options.autoplay ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3664 |
options.popcorn.play(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3665 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3666 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3667 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3668 |
if( options._capCont ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3669 |
options._capCont.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3670 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3671 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3672 |
/* Using this style for Start/End is required because of the flash players |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3673 |
* Without it on end an internal cleanup is called, causing the flash players |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3674 |
* to be out of sync with Popcorn, as they are then rebuilt. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3675 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3676 |
options._container.style.width = "0px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3677 |
options._container.style.height = "0px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3678 |
options._container.style.visibility = "hidden"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3679 |
options._container.style.overflow = "hidden"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3680 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3681 |
// Pause all popcorn instances on exit |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3682 |
options.popcorn.pause(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3683 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3684 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3685 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3686 |
if ( options.popcorn && options.popcorn.destory ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3687 |
options.popcorn.destroy(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3688 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3689 |
document.getElementById( options.target ) && document.getElementById( options.target ).removeChild( options._container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3690 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3691 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3692 |
})( Popcorn, this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3693 |
// PLUGIN: Code |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3694 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3695 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3696 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3697 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3698 |
* Code Popcorn Plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3699 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3700 |
* Adds the ability to run arbitrary code (JavaScript functions) according to video timing. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3701 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3702 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3703 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3704 |
* Required parameters: start, end, template, data, and target. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3705 |
* Optional parameter: static. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3706 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3707 |
* start: the time in seconds when the mustache template should be rendered |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3708 |
* in the target div. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3709 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3710 |
* end: the time in seconds when the rendered mustache template should be |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3711 |
* removed from the target div. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3712 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3713 |
* onStart: the function to be run when the start time is reached. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3714 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3715 |
* onFrame: [optional] a function to be run on each paint call |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3716 |
* (e.g., called ~60 times per second) between the start and end times. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3717 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3718 |
* onEnd: [optional] a function to be run when the end time is reached. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3719 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3720 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3721 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3722 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3723 |
// onStart function only |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3724 |
.code({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3725 |
start: 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3726 |
end: 4, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3727 |
onStart: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3728 |
// called on start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3729 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3730 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3731 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3732 |
// onStart + onEnd only |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3733 |
.code({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3734 |
start: 6, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3735 |
end: 8, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3736 |
onStart: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3737 |
// called on start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3738 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3739 |
onEnd: function ( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3740 |
// called on end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3741 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3742 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3743 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3744 |
// onStart, onEnd, onFrame |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3745 |
.code({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3746 |
start: 10, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3747 |
end: 14, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3748 |
onStart: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3749 |
// called on start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3750 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3751 |
onFrame: function ( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3752 |
// called on every paint frame between start and end. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3753 |
// uses mozRequestAnimationFrame, webkitRequestAnimationFrame, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3754 |
// or setTimeout with 16ms window. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3755 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3756 |
onEnd: function ( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3757 |
// called on end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3758 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3759 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3760 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3761 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3762 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3763 |
Popcorn.plugin( "code" , function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3764 |
var running = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3765 |
instance = this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3766 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3767 |
// Setup a proper frame interval function (60fps), favouring paint events. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3768 |
var step = (function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3769 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3770 |
var buildFrameRunner = function( runner ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3771 |
return function( f, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3772 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3773 |
var _f = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3774 |
running && f.call( instance, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3775 |
running && runner( _f ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3776 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3777 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3778 |
_f(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3779 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3780 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3781 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3782 |
// Figure out which level of browser support we have for this |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3783 |
if ( window.webkitRequestAnimationFrame ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3784 |
return buildFrameRunner( window.webkitRequestAnimationFrame ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3785 |
} else if ( window.mozRequestAnimationFrame ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3786 |
return buildFrameRunner( window.mozRequestAnimationFrame ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3787 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3788 |
return buildFrameRunner( function( f ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3789 |
window.setTimeout( f, 16 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3790 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3791 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3792 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3793 |
})(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3794 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3795 |
if ( !options.onStart || typeof options.onStart !== "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3796 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3797 |
options.onStart = Popcorn.nop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3798 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3799 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3800 |
if ( options.onEnd && typeof options.onEnd !== "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3801 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3802 |
options.onEnd = undefined; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3803 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3804 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3805 |
if ( options.onFrame && typeof options.onFrame !== "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3806 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3807 |
options.onFrame = undefined; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3808 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3809 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3810 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3811 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3812 |
options.onStart.call( instance, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3813 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3814 |
if ( options.onFrame ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3815 |
running = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3816 |
step( options.onFrame, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3817 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3818 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3819 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3820 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3821 |
if ( options.onFrame ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3822 |
running = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3823 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3824 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3825 |
if ( options.onEnd ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3826 |
options.onEnd.call( instance, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3827 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3828 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3829 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3830 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3831 |
{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3832 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3833 |
name: "Popcorn Code Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3834 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3835 |
author: "David Humphrey (@humphd)", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3836 |
website: "http://vocamus.net/dave" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3837 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3838 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3839 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3840 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3841 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3842 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3843 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3844 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3845 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3846 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3847 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3848 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3849 |
onStart: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3850 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3851 |
type: "function", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3852 |
label: "onStart" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3853 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3854 |
onFrame: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3855 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3856 |
type: "function", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3857 |
label: "onFrame", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3858 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3859 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3860 |
onEnd: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3861 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3862 |
type: "function", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3863 |
label: "onEnd" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3864 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3865 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3866 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3867 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3868 |
// PLUGIN: Flickr |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3869 |
(function (Popcorn) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3870 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3871 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3872 |
* Flickr popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3873 |
* Appends a users Flickr images to an element on the page. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3874 |
* Options parameter will need a start, end, target and userid or username and api_key. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3875 |
* Optional parameters are numberofimages, height, width, padding, and border |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3876 |
* Start is the time that you want this plug-in to execute (in seconds) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3877 |
* End is the time that you want this plug-in to stop executing (in seconds) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3878 |
* Userid is the id of who's Flickr images you wish to show |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3879 |
* Tags is a mutually exclusive list of image descriptor tags |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3880 |
* Username is the username of who's Flickr images you wish to show |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3881 |
* using both userid and username is redundant |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3882 |
* an api_key is required when using username |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3883 |
* Apikey is your own api key provided by Flickr |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3884 |
* Target is the id of the document element that the images are |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3885 |
* appended to, this target element must exist on the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3886 |
* Numberofimages specify the number of images to retreive from flickr, defaults to 4 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3887 |
* Height the height of the image, defaults to '50px' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3888 |
* Width the width of the image, defaults to '50px' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3889 |
* Padding number of pixels between images, defaults to '5px' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3890 |
* Border border size in pixels around images, defaults to '0px' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3891 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3892 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3893 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3894 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3895 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3896 |
.flickr({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3897 |
start: 5, // seconds, mandatory |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3898 |
end: 15, // seconds, mandatory |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3899 |
userid: '35034346917@N01', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3900 |
tags: 'dogs,cats', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3901 |
numberofimages: '8', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3902 |
height: '50px', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3903 |
width: '50px', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3904 |
padding: '5px', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3905 |
border: '0px', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3906 |
target: 'flickrdiv' // mandatory |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3907 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3908 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3909 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3910 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3911 |
var idx = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3912 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3913 |
Popcorn.plugin( "flickr" , function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3914 |
var containerDiv, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3915 |
target = document.getElementById( options.target ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3916 |
_userid, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3917 |
_uri, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3918 |
_link, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3919 |
_image, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3920 |
_count = options.numberofimages || 4, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3921 |
_height = options.height || "50px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3922 |
_width = options.width || "50px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3923 |
_padding = options.padding || "5px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3924 |
_border = options.border || "0px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3925 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3926 |
// create a new div this way anything in the target div is left intact |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3927 |
// this is later populated with Flickr images |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3928 |
containerDiv = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3929 |
containerDiv.id = "flickr" + idx; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3930 |
containerDiv.style.width = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3931 |
containerDiv.style.height = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3932 |
containerDiv.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3933 |
idx++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3934 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3935 |
target && target.appendChild( containerDiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3936 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3937 |
// get the userid from Flickr API by using the username and apikey |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3938 |
var isUserIDReady = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3939 |
if ( !_userid ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3940 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3941 |
_uri = "http://api.flickr.com/services/rest/?method=flickr.people.findByUsername&"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3942 |
_uri += "username=" + options.username + "&api_key=" + options.apikey + "&format=json&jsoncallback=flickr"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3943 |
Popcorn.getJSONP( _uri, function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3944 |
_userid = data.user.nsid; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3945 |
getFlickrData(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3946 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3947 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3948 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3949 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3950 |
setTimeout(function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3951 |
isUserIDReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3952 |
}, 5 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3953 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3954 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3955 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3956 |
// get the photos from Flickr API by using the user_id and/or tags |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3957 |
var getFlickrData = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3958 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3959 |
_uri = "http://api.flickr.com/services/feeds/photos_public.gne?"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3960 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3961 |
if ( _userid ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3962 |
_uri += "id=" + _userid + "&"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3963 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3964 |
if ( options.tags ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3965 |
_uri += "tags=" + options.tags + "&"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3966 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3967 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3968 |
_uri += "lang=en-us&format=json&jsoncallback=flickr"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3969 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3970 |
Popcorn.xhr.getJSONP( _uri, function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3971 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3972 |
var fragment = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3973 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3974 |
fragment.innerHTML = "<p style='padding:" + _padding + ";'>" + data.title + "<p/>"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3975 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3976 |
Popcorn.forEach( data.items, function ( item, i ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3977 |
if ( i < _count ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3978 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3979 |
_link = document.createElement( "a" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3980 |
_link.setAttribute( "href", item.link ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3981 |
_link.setAttribute( "target", "_blank" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3982 |
_image = document.createElement( "img" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3983 |
_image.setAttribute( "src", item.media.m ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3984 |
_image.setAttribute( "height",_height ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3985 |
_image.setAttribute( "width", _width ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3986 |
_image.setAttribute( "style", "border:" + _border + ";padding:" + _padding ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3987 |
_link.appendChild( _image ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3988 |
fragment.appendChild( _link ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3989 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3990 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3991 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3992 |
return false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3993 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3994 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3995 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3996 |
containerDiv.appendChild( fragment ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3997 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3998 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
3999 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4000 |
if ( options.username && options.apikey ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4001 |
isUserIDReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4002 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4003 |
else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4004 |
_userid = options.userid; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4005 |
getFlickrData(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4006 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4007 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4008 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4009 |
* @member flickr |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4010 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4011 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4012 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4013 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4014 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4015 |
containerDiv.style.display = "inline"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4016 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4017 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4018 |
* @member flickr |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4019 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4020 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4021 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4022 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4023 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4024 |
containerDiv.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4025 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4026 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4027 |
document.getElementById( options.target ) && document.getElementById( options.target ).removeChild( containerDiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4028 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4029 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4030 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4031 |
{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4032 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4033 |
name: "Popcorn Flickr Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4034 |
version: "0.2", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4035 |
author: "Scott Downe, Steven Weerdenburg, Annasob", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4036 |
website: "http://scottdowne.wordpress.com/" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4037 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4038 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4039 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4040 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4041 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4042 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4043 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4044 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4045 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4046 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4047 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4048 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4049 |
userid: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4050 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4051 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4052 |
label: "User ID", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4053 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4054 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4055 |
tags: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4056 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4057 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4058 |
label: "Tags" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4059 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4060 |
username: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4061 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4062 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4063 |
label: "Username", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4064 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4065 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4066 |
apikey: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4067 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4068 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4069 |
label: "API Key", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4070 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4071 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4072 |
target: "flickr-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4073 |
height: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4074 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4075 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4076 |
label: "Height", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4077 |
"default": "50px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4078 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4079 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4080 |
width: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4081 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4082 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4083 |
label: "Width", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4084 |
"default": "50px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4085 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4086 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4087 |
padding: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4088 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4089 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4090 |
label: "Padding", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4091 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4092 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4093 |
border: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4094 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4095 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4096 |
label: "Border", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4097 |
"default": "5px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4098 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4099 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4100 |
numberofimages: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4101 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4102 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4103 |
"default": 4, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4104 |
label: "Number of Images" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4105 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4106 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4107 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4108 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4109 |
// PLUGIN: Footnote/Text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4110 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4111 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4112 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4113 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4114 |
* Footnote popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4115 |
* Adds text to an element on the page. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4116 |
* Options parameter will need a start, end, target and text. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4117 |
* Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4118 |
* End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4119 |
* Text is the text that you want to appear in the target |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4120 |
* Target is the id of the document element that the text needs to be |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4121 |
* attached to, this target element must exist on the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4122 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4123 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4124 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4125 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4126 |
* var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4127 |
* .footnote({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4128 |
* start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4129 |
* end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4130 |
* text: 'This video made exclusively for drumbeat.org', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4131 |
* target: 'footnotediv' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4132 |
* }); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4133 |
**/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4134 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4135 |
Popcorn.plugin( "footnote", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4136 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4137 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4138 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4139 |
name: "Popcorn Footnote Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4140 |
version: "0.2", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4141 |
author: "@annasob, @rwaldron", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4142 |
website: "annasob.wordpress.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4143 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4144 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4145 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4146 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4147 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4148 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4149 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4150 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4151 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4152 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4153 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4154 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4155 |
text: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4156 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4157 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4158 |
label: "Text" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4159 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4160 |
target: "footnote-container" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4161 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4162 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4163 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4164 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4165 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4166 |
var target = Popcorn.dom.find( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4167 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4168 |
options._container = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4169 |
options._container.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4170 |
options._container.innerHTML = options.text; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4171 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4172 |
target.appendChild( options._container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4173 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4174 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4175 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4176 |
* @member footnote |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4177 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4178 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4179 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4180 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4181 |
start: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4182 |
options._container.style.display = "inline"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4183 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4184 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4185 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4186 |
* @member footnote |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4187 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4188 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4189 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4190 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4191 |
end: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4192 |
options._container.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4193 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4194 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4195 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4196 |
var target = Popcorn.dom.find( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4197 |
if ( target ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4198 |
target.removeChild( options._container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4199 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4200 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4201 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4202 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4203 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4204 |
// PLUGIN: Text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4205 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4206 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4207 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4208 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4209 |
* Text Popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4210 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4211 |
* Places text in an element on the page. Plugin options include: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4212 |
* Options parameter will need a start, end. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4213 |
* Start: Is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4214 |
* End: Is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4215 |
* Text: Is the text that you want to appear in the target |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4216 |
* Escape: {true|false} Whether to escape the text (e.g., html strings)
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4217 |
* Multiline: {true|false} Whether newlines should be turned into <br>s
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4218 |
* Target: Is the ID of the element where the text should be placed. An empty target |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4219 |
* will be placed on top of the media element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4220 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4221 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4222 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4223 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4224 |
* var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4225 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4226 |
* // Simple text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4227 |
* .text({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4228 |
* start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4229 |
* end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4230 |
* text: 'This video made exclusively for drumbeat.org', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4231 |
* target: 'textdiv' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4232 |
* }) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4233 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4234 |
* // HTML text, rendered as HTML |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4235 |
* .text({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4236 |
* start: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4237 |
* end: 20, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4238 |
* text: '<p>This video made <em>exclusively</em> for drumbeat.org</p>', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4239 |
* target: 'textdiv' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4240 |
* }) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4241 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4242 |
* // HTML text, escaped and rendered as plain text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4243 |
* .text({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4244 |
* start: 20, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4245 |
* end: 25, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4246 |
* text: 'This is an HTML p element: <p>paragraph</p>', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4247 |
* escape: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4248 |
* target: 'textdiv' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4249 |
* }) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4250 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4251 |
* // Multi-Line HTML text, escaped and rendered as plain text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4252 |
* .text({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4253 |
* start: 25, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4254 |
* end: 30, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4255 |
* text: 'This is an HTML p element: <p>paragraph</p>\nThis is an HTML b element: <b>bold</b>', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4256 |
* escape: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4257 |
* multiline: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4258 |
* target: 'textdiv' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4259 |
* }); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4260 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4261 |
* // Subtitle text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4262 |
* .text({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4263 |
* start: 30, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4264 |
* end: 40, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4265 |
* text: 'This will be overlayed on the video', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4266 |
* }) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4267 |
**/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4268 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4269 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4270 |
* HTML escape code from mustache.js, used under MIT Licence |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4271 |
* https://github.com/janl/mustache.js/blob/master/mustache.js |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4272 |
**/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4273 |
var escapeMap = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4274 |
"&": "&", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4275 |
"<": "<", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4276 |
">": ">", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4277 |
'"': '"', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4278 |
"'": ''' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4279 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4280 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4281 |
function escapeHTML( string, multiline ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4282 |
return String( string ).replace( /&(?!\w+;)|[<>"']/g, function ( s ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4283 |
return escapeMap[ s ] || s; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4284 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4285 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4286 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4287 |
function newlineToBreak( string ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4288 |
// Deal with both \r\n and \n |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4289 |
return string.replace( /\r?\n/gm, "<br>" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4290 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4291 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4292 |
// Subtitle specific functionality |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4293 |
function createSubtitleContainer( context, id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4294 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4295 |
var ctxContainer = context.container = document.createElement( "div" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4296 |
style = ctxContainer.style, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4297 |
media = context.media; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4298 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4299 |
var updatePosition = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4300 |
var position = context.position(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4301 |
// the video element must have height and width defined |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4302 |
style.fontSize = "18px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4303 |
style.width = media.offsetWidth + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4304 |
style.top = position.top + media.offsetHeight - ctxContainer.offsetHeight - 40 + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4305 |
style.left = position.left + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4306 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4307 |
setTimeout( updatePosition, 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4308 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4309 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4310 |
ctxContainer.id = id || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4311 |
style.position = "absolute"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4312 |
style.color = "white"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4313 |
style.textShadow = "black 2px 2px 6px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4314 |
style.fontWeight = "bold"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4315 |
style.textAlign = "center"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4316 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4317 |
updatePosition(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4318 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4319 |
context.media.parentNode.appendChild( ctxContainer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4320 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4321 |
return ctxContainer; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4322 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4323 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4324 |
Popcorn.plugin( "text", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4325 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4326 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4327 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4328 |
name: "Popcorn Text Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4329 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4330 |
author: "@humphd" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4331 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4332 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4333 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4334 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4335 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4336 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4337 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4338 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4339 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4340 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4341 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4342 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4343 |
text: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4344 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4345 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4346 |
label: "Text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4347 |
"default": "Popcorn.js" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4348 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4349 |
escape: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4350 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4351 |
type: "checkbox", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4352 |
label: "Escape" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4353 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4354 |
multiline: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4355 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4356 |
type: "checkbox", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4357 |
label: "Multiline" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4358 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4359 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4360 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4361 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4362 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4363 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4364 |
var target, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4365 |
text, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4366 |
container = options._container = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4367 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4368 |
container.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4369 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4370 |
if ( options.target ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4371 |
// Try to use supplied target |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4372 |
target = Popcorn.dom.find( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4373 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4374 |
if ( !target ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4375 |
target = createSubtitleContainer( this, options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4376 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4377 |
else if ( [ "VIDEO", "AUDIO" ].indexOf( target.nodeName ) > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4378 |
target = createSubtitleContainer( this, options.target + "-overlay" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4379 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4380 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4381 |
} else if ( !this.container ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4382 |
// Creates a div for all subtitles to use |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4383 |
target = createSubtitleContainer( this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4384 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4385 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4386 |
// Use subtitle container |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4387 |
target = this.container; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4388 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4389 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4390 |
// cache reference to actual target container |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4391 |
options._target = target; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4392 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4393 |
// Escape HTML text if requested |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4394 |
text = !!options.escape ? escapeHTML( options.text ) : |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4395 |
options.text; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4396 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4397 |
// Swap newline for <br> if requested |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4398 |
text = !!options.multiline ? newlineToBreak ( text ) : text; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4399 |
container.innerHTML = text || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4400 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4401 |
target.appendChild( container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4402 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4403 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4404 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4405 |
* @member text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4406 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4407 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4408 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4409 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4410 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4411 |
options._container.style.display = "inline"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4412 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4413 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4414 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4415 |
* @member text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4416 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4417 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4418 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4419 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4420 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4421 |
options._container.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4422 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4423 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4424 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4425 |
var target = options._target; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4426 |
if ( target ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4427 |
target.removeChild( options._container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4428 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4429 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4430 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4431 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4432 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4433 |
// PLUGIN: Google Maps |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4434 |
var googleCallback; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4435 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4436 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4437 |
var i = 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4438 |
_mapFired = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4439 |
_mapLoaded = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4440 |
geocoder, loadMaps; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4441 |
//google api callback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4442 |
googleCallback = function ( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4443 |
// ensure all of the maps functions needed are loaded |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4444 |
// before setting _maploaded to true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4445 |
if ( typeof google !== "undefined" && google.maps && google.maps.Geocoder && google.maps.LatLng ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4446 |
geocoder = new google.maps.Geocoder(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4447 |
Popcorn.getScript( "//maps.stamen.com/js/tile.stamen.js", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4448 |
_mapLoaded = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4449 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4450 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4451 |
setTimeout(function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4452 |
googleCallback( data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4453 |
}, 1); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4454 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4455 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4456 |
// function that loads the google api |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4457 |
loadMaps = function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4458 |
// for some reason the Google Map API adds content to the body |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4459 |
if ( document.body ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4460 |
_mapFired = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4461 |
Popcorn.getScript( "//maps.google.com/maps/api/js?sensor=false&callback=googleCallback" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4462 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4463 |
setTimeout(function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4464 |
loadMaps(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4465 |
}, 1); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4466 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4467 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4468 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4469 |
function buildMap( options, location, mapDiv ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4470 |
var type = options.type ? options.type.toUpperCase() : "HYBRID", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4471 |
layer; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4472 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4473 |
// See if we need to make a custom Stamen map layer |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4474 |
if ( type === "STAMEN-WATERCOLOR" || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4475 |
type === "STAMEN-TERRAIN" || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4476 |
type === "STAMEN-TONER" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4477 |
// Stamen types are lowercase |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4478 |
layer = type.replace("STAMEN-", "").toLowerCase();
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4479 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4480 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4481 |
var map = new google.maps.Map( mapDiv, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4482 |
// If a custom layer was specified, use that, otherwise use type |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4483 |
mapTypeId: layer ? layer : google.maps.MapTypeId[ type ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4484 |
// Hide the layer selection UI |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4485 |
mapTypeControlOptions: { mapTypeIds: [] }
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4486 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4487 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4488 |
if ( layer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4489 |
map.mapTypes.set( layer, new google.maps.StamenMapType( layer )); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4490 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4491 |
map.getDiv().style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4492 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4493 |
return map; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4494 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4495 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4496 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4497 |
* googlemap popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4498 |
* Adds a map to the target div centered on the location specified by the user |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4499 |
* Options parameter will need a start, end, target, type, zoom, lat and lng, and location |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4500 |
* -Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4501 |
* -End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4502 |
* -Target is the id of the DOM element that you want the map to appear in. This element must be in the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4503 |
* -Type [optional] either: HYBRID (default), ROADMAP, SATELLITE, TERRAIN, STREETVIEW, or one of the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4504 |
* Stamen custom map types (http://http://maps.stamen.com): STAMEN-TONER, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4505 |
* STAMEN-WATERCOLOR, or STAMEN-TERRAIN. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4506 |
* -Zoom [optional] defaults to 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4507 |
* -Heading [optional] STREETVIEW orientation of camera in degrees relative to true north (0 north, 90 true east, ect) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4508 |
* -Pitch [optional] STREETVIEW vertical orientation of the camera (between 1 and 3 is recommended) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4509 |
* -Lat and Lng: the coordinates of the map must be present if location is not specified. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4510 |
* -Height [optional] the height of the map, in "px" or "%". Defaults to "100%". |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4511 |
* -Width [optional] the width of the map, in "px" or "%". Defaults to "100%". |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4512 |
* -Location: the adress you want the map to display, must be present if lat and lng are not specified. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4513 |
* Note: using location requires extra loading time, also not specifying both lat/lng and location will |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4514 |
* cause and error. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4515 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4516 |
* Tweening works using the following specifications: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4517 |
* -location is the start point when using an auto generated route |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4518 |
* -tween when used in this context is a string which specifies the end location for your route |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4519 |
* Note that both location and tween must be present when using an auto generated route, or the map will not tween |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4520 |
* -interval is the speed in which the tween will be executed, a reasonable time is 1000 ( time in milliseconds ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4521 |
* Heading, Zoom, and Pitch streetview values are also used in tweening with the autogenerated route |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4522 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4523 |
* -tween is an array of objects, each containing data for one frame of a tween |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4524 |
* -position is an object with has two paramaters, lat and lng, both which are mandatory for a tween to work |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4525 |
* -pov is an object which houses heading, pitch, and zoom paramters, which are all optional, if undefined, these values default to 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4526 |
* -interval is the speed in which the tween will be executed, a reasonable time is 1000 ( time in milliseconds ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4527 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4528 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4529 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4530 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4531 |
var p = Popcorn("#video")
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4532 |
.googlemap({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4533 |
start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4534 |
end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4535 |
type: "ROADMAP", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4536 |
target: "map", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4537 |
lat: 43.665429, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4538 |
lng: -79.403323 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4539 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4540 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4541 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4542 |
Popcorn.plugin( "googlemap", function ( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4543 |
var newdiv, map, location, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4544 |
target = document.getElementById( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4545 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4546 |
options.type = options.type || "ROADMAP"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4547 |
options.zoom = options.zoom || 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4548 |
options.lat = options.lat || 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4549 |
options.lng = options.lng || 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4550 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4551 |
// if this is the firest time running the plugins |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4552 |
// call the function that gets the sctipt |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4553 |
if ( !_mapFired ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4554 |
loadMaps(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4555 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4556 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4557 |
// create a new div this way anything in the target div is left intact |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4558 |
// this is later passed on to the maps api |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4559 |
newdiv = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4560 |
newdiv.id = "actualmap" + i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4561 |
newdiv.style.width = options.width || "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4562 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4563 |
// height is a little more complicated than width. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4564 |
if ( options.height ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4565 |
newdiv.style.height = options.height; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4566 |
} else if ( target && target.clientHeight ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4567 |
newdiv.style.height = target.clientHeight + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4568 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4569 |
newdiv.style.height = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4570 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4571 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4572 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4573 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4574 |
target && target.appendChild( newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4575 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4576 |
// ensure that google maps and its functions are loaded |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4577 |
// before setting up the map parameters |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4578 |
var isMapReady = function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4579 |
if ( _mapLoaded ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4580 |
if ( newdiv ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4581 |
if ( options.location ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4582 |
// calls an anonymous google function called on separate thread |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4583 |
geocoder.geocode({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4584 |
"address": options.location |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4585 |
}, function ( results, status ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4586 |
// second check for newdiv since it could have disappeared before |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4587 |
// this callback is actual run |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4588 |
if ( newdiv && status === google.maps.GeocoderStatus.OK ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4589 |
options.lat = results[ 0 ].geometry.location.lat(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4590 |
options.lng = results[ 0 ].geometry.location.lng(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4591 |
location = new google.maps.LatLng( options.lat, options.lng ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4592 |
map = buildMap( options, location, newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4593 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4594 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4595 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4596 |
location = new google.maps.LatLng( options.lat, options.lng ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4597 |
map = buildMap( options, location, newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4598 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4599 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4600 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4601 |
setTimeout(function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4602 |
isMapReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4603 |
}, 5); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4604 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4605 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4606 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4607 |
isMapReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4608 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4609 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4610 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4611 |
* @member webpage |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4612 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4613 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4614 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4615 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4616 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4617 |
var that = this, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4618 |
sView; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4619 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4620 |
// ensure the map has been initialized in the setup function above |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4621 |
var isMapSetup = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4622 |
if ( map ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4623 |
options._map = map; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4624 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4625 |
map.getDiv().style.display = "block"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4626 |
// reset the location and zoom just in case the user plaid with the map |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4627 |
google.maps.event.trigger( map, "resize" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4628 |
map.setCenter( location ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4629 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4630 |
// make sure options.zoom is a number |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4631 |
if ( options.zoom && typeof options.zoom !== "number" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4632 |
options.zoom = +options.zoom; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4633 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4634 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4635 |
map.setZoom( options.zoom ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4636 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4637 |
//Make sure heading is a number |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4638 |
if ( options.heading && typeof options.heading !== "number" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4639 |
options.heading = +options.heading; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4640 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4641 |
//Make sure pitch is a number |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4642 |
if ( options.pitch && typeof options.pitch !== "number" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4643 |
options.pitch = +options.pitch; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4644 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4645 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4646 |
if ( options.type === "STREETVIEW" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4647 |
// Switch this map into streeview mode |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4648 |
map.setStreetView( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4649 |
// Pass a new StreetViewPanorama instance into our map |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4650 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4651 |
sView = new google.maps.StreetViewPanorama( newdiv, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4652 |
position: location, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4653 |
pov: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4654 |
heading: options.heading = options.heading || 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4655 |
pitch: options.pitch = options.pitch || 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4656 |
zoom: options.zoom |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4657 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4658 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4659 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4660 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4661 |
// Function to handle tweening using a set timeout |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4662 |
var tween = function( rM, t ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4663 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4664 |
var computeHeading = google.maps.geometry.spherical.computeHeading; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4665 |
setTimeout(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4666 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4667 |
var current_time = that.media.currentTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4668 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4669 |
// Checks whether this is a generated route or not |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4670 |
if ( typeof options.tween === "object" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4671 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4672 |
for ( var i = 0, m = rM.length; i < m; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4673 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4674 |
var waypoint = rM[ i ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4675 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4676 |
// Checks if this position along the tween should be displayed or not |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4677 |
if ( current_time >= ( waypoint.interval * ( i + 1 ) ) / 1000 && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4678 |
( current_time <= ( waypoint.interval * ( i + 2 ) ) / 1000 || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4679 |
current_time >= waypoint.interval * ( m ) / 1000 ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4680 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4681 |
sView3.setPosition( new google.maps.LatLng( waypoint.position.lat, waypoint.position.lng ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4682 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4683 |
sView3.setPov({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4684 |
heading: waypoint.pov.heading || computeHeading( waypoint, rM[ i + 1 ] ) || 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4685 |
zoom: waypoint.pov.zoom || 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4686 |
pitch: waypoint.pov.pitch || 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4687 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4688 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4689 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4690 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4691 |
// Calls the tween function again at the interval set by the user |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4692 |
tween( rM, rM[ 0 ].interval ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4693 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4694 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4695 |
for ( var k = 0, l = rM.length; k < l; k++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4696 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4697 |
var interval = options.interval; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4698 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4699 |
if( current_time >= (interval * ( k + 1 ) ) / 1000 && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4700 |
( current_time <= (interval * ( k + 2 ) ) / 1000 || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4701 |
current_time >= interval * ( l ) / 1000 ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4702 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4703 |
sView2.setPov({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4704 |
heading: computeHeading( rM[ k ], rM[ k + 1 ] ) || 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4705 |
zoom: options.zoom, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4706 |
pitch: options.pitch || 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4707 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4708 |
sView2.setPosition( checkpoints[ k ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4709 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4710 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4711 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4712 |
tween( checkpoints, options.interval ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4713 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4714 |
}, t ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4715 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4716 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4717 |
// Determines if we should use hardcoded values ( using options.tween ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4718 |
// or if we should use a start and end location and let google generate |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4719 |
// the route for us |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4720 |
if ( options.location && typeof options.tween === "string" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4721 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4722 |
// Creating another variable to hold the streetview map for tweening, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4723 |
// Doing this because if there was more then one streetview map, the tweening would sometimes appear in other maps |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4724 |
var sView2 = sView; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4725 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4726 |
// Create an array to store all the lat/lang values along our route |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4727 |
var checkpoints = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4728 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4729 |
// Creates a new direction service, later used to create a route |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4730 |
var directionsService = new google.maps.DirectionsService(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4731 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4732 |
// Creates a new direction renderer using the current map |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4733 |
// This enables us to access all of the route data that is returned to us |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4734 |
var directionsDisplay = new google.maps.DirectionsRenderer( sView2 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4735 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4736 |
var request = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4737 |
origin: options.location, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4738 |
destination: options.tween, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4739 |
travelMode: google.maps.TravelMode.DRIVING |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4740 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4741 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4742 |
// Create the route using the direction service and renderer |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4743 |
directionsService.route( request, function( response, status ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4744 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4745 |
if ( status == google.maps.DirectionsStatus.OK ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4746 |
directionsDisplay.setDirections( response ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4747 |
showSteps( response, that ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4748 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4749 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4750 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4751 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4752 |
var showSteps = function ( directionResult, that ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4753 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4754 |
// Push new google map lat and lng values into an array from our list of lat and lng values |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4755 |
var routes = directionResult.routes[ 0 ].overview_path; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4756 |
for ( var j = 0, k = routes.length; j < k; j++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4757 |
checkpoints.push( new google.maps.LatLng( routes[ j ].lat(), routes[ j ].lng() ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4758 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4759 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4760 |
// Check to make sure the interval exists, if not, set to a default of 1000 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4761 |
options.interval = options.interval || 1000; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4762 |
tween( checkpoints, 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4763 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4764 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4765 |
} else if ( typeof options.tween === "object" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4766 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4767 |
// Same as the above to stop streetview maps from overflowing into one another |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4768 |
var sView3 = sView; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4769 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4770 |
for ( var i = 0, l = options.tween.length; i < l; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4771 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4772 |
// Make sure interval exists, if not, set to 1000 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4773 |
options.tween[ i ].interval = options.tween[ i ].interval || 1000; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4774 |
tween( options.tween, 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4775 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4776 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4777 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4778 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4779 |
if ( options.onmaploaded ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4780 |
options.onmaploaded( options, map ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4781 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4782 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4783 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4784 |
setTimeout(function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4785 |
isMapSetup(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4786 |
}, 13); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4787 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4788 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4789 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4790 |
isMapSetup(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4791 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4792 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4793 |
* @member webpage |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4794 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4795 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4796 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4797 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4798 |
end: function ( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4799 |
// if the map exists hide it do not delete the map just in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4800 |
// case the user seeks back to time b/w start and end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4801 |
if ( map ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4802 |
map.getDiv().style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4803 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4804 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4805 |
_teardown: function ( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4806 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4807 |
var target = document.getElementById( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4808 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4809 |
// the map must be manually removed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4810 |
target && target.removeChild( newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4811 |
newdiv = map = location = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4812 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4813 |
options._map = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4814 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4815 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4816 |
}, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4817 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4818 |
name: "Popcorn Google Map Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4819 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4820 |
author: "@annasob", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4821 |
website: "annasob.wordpress.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4822 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4823 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4824 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4825 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4826 |
type: "start", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4827 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4828 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4829 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4830 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4831 |
type: "start", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4832 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4833 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4834 |
target: "map-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4835 |
type: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4836 |
elem: "select", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4837 |
options: [ "ROADMAP", "SATELLITE", "STREETVIEW", "HYBRID", "TERRAIN", "STAMEN-WATERCOLOR", "STAMEN-TERRAIN", "STAMEN-TONER" ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4838 |
label: "Map Type", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4839 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4840 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4841 |
zoom: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4842 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4843 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4844 |
label: "Zoom", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4845 |
"default": 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4846 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4847 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4848 |
lat: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4849 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4850 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4851 |
label: "Lat", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4852 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4853 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4854 |
lng: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4855 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4856 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4857 |
label: "Lng", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4858 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4859 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4860 |
location: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4861 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4862 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4863 |
label: "Location", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4864 |
"default": "Toronto, Ontario, Canada" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4865 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4866 |
heading: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4867 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4868 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4869 |
label: "Heading", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4870 |
"default": 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4871 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4872 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4873 |
pitch: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4874 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4875 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4876 |
label: "Pitch", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4877 |
"default": 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4878 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4879 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4880 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4881 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4882 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4883 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4884 |
// PLUGIN: IMAGE |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4885 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4886 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4887 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4888 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4889 |
* Images popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4890 |
* Shows an image element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4891 |
* Options parameter will need a start, end, href, target and src. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4892 |
* Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4893 |
* End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4894 |
* href is the url of the destination of a anchor - optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4895 |
* Target is the id of the document element that the iframe needs to be attached to, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4896 |
* this target element must exist on the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4897 |
* Src is the url of the image that you want to display |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4898 |
* text is the overlayed text on the image - optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4899 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4900 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4901 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4902 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4903 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4904 |
.image({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4905 |
start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4906 |
end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4907 |
href: 'http://www.drumbeat.org/', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4908 |
src: 'http://www.drumbeat.org/sites/default/files/domain-2/drumbeat_logo.png', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4909 |
text: 'DRUMBEAT', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4910 |
target: 'imagediv' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4911 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4912 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4913 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4914 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4915 |
var VIDEO_OVERLAY_Z = 2000, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4916 |
CHECK_INTERVAL_DURATION = 10; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4917 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4918 |
function trackMediaElement( mediaElement ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4919 |
var checkInterval = -1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4920 |
container = document.createElement( "div" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4921 |
videoZ = getComputedStyle( mediaElement ).zIndex; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4922 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4923 |
container.setAttribute( "data-popcorn-helper-container", true ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4924 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4925 |
container.style.position = "absolute"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4926 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4927 |
if ( !isNaN( videoZ ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4928 |
container.style.zIndex = videoZ + 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4929 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4930 |
else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4931 |
container.style.zIndex = VIDEO_OVERLAY_Z; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4932 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4933 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4934 |
document.body.appendChild( container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4935 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4936 |
function check() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4937 |
var mediaRect = mediaElement.getBoundingClientRect(), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4938 |
containerRect = container.getBoundingClientRect(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4939 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4940 |
if ( containerRect.left !== mediaRect.left ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4941 |
container.style.left = mediaRect.left + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4942 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4943 |
if ( containerRect.top !== mediaRect.top ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4944 |
container.style.top = mediaRect.top + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4945 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4946 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4947 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4948 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4949 |
element: container, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4950 |
start: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4951 |
checkInterval = setInterval( check, CHECK_INTERVAL_DURATION ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4952 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4953 |
stop: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4954 |
clearInterval( checkInterval ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4955 |
checkInterval = -1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4956 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4957 |
destroy: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4958 |
document.body.removeChild( container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4959 |
if ( checkInterval !== -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4960 |
clearInterval( checkInterval ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4961 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4962 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4963 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4964 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4965 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4966 |
Popcorn.plugin( "image", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4967 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4968 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4969 |
name: "Popcorn image Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4970 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4971 |
author: "Scott Downe", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4972 |
website: "http://scottdowne.wordpress.com/" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4973 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4974 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4975 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4976 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4977 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4978 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4979 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4980 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4981 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4982 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4983 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4984 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4985 |
src: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4986 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4987 |
type: "url", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4988 |
label: "Image URL", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4989 |
"default": "http://mozillapopcorn.org/wp-content/themes/popcorn/images/for_developers.png" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4990 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4991 |
href: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4992 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4993 |
type: "url", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4994 |
label: "Link", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4995 |
"default": "http://mozillapopcorn.org/wp-content/themes/popcorn/images/for_developers.png", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4996 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4997 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4998 |
target: "image-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
4999 |
text: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5000 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5001 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5002 |
label: "Caption", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5003 |
"default": "Popcorn.js", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5004 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5005 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5006 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5007 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5008 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5009 |
var img = document.createElement( "img" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5010 |
target = document.getElementById( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5011 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5012 |
options.anchor = document.createElement( "a" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5013 |
options.anchor.style.position = "relative"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5014 |
options.anchor.style.textDecoration = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5015 |
options.anchor.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5016 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5017 |
// add the widget's div to the target div. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5018 |
// if target is <video> or <audio>, create a container and routinely |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5019 |
// update its size/position to be that of the media |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5020 |
if ( target ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5021 |
if ( [ "VIDEO", "AUDIO" ].indexOf( target.nodeName ) > -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5022 |
options.trackedContainer = trackMediaElement( target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5023 |
options.trackedContainer.element.appendChild( options.anchor ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5024 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5025 |
else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5026 |
target && target.appendChild( options.anchor ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5027 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5028 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5029 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5030 |
img.addEventListener( "load", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5031 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5032 |
// borders look really bad, if someone wants it they can put it on their div target |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5033 |
img.style.borderStyle = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5034 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5035 |
options.anchor.href = options.href || options.src || "#"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5036 |
options.anchor.target = "_blank"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5037 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5038 |
var fontHeight, divText; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5039 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5040 |
img.style.height = target.style.height; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5041 |
img.style.width = target.style.width; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5042 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5043 |
options.anchor.appendChild( img ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5044 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5045 |
// If display text was provided, display it: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5046 |
if ( options.text ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5047 |
fontHeight = ( img.height / 12 ) + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5048 |
divText = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5049 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5050 |
Popcorn.extend( divText.style, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5051 |
color: "black", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5052 |
fontSize: fontHeight, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5053 |
fontWeight: "bold", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5054 |
position: "relative", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5055 |
textAlign: "center", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5056 |
width: img.style.width || img.width + "px", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5057 |
zIndex: "10" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5058 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5059 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5060 |
divText.innerHTML = options.text || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5061 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5062 |
divText.style.top = ( ( img.style.height.replace( "px", "" ) || img.height ) / 2 ) - ( divText.offsetHeight / 2 ) + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5063 |
options.anchor.insertBefore( divText, img ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5064 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5065 |
}, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5066 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5067 |
img.src = options.src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5068 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5069 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5070 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5071 |
* @member image |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5072 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5073 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5074 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5075 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5076 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5077 |
options.anchor.style.display = "inline"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5078 |
if ( options.trackedContainer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5079 |
options.trackedContainer.start(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5080 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5081 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5082 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5083 |
* @member image |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5084 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5085 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5086 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5087 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5088 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5089 |
options.anchor.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5090 |
if ( options.trackedContainer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5091 |
options.trackedContainer.stop(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5092 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5093 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5094 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5095 |
if ( options.trackedContainer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5096 |
options.trackedContainer.destroy(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5097 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5098 |
else if ( options.anchor.parentNode ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5099 |
options.anchor.parentNode.removeChild( options.anchor ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5100 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5101 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5102 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5103 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5104 |
// PLUGIN: Google Feed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5105 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5106 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5107 |
var i = 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5108 |
scriptLoaded = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5109 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5110 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5111 |
* googlefeed popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5112 |
* Adds a feed from the specified blog url at the target div |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5113 |
* Options parameter will need a start, end, target, url and title |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5114 |
* -Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5115 |
* -End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5116 |
* -Target is the id of the DOM element that you want the map to appear in. This element must be in the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5117 |
* -Url is the url of the blog's feed you are trying to access |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5118 |
* -Title is the title of the blog you want displayed above the feed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5119 |
* -Orientation is the orientation of the blog, accepts either Horizontal or Vertical, defaults to Vertical |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5120 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5121 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5122 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5123 |
var p = Popcorn("#video")
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5124 |
.googlefeed({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5125 |
start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5126 |
end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5127 |
target: "map", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5128 |
url: "http://zenit.senecac.on.ca/~chris.tyler/planet/rss20.xml", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5129 |
title: "Planet Feed" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5130 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5131 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5132 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5133 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5134 |
Popcorn.plugin( "googlefeed", function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5135 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5136 |
var dynamicFeedLoad = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5137 |
var dontLoad = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5138 |
k = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5139 |
links = document.getElementsByTagName( "link" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5140 |
len = links.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5141 |
head = document.head || document.getElementsByTagName( "head" )[ 0 ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5142 |
css = document.createElement( "link" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5143 |
resource = "//www.google.com/uds/solutions/dynamicfeed/gfdynamicfeedcontrol."; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5144 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5145 |
if ( !window.GFdynamicFeedControl ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5146 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5147 |
Popcorn.getScript( resource + "js", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5148 |
scriptLoaded = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5149 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5150 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5151 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5152 |
scriptLoaded = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5153 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5154 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5155 |
// Checking if the css file is already included |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5156 |
for ( ; k < len; k++ ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5157 |
if ( links[ k ].href === resource + "css" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5158 |
dontLoad = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5159 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5160 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5161 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5162 |
if ( !dontLoad ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5163 |
css.type = "text/css"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5164 |
css.rel = "stylesheet"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5165 |
css.href = resource + "css"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5166 |
head.insertBefore( css, head.firstChild ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5167 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5168 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5169 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5170 |
if ( !window.google ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5171 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5172 |
Popcorn.getScript( "//www.google.com/jsapi", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5173 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5174 |
google.load( "feeds", "1", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5175 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5176 |
callback: function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5177 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5178 |
dynamicFeedLoad(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5179 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5180 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5181 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5182 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5183 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5184 |
dynamicFeedLoad(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5185 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5186 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5187 |
// create a new div and append it to the parent div so nothing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5188 |
// that already exists in the parent div gets overwritten |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5189 |
var newdiv = document.createElement( "div" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5190 |
target = document.getElementById( options.target ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5191 |
initialize = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5192 |
//ensure that the script has been loaded |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5193 |
if ( !scriptLoaded ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5194 |
setTimeout( function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5195 |
initialize(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5196 |
}, 5 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5197 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5198 |
// Create the feed control using the user entered url and title |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5199 |
options.feed = new GFdynamicFeedControl( options.url, newdiv, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5200 |
vertical: options.orientation.toLowerCase() === "vertical" ? true : false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5201 |
horizontal: options.orientation.toLowerCase() === "horizontal" ? true : false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5202 |
title: options.title = options.title || "Blog" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5203 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5204 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5205 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5206 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5207 |
// Default to vertical orientation if empty or incorrect input |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5208 |
if( !options.orientation || ( options.orientation.toLowerCase() !== "vertical" && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5209 |
options.orientation.toLowerCase() !== "horizontal" ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5210 |
options.orientation = "vertical"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5211 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5212 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5213 |
newdiv.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5214 |
newdiv.id = "_feed" + i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5215 |
newdiv.style.width = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5216 |
newdiv.style.height = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5217 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5218 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5219 |
target && target.appendChild( newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5220 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5221 |
initialize(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5222 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5223 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5224 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5225 |
* @member webpage |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5226 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5227 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5228 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5229 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5230 |
start: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5231 |
newdiv.setAttribute( "style", "display:inline" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5232 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5233 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5234 |
* @member webpage |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5235 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5236 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5237 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5238 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5239 |
end: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5240 |
newdiv.setAttribute( "style", "display:none" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5241 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5242 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5243 |
document.getElementById( options.target ) && document.getElementById( options.target ).removeChild( newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5244 |
delete options.feed; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5245 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5246 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5247 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5248 |
{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5249 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5250 |
name: "Popcorn Google Feed Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5251 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5252 |
author: "David Seifried", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5253 |
website: "dseifried.wordpress.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5254 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5255 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5256 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5257 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5258 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5259 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5260 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5261 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5262 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5263 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5264 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5265 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5266 |
target: "feed-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5267 |
url: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5268 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5269 |
type: "url", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5270 |
label: "Feed URL", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5271 |
"default": "http://planet.mozilla.org/rss20.xml" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5272 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5273 |
title: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5274 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5275 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5276 |
label: "Title", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5277 |
"default": "Planet Mozilla", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5278 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5279 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5280 |
orientation: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5281 |
elem: "select", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5282 |
options: [ "Vertical", "Horizontal" ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5283 |
label: "Orientation", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5284 |
"default": "Vertical", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5285 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5286 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5287 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5288 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5289 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5290 |
// PLUGIN: Subtitle |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5291 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5292 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5293 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5294 |
var i = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5295 |
createDefaultContainer = function( context, id ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5296 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5297 |
var ctxContainer = context.container = document.createElement( "div" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5298 |
style = ctxContainer.style, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5299 |
media = context.media; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5300 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5301 |
var updatePosition = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5302 |
var position = context.position(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5303 |
// the video element must have height and width defined |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5304 |
style.fontSize = "18px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5305 |
style.width = media.offsetWidth + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5306 |
style.top = position.top + media.offsetHeight - ctxContainer.offsetHeight - 40 + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5307 |
style.left = position.left + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5308 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5309 |
setTimeout( updatePosition, 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5310 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5311 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5312 |
ctxContainer.id = id || Popcorn.guid(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5313 |
style.position = "absolute"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5314 |
style.color = "white"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5315 |
style.textShadow = "black 2px 2px 6px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5316 |
style.fontWeight = "bold"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5317 |
style.textAlign = "center"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5318 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5319 |
updatePosition(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5320 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5321 |
context.media.parentNode.appendChild( ctxContainer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5322 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5323 |
return ctxContainer; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5324 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5325 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5326 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5327 |
* Subtitle popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5328 |
* Displays a subtitle over the video, or in the target div |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5329 |
* Options parameter will need a start, and end. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5330 |
* Optional parameters are target and text. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5331 |
* Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5332 |
* End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5333 |
* Target is the id of the document element that the content is |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5334 |
* appended to, this target element must exist on the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5335 |
* Text is the text of the subtitle you want to display. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5336 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5337 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5338 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5339 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5340 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5341 |
.subtitle({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5342 |
start: 5, // seconds, mandatory |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5343 |
end: 15, // seconds, mandatory |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5344 |
text: 'Hellow world', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5345 |
target: 'subtitlediv', // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5346 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5347 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5348 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5349 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5350 |
Popcorn.plugin( "subtitle" , {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5351 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5352 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5353 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5354 |
name: "Popcorn Subtitle Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5355 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5356 |
author: "Scott Downe", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5357 |
website: "http://scottdowne.wordpress.com/" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5358 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5359 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5360 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5361 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5362 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5363 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5364 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5365 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5366 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5367 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5368 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5369 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5370 |
target: "subtitle-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5371 |
text: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5372 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5373 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5374 |
label: "Text" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5375 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5376 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5377 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5378 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5379 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5380 |
var newdiv = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5381 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5382 |
newdiv.id = "subtitle-" + i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5383 |
newdiv.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5384 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5385 |
// Creates a div for all subtitles to use |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5386 |
( !this.container && ( !options.target || options.target === "subtitle-container" ) ) && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5387 |
createDefaultContainer( this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5388 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5389 |
// if a target is specified, use that |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5390 |
if ( options.target && options.target !== "subtitle-container" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5391 |
// In case the target doesn't exist in the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5392 |
options.container = document.getElementById( options.target ) || createDefaultContainer( this, options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5393 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5394 |
// use shared default container |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5395 |
options.container = this.container; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5396 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5397 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5398 |
document.getElementById( options.container.id ) && document.getElementById( options.container.id ).appendChild( newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5399 |
options.innerContainer = newdiv; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5400 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5401 |
options.showSubtitle = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5402 |
options.innerContainer.innerHTML = options.text || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5403 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5404 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5405 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5406 |
* @member subtitle |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5407 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5408 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5409 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5410 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5411 |
start: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5412 |
options.innerContainer.style.display = "inline"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5413 |
options.showSubtitle( options, options.text ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5414 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5415 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5416 |
* @member subtitle |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5417 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5418 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5419 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5420 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5421 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5422 |
options.innerContainer.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5423 |
options.innerContainer.innerHTML = ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5424 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5425 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5426 |
_teardown: function ( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5427 |
options.container.removeChild( options.innerContainer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5428 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5429 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5430 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5431 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5432 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5433 |
// PLUGIN: TWITTER |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5434 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5435 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5436 |
var scriptLoading = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5437 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5438 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5439 |
* Twitter popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5440 |
* Appends a Twitter widget to an element on the page. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5441 |
* Options parameter will need a start, end, target and source. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5442 |
* Optional parameters are height and width. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5443 |
* Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5444 |
* End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5445 |
* Src is the hash tag or twitter user to get tweets from |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5446 |
* Target is the id of the document element that the images are |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5447 |
* appended to, this target element must exist on the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5448 |
* Height is the height of the widget, defaults to 200 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5449 |
* Width is the width of the widget, defaults to 250 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5450 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5451 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5452 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5453 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5454 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5455 |
.twitter({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5456 |
start: 5, // seconds, mandatory |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5457 |
end: 15, // seconds, mandatory |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5458 |
src: '@stevesong', // mandatory, also accepts hash tags |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5459 |
height: 200, // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5460 |
width: 250, // optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5461 |
target: 'twitterdiv' // mandatory |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5462 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5463 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5464 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5465 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5466 |
Popcorn.plugin( "twitter" , {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5467 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5468 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5469 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5470 |
name: "Popcorn Twitter Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5471 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5472 |
author: "Scott Downe", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5473 |
website: "http://scottdowne.wordpress.com/" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5474 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5475 |
options:{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5476 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5477 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5478 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5479 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5480 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5481 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5482 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5483 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5484 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5485 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5486 |
src: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5487 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5488 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5489 |
label: "Tweet Source (# or @)", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5490 |
"default": "@popcornjs" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5491 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5492 |
target: "twitter-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5493 |
height: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5494 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5495 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5496 |
label: "Height", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5497 |
"default": "200", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5498 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5499 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5500 |
width: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5501 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5502 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5503 |
label: "Width", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5504 |
"default": "250", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5505 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5506 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5507 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5508 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5509 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5510 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5511 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5512 |
if ( !window.TWTR && !scriptLoading ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5513 |
scriptLoading = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5514 |
Popcorn.getScript( "//widgets.twimg.com/j/2/widget.js" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5515 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5516 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5517 |
var target = document.getElementById( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5518 |
// create the div to store the widget |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5519 |
// setup widget div that is unique per track |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5520 |
options.container = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5521 |
// use this id to connect it to the widget |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5522 |
options.container.setAttribute( "id", Popcorn.guid() ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5523 |
// display none by default |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5524 |
options.container.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5525 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5526 |
// add the widget's div to the target div |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5527 |
target && target.appendChild( options.container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5528 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5529 |
// setup info for the widget |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5530 |
var src = options.src || "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5531 |
width = options.width || 250, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5532 |
height = options.height || 200, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5533 |
profile = /^@/.test( src ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5534 |
widgetOptions = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5535 |
version: 2, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5536 |
// use this id to connect it to the div |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5537 |
id: options.container.getAttribute( "id" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5538 |
rpp: 30, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5539 |
width: width, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5540 |
height: height, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5541 |
interval: 6000, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5542 |
theme: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5543 |
shell: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5544 |
background: "#ffffff", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5545 |
color: "#000000" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5546 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5547 |
tweets: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5548 |
background: "#ffffff", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5549 |
color: "#444444", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5550 |
links: "#1985b5" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5551 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5552 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5553 |
features: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5554 |
loop: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5555 |
timestamp: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5556 |
avatars: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5557 |
hashtags: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5558 |
toptweets: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5559 |
live: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5560 |
scrollbar: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5561 |
behavior: 'default' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5562 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5563 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5564 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5565 |
// create widget |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5566 |
var isReady = function( that ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5567 |
if ( window.TWTR ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5568 |
if ( profile ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5569 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5570 |
widgetOptions.type = "profile"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5571 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5572 |
new TWTR.Widget( widgetOptions ).render().setUser( src ).start(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5573 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5574 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5575 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5576 |
widgetOptions.type = "search"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5577 |
widgetOptions.search = src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5578 |
widgetOptions.subject = src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5579 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5580 |
new TWTR.Widget( widgetOptions ).render().start(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5581 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5582 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5583 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5584 |
setTimeout( function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5585 |
isReady( that ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5586 |
}, 1); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5587 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5588 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5589 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5590 |
isReady( this ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5591 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5592 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5593 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5594 |
* @member Twitter |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5595 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5596 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5597 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5598 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5599 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5600 |
options.container.style.display = "inline"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5601 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5602 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5603 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5604 |
* @member Twitter |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5605 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5606 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5607 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5608 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5609 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5610 |
options.container.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5611 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5612 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5613 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5614 |
document.getElementById( options.target ) && document.getElementById( options.target ).removeChild( options.container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5615 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5616 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5617 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5618 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5619 |
// PLUGIN: WEBPAGE |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5620 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5621 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5622 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5623 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5624 |
* Webpages popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5625 |
* Creates an iframe showing a website specified by the user |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5626 |
* Options parameter will need a start, end, id, target and src. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5627 |
* Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5628 |
* End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5629 |
* Id is the id that you want assigned to the iframe |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5630 |
* Target is the id of the document element that the iframe needs to be attached to, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5631 |
* this target element must exist on the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5632 |
* Src is the url of the website that you want the iframe to display |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5633 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5634 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5635 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5636 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5637 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5638 |
.webpage({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5639 |
id: "webpages-a", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5640 |
start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5641 |
end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5642 |
src: 'http://www.webmademovies.org', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5643 |
target: 'webpagediv' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5644 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5645 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5646 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5647 |
Popcorn.plugin( "webpage" , {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5648 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5649 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5650 |
name: "Popcorn Webpage Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5651 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5652 |
author: "@annasob", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5653 |
website: "annasob.wordpress.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5654 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5655 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5656 |
id: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5657 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5658 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5659 |
label: "Id", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5660 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5661 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5662 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5663 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5664 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5665 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5666 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5667 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5668 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5669 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5670 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5671 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5672 |
src: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5673 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5674 |
type: "url", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5675 |
label: "Webpage URL", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5676 |
"default": "http://mozillapopcorn.org" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5677 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5678 |
target: "iframe-container" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5679 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5680 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5681 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5682 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5683 |
var target = document.getElementById( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5684 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5685 |
// make src an iframe acceptable string |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5686 |
options.src = options.src.replace( /^(https?:)?(\/\/)?/, "//" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5687 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5688 |
// make an iframe |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5689 |
options._iframe = document.createElement( "iframe" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5690 |
options._iframe.setAttribute( "width", "100%" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5691 |
options._iframe.setAttribute( "height", "100%" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5692 |
options._iframe.id = options.id; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5693 |
options._iframe.src = options.src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5694 |
options._iframe.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5695 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5696 |
// add the hidden iframe to the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5697 |
target && target.appendChild( options._iframe ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5698 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5699 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5700 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5701 |
* @member webpage |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5702 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5703 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5704 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5705 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5706 |
start: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5707 |
// make the iframe visible |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5708 |
options._iframe.src = options.src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5709 |
options._iframe.style.display = "inline"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5710 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5711 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5712 |
* @member webpage |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5713 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5714 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5715 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5716 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5717 |
end: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5718 |
// make the iframe invisible |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5719 |
options._iframe.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5720 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5721 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5722 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5723 |
document.getElementById( options.target ) && document.getElementById( options.target ).removeChild( options._iframe ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5724 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5725 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5726 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5727 |
// PLUGIN: WIKIPEDIA |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5728 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5729 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5730 |
var wikiCallback; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5731 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5732 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5733 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5734 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5735 |
* Wikipedia popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5736 |
* Displays a wikipedia aricle in the target specified by the user by using |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5737 |
* new DOM element instead overwriting them |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5738 |
* Options parameter will need a start, end, target, lang, src, title and numberofwords. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5739 |
* -Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5740 |
* -End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5741 |
* -Target is the id of the document element that the text from the article needs to be |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5742 |
* attached to, this target element must exist on the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5743 |
* -Lang (optional, defaults to english) is the language in which the article is in. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5744 |
* -Src is the url of the article |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5745 |
* -Title (optional) is the title of the article |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5746 |
* -numberofwords (optional, defaults to 200) is the number of words you want displaid. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5747 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5748 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5749 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5750 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5751 |
var p = Popcorn("#video")
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5752 |
.wikipedia({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5753 |
start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5754 |
end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5755 |
src: "http://en.wikipedia.org/wiki/Cape_Town", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5756 |
target: "wikidiv" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5757 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5758 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5759 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5760 |
Popcorn.plugin( "wikipedia" , {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5761 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5762 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5763 |
about:{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5764 |
name: "Popcorn Wikipedia Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5765 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5766 |
author: "@annasob", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5767 |
website: "annasob.wordpress.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5768 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5769 |
options:{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5770 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5771 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5772 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5773 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5774 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5775 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5776 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5777 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5778 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5779 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5780 |
lang: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5781 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5782 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5783 |
label: "Language", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5784 |
"default": "english", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5785 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5786 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5787 |
src: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5788 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5789 |
type: "url", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5790 |
label: "Wikipedia URL", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5791 |
"default": "http://en.wikipedia.org/wiki/Cat" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5792 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5793 |
title: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5794 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5795 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5796 |
label: "Title", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5797 |
"default": "Cats", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5798 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5799 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5800 |
numberofwords: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5801 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5802 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5803 |
label: "Number of Words", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5804 |
"default": "200", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5805 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5806 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5807 |
target: "wikipedia-container" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5808 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5809 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5810 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5811 |
* @member wikipedia |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5812 |
* The setup function will get all of the needed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5813 |
* items in place before the start function is called. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5814 |
* This includes getting data from wikipedia, if the data |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5815 |
* is not received and processed before start is called start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5816 |
* will not do anything |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5817 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5818 |
_setup : function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5819 |
// declare needed variables |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5820 |
// get a guid to use for the global wikicallback function |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5821 |
var _text, _guid = Popcorn.guid(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5822 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5823 |
// if the user didn't specify a language default to english |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5824 |
if ( !options.lang ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5825 |
options.lang = "en"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5826 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5827 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5828 |
// if the user didn't specify number of words to use default to 200 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5829 |
options.numberofwords = options.numberofwords || 200; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5830 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5831 |
// wiki global callback function with a unique id |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5832 |
// function gets the needed information from wikipedia |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5833 |
// and stores it by appending values to the options object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5834 |
window[ "wikiCallback" + _guid ] = function ( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5835 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5836 |
options._link = document.createElement( "a" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5837 |
options._link.setAttribute( "href", options.src ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5838 |
options._link.setAttribute( "target", "_blank" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5839 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5840 |
// add the title of the article to the link |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5841 |
options._link.innerHTML = options.title || data.parse.displaytitle; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5842 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5843 |
// get the content of the wiki article |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5844 |
options._desc = document.createElement( "p" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5845 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5846 |
// get the article text and remove any special characters |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5847 |
_text = data.parse.text[ "*" ].substr( data.parse.text[ "*" ].indexOf( "<p>" ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5848 |
_text = _text.replace( /((<(.|\n)+?>)|(\((.*?)\) )|(\[(.*?)\]))/g, "" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5849 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5850 |
_text = _text.split( " " ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5851 |
options._desc.innerHTML = ( _text.slice( 0, ( _text.length >= options.numberofwords ? options.numberofwords : _text.length ) ).join (" ") + " ..." ) ;
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5852 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5853 |
options._fired = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5854 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5855 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5856 |
if ( options.src ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5857 |
Popcorn.getScript( "//" + options.lang + ".wikipedia.org/w/api.php?action=parse&props=text&redirects&page=" + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5858 |
options.src.slice( options.src.lastIndexOf( "/" ) + 1 ) + "&format=json&callback=wikiCallback" + _guid ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5859 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5860 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5861 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5862 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5863 |
* @member wikipedia |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5864 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5865 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5866 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5867 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5868 |
start: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5869 |
// dont do anything if the information didn't come back from wiki |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5870 |
var isReady = function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5871 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5872 |
if ( !options._fired ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5873 |
setTimeout( function () {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5874 |
isReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5875 |
}, 13); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5876 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5877 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5878 |
if ( options._link && options._desc ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5879 |
if ( document.getElementById( options.target ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5880 |
document.getElementById( options.target ).appendChild( options._link ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5881 |
document.getElementById( options.target ).appendChild( options._desc ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5882 |
options._added = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5883 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5884 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5885 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5886 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5887 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5888 |
isReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5889 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5890 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5891 |
* @member wikipedia |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5892 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5893 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5894 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5895 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5896 |
end: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5897 |
// ensure that the data was actually added to the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5898 |
// DOM before removal |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5899 |
if ( options._added ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5900 |
document.getElementById( options.target ).removeChild( options._link ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5901 |
document.getElementById( options.target ).removeChild( options._desc ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5902 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5903 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5904 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5905 |
_teardown: function( options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5906 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5907 |
if ( options._added ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5908 |
options._link.parentNode && document.getElementById( options.target ).removeChild( options._link ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5909 |
options._desc.parentNode && document.getElementById( options.target ).removeChild( options._desc ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5910 |
delete options.target; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5911 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5912 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5913 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5914 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5915 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5916 |
// PLUGIN: Mustache |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5917 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5918 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5919 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5920 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5921 |
* Mustache Popcorn Plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5922 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5923 |
* Adds the ability to render JSON using templates via the Mustache templating library. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5924 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5925 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5926 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5927 |
* Required parameters: start, end, template, data, and target. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5928 |
* Optional parameter: static. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5929 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5930 |
* start: the time in seconds when the mustache template should be rendered |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5931 |
* in the target div. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5932 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5933 |
* end: the time in seconds when the rendered mustache template should be |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5934 |
* removed from the target div. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5935 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5936 |
* target: a String -- the target div's id. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5937 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5938 |
* template: the mustache template for the plugin to use when rendering. This can be |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5939 |
* a String containing the template, or a Function that returns the template's |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5940 |
* String. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5941 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5942 |
* data: the data to be rendered using the mustache template. This can be a JSON String, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5943 |
* a JavaScript Object literal, or a Function returning a String or Literal. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5944 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5945 |
* dynamic: an optional argument indicating that the template and json data are dynamic |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5946 |
* and need to be loaded dynamically on every use. Defaults to True. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5947 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5948 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5949 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5950 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5951 |
// Example using template and JSON strings. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5952 |
.mustache({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5953 |
start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5954 |
end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5955 |
target: 'mustache', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5956 |
template: '<h1>{{header}}</h1>' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5957 |
'{{#bug}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5958 |
'{{/bug}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5959 |
'' + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5960 |
'{{#items}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5961 |
' {{#first}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5962 |
' <li><strong>{{name}}</strong></li>' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5963 |
' {{/first}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5964 |
' {{#link}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5965 |
' <li><a href="{{url}}">{{name}}</a></li>' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5966 |
' {{/link}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5967 |
'{{/items}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5968 |
'' + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5969 |
'{{#empty}}' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5970 |
' <p>The list is empty.</p>' + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5971 |
'{{/empty}}' ,
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5972 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5973 |
data: '{' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5974 |
' "header": "Colors", ' + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5975 |
' "items": [ ' + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5976 |
' {"name": "red", "first": true, "url": "#Red"}, ' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5977 |
' {"name": "green", "link": true, "url": "#Green"}, ' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5978 |
' {"name": "blue", "link": true, "url": "#Blue"} ' +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5979 |
' ],' + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5980 |
' 'empty': false' + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5981 |
'}', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5982 |
dynamic: false // The json is not going to change, load it early. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5983 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5984 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5985 |
// Example showing Functions instead of Strings. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5986 |
.mustache({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5987 |
start: 20, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5988 |
end: 25, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5989 |
target: 'mustache', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5990 |
template: function(instance, options) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5991 |
var template = // load your template file here... |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5992 |
return template; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5993 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5994 |
data: function(instance, options) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5995 |
var json = // load your json here... |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5996 |
return json; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5997 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5998 |
} ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
5999 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6000 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6001 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6002 |
Popcorn.plugin( "mustache" , function( options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6003 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6004 |
var getData, data, getTemplate, template; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6005 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6006 |
Popcorn.getScript( "http://mustache.github.com/extras/mustache.js" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6007 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6008 |
var shouldReload = !!options.dynamic, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6009 |
typeOfTemplate = typeof options.template, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6010 |
typeOfData = typeof options.data, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6011 |
target = document.getElementById( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6012 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6013 |
options.container = target || document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6014 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6015 |
if ( typeOfTemplate === "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6016 |
if ( !shouldReload ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6017 |
template = options.template( options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6018 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6019 |
getTemplate = options.template; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6020 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6021 |
} else if ( typeOfTemplate === "string" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6022 |
template = options.template; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6023 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6024 |
template = ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6025 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6026 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6027 |
if ( typeOfData === "function" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6028 |
if ( !shouldReload ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6029 |
data = options.data( options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6030 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6031 |
getData = options.data; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6032 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6033 |
} else if ( typeOfData === "string" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6034 |
data = JSON.parse( options.data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6035 |
} else if ( typeOfData === "object" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6036 |
data = options.data; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6037 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6038 |
data = ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6039 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6040 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6041 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6042 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6043 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6044 |
var interval = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6045 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6046 |
if( !window.Mustache ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6047 |
setTimeout( function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6048 |
interval(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6049 |
}, 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6050 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6051 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6052 |
// if dynamic, freshen json data on every call to start, just in case. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6053 |
if ( getData ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6054 |
data = getData( options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6055 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6056 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6057 |
if ( getTemplate ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6058 |
template = getTemplate( options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6059 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6060 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6061 |
var html = Mustache.to_html( template, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6062 |
data |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6063 |
).replace( /^\s*/mg, "" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6064 |
options.container.innerHTML = html; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6065 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6066 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6067 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6068 |
interval(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6069 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6070 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6071 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6072 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6073 |
options.container.innerHTML = ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6074 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6075 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6076 |
getData = data = getTemplate = template = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6077 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6078 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6079 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6080 |
{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6081 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6082 |
name: "Popcorn Mustache Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6083 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6084 |
author: "David Humphrey (@humphd)", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6085 |
website: "http://vocamus.net/dave" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6086 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6087 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6088 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6089 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6090 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6091 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6092 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6093 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6094 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6095 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6096 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6097 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6098 |
target: "mustache-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6099 |
template: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6100 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6101 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6102 |
label: "Template" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6103 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6104 |
data: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6105 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6106 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6107 |
label: "Data" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6108 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6109 |
dynamic: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6110 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6111 |
type: "checkbox", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6112 |
label: "Dynamic", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6113 |
"default": true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6114 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6115 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6116 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6117 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6118 |
// PLUGIN: OPENMAP |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6119 |
( function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6120 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6121 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6122 |
* openmap popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6123 |
* Adds an OpenLayers map and open map tiles (OpenStreetMap [default], NASA WorldWind, or USGS Topographic) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6124 |
* Based on the googlemap popcorn plug-in. No StreetView support |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6125 |
* Options parameter will need a start, end, target, type, zoom, lat and lng |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6126 |
* -Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6127 |
* -End is the time that you want this plug-in to stop executing |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6128 |
* -Target is the id of the DOM element that you want the map to appear in. This element must be in the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6129 |
* -Type [optional] either: ROADMAP (OpenStreetMap), SATELLITE (NASA WorldWind / LandSat), or TERRAIN (USGS). |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6130 |
* The Stamen custom map types can also be used (http://maps.stamen.com): STAMEN-TONER, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6131 |
* STAMEN-TERRAIN, or STAMEN-WATERCOLOR. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6132 |
* -Zoom [optional] defaults to 2 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6133 |
* -Lat and Lng are the coordinates of the map if location is not named |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6134 |
* -Location is a name of a place to center the map, geocoded to coordinates using TinyGeocoder.com |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6135 |
* -Markers [optional] is an array of map marker objects, with the following properties: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6136 |
* --Icon is the URL of a map marker image |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6137 |
* --Size [optional] is the radius in pixels of the scaled marker image (default is 14) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6138 |
* --Text [optional] is the HTML content of the map marker -- if your popcorn instance is named 'popped', use <script>popped.currentTime(10);</script> to control the video |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6139 |
* --Lat and Lng are coordinates of the map marker if location is not specified |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6140 |
* --Location is a name of a place for the map marker, geocoded to coordinates using TinyGeocoder.com |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6141 |
* Note: using location requires extra loading time, also not specifying both lat/lng and location will |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6142 |
* cause a JavaScript error. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6143 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6144 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6145 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6146 |
var p = Popcorn( '#video' ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6147 |
.openmap({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6148 |
start: 5, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6149 |
end: 15, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6150 |
type: 'ROADMAP', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6151 |
target: 'map', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6152 |
lat: 43.665429, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6153 |
lng: -79.403323 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6154 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6155 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6156 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6157 |
var newdiv, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6158 |
i = 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6159 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6160 |
function toggle( container, display ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6161 |
if ( container.map ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6162 |
container.map.div.style.display = display; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6163 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6164 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6165 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6166 |
setTimeout(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6167 |
toggle( container, display ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6168 |
}, 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6169 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6170 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6171 |
Popcorn.plugin( "openmap", function( options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6172 |
var newdiv, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6173 |
centerlonlat, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6174 |
projection, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6175 |
displayProjection, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6176 |
pointLayer, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6177 |
selectControl, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6178 |
popup, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6179 |
isGeoReady, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6180 |
target = document.getElementById( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6181 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6182 |
// create a new div within the target div |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6183 |
// this is later passed on to the maps api |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6184 |
newdiv = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6185 |
newdiv.id = "openmapdiv" + i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6186 |
newdiv.style.width = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6187 |
newdiv.style.height = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6188 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6189 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6190 |
target && target.appendChild( newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6191 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6192 |
// callback function fires when the script is run |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6193 |
isGeoReady = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6194 |
if ( ! ( window.OpenLayers && window.OpenLayers.Layer.Stamen ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6195 |
setTimeout(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6196 |
isGeoReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6197 |
}, 50); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6198 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6199 |
if ( options.location ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6200 |
// set a dummy center at start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6201 |
location = new OpenLayers.LonLat( 0, 0 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6202 |
// query TinyGeocoder and re-center in callback |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6203 |
Popcorn.getJSONP( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6204 |
"//tinygeocoder.com/create-api.php?q=" + options.location + "&callback=jsonp", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6205 |
function( latlng ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6206 |
centerlonlat = new OpenLayers.LonLat( latlng[ 1 ], latlng[ 0 ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6207 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6208 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6209 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6210 |
centerlonlat = new OpenLayers.LonLat( options.lng, options.lat ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6211 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6212 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6213 |
options.type = options.type || "ROADMAP"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6214 |
switch( options.type ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6215 |
case "SATELLITE" : |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6216 |
// add NASA WorldWind / LANDSAT map |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6217 |
options.map = new OpenLayers.Map({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6218 |
div: newdiv, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6219 |
maxResolution: 0.28125, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6220 |
tileSize: new OpenLayers.Size( 512, 512 ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6221 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6222 |
var worldwind = new OpenLayers.Layer.WorldWind( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6223 |
"LANDSAT", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6224 |
"//worldwind25.arc.nasa.gov/tile/tile.aspx", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6225 |
2.25, 4, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6226 |
{ T: "105" }
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6227 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6228 |
options.map.addLayer( worldwind ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6229 |
displayProjection = new OpenLayers.Projection( "EPSG:4326" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6230 |
projection = new OpenLayers.Projection( "EPSG:4326" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6231 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6232 |
case "TERRAIN": |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6233 |
// add terrain map ( USGS ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6234 |
displayProjection = new OpenLayers.Projection( "EPSG:4326" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6235 |
projection = new OpenLayers.Projection( "EPSG:4326" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6236 |
options.map = new OpenLayers.Map({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6237 |
div: newdiv, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6238 |
projection: projection |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6239 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6240 |
var relief = new OpenLayers.Layer.WMS( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6241 |
"USGS Terraserver", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6242 |
"//terraserver-usa.org/ogcmap.ashx?", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6243 |
{ layers: "DRG" }
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6244 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6245 |
options.map.addLayer( relief ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6246 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6247 |
case "STAMEN-TONER": |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6248 |
case "STAMEN-WATERCOLOR": |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6249 |
case "STAMEN-TERRAIN": |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6250 |
var layerName = options.type.replace("STAMEN-", "").toLowerCase();
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6251 |
var sLayer = new OpenLayers.Layer.Stamen( layerName ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6252 |
displayProjection = new OpenLayers.Projection( "EPSG:4326" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6253 |
projection = new OpenLayers.Projection( 'EPSG:900913' ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6254 |
centerlonlat = centerlonlat.transform( displayProjection, projection ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6255 |
options.map = new OpenLayers.Map( {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6256 |
div: newdiv, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6257 |
projection: projection, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6258 |
displayProjection: displayProjection, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6259 |
controls: [ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6260 |
new OpenLayers.Control.Navigation(), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6261 |
new OpenLayers.Control.PanPanel(), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6262 |
new OpenLayers.Control.ZoomPanel() |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6263 |
] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6264 |
} ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6265 |
options.map.addLayer( sLayer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6266 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6267 |
default: /* case "ROADMAP": */ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6268 |
// add OpenStreetMap layer |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6269 |
projection = new OpenLayers.Projection( 'EPSG:900913' ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6270 |
displayProjection = new OpenLayers.Projection( 'EPSG:4326' ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6271 |
centerlonlat = centerlonlat.transform( displayProjection, projection ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6272 |
options.map = new OpenLayers.Map({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6273 |
div: newdiv, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6274 |
projection: projection, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6275 |
"displayProjection": displayProjection |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6276 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6277 |
var osm = new OpenLayers.Layer.OSM(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6278 |
options.map.addLayer( osm ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6279 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6280 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6281 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6282 |
if ( options.map ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6283 |
options.map.setCenter(centerlonlat, options.zoom || 10); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6284 |
options.map.div.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6285 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6286 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6287 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6288 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6289 |
isGeoReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6290 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6291 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6292 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6293 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6294 |
* @member openmap |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6295 |
* The setup function will be executed when the plug-in is instantiated |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6296 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6297 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6298 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6299 |
// insert openlayers api script once |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6300 |
if ( !window.OpenLayers ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6301 |
Popcorn.getScript( "//openlayers.org/api/OpenLayers.js", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6302 |
Popcorn.getScript( "//maps.stamen.com/js/tile.stamen.js" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6303 |
} ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6304 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6305 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6306 |
var isReady = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6307 |
// wait until OpenLayers has been loaded, and the start function is run, before adding map |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6308 |
if ( !options.map ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6309 |
setTimeout(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6310 |
isReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6311 |
}, 13 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6312 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6313 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6314 |
// default zoom is 2 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6315 |
options.zoom = options.zoom || 2; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6316 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6317 |
// make sure options.zoom is a number |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6318 |
if ( options.zoom && typeof options.zoom !== "number" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6319 |
options.zoom = +options.zoom; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6320 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6321 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6322 |
// reset the location and zoom just in case the user played with the map |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6323 |
options.map.setCenter( centerlonlat, options.zoom ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6324 |
if ( options.markers ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6325 |
var layerStyle = OpenLayers.Util.extend( {} , OpenLayers.Feature.Vector.style[ "default" ] ),
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6326 |
featureSelected = function( clickInfo ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6327 |
clickedFeature = clickInfo.feature; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6328 |
if ( !clickedFeature.attributes.text ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6329 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6330 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6331 |
popup = new OpenLayers.Popup.FramedCloud( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6332 |
"featurePopup", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6333 |
clickedFeature.geometry.getBounds().getCenterLonLat(), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6334 |
new OpenLayers.Size( 120, 250 ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6335 |
clickedFeature.attributes.text, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6336 |
null, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6337 |
true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6338 |
function( closeInfo ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6339 |
selectControl.unselect( this.feature ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6340 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6341 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6342 |
clickedFeature.popup = popup; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6343 |
popup.feature = clickedFeature; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6344 |
options.map.addPopup( popup ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6345 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6346 |
featureUnSelected = function( clickInfo ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6347 |
feature = clickInfo.feature; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6348 |
if ( feature.popup ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6349 |
popup.feature = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6350 |
options.map.removePopup( feature.popup ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6351 |
feature.popup.destroy(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6352 |
feature.popup = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6353 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6354 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6355 |
gcThenPlotMarker = function( myMarker ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6356 |
Popcorn.getJSONP( |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6357 |
"//tinygeocoder.com/create-api.php?q=" + myMarker.location + "&callback=jsonp", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6358 |
function( latlng ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6359 |
var myPoint = new OpenLayers.Geometry.Point( latlng[1], latlng[0] ).transform( displayProjection, projection ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6360 |
myPointStyle = OpenLayers.Util.extend( {}, layerStyle );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6361 |
if ( !myMarker.size || isNaN( myMarker.size ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6362 |
myMarker.size = 14; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6363 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6364 |
myPointStyle.pointRadius = myMarker.size; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6365 |
myPointStyle.graphicOpacity = 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6366 |
myPointStyle.externalGraphic = myMarker.icon; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6367 |
var myPointFeature = new OpenLayers.Feature.Vector( myPoint, null, myPointStyle ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6368 |
if ( myMarker.text ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6369 |
myPointFeature.attributes = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6370 |
text: myMarker.text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6371 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6372 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6373 |
pointLayer.addFeatures( [ myPointFeature ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6374 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6375 |
); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6376 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6377 |
pointLayer = new OpenLayers.Layer.Vector( "Point Layer", { style: layerStyle } );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6378 |
options.map.addLayer( pointLayer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6379 |
for ( var m = 0, l = options.markers.length; m < l ; m++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6380 |
var myMarker = options.markers[ m ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6381 |
if( myMarker.text ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6382 |
if( !selectControl ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6383 |
selectControl = new OpenLayers.Control.SelectFeature( pointLayer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6384 |
options.map.addControl( selectControl ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6385 |
selectControl.activate(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6386 |
pointLayer.events.on({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6387 |
"featureselected": featureSelected, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6388 |
"featureunselected": featureUnSelected |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6389 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6390 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6391 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6392 |
if ( myMarker.location ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6393 |
var geocodeThenPlotMarker = gcThenPlotMarker; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6394 |
geocodeThenPlotMarker( myMarker ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6395 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6396 |
var myPoint = new OpenLayers.Geometry.Point( myMarker.lng, myMarker.lat ).transform( displayProjection, projection ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6397 |
myPointStyle = OpenLayers.Util.extend( {}, layerStyle );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6398 |
if ( !myMarker.size || isNaN( myMarker.size ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6399 |
myMarker.size = 14; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6400 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6401 |
myPointStyle.pointRadius = myMarker.size; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6402 |
myPointStyle.graphicOpacity = 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6403 |
myPointStyle.externalGraphic = myMarker.icon; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6404 |
var myPointFeature = new OpenLayers.Feature.Vector( myPoint, null, myPointStyle ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6405 |
if ( myMarker.text ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6406 |
myPointFeature.attributes = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6407 |
text: myMarker.text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6408 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6409 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6410 |
pointLayer.addFeatures( [ myPointFeature ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6411 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6412 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6413 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6414 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6415 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6416 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6417 |
isReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6418 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6419 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6420 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6421 |
* @member openmap |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6422 |
* The start function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6423 |
* of the video reaches the start time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6424 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6425 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6426 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6427 |
toggle( options, "block" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6428 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6429 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6430 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6431 |
* @member openmap |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6432 |
* The end function will be executed when the currentTime |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6433 |
* of the video reaches the end time provided by the |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6434 |
* options variable |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6435 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6436 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6437 |
toggle( options, "none" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6438 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6439 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6440 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6441 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6442 |
target && target.removeChild( newdiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6443 |
newdiv = map = centerlonlat = projection = displayProjection = pointLayer = selectControl = popup = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6444 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6445 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6446 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6447 |
{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6448 |
about:{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6449 |
name: "Popcorn OpenMap Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6450 |
version: "0.3", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6451 |
author: "@mapmeld", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6452 |
website: "mapadelsur.blogspot.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6453 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6454 |
options:{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6455 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6456 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6457 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6458 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6459 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6460 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6461 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6462 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6463 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6464 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6465 |
target: "map-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6466 |
type: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6467 |
elem: "select", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6468 |
options: [ "ROADMAP", "SATELLITE", "TERRAIN" ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6469 |
label: "Map Type", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6470 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6471 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6472 |
zoom: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6473 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6474 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6475 |
label: "Zoom", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6476 |
"default": 2 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6477 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6478 |
lat: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6479 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6480 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6481 |
label: "Lat", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6482 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6483 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6484 |
lng: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6485 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6486 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6487 |
label: "Lng", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6488 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6489 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6490 |
location: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6491 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6492 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6493 |
label: "Location", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6494 |
"default": "Toronto, Ontario, Canada" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6495 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6496 |
markers: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6497 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6498 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6499 |
label: "List Markers", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6500 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6501 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6502 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6503 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6504 |
}) ( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6505 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6506 |
* Pause Popcorn Plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6507 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6508 |
* When this plugin is used, links on the webpage, when clicked, will pause |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6509 |
* popcorn videos that especified 'pauseOnLinkClicked' as an option. Links may |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6510 |
* cause a new page to display on a new window, or may cause a new page to |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6511 |
* display in the current window, in which case the videos won't be available |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6512 |
* anymore. It only affects anchor tags. It does not affect objects with click |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6513 |
* events that act as anchors. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6514 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6515 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6516 |
var p = Popcorn('#video', { pauseOnLinkClicked : true } )
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6517 |
.play(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6518 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6519 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6520 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6521 |
document.addEventListener( "click", function( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6522 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6523 |
var targetElement = event.target; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6524 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6525 |
//Some browsers use an element as the target, some use the text node inside |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6526 |
if ( targetElement.nodeName === "A" || targetElement.parentNode && targetElement.parentNode.nodeName === "A" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6527 |
Popcorn.instances.forEach( function( video ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6528 |
if ( video.options.pauseOnLinkClicked ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6529 |
video.pause(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6530 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6531 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6532 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6533 |
}, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6534 |
// PLUGIN: Wordriver |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6535 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6536 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6537 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6538 |
var container = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6539 |
spanLocation = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6540 |
setupContainer = function( target ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6541 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6542 |
container[ target ] = document.createElement( "div" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6543 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6544 |
var t = document.getElementById( target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6545 |
t && t.appendChild( container[ target ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6546 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6547 |
container[ target ].style.height = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6548 |
container[ target ].style.position = "relative"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6549 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6550 |
return container[ target ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6551 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6552 |
// creates an object of supported, cross platform css transitions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6553 |
span = document.createElement( "span" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6554 |
prefixes = [ "webkit", "Moz", "ms", "O", "" ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6555 |
specProp = [ "Transform", "TransitionDuration", "TransitionTimingFunction" ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6556 |
supports = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6557 |
prop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6558 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6559 |
document.getElementsByTagName( "head" )[ 0 ].appendChild( span ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6560 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6561 |
for ( var sIdx = 0, sLen = specProp.length; sIdx < sLen; sIdx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6562 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6563 |
for ( var pIdx = 0, pLen = prefixes.length; pIdx < pLen; pIdx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6564 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6565 |
prop = prefixes[ pIdx ] + specProp[ sIdx ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6566 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6567 |
if ( prop in span.style ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6568 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6569 |
supports[ specProp[ sIdx ].toLowerCase() ] = prop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6570 |
break; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6571 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6572 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6573 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6574 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6575 |
// Garbage collect support test span |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6576 |
document.getElementsByTagName( "head" )[ 0 ].appendChild( span ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6577 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6578 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6579 |
* Word River popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6580 |
* Displays a string of text, fading it in and out |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6581 |
* while transitioning across the height of the parent container |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6582 |
* for the duration of the instance (duration = end - start) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6583 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6584 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6585 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6586 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6587 |
var p = Popcorn( '#video' ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6588 |
.wordriver({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6589 |
start: 5, // When to begin the Word River animation |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6590 |
end: 15, // When to finish the Word River animation |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6591 |
text: 'Hello World', // The text you want to be displayed by Word River |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6592 |
target: 'wordRiverDiv', // The target div to append the text to |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6593 |
color: "blue" // The color of the text. (can be Hex value i.e. #FFFFFF ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6594 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6595 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6596 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6597 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6598 |
Popcorn.plugin( "wordriver" , {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6599 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6600 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6601 |
about:{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6602 |
name: "Popcorn WordRiver Plugin" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6603 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6604 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6605 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6606 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6607 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6608 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6609 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6610 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6611 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6612 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6613 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6614 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6615 |
target: "wordriver-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6616 |
text: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6617 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6618 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6619 |
label: "Text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6620 |
"default": "Popcorn.js" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6621 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6622 |
color: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6623 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6624 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6625 |
label: "Color", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6626 |
"default": "Green", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6627 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6628 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6629 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6630 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6631 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6632 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6633 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6634 |
options._duration = options.end - options.start; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6635 |
options._container = container[ options.target ] || setupContainer( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6636 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6637 |
options.word = document.createElement( "span" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6638 |
options.word.style.position = "absolute"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6639 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6640 |
options.word.style.whiteSpace = "nowrap"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6641 |
options.word.style.opacity = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6642 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6643 |
options.word.style.MozTransitionProperty = "opacity, -moz-transform"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6644 |
options.word.style.webkitTransitionProperty = "opacity, -webkit-transform"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6645 |
options.word.style.OTransitionProperty = "opacity, -o-transform"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6646 |
options.word.style.transitionProperty = "opacity, transform"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6647 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6648 |
options.word.style[ supports.transitionduration ] = 1 + "s, " + options._duration + "s"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6649 |
options.word.style[ supports.transitiontimingfunction ] = "linear"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6650 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6651 |
options.word.innerHTML = options.text; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6652 |
options.word.style.color = options.color || "black"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6653 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6654 |
start: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6655 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6656 |
options._container.appendChild( options.word ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6657 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6658 |
// Resets the transform when changing to a new currentTime before the end event occurred. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6659 |
options.word.style[ supports.transform ] = ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6660 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6661 |
options.word.style.fontSize = ~~( 30 + 20 * Math.random() ) + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6662 |
spanLocation = spanLocation % ( options._container.offsetWidth - options.word.offsetWidth ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6663 |
options.word.style.left = spanLocation + "px"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6664 |
spanLocation += options.word.offsetWidth + 10; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6665 |
options.word.style[ supports.transform ] = "translateY(" +
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6666 |
( options._container.offsetHeight - options.word.offsetHeight ) + "px)"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6667 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6668 |
options.word.style.opacity = 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6669 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6670 |
// automatically clears the word based on time |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6671 |
setTimeout( function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6672 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6673 |
options.word.style.opacity = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6674 |
// ensures at least one second exists, because the fade animation is 1 second |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6675 |
}, ( ( (options.end - options.start) - 1 ) || 1 ) * 1000 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6676 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6677 |
end: function( event, options ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6678 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6679 |
// manually clears the word based on user interaction |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6680 |
options.word.style.opacity = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6681 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6682 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6683 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6684 |
var target = document.getElementById( options.target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6685 |
// removes word span from generated container |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6686 |
options.word.parentNode && options._container.removeChild( options.word ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6687 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6688 |
// if no more word spans exist in container, remove container |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6689 |
container[ options.target ] && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6690 |
!container[ options.target ].childElementCount && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6691 |
target && target.removeChild( container[ options.target ] ) && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6692 |
delete container[ options.target ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6693 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6694 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6695 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6696 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6697 |
// PLUGIN: Timeline |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6698 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6699 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6700 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6701 |
* timeline popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6702 |
* Adds data associated with a certain time in the video, which creates a scrolling view of each item as the video progresses |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6703 |
* Options parameter will need a start, target, title, and text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6704 |
* -Start is the time that you want this plug-in to execute |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6705 |
* -End is the time that you want this plug-in to stop executing, tho for this plugin an end time may not be needed ( optional ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6706 |
* -Target is the id of the DOM element that you want the timeline to appear in. This element must be in the DOM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6707 |
* -Title is the title of the current timeline box |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6708 |
* -Text is text is simply related text that will be displayed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6709 |
* -innerHTML gives the user the option to add things such as links, buttons and so on |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6710 |
* -direction specifies whether the timeline will grow from the top or the bottom, receives input as "UP" or "DOWN" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6711 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6712 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6713 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6714 |
var p = Popcorn("#video")
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6715 |
.timeline( {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6716 |
start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6717 |
target: "timeline", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6718 |
title: "Seneca", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6719 |
text: "Welcome to seneca", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6720 |
innerHTML: "Click this link <a href='http://www.google.ca'>Google</a>" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6721 |
} ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6722 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6723 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6724 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6725 |
var i = 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6726 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6727 |
Popcorn.plugin( "timeline" , function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6728 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6729 |
var target = document.getElementById( options.target ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6730 |
contentDiv = document.createElement( "div" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6731 |
container, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6732 |
goingUp = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6733 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6734 |
if ( target && !target.firstChild ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6735 |
target.appendChild ( container = document.createElement( "div" ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6736 |
container.style.width = "inherit"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6737 |
container.style.height = "inherit"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6738 |
container.style.overflow = "auto"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6739 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6740 |
container = target.firstChild; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6741 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6742 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6743 |
contentDiv.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6744 |
contentDiv.id = "timelineDiv" + i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6745 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6746 |
// Default to up if options.direction is non-existant or not up or down |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6747 |
options.direction = options.direction || "up"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6748 |
if ( options.direction.toLowerCase() === "down" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6749 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6750 |
goingUp = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6751 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6752 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6753 |
if ( target && container ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6754 |
// if this isnt the first div added to the target div |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6755 |
if( goingUp ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6756 |
// insert the current div before the previous div inserted |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6757 |
container.insertBefore( contentDiv, container.firstChild ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6758 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6759 |
else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6760 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6761 |
container.appendChild( contentDiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6762 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6763 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6764 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6765 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6766 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6767 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6768 |
// Default to empty if not used |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6769 |
//options.innerHTML = options.innerHTML || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6770 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6771 |
contentDiv.innerHTML = "<p><span id='big' style='font-size:24px; line-height: 130%;' >" + options.title + "</span><br />" + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6772 |
"<span id='mid' style='font-size: 16px;'>" + options.text + "</span><br />" + options.innerHTML; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6773 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6774 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6775 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6776 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6777 |
contentDiv.style.display = "block"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6778 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6779 |
if( options.direction === "down" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6780 |
container.scrollTop = container.scrollHeight; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6781 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6782 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6783 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6784 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6785 |
contentDiv.style.display = "none"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6786 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6787 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6788 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6789 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6790 |
( container && contentDiv ) && container.removeChild( contentDiv ) && !container.firstChild && target.removeChild( container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6791 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6792 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6793 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6794 |
{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6795 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6796 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6797 |
name: "Popcorn Timeline Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6798 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6799 |
author: "David Seifried @dcseifried", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6800 |
website: "dseifried.wordpress.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6801 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6802 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6803 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6804 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6805 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6806 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6807 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6808 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6809 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6810 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6811 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6812 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6813 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6814 |
target: "feed-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6815 |
title: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6816 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6817 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6818 |
label: "Title" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6819 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6820 |
text: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6821 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6822 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6823 |
label: "Text" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6824 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6825 |
innerHTML: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6826 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6827 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6828 |
label: "HTML Code", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6829 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6830 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6831 |
direction: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6832 |
elem: "select", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6833 |
options: [ "DOWN", "UP" ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6834 |
label: "Direction", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6835 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6836 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6837 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6838 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6839 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6840 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6841 |
// PLUGIN: documentcloud |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6842 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6843 |
(function( Popcorn, document ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6844 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6845 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6846 |
* Document Cloud popcorn plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6847 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6848 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6849 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6850 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6851 |
* var p = Popcorn("#video")
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6852 |
* // Let the pdf plugin load your PDF file for you using pdfUrl. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6853 |
* .documentcloud({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6854 |
* start: 45 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6855 |
* url: "http://www.documentcloud.org/documents/70050-urbina-day-1-in-progress.html", // or .js |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6856 |
* width: ..., |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6857 |
* height: ..., |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6858 |
* zoom: ..., |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6859 |
* page: ..., |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6860 |
* container: ... |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6861 |
* }); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6862 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6863 |
api - https://github.com/documentcloud/document-viewer/blob/master/public/javascripts/DV/controllers/api.js |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6864 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6865 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6866 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6867 |
// track registered plugins by document |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6868 |
var documentRegistry = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6869 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6870 |
Popcorn.plugin( "documentcloud", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6871 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6872 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6873 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6874 |
name: "Popcorn Document Cloud Plugin", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6875 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6876 |
author: "@humphd, @ChrisDeCairos", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6877 |
website: "http://vocamus.net/dave" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6878 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6879 |
options: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6880 |
start: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6881 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6882 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6883 |
label: "Start" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6884 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6885 |
end: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6886 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6887 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6888 |
label: "End" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6889 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6890 |
target: "documentcloud-container", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6891 |
width: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6892 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6893 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6894 |
label: "Width", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6895 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6896 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6897 |
height: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6898 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6899 |
type: "text", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6900 |
label: "Height", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6901 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6902 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6903 |
src: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6904 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6905 |
type: "url", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6906 |
label: "PDF URL", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6907 |
"default": "http://www.documentcloud.org/documents/70050-urbina-day-1-in-progress.html" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6908 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6909 |
preload: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6910 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6911 |
type: "checkbox", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6912 |
label: "Preload", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6913 |
"default": true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6914 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6915 |
page: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6916 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6917 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6918 |
label: "Page Number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6919 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6920 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6921 |
aid: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6922 |
elem: "input", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6923 |
type: "number", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6924 |
label: "Annotation Id", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6925 |
optional: true |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6926 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6927 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6928 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6929 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6930 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6931 |
var DV = window.DV = window.DV || {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6932 |
that = this; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6933 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6934 |
//setup elem... |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6935 |
function load() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6936 |
DV.loaded = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6937 |
// swap .html URL to .js for API call |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6938 |
var url = options.url.replace( /\.html$/, ".js" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6939 |
target = options.target, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6940 |
targetDiv = document.getElementById( target ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6941 |
containerDiv = document.createElement( "div" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6942 |
containerDivSize = Popcorn.position( targetDiv ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6943 |
// need to use size of div if not given |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6944 |
width = options.width || containerDivSize.width, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6945 |
height = options.height || containerDivSize.height, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6946 |
sidebar = options.sidebar || true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6947 |
text = options.text || true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6948 |
pdf = options.pdf || true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6949 |
showAnnotations = options.showAnnotations || true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6950 |
zoom = options.zoom || 700, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6951 |
search = options.search || true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6952 |
page = options.page, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6953 |
container; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6954 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6955 |
function setOptions( viewer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6956 |
options._key = viewer.api.getId(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6957 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6958 |
options._changeView = function ( viewer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6959 |
if ( options.aid ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6960 |
viewer.pageSet.showAnnotation( viewer.api.getAnnotation( options.aid ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6961 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6962 |
viewer.api.setCurrentPage( options.page ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6963 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6964 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6965 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6966 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6967 |
function documentIsLoaded( url ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6968 |
var found = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6969 |
Popcorn.forEach( DV.viewers, function( viewer, idx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6970 |
if( viewer.api.getSchema().canonicalURL === url ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6971 |
var targetDoc; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6972 |
setOptions( viewer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6973 |
targetDoc = documentRegistry[ options._key ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6974 |
options._containerId = targetDoc.id; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6975 |
targetDoc.num += 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6976 |
found = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6977 |
DV.loaded = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6978 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6979 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6980 |
return found; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6981 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6982 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6983 |
function createRegistryEntry() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6984 |
var entry = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6985 |
num: 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6986 |
id: options._containerId |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6987 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6988 |
documentRegistry[ options._key ] = entry; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6989 |
DV.loaded = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6990 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6991 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6992 |
if ( !documentIsLoaded( options.url ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6993 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6994 |
containerDiv.id = options._containerId = Popcorn.guid( target ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6995 |
container = "#" + containerDiv.id; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6996 |
targetDiv.appendChild( containerDiv ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6997 |
that.trigger( "documentready" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6998 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
6999 |
// Figure out if we need a callback to change the page # |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7000 |
var afterLoad = options.page || options.aid ? |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7001 |
function( viewer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7002 |
setOptions( viewer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7003 |
options._changeView( viewer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7004 |
containerDiv.style.visibility = "hidden"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7005 |
viewer.elements.pages.hide(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7006 |
createRegistryEntry(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7007 |
} : |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7008 |
function( viewer ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7009 |
setOptions( viewer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7010 |
createRegistryEntry(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7011 |
containerDiv.style.visibility = "hidden"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7012 |
viewer.elements.pages.hide(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7013 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7014 |
DV.load( url, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7015 |
width: width, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7016 |
height: height, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7017 |
sidebar: sidebar, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7018 |
text: text, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7019 |
pdf: pdf, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7020 |
showAnnotations: showAnnotations, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7021 |
zoom: zoom, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7022 |
search: search, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7023 |
container: container, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7024 |
afterLoad: afterLoad |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7025 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7026 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7027 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7028 |
function readyCheck() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7029 |
if( window.DV.loaded ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7030 |
load(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7031 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7032 |
setTimeout( readyCheck, 25 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7033 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7034 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7035 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7036 |
// If the viewer is already loaded, don't repeat the process. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7037 |
if ( !DV.loading ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7038 |
DV.loading = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7039 |
DV.recordHit = "//www.documentcloud.org/pixel.gif"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7040 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7041 |
var link = document.createElement( "link" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7042 |
head = document.getElementsByTagName( "head" )[ 0 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7043 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7044 |
link.rel = "stylesheet"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7045 |
link.type = "text/css"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7046 |
link.media = "screen"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7047 |
link.href = "//s3.documentcloud.org/viewer/viewer-datauri.css"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7048 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7049 |
head.appendChild( link ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7050 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7051 |
// Record the fact that the viewer is loaded. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7052 |
DV.loaded = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7053 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7054 |
// Request the viewer JavaScript. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7055 |
Popcorn.getScript( "http://s3.documentcloud.org/viewer/viewer.js", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7056 |
DV.loading = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7057 |
load(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7058 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7059 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7060 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7061 |
readyCheck(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7062 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7063 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7064 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7065 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7066 |
start: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7067 |
var elem = document.getElementById( options._containerId ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7068 |
viewer = DV.viewers[ options._key ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7069 |
( options.page || options.aid ) && viewer && |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7070 |
options._changeView( viewer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7071 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7072 |
if ( elem && viewer) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7073 |
elem.style.visibility = "visible"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7074 |
viewer.elements.pages.show(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7075 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7076 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7077 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7078 |
end: function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7079 |
var elem = document.getElementById( options._containerId ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7080 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7081 |
if ( elem && DV.viewers[ options._key ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7082 |
elem.style.visibility = "hidden"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7083 |
DV.viewers[ options._key ].elements.pages.hide(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7084 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7085 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7086 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7087 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7088 |
var elem = document.getElementById( options._containerId ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7089 |
key = options._key; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7090 |
if ( key && DV.viewers[ key ] && --documentRegistry[ key ].num === 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7091 |
DV.viewers[ key ].api.unload(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7092 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7093 |
while ( elem.hasChildNodes() ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7094 |
elem.removeChild( elem.lastChild ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7095 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7096 |
elem.parentNode.removeChild( elem ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7097 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7098 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7099 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7100 |
})( Popcorn, window.document ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7101 |
// PARSER: 0.3 JSON |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7102 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7103 |
(function (Popcorn) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7104 |
Popcorn.parser( "parseJSON", "JSON", function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7105 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7106 |
// declare needed variables |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7107 |
var retObj = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7108 |
title: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7109 |
remote: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7110 |
data: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7111 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7112 |
manifestData = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7113 |
dataObj = data; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7114 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7115 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7116 |
/* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7117 |
TODO: add support for filling in source children of the video element |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7118 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7119 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7120 |
remote: [ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7121 |
{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7122 |
src: "whatever.mp4", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7123 |
type: 'video/mp4; codecs="avc1, mp4a"' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7124 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7125 |
{
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7126 |
src: "whatever.ogv", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7127 |
type: 'video/ogg; codecs="theora, vorbis"' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7128 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7129 |
] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7130 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7131 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7132 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7133 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7134 |
Popcorn.forEach( dataObj.data, function ( obj, key ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7135 |
retObj.data.push( obj ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7136 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7137 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7138 |
return retObj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7139 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7140 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7141 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7142 |
// PARSER: 0.1 SBV |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7143 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7144 |
(function (Popcorn) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7145 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7146 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7147 |
* SBV popcorn parser plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7148 |
* Parses subtitle files in the SBV format. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7149 |
* Times are expected in H:MM:SS.MIL format, with hours optional |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7150 |
* Subtitles which don't match expected format are ignored |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7151 |
* Data parameter is given by Popcorn, will need a text. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7152 |
* Text is the file contents to be parsed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7153 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7154 |
* @param {Object} data
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7155 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7156 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7157 |
0:00:02.400,0:00:07.200 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7158 |
Senator, we're making our final approach into Coruscant. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7159 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7160 |
Popcorn.parser( "parseSBV", function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7161 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7162 |
// declare needed variables |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7163 |
var retObj = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7164 |
title: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7165 |
remote: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7166 |
data: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7167 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7168 |
subs = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7169 |
lines, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7170 |
i = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7171 |
len = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7172 |
idx = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7173 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7174 |
// [H:]MM:SS.MIL string to SS.MIL |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7175 |
// Will thrown exception on bad time format |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7176 |
var toSeconds = function( t_in ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7177 |
var t = t_in.split( ":" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7178 |
l = t.length-1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7179 |
time; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7180 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7181 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7182 |
time = parseInt( t[l-1], 10 )*60 + parseFloat( t[l], 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7183 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7184 |
// Hours optionally given |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7185 |
if ( l === 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7186 |
time += parseInt( t[0], 10 )*3600; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7187 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7188 |
} catch ( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7189 |
throw "Bad cue"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7190 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7191 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7192 |
return time; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7193 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7194 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7195 |
var createTrack = function( name, attributes ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7196 |
var track = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7197 |
track[name] = attributes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7198 |
return track; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7199 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7200 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7201 |
// Here is where the magic happens |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7202 |
// Split on line breaks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7203 |
lines = data.text.split( /(?:\r\n|\r|\n)/gm ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7204 |
len = lines.length; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7205 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7206 |
while ( i < len ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7207 |
var sub = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7208 |
text = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7209 |
time = lines[i++].split( "," ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7210 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7211 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7212 |
sub.start = toSeconds( time[0] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7213 |
sub.end = toSeconds( time[1] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7214 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7215 |
// Gather all lines of text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7216 |
while ( i < len && lines[i] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7217 |
text.push( lines[i++] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7218 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7219 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7220 |
// Join line breaks in text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7221 |
sub.text = text.join( "<br />" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7222 |
subs.push( createTrack( "subtitle", sub ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7223 |
} catch ( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7224 |
// Bad cue, advance to end of cue |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7225 |
while ( i < len && lines[i] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7226 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7227 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7228 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7229 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7230 |
// Consume empty whitespace |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7231 |
while ( i < len && !lines[i] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7232 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7233 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7234 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7235 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7236 |
retObj.data = subs; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7237 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7238 |
return retObj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7239 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7240 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7241 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7242 |
// PARSER: 0.3 SRT |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7243 |
(function (Popcorn) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7244 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7245 |
* SRT popcorn parser plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7246 |
* Parses subtitle files in the SRT format. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7247 |
* Times are expected in HH:MM:SS,MIL format, though HH:MM:SS.MIL also supported |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7248 |
* Ignore styling, which may occur after the end time or in-text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7249 |
* While not part of the "official" spec, majority of players support HTML and SSA styling tags |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7250 |
* SSA-style tags are stripped, HTML style tags are left for the browser to handle: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7251 |
* HTML: <font>, <b>, <i>, <u>, <s> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7252 |
* SSA: \N or \n, {\cmdArg1}, {\cmd(arg1, arg2, ...)}
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7253 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7254 |
* Data parameter is given by Popcorn, will need a text. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7255 |
* Text is the file contents to be parsed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7256 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7257 |
* @param {Object} data
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7258 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7259 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7260 |
1 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7261 |
00:00:25,712 --> 00:00:30.399 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7262 |
This text is <font color="red">RED</font> and has not been {\pos(142,120)} positioned.
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7263 |
This takes \Nup three \nentire lines. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7264 |
This contains nested <b>bold, <i>italic, <u>underline</u> and <s>strike-through</s></u></i></b> HTML tags |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7265 |
Unclosed but <b>supported tags are left in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7266 |
<ggg>Unsupported</ggg> HTML tags are left in, even if <hhh>not closed. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7267 |
SSA tags with {\i1} would open and close italicize {\i0}, but are stripped
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7268 |
Multiple {\pos(142,120)\b1}SSA tags are stripped
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7269 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7270 |
Popcorn.parser( "parseSRT", function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7271 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7272 |
// declare needed variables |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7273 |
var retObj = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7274 |
title: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7275 |
remote: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7276 |
data: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7277 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7278 |
subs = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7279 |
i = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7280 |
idx = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7281 |
lines, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7282 |
time, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7283 |
text, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7284 |
endIdx, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7285 |
sub; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7286 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7287 |
// Here is where the magic happens |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7288 |
// Split on line breaks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7289 |
lines = data.text.split( /(?:\r\n|\r|\n)/gm ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7290 |
endIdx = lastNonEmptyLine( lines ) + 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7291 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7292 |
for( i=0; i < endIdx; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7293 |
sub = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7294 |
text = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7295 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7296 |
sub.id = parseInt( lines[i++], 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7297 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7298 |
// Split on '-->' delimiter, trimming spaces as well |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7299 |
time = lines[i++].split( /[\t ]*-->[\t ]*/ ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7300 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7301 |
sub.start = toSeconds( time[0] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7302 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7303 |
// So as to trim positioning information from end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7304 |
idx = time[1].indexOf( " " ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7305 |
if ( idx !== -1) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7306 |
time[1] = time[1].substr( 0, idx ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7307 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7308 |
sub.end = toSeconds( time[1] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7309 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7310 |
// Build single line of text from multi-line subtitle in file |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7311 |
while ( i < endIdx && lines[i] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7312 |
text.push( lines[i++] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7313 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7314 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7315 |
// Join into 1 line, SSA-style linebreaks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7316 |
// Strip out other SSA-style tags |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7317 |
sub.text = text.join( "\\N" ).replace( /\{(\\[\w]+\(?([\w\d]+,?)+\)?)+\}/gi, "" );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7318 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7319 |
// Escape HTML entities |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7320 |
sub.text = sub.text.replace( /</g, "<" ).replace( />/g, ">" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7321 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7322 |
// Unescape great than and less than when it makes a valid html tag of a supported style (font, b, u, s, i) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7323 |
// Modified version of regex from Phil Haack's blog: http://haacked.com/archive/2004/10/25/usingregularexpressionstomatchhtml.aspx |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7324 |
// Later modified by kev: http://kevin.deldycke.com/2007/03/ultimate-regular-expression-for-html-tag-parsing-with-php/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7325 |
sub.text = sub.text.replace( /<(\/?(font|b|u|i|s))((\s+(\w|\w[\w\-]*\w)(\s*=\s*(?:\".*?\"|'.*?'|[^'\">\s]+))?)+\s*|\s*)(\/?)>/gi, "<$1$3$7>" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7326 |
sub.text = sub.text.replace( /\\N/gi, "<br />" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7327 |
subs.push( createTrack( "subtitle", sub ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7328 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7329 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7330 |
retObj.data = subs; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7331 |
return retObj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7332 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7333 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7334 |
function createTrack( name, attributes ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7335 |
var track = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7336 |
track[name] = attributes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7337 |
return track; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7338 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7339 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7340 |
// Simple function to convert HH:MM:SS,MMM or HH:MM:SS.MMM to SS.MMM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7341 |
// Assume valid, returns 0 on error |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7342 |
function toSeconds( t_in ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7343 |
var t = t_in.split( ':' ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7344 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7345 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7346 |
var s = t[2].split( ',' ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7347 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7348 |
// Just in case a . is decimal seperator |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7349 |
if ( s.length === 1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7350 |
s = t[2].split( '.' ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7351 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7352 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7353 |
return parseFloat( t[0], 10 ) * 3600 + parseFloat( t[1], 10 ) * 60 + parseFloat( s[0], 10 ) + parseFloat( s[1], 10 ) / 1000; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7354 |
} catch ( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7355 |
return 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7356 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7357 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7358 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7359 |
function lastNonEmptyLine( linesArray ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7360 |
var idx = linesArray.length - 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7361 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7362 |
while ( idx >= 0 && !linesArray[idx] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7363 |
idx--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7364 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7365 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7366 |
return idx; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7367 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7368 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7369 |
// PARSER: 0.3 SSA/ASS |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7370 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7371 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7372 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7373 |
* SSA/ASS popcorn parser plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7374 |
* Parses subtitle files in the identical SSA and ASS formats. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7375 |
* Style information is ignored, and may be found in these |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7376 |
* formats: (\N \n {\pos(400,570)} {\kf89})
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7377 |
* Out of the [Script Info], [V4 Styles], [Events], [Pictures], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7378 |
* and [Fonts] sections, only [Events] is processed. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7379 |
* Data parameter is given by Popcorn, will need a text. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7380 |
* Text is the file contents to be parsed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7381 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7382 |
* @param {Object} data
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7383 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7384 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7385 |
[Script Info] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7386 |
Title: Testing subtitles for the SSA Format |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7387 |
[V4 Styles] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7388 |
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7389 |
Style: Default,Arial,20,65535,65535,65535,-2147483640,-1,0,1,3,0,2,30,30,30,0,0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7390 |
[Events] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7391 |
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7392 |
Dialogue: 0,0:00:02.40,0:00:07.20,Default,,0000,0000,0000,,Senator, {\kf89}we're \Nmaking our final \napproach into Coruscant.
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7393 |
Dialogue: 0,0:00:09.71,0:00:13.39,Default,,0000,0000,0000,,{\pos(400,570)}Very good, Lieutenant.
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7394 |
Dialogue: 0,0:00:15.04,0:00:18.04,Default,,0000,0000,0000,,It's \Na \ntrap! |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7395 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7396 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7397 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7398 |
// Register for SSA extensions |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7399 |
Popcorn.parser( "parseSSA", function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7400 |
// declare needed variables |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7401 |
var retObj = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7402 |
title: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7403 |
remote: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7404 |
data: [ ] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7405 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7406 |
rNewLineFile = /(?:\r\n|\r|\n)/gm, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7407 |
subs = [ ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7408 |
lines, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7409 |
headers, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7410 |
i = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7411 |
len; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7412 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7413 |
// Here is where the magic happens |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7414 |
// Split on line breaks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7415 |
lines = data.text.split( rNewLineFile ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7416 |
len = lines.length; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7417 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7418 |
// Ignore non-textual info |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7419 |
while ( i < len && lines[ i ] !== "[Events]" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7420 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7421 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7422 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7423 |
headers = parseFieldHeaders( lines[ ++i ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7424 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7425 |
while ( ++i < len && lines[ i ] && lines[ i ][ 0 ] !== "[" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7426 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7427 |
subs.push( createTrack( "subtitle", parseSub( lines[ i ], headers ) ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7428 |
} catch ( e ) {}
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7429 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7430 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7431 |
retObj.data = subs; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7432 |
return retObj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7433 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7434 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7435 |
function parseSub( line, headers ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7436 |
// Trim beginning 'Dialogue: ' and split on delim |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7437 |
var fields = line.substr( 10 ).split( "," ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7438 |
rAdvancedStyles = /\{(\\[\w]+\(?([\w\d]+,?)+\)?)+\}/gi,
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7439 |
rNewLineSSA = /\\N/gi, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7440 |
sub; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7441 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7442 |
sub = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7443 |
start: toSeconds( fields[ headers.start ] ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7444 |
end: toSeconds( fields[ headers.end ] ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7445 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7446 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7447 |
// Invalid time, skip |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7448 |
if ( sub.start === -1 || sub.end === -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7449 |
throw "Invalid time"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7450 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7451 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7452 |
// Eliminate advanced styles and convert forced line breaks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7453 |
sub.text = getTextFromFields( fields, headers.text ).replace( rAdvancedStyles, "" ).replace( rNewLineSSA, "<br />" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7454 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7455 |
return sub; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7456 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7457 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7458 |
// h:mm:ss.cc (centisec) string to SS.mmm |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7459 |
// Returns -1 if invalid |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7460 |
function toSeconds( t_in ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7461 |
var t = t_in.split( ":" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7462 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7463 |
// Not all there |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7464 |
if ( t_in.length !== 10 || t.length < 3 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7465 |
return -1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7466 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7467 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7468 |
return parseInt( t[ 0 ], 10 ) * 3600 + parseInt( t[ 1 ], 10 ) * 60 + parseFloat( t[ 2 ], 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7469 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7470 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7471 |
function getTextFromFields( fields, startIdx ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7472 |
var fieldLen = fields.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7473 |
text = [ ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7474 |
i = startIdx; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7475 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7476 |
// There may be commas in the text which were split, append back together into one line |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7477 |
for( ; i < fieldLen; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7478 |
text.push( fields[ i ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7479 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7480 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7481 |
return text.join( "," ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7482 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7483 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7484 |
function createTrack( name, attributes ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7485 |
var track = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7486 |
track[ name ] = attributes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7487 |
return track; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7488 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7489 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7490 |
function parseFieldHeaders( line ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7491 |
// Trim 'Format: ' off front, split on delim |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7492 |
var fields = line.substr( 8 ).split( ", " ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7493 |
result = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7494 |
len, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7495 |
i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7496 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7497 |
//Find where in Dialogue string the start, end and text info is |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7498 |
for ( i = 0, len = fields.length; i < len; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7499 |
if ( fields[ i ] === "Start" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7500 |
result.start = i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7501 |
} else if ( fields[ i ] === "End" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7502 |
result.end = i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7503 |
} else if ( fields[ i ] === "Text" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7504 |
result.text = i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7505 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7506 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7507 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7508 |
return result; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7509 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7510 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7511 |
// PARSER: 1.0 TTML |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7512 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7513 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7514 |
* TTML popcorn parser plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7515 |
* Parses subtitle files in the TTML format. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7516 |
* Times may be absolute to the timeline or relative |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7517 |
* Absolute times are ISO 8601 format (hh:mm:ss[.mmm]) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7518 |
* Relative times are a fraction followed by a unit metric (d.ddu) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7519 |
* Relative times are relative to the time given on the parent node |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7520 |
* Styling information is ignored |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7521 |
* Data parameter is given by Popcorn, will need an xml. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7522 |
* Xml is the file contents to be processed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7523 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7524 |
* @param {Object} data
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7525 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7526 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7527 |
<tt xmlns:tts="http://www.w3.org/2006/04/ttaf1#styling" xmlns="http://www.w3.org/2006/04/ttaf1"> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7528 |
<body region="subtitleArea"> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7529 |
<div> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7530 |
<p xml:id="subtitle1" begin="0.76s" end="3.45s"> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7531 |
It seems a paradox, does it not, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7532 |
</p> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7533 |
</div> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7534 |
</body> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7535 |
</tt> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7536 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7537 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7538 |
var rWhitespace = /^[\s]+|[\s]+$/gm, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7539 |
rLineBreak = /(?:\r\n|\r|\n)/gm; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7540 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7541 |
Popcorn.parser( "parseTTML", function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7542 |
var returnData = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7543 |
title: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7544 |
remote: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7545 |
data: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7546 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7547 |
node; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7548 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7549 |
// Null checks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7550 |
if ( !data.xml || !data.xml.documentElement ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7551 |
return returnData; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7552 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7553 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7554 |
node = data.xml.documentElement.firstChild; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7555 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7556 |
if ( !node ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7557 |
return returnData; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7558 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7559 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7560 |
// Find body tag |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7561 |
while ( node.nodeName !== "body" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7562 |
node = node.nextSibling; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7563 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7564 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7565 |
if ( node ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7566 |
returnData.data = parseChildren( node, 0 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7567 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7568 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7569 |
return returnData; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7570 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7571 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7572 |
// Parse the children of the given node |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7573 |
function parseChildren( node, timeOffset, region ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7574 |
var currNode = node.firstChild, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7575 |
currRegion = getNodeRegion( node, region ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7576 |
retVal = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7577 |
newOffset; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7578 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7579 |
while ( currNode ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7580 |
if ( currNode.nodeType === 1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7581 |
if ( currNode.nodeName === "p" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7582 |
// p is a textual node, process contents as subtitle |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7583 |
retVal.push( parseNode( currNode, timeOffset, currRegion ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7584 |
} else if ( currNode.nodeName === "div" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7585 |
// div is container for subtitles, recurse |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7586 |
newOffset = toSeconds( currNode.getAttribute( "begin" ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7587 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7588 |
if (newOffset < 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7589 |
newOffset = timeOffset; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7590 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7591 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7592 |
retVal.push.apply( retVal, parseChildren( currNode, newOffset, currRegion ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7593 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7594 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7595 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7596 |
currNode = currNode.nextSibling; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7597 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7598 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7599 |
return retVal; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7600 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7601 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7602 |
// Get the "region" attribute of a node, to know where to put the subtitles |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7603 |
function getNodeRegion( node, defaultTo ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7604 |
var region = node.getAttribute( "region" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7605 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7606 |
if ( region !== null ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7607 |
return region; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7608 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7609 |
return defaultTo || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7610 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7611 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7612 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7613 |
// Parse a node for text content |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7614 |
function parseNode( node, timeOffset, region ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7615 |
var sub = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7616 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7617 |
// Trim left and right whitespace from text and convert non-explicit line breaks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7618 |
sub.text = ( node.textContent || node.text ).replace( rWhitespace, "" ).replace( rLineBreak, "<br />" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7619 |
sub.id = node.getAttribute( "xml:id" ) || node.getAttribute( "id" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7620 |
sub.start = toSeconds ( node.getAttribute( "begin" ), timeOffset ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7621 |
sub.end = toSeconds( node.getAttribute( "end" ), timeOffset ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7622 |
sub.target = getNodeRegion( node, region ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7623 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7624 |
if ( sub.end < 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7625 |
// No end given, infer duration if possible |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7626 |
// Otherwise, give end as MAX_VALUE |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7627 |
sub.end = toSeconds( node.getAttribute( "duration" ), 0 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7628 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7629 |
if ( sub.end >= 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7630 |
sub.end += sub.start; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7631 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7632 |
sub.end = Number.MAX_VALUE; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7633 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7634 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7635 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7636 |
return { subtitle : sub };
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7637 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7638 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7639 |
// Convert time expression to SS.mmm |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7640 |
// Expression may be absolute to timeline (hh:mm:ss.ms) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7641 |
// or relative ( decimal followed by metric ) ex: 3.4s, 5.7m |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7642 |
// Returns -1 if invalid |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7643 |
function toSeconds( t_in, offset ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7644 |
var i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7645 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7646 |
if ( !t_in ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7647 |
return -1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7648 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7649 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7650 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7651 |
return Popcorn.util.toSeconds( t_in ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7652 |
} catch ( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7653 |
i = getMetricIndex( t_in ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7654 |
return parseFloat( t_in.substring( 0, i ) ) * getMultipler( t_in.substring( i ) ) + ( offset || 0 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7655 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7656 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7657 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7658 |
// In a time string such as 3.4ms, get the index of the first character (m) of the time metric (ms) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7659 |
function getMetricIndex( t_in ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7660 |
var i = t_in.length - 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7661 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7662 |
while ( i >= 0 && t_in[ i ] <= "9" && t_in[ i ] >= "0" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7663 |
i--; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7664 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7665 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7666 |
return i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7667 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7668 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7669 |
// Determine multiplier for metric relative to seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7670 |
function getMultipler( metric ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7671 |
return {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7672 |
"h" : 3600, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7673 |
"m" : 60, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7674 |
"s" : 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7675 |
"ms" : 0.001 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7676 |
}[ metric ] || -1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7677 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7678 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7679 |
// PARSER: 0.1 TTXT |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7680 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7681 |
(function (Popcorn) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7682 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7683 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7684 |
* TTXT popcorn parser plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7685 |
* Parses subtitle files in the TTXT format. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7686 |
* Style information is ignored. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7687 |
* Data parameter is given by Popcorn, will need an xml. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7688 |
* Xml is the file contents to be parsed as a DOM tree |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7689 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7690 |
* @param {Object} data
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7691 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7692 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7693 |
<TextSample sampleTime="00:00:00.000" text=""></TextSample> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7694 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7695 |
Popcorn.parser( "parseTTXT", function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7696 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7697 |
// declare needed variables |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7698 |
var returnData = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7699 |
title: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7700 |
remote: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7701 |
data: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7702 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7703 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7704 |
// Simple function to convert HH:MM:SS.MMM to SS.MMM |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7705 |
// Assume valid, returns 0 on error |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7706 |
var toSeconds = function(t_in) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7707 |
var t = t_in.split(":");
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7708 |
var time = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7709 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7710 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7711 |
return parseFloat(t[0], 10)*60*60 + parseFloat(t[1], 10)*60 + parseFloat(t[2], 10); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7712 |
} catch (e) { time = 0; }
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7713 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7714 |
return time; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7715 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7716 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7717 |
// creates an object of all atrributes keyed by name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7718 |
var createTrack = function( name, attributes ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7719 |
var track = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7720 |
track[name] = attributes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7721 |
return track; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7722 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7723 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7724 |
// this is where things actually start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7725 |
var node = data.xml.lastChild.lastChild; // Last Child of TextStreamHeader |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7726 |
var lastStart = Number.MAX_VALUE; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7727 |
var cmds = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7728 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7729 |
// Work backwards through DOM, processing TextSample nodes |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7730 |
while (node) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7731 |
if ( node.nodeType === 1 && node.nodeName === "TextSample") {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7732 |
var sub = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7733 |
sub.start = toSeconds(node.getAttribute('sampleTime'));
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7734 |
sub.text = node.getAttribute('text');
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7735 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7736 |
if (sub.text) { // Only process if text to display
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7737 |
// Infer end time from prior element, ms accuracy |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7738 |
sub.end = lastStart - 0.001; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7739 |
cmds.push( createTrack("subtitle", sub) );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7740 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7741 |
lastStart = sub.start; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7742 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7743 |
node = node.previousSibling; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7744 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7745 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7746 |
returnData.data = cmds.reverse(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7747 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7748 |
return returnData; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7749 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7750 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7751 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7752 |
// PARSER: 0.3 WebSRT/VTT |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7753 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7754 |
(function ( Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7755 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7756 |
* WebVTT popcorn parser plug-in |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7757 |
* Parses subtitle files in the WebVTT format. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7758 |
* Specification here: http://www.whatwg.org/specs/web-apps/current-work/webvtt.html |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7759 |
* Styles which appear after timing information are presently ignored. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7760 |
* Inline styling tags follow HTML conventions and are left in for the browser to handle (or ignore if VTT-specific) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7761 |
* Data parameter is given by Popcorn, text property holds file contents. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7762 |
* Text is the file contents to be parsed |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7763 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7764 |
* @param {Object} data
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7765 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7766 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7767 |
00:32.500 --> 00:00:33.500 A:start S:50% D:vertical L:98% |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7768 |
<v Neil DeGrass Tyson><i>Laughs</i> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7769 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7770 |
Popcorn.parser( "parseVTT", function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7771 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7772 |
// declare needed variables |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7773 |
var retObj = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7774 |
title: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7775 |
remote: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7776 |
data: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7777 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7778 |
subs = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7779 |
i = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7780 |
len = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7781 |
lines, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7782 |
text, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7783 |
sub, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7784 |
rNewLine = /(?:\r\n|\r|\n)/gm; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7785 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7786 |
// Here is where the magic happens |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7787 |
// Split on line breaks |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7788 |
lines = data.text.split( rNewLine ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7789 |
len = lines.length; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7790 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7791 |
// Check for BOF token |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7792 |
if ( len === 0 || lines[ 0 ] !== "WEBVTT" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7793 |
return retObj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7794 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7795 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7796 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7797 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7798 |
while ( i < len ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7799 |
text = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7800 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7801 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7802 |
i = skipWhitespace( lines, len, i ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7803 |
sub = parseCueHeader( lines[ i++ ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7804 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7805 |
// Build single line of text from multi-line subtitle in file |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7806 |
while ( i < len && lines[ i ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7807 |
text.push( lines[ i++ ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7808 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7809 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7810 |
// Join lines together to one and build subtitle text |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7811 |
sub.text = text.join( "<br />" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7812 |
subs.push( createTrack( "subtitle", sub ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7813 |
} catch ( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7814 |
i = skipNonWhitespace( lines, len, i ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7815 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7816 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7817 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7818 |
retObj.data = subs; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7819 |
return retObj; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7820 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7821 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7822 |
// [HH:]MM:SS.mmm string to SS.mmm float |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7823 |
// Throws exception if invalid |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7824 |
function toSeconds ( t_in ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7825 |
var t = t_in.split( ":" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7826 |
l = t_in.length, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7827 |
time; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7828 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7829 |
// Invalid time string provided |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7830 |
if ( l !== 12 && l !== 9 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7831 |
throw "Bad cue"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7832 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7833 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7834 |
l = t.length - 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7835 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7836 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7837 |
time = parseInt( t[ l-1 ], 10 ) * 60 + parseFloat( t[ l ], 10 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7838 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7839 |
// Hours were given |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7840 |
if ( l === 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7841 |
time += parseInt( t[ 0 ], 10 ) * 3600; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7842 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7843 |
} catch ( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7844 |
throw "Bad cue"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7845 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7846 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7847 |
return time; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7848 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7849 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7850 |
function createTrack( name, attributes ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7851 |
var track = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7852 |
track[ name ] = attributes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7853 |
return track; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7854 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7855 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7856 |
function parseCueHeader ( line ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7857 |
var lineSegments, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7858 |
args, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7859 |
sub = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7860 |
rToken = /-->/, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7861 |
rWhitespace = /[\t ]+/; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7862 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7863 |
if ( !line || line.indexOf( "-->" ) === -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7864 |
throw "Bad cue"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7865 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7866 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7867 |
lineSegments = line.replace( rToken, " --> " ).split( rWhitespace ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7868 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7869 |
if ( lineSegments.length < 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7870 |
throw "Bad cue"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7871 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7872 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7873 |
sub.id = line; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7874 |
sub.start = toSeconds( lineSegments[ 0 ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7875 |
sub.end = toSeconds( lineSegments[ 2 ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7876 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7877 |
return sub; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7878 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7879 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7880 |
function skipWhitespace ( lines, len, i ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7881 |
while ( i < len && !lines[ i ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7882 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7883 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7884 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7885 |
return i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7886 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7887 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7888 |
function skipNonWhitespace ( lines, len, i ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7889 |
while ( i < len && lines[ i ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7890 |
i++; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7891 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7892 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7893 |
return i; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7894 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7895 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7896 |
// PARSER: 0.1 XML |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7897 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7898 |
(function (Popcorn) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7899 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7900 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7901 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7902 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7903 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7904 |
Popcorn.parser( "parseXML", "XML", function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7905 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7906 |
// declare needed variables |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7907 |
var returnData = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7908 |
title: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7909 |
remote: "", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7910 |
data: [] |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7911 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7912 |
manifestData = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7913 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7914 |
// Simple function to convert 0:05 to 0.5 in seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7915 |
// acceptable formats are HH:MM:SS:MM, MM:SS:MM, SS:MM, SS |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7916 |
var toSeconds = function(time) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7917 |
var t = time.split(":");
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7918 |
if (t.length === 1) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7919 |
return parseFloat(t[0], 10); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7920 |
} else if (t.length === 2) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7921 |
return parseFloat(t[0], 10) + parseFloat(t[1] / 12, 10); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7922 |
} else if (t.length === 3) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7923 |
return parseInt(t[0] * 60, 10) + parseFloat(t[1], 10) + parseFloat(t[2] / 12, 10); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7924 |
} else if (t.length === 4) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7925 |
return parseInt(t[0] * 3600, 10) + parseInt(t[1] * 60, 10) + parseFloat(t[2], 10) + parseFloat(t[3] / 12, 10); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7926 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7927 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7928 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7929 |
// turns a node tree element into a straight up javascript object |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7930 |
// also converts in and out to start and end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7931 |
// also links manifest data with ids |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7932 |
var objectifyAttributes = function ( nodeAttributes ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7933 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7934 |
var returnObject = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7935 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7936 |
for ( var i = 0, nal = nodeAttributes.length; i < nal; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7937 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7938 |
var key = nodeAttributes.item(i).nodeName, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7939 |
data = nodeAttributes.item(i).nodeValue, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7940 |
manifestItem = manifestData[ data ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7941 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7942 |
// converts in into start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7943 |
if (key === "in") {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7944 |
returnObject.start = toSeconds( data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7945 |
// converts out into end |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7946 |
} else if ( key === "out" ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7947 |
returnObject.end = toSeconds( data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7948 |
// this is where ids in the manifest are linked |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7949 |
} else if ( key === "resourceid" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7950 |
for ( var item in manifestItem ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7951 |
if ( manifestItem.hasOwnProperty( item ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7952 |
if ( !returnObject[ item ] && item !== "id" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7953 |
returnObject[ item ] = manifestItem[ item ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7954 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7955 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7956 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7957 |
// everything else |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7958 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7959 |
returnObject[key] = data; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7960 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7961 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7962 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7963 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7964 |
return returnObject; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7965 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7966 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7967 |
// creates an object of all atrributes keyd by name |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7968 |
var createTrack = function( name, attributes ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7969 |
var track = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7970 |
track[name] = attributes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7971 |
return track; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7972 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7973 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7974 |
// recursive function to process a node, or process the next child node |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7975 |
var parseNode = function ( node, allAttributes, manifest ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7976 |
var attributes = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7977 |
Popcorn.extend( attributes, allAttributes, objectifyAttributes( node.attributes ), { text: node.textContent || node.text } );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7978 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7979 |
var childNodes = node.childNodes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7980 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7981 |
// processes the node |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7982 |
if ( childNodes.length < 1 || ( childNodes.length === 1 && childNodes[0].nodeType === 3 ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7983 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7984 |
if ( !manifest ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7985 |
returnData.data.push( createTrack( node.nodeName, attributes ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7986 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7987 |
manifestData[attributes.id] = attributes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7988 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7989 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7990 |
// process the next child node |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7991 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7992 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7993 |
for ( var i = 0; i < childNodes.length; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7994 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7995 |
if ( childNodes[i].nodeType === 1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7996 |
parseNode( childNodes[i], attributes, manifest ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7997 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7998 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
7999 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8000 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8001 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8002 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8003 |
// this is where things actually start |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8004 |
var x = data.documentElement.childNodes; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8005 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8006 |
for ( var i = 0, xl = x.length; i < xl; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8007 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8008 |
if ( x[i].nodeType === 1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8009 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8010 |
// start the process of each main node type, manifest or timeline |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8011 |
if ( x[i].nodeName === "manifest" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8012 |
parseNode( x[i], {}, true );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8013 |
} else { // timeline
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8014 |
parseNode( x[i], {}, false );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8015 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8016 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8017 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8018 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8019 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8020 |
return returnData; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8021 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8022 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8023 |
})( Popcorn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8024 |
(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8025 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8026 |
var scriptLoaded = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8027 |
loading = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8028 |
Popcorn.player( "soundcloud", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8029 |
_canPlayType: function( nodeName, url ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8030 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8031 |
return (/(?:http:\/\/www\.|http:\/\/|www\.|\.|^)(soundcloud)/).test( url ) && nodeName.toLowerCase() !== "video"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8032 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8033 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8034 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8035 |
var media = this, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8036 |
container = document.createElement( "iframe" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8037 |
lastVolume = 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8038 |
currentTime = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8039 |
paused = true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8040 |
realPaused = true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8041 |
widget, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8042 |
duration = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8043 |
muted = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8044 |
playerQueue = Popcorn.player.playerQueue(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8045 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8046 |
options._container = container; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8047 |
media.style.visibility = "hidden"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8048 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8049 |
media.play = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8050 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8051 |
paused = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8052 |
playerQueue.add(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8053 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8054 |
if ( realPaused ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8055 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8056 |
widget && widget.play(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8057 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8058 |
playerQueue.next(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8059 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8060 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8061 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8062 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8063 |
media.pause = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8064 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8065 |
paused = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8066 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8067 |
playerQueue.add(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8068 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8069 |
if ( !realPaused ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8070 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8071 |
widget && widget.pause(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8072 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8073 |
playerQueue.next(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8074 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8075 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8076 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8077 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8078 |
// getter and setter for muted property, multiply volume by 100 as that is the scale soundcloud works on |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8079 |
Object.defineProperties( media, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8080 |
muted: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8081 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8082 |
if ( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8083 |
widget && widget.getVolume(function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8084 |
lastVolume = data / 100; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8085 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8086 |
widget && widget.setVolume( 0 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8087 |
muted = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8088 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8089 |
widget && widget.setVolume( lastVolume * 100 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8090 |
muted = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8091 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8092 |
media.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8093 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8094 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8095 |
return muted; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8096 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8097 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8098 |
volume: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8099 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8100 |
widget && widget.setVolume( val * 100 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8101 |
lastVolume = val ; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8102 |
media.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8103 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8104 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8105 |
return muted ? 0 : lastVolume; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8106 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8107 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8108 |
currentTime: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8109 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8110 |
currentTime = val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8111 |
widget && widget.seekTo( val * 1000 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8112 |
media.dispatchEvent( "seeked" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8113 |
media.dispatchEvent( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8114 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8115 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8116 |
return currentTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8117 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8118 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8119 |
duration: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8120 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8121 |
return duration; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8122 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8123 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8124 |
paused: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8125 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8126 |
return paused; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8127 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8128 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8129 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8130 |
// called when the SoundCloud api script has loaded |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8131 |
function scriptReady() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8132 |
scriptLoaded = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8133 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8134 |
SC.initialize({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8135 |
client_id: "PRaNFlda6Bhf5utPjUsptg" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8136 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8137 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8138 |
SC.get( "/resolve", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8139 |
url: media.src |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8140 |
}, function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8141 |
media.width = media.style.width ? "" + media.offsetWidth : "560"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8142 |
media.height = media.style.height ? "" + media.offsetHeight : "315"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8143 |
// TODO: There are quite a few options here that we should pass on to the user |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8144 |
container.scrolling = "no"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8145 |
container.frameborder = "no"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8146 |
container.id = "soundcloud-" + Popcorn.guid(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8147 |
container.src = "http://w.soundcloud.com/player/?url=" + data.uri + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8148 |
"&show_artwork=false" + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8149 |
"&buying=false" + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8150 |
"&liking=false" + |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8151 |
"&sharing=false"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8152 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8153 |
container.width = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8154 |
container.height = "100%"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8155 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8156 |
options.loadListener = function( e ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8157 |
options.widget = widget = SC.Widget( container.id ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8158 |
// setup all of our listeners |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8159 |
widget.bind(SC.Widget.Events.FINISH, function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8160 |
media.pause(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8161 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8162 |
media.dispatchEvent( "ended" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8163 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8164 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8165 |
widget.bind(SC.Widget.Events.PLAY_PROGRESS, function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8166 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8167 |
currentTime = data.currentPosition / 1000; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8168 |
media.dispatchEvent( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8169 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8170 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8171 |
widget.bind(SC.Widget.Events.PLAY, function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8172 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8173 |
paused = realPaused = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8174 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8175 |
media.dispatchEvent( "play" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8176 |
media.dispatchEvent( "playing" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8177 |
media.currentTime = currentTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8178 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8179 |
playerQueue.next(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8180 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8181 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8182 |
widget.bind(SC.Widget.Events.PAUSE, function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8183 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8184 |
paused = realPaused = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8185 |
media.dispatchEvent( "pause" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8186 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8187 |
playerQueue.next(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8188 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8189 |
widget.bind(SC.Widget.Events.READY, function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8190 |
widget.getDuration(function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8191 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8192 |
duration = data / 1000; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8193 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8194 |
media.style.visibility = "visible"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8195 |
media.dispatchEvent( "durationchange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8196 |
// update the readyState after we have the duration |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8197 |
media.readyState = 4; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8198 |
media.dispatchEvent( "readystatechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8199 |
media.dispatchEvent( "loadedmetadata" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8200 |
media.dispatchEvent( "loadeddata" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8201 |
media.dispatchEvent( "canplaythrough" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8202 |
media.dispatchEvent( "load" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8203 |
!media.paused && media.play(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8204 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8205 |
widget.getVolume(function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8206 |
lastVolume = data / 100; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8207 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8208 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8209 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8210 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8211 |
container.addEventListener( "load", options.loadListener, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8212 |
media.appendChild( container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8213 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8214 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8215 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8216 |
// load the SoundCloud API script if it doesn't exist |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8217 |
function loadScript() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8218 |
if ( !loading ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8219 |
loading = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8220 |
Popcorn.getScript( "http://w.soundcloud.com/player/api.js", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8221 |
Popcorn.getScript( "http://connect.soundcloud.com/sdk.js", function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8222 |
scriptReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8223 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8224 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8225 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8226 |
(function isReady() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8227 |
setTimeout(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8228 |
if ( !scriptLoaded ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8229 |
isReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8230 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8231 |
scriptReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8232 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8233 |
}, 100 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8234 |
})(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8235 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8236 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8237 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8238 |
if ( !scriptLoaded ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8239 |
loadScript(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8240 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8241 |
scriptReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8242 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8243 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8244 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8245 |
var widget = options.widget, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8246 |
events = SC.Widget.Events, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8247 |
container = options._container, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8248 |
parentContainer = container.parentNode; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8249 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8250 |
options.destroyed = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8251 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8252 |
// if the widget never got setup, remove the containers load listener and return |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8253 |
if ( !widget ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8254 |
container.removeEventListener( "load", options.loadEventListener, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8255 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8256 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8257 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8258 |
// remove all bound soundcloud listeners |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8259 |
for ( var prop in events ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8260 |
widget && widget.unbind( events[ prop ] ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8261 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8262 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8263 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8264 |
})(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8265 |
(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8266 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8267 |
// parseUri 1.2.2 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8268 |
// http://blog.stevenlevithan.com/archives/parseuri |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8269 |
// (c) Steven Levithan <stevenlevithan.com> |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8270 |
// MIT License |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8271 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8272 |
function parseUri (str) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8273 |
var o = parseUri.options, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8274 |
m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8275 |
uri = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8276 |
i = 14; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8277 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8278 |
while (i--) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8279 |
uri[o.key[i]] = m[i] || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8280 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8281 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8282 |
uri[o.q.name] = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8283 |
uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8284 |
if ($1) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8285 |
uri[o.q.name][$1] = $2; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8286 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8287 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8288 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8289 |
return uri; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8290 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8291 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8292 |
parseUri.options = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8293 |
strictMode: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8294 |
key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8295 |
q: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8296 |
name: "queryKey", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8297 |
parser: /(?:^|&)([^&=]*)=?([^&]*)/g |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8298 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8299 |
parser: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8300 |
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8301 |
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8302 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8303 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8304 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8305 |
function canPlayType( nodeName, url ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8306 |
return ( /player.vimeo.com\/video\/\d+/ ).test( url ) || |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8307 |
( /vimeo.com\/\d+/ ).test( url ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8308 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8309 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8310 |
Popcorn.player( "vimeo", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8311 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8312 |
_canPlayType: canPlayType, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8313 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8314 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8315 |
var TIMEUPDATE_INTERVAL_MS = 250, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8316 |
CURRENT_TIME_MONITOR_MS = 16, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8317 |
MediaErrorInterface = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8318 |
MEDIA_ERR_ABORTED: 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8319 |
MEDIA_ERR_NETWORK: 2, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8320 |
MEDIA_ERR_DECODE: 3, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8321 |
MEDIA_ERR_SRC_NOT_SUPPORTED: 4 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8322 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8323 |
guid, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8324 |
media = this, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8325 |
commands = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8326 |
q: [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8327 |
queue: function queue( fn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8328 |
this.q.push( fn ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8329 |
this.process(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8330 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8331 |
process: function process() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8332 |
if ( !vimeoReady ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8333 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8334 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8335 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8336 |
while ( this.q.length ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8337 |
var fn = this.q.shift(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8338 |
fn(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8339 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8340 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8341 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8342 |
currentTimeId, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8343 |
timeUpdateId, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8344 |
vimeoReady, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8345 |
vimeoContainer = document.createElement( "iframe" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8346 |
// Loosely based on HTMLMediaElement + HTMLVideoElement IDL |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8347 |
impl = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8348 |
// error state |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8349 |
error: null, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8350 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8351 |
// network state |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8352 |
src: media.src, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8353 |
NETWORK_EMPTY: 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8354 |
NETWORK_IDLE: 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8355 |
NETWORK_LOADING: 2, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8356 |
NETWORK_NO_SOURCE: 3, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8357 |
networkState: 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8358 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8359 |
// ready state |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8360 |
HAVE_NOTHING: 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8361 |
HAVE_METADATA: 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8362 |
HAVE_CURRENT_DATA: 2, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8363 |
HAVE_FUTURE_DATA: 3, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8364 |
HAVE_ENOUGH_DATA: 4, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8365 |
readyState: 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8366 |
seeking: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8367 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8368 |
// playback state |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8369 |
currentTime: 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8370 |
duration: NaN, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8371 |
paused: true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8372 |
ended: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8373 |
autoplay: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8374 |
loop: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8375 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8376 |
// controls |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8377 |
volume: 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8378 |
muted: false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8379 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8380 |
// Video attributes |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8381 |
width: 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8382 |
height: 0 |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8383 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8384 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8385 |
var readOnlyAttrs = "error networkState readyState seeking duration paused ended"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8386 |
Popcorn.forEach( readOnlyAttrs.split(" "), function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8387 |
Object.defineProperty( media, value, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8388 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8389 |
return impl[ value ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8390 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8391 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8392 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8393 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8394 |
Object.defineProperties( media, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8395 |
"src": {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8396 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8397 |
return impl.src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8398 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8399 |
set: function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8400 |
// Is there any sort of logic that determines whether to load the video or not? |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8401 |
impl.src = value; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8402 |
media.load(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8403 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8404 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8405 |
"currentTime": {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8406 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8407 |
return impl.currentTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8408 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8409 |
set: function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8410 |
commands.queue(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8411 |
sendMessage( "seekTo", value ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8412 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8413 |
impl.seeking = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8414 |
media.dispatchEvent( "seeking" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8415 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8416 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8417 |
"autoplay": {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8418 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8419 |
return impl.autoplay; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8420 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8421 |
set: function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8422 |
impl.autoplay = !!value; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8423 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8424 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8425 |
"loop": {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8426 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8427 |
return impl.loop; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8428 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8429 |
set: function( value) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8430 |
impl.loop = !!value; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8431 |
commands.queue(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8432 |
sendMessage( "setLoop", loop ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8433 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8434 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8435 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8436 |
"volume": {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8437 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8438 |
return impl.volume; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8439 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8440 |
set: function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8441 |
impl.volume = value; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8442 |
commands.queue(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8443 |
sendMessage( "setVolume", impl.muted ? 0 : impl.volume ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8444 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8445 |
media.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8446 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8447 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8448 |
"muted": {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8449 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8450 |
return impl.muted; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8451 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8452 |
set: function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8453 |
impl.muted = !!value; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8454 |
commands.queue(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8455 |
sendMessage( "setVolume", impl.muted ? 0 : impl.volume ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8456 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8457 |
media.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8458 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8459 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8460 |
"width": {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8461 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8462 |
return vimeoContainer.width; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8463 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8464 |
set: function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8465 |
vimeoContainer.width = value; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8466 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8467 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8468 |
"height": {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8469 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8470 |
return vimeoContainer.height; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8471 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8472 |
set: function( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8473 |
vimeoContainer.height = value; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8474 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8475 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8476 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8477 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8478 |
function sendMessage( method, params ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8479 |
var url = vimeoContainer.src.split( "?" )[ 0 ], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8480 |
data = JSON.stringify({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8481 |
method: method, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8482 |
value: params |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8483 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8484 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8485 |
if ( url.substr( 0, 2 ) === "//" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8486 |
url = window.location.protocol + url; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8487 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8488 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8489 |
// The iframe has been destroyed, it just doesn't know it |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8490 |
if ( !vimeoContainer.contentWindow ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8491 |
media.unload(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8492 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8493 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8494 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8495 |
vimeoContainer.contentWindow.postMessage( data, url ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8496 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8497 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8498 |
var vimeoAPIMethods = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8499 |
"getCurrentTime": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8500 |
impl.currentTime = parseFloat( data.value ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8501 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8502 |
"getDuration": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8503 |
impl.duration = parseFloat( data.value ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8504 |
maybeReady(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8505 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8506 |
"getVolume": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8507 |
impl.volume = parseFloat( data.value ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8508 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8509 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8510 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8511 |
var vimeoAPIEvents = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8512 |
"ready": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8513 |
sendMessage( "addEventListener", "loadProgress" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8514 |
sendMessage( "addEventListener", "playProgress" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8515 |
sendMessage( "addEventListener", "play" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8516 |
sendMessage( "addEventListener", "pause" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8517 |
sendMessage( "addEventListener", "finish" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8518 |
sendMessage( "addEventListener", "seek" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8519 |
sendMessage( "getDuration" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8520 |
vimeoReady = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8521 |
commands.process(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8522 |
media.dispatchEvent( "loadstart" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8523 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8524 |
"loadProgress": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8525 |
media.dispatchEvent( "progress" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8526 |
// loadProgress has a more accurate duration than getDuration |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8527 |
impl.duration = parseFloat( data.data.duration ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8528 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8529 |
"playProgress": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8530 |
impl.currentTime = parseFloat( data.data.seconds ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8531 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8532 |
"play": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8533 |
// Vimeo plays video if seeking from an unloaded state |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8534 |
if ( impl.seeking ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8535 |
impl.seeking = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8536 |
media.dispatchEvent( "seeked" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8537 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8538 |
impl.paused = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8539 |
impl.ended = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8540 |
startUpdateLoops(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8541 |
media.dispatchEvent( "play" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8542 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8543 |
"pause": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8544 |
impl.paused = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8545 |
stopUpdateLoops(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8546 |
media.dispatchEvent( "pause" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8547 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8548 |
"finish": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8549 |
impl.ended = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8550 |
stopUpdateLoops(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8551 |
media.dispatchEvent( "ended" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8552 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8553 |
"seek": function( data ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8554 |
impl.currentTime = parseFloat( data.data.seconds ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8555 |
impl.seeking = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8556 |
impl.ended = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8557 |
media.dispatchEvent( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8558 |
media.dispatchEvent( "seeked" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8559 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8560 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8561 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8562 |
function messageListener( event ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8563 |
if ( event.origin !== "http://player.vimeo.com" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8564 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8565 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8566 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8567 |
var data; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8568 |
try {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8569 |
data = JSON.parse( event.data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8570 |
} catch ( ex ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8571 |
console.warn( ex ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8572 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8573 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8574 |
if ( data.player_id != guid ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8575 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8576 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8577 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8578 |
// Methods |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8579 |
if ( data.method && vimeoAPIMethods[ data.method ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8580 |
vimeoAPIMethods[ data.method ]( data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8581 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8582 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8583 |
// Events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8584 |
if ( data.event && vimeoAPIEvents[ data.event ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8585 |
vimeoAPIEvents[ data.event ]( data ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8586 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8587 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8588 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8589 |
media.load = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8590 |
vimeoReady = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8591 |
guid = Popcorn.guid(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8592 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8593 |
var src = parseUri( impl.src ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8594 |
combinedOptions = {},
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8595 |
optionsArray = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8596 |
vimeoAPIOptions = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8597 |
api: 1, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8598 |
player_id: guid |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8599 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8600 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8601 |
if ( !canPlayType( media.nodeName, src.source ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8602 |
setErrorAttr( impl.MEDIA_ERR_SRC_NOT_SUPPORTED ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8603 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8604 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8605 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8606 |
// Add Popcorn ctor options, url options, then the Vimeo API options |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8607 |
Popcorn.extend( combinedOptions, options ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8608 |
Popcorn.extend( combinedOptions, src.queryKey ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8609 |
Popcorn.extend( combinedOptions, vimeoAPIOptions ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8610 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8611 |
// Create the base vimeo player string. It will always have query string options |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8612 |
src = "http://player.vimeo.com/video/" + ( /\d+$/ ).exec( src.path ) + "?"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8613 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8614 |
for ( var key in combinedOptions ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8615 |
if ( combinedOptions.hasOwnProperty( key ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8616 |
optionsArray.push( encodeURIComponent( key ) + "=" + encodeURIComponent( combinedOptions[ key ] ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8617 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8618 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8619 |
src += optionsArray.join( "&" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8620 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8621 |
impl.loop = !!src.match( /loop=1/ ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8622 |
impl.autoplay = !!src.match( /autoplay=1/ ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8623 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8624 |
vimeoContainer.width = media.style.width ? media.style.width : 500; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8625 |
vimeoContainer.height = media.style.height ? media.style.height : 281; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8626 |
vimeoContainer.frameBorder = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8627 |
vimeoContainer.webkitAllowFullScreen = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8628 |
vimeoContainer.mozAllowFullScreen = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8629 |
vimeoContainer.allowFullScreen = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8630 |
vimeoContainer.src = src; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8631 |
media.appendChild( vimeoContainer ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8632 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8633 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8634 |
function setErrorAttr( value ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8635 |
impl.error = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8636 |
Popcorn.extend( impl.error, MediaErrorInterface ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8637 |
impl.error.code = value; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8638 |
media.dispatchEvent( "error" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8639 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8640 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8641 |
function maybeReady() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8642 |
if ( !isNaN( impl.duration ) ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8643 |
impl.readyState = 4; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8644 |
media.dispatchEvent( "durationchange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8645 |
media.dispatchEvent( "loadedmetadata" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8646 |
media.dispatchEvent( "loadeddata" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8647 |
media.dispatchEvent( "canplay" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8648 |
media.dispatchEvent( "canplaythrough" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8649 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8650 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8651 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8652 |
function startUpdateLoops() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8653 |
if ( !timeUpdateId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8654 |
timeUpdateId = setInterval(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8655 |
media.dispatchEvent( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8656 |
}, TIMEUPDATE_INTERVAL_MS ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8657 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8658 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8659 |
if ( !currentTimeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8660 |
currentTimeId = setInterval(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8661 |
sendMessage( "getCurrentTime" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8662 |
}, CURRENT_TIME_MONITOR_MS ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8663 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8664 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8665 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8666 |
function stopUpdateLoops() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8667 |
if ( timeUpdateId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8668 |
clearInterval( timeUpdateId ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8669 |
timeUpdateId = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8670 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8671 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8672 |
if ( currentTimeId ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8673 |
clearInterval( currentTimeId ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8674 |
currentTimeId = 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8675 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8676 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8677 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8678 |
media.unload = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8679 |
stopUpdateLoops(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8680 |
window.removeEventListener( "message", messageListener, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8681 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8682 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8683 |
media.play = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8684 |
commands.queue(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8685 |
sendMessage( "play" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8686 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8687 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8688 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8689 |
media.pause = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8690 |
commands.queue(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8691 |
sendMessage( "pause" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8692 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8693 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8694 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8695 |
// Start the load process now, players behave like `preload="metadata"` is set |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8696 |
// Do it asynchronously so that users can attach event listeners |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8697 |
setTimeout(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8698 |
window.addEventListener( "message", messageListener, false ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8699 |
media.load(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8700 |
}, 0 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8701 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8702 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8703 |
// If the baseplayer doesn't call _setup |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8704 |
if ( this.unload ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8705 |
this.unload(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8706 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8707 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8708 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8709 |
})(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8710 |
(function( window, Popcorn ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8711 |
// A global callback for youtube... that makes me angry |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8712 |
window.onYouTubePlayerAPIReady = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8713 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8714 |
onYouTubePlayerAPIReady.ready = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8715 |
for ( var i = 0; i < onYouTubePlayerAPIReady.waiting.length; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8716 |
onYouTubePlayerAPIReady.waiting[ i ](); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8717 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8718 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8719 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8720 |
// existing youtube references can break us. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8721 |
// remove it and use the one we can trust. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8722 |
if ( window.YT ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8723 |
window.quarantineYT = window.YT; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8724 |
window.YT = null; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8725 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8726 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8727 |
onYouTubePlayerAPIReady.waiting = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8728 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8729 |
var _loading = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8730 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8731 |
Popcorn.player( "youtube", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8732 |
_canPlayType: function( nodeName, url ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8733 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8734 |
return typeof url === "string" && (/(?:http:\/\/www\.|http:\/\/|www\.|\.|^)(youtu)/).test( url ) && nodeName.toLowerCase() !== "video"; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8735 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8736 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8737 |
if ( !window.YT && !_loading ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8738 |
_loading = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8739 |
Popcorn.getScript( "//youtube.com/player_api" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8740 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8741 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8742 |
var media = this, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8743 |
autoPlay = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8744 |
container = document.createElement( "div" ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8745 |
currentTime = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8746 |
paused = true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8747 |
seekTime = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8748 |
firstGo = true, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8749 |
seeking = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8750 |
fragmentStart = 0, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8751 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8752 |
// state code for volume changed polling |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8753 |
lastMuted = false, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8754 |
lastVolume = 100, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8755 |
playerQueue = Popcorn.player.playerQueue(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8756 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8757 |
var createProperties = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8758 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8759 |
Popcorn.player.defineProperty( media, "currentTime", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8760 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8761 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8762 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8763 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8764 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8765 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8766 |
seeking = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8767 |
// make sure val is a number |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8768 |
currentTime = Math.round( +val * 100 ) / 100; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8769 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8770 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8771 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8772 |
return currentTime; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8773 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8774 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8775 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8776 |
Popcorn.player.defineProperty( media, "paused", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8777 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8778 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8779 |
return paused; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8780 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8781 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8782 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8783 |
Popcorn.player.defineProperty( media, "muted", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8784 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8785 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8786 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8787 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8788 |
return val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8789 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8790 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8791 |
if ( options.youtubeObject.isMuted() !== val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8792 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8793 |
if ( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8794 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8795 |
options.youtubeObject.mute(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8796 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8797 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8798 |
options.youtubeObject.unMute(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8799 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8800 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8801 |
lastMuted = options.youtubeObject.isMuted(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8802 |
media.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8803 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8804 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8805 |
return options.youtubeObject.isMuted(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8806 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8807 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8808 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8809 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8810 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8811 |
return 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8812 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8813 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8814 |
return options.youtubeObject.isMuted(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8815 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8816 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8817 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8818 |
Popcorn.player.defineProperty( media, "volume", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8819 |
set: function( val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8820 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8821 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8822 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8823 |
return val; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8824 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8825 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8826 |
if ( options.youtubeObject.getVolume() / 100 !== val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8827 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8828 |
options.youtubeObject.setVolume( val * 100 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8829 |
lastVolume = options.youtubeObject.getVolume(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8830 |
media.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8831 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8832 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8833 |
return options.youtubeObject.getVolume() / 100; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8834 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8835 |
get: function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8836 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8837 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8838 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8839 |
return 0; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8840 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8841 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8842 |
return options.youtubeObject.getVolume() / 100; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8843 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8844 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8845 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8846 |
media.play = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8847 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8848 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8849 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8850 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8851 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8852 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8853 |
paused = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8854 |
playerQueue.add(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8855 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8856 |
if ( options.youtubeObject.getPlayerState() !== 1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8857 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8858 |
seeking = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8859 |
options.youtubeObject.playVideo(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8860 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8861 |
playerQueue.next(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8862 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8863 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8864 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8865 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8866 |
media.pause = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8867 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8868 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8869 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8870 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8871 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8872 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8873 |
paused = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8874 |
playerQueue.add(function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8875 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8876 |
if ( options.youtubeObject.getPlayerState() !== 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8877 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8878 |
options.youtubeObject.pauseVideo(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8879 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8880 |
playerQueue.next(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8881 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8882 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8883 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8884 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8885 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8886 |
container.id = media.id + Popcorn.guid(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8887 |
options._container = container; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8888 |
media.appendChild( container ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8889 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8890 |
var youtubeInit = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8891 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8892 |
var src, query, params, playerVars, queryStringItem, firstPlay = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8893 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8894 |
var timeUpdate = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8895 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8896 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8897 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8898 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8899 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8900 |
if ( !seeking ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8901 |
currentTime = options.youtubeObject.getCurrentTime(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8902 |
media.dispatchEvent( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8903 |
} else if ( currentTime === options.youtubeObject.getCurrentTime() ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8904 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8905 |
seeking = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8906 |
media.dispatchEvent( "seeked" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8907 |
media.dispatchEvent( "timeupdate" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8908 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8909 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8910 |
// keep trying the seek until it is right. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8911 |
options.youtubeObject.seekTo( currentTime ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8912 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8913 |
setTimeout( timeUpdate, 250 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8914 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8915 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8916 |
// delay is in seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8917 |
var fetchDuration = function( delay ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8918 |
var ytDuration = options.youtubeObject.getDuration(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8919 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8920 |
if ( isNaN( ytDuration ) || ytDuration === 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8921 |
setTimeout( function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8922 |
fetchDuration( delay * 2 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8923 |
}, delay*1000 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8924 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8925 |
// set duration and dispatch ready events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8926 |
media.duration = ytDuration; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8927 |
media.dispatchEvent( "durationchange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8928 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8929 |
media.dispatchEvent( "loadedmetadata" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8930 |
media.dispatchEvent( "loadeddata" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8931 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8932 |
media.readyState = 4; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8933 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8934 |
timeUpdate(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8935 |
media.dispatchEvent( "canplaythrough" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8936 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8937 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8938 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8939 |
options.controls = +options.controls === 0 || +options.controls === 1 ? options.controls : 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8940 |
options.annotations = +options.annotations === 1 || +options.annotations === 3 ? options.annotations : 1; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8941 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8942 |
src = /^.*(?:\/|v=)(.{11})/.exec( media.src )[ 1 ];
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8943 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8944 |
query = ( media.src.split( "?" )[ 1 ] || "" ) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8945 |
.replace( /v=.{11}/, "" );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8946 |
query = query.replace( /&t=(?:(\d+)m)?(?:(\d+)s)?/, function( all, minutes, seconds ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8947 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8948 |
// Make sure we have real zeros |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8949 |
minutes = minutes | 0; // bit-wise OR |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8950 |
seconds = seconds | 0; // bit-wise OR |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8951 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8952 |
fragmentStart = ( +seconds + ( minutes * 60 ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8953 |
return ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8954 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8955 |
query = query.replace( /&start=(\d+)?/, function( all, seconds ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8956 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8957 |
// Make sure we have real zeros |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8958 |
seconds = seconds | 0; // bit-wise OR |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8959 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8960 |
fragmentStart = seconds; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8961 |
return ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8962 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8963 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8964 |
autoPlay = ( /autoplay=1/.test( query ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8965 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8966 |
params = query.split( /[\&\?]/g ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8967 |
playerVars = { wmode: "transparent" };
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8968 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8969 |
for( var i = 0; i < params.length; i++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8970 |
queryStringItem = params[ i ].split( "=" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8971 |
playerVars[ queryStringItem[ 0 ] ] = queryStringItem[ 1 ]; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8972 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8973 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8974 |
options.youtubeObject = new YT.Player( container.id, {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8975 |
height: "100%", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8976 |
width: "100%", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8977 |
wmode: "transparent", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8978 |
playerVars: playerVars, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8979 |
videoId: src, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8980 |
events: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8981 |
"onReady": function(){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8982 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8983 |
// pulling initial volume states form baseplayer |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8984 |
lastVolume = media.volume; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8985 |
lastMuted = media.muted; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8986 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8987 |
volumeupdate(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8988 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8989 |
paused = media.paused; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8990 |
createProperties(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8991 |
options.youtubeObject.playVideo(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8992 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8993 |
media.currentTime = fragmentStart; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8994 |
// wait to dispatch ready events until we get a duration |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8995 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8996 |
"onStateChange": function( state ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8997 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8998 |
if ( options.destroyed || state.data === -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
8999 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9000 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9001 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9002 |
// state.data === 2 is for pause events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9003 |
// state.data === 1 is for play events |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9004 |
if ( state.data === 2 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9005 |
paused = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9006 |
media.dispatchEvent( "pause" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9007 |
playerQueue.next(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9008 |
} else if ( state.data === 1 && !firstPlay ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9009 |
paused = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9010 |
media.dispatchEvent( "play" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9011 |
media.dispatchEvent( "playing" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9012 |
playerQueue.next(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9013 |
} else if ( state.data === 0 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9014 |
media.dispatchEvent( "ended" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9015 |
} else if ( state.data === 1 && firstPlay ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9016 |
firstPlay = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9017 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9018 |
// pulling initial paused state from autoplay or the baseplayer |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9019 |
// also need to explicitly set to paused otherwise. |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9020 |
if ( autoPlay || !media.paused ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9021 |
paused = false; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9022 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9023 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9024 |
if ( paused ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9025 |
options.youtubeObject.pauseVideo(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9026 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9027 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9028 |
fetchDuration( 0.025 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9029 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9030 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9031 |
"onError": function( error ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9032 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9033 |
if ( [ 2, 100, 101, 150 ].indexOf( error.data ) !== -1 ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9034 |
media.error = {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9035 |
customCode: error.data |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9036 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9037 |
media.dispatchEvent( "error" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9038 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9039 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9040 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9041 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9042 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9043 |
var volumeupdate = function() {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9044 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9045 |
if ( options.destroyed ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9046 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9047 |
return; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9048 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9049 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9050 |
if ( lastMuted !== options.youtubeObject.isMuted() ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9051 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9052 |
lastMuted = options.youtubeObject.isMuted(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9053 |
media.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9054 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9055 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9056 |
if ( lastVolume !== options.youtubeObject.getVolume() ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9057 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9058 |
lastVolume = options.youtubeObject.getVolume(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9059 |
media.dispatchEvent( "volumechange" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9060 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9061 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9062 |
setTimeout( volumeupdate, 250 ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9063 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9064 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9065 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9066 |
if ( onYouTubePlayerAPIReady.ready ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9067 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9068 |
youtubeInit(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9069 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9070 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9071 |
onYouTubePlayerAPIReady.waiting.push( youtubeInit ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9072 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9073 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9074 |
_teardown: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9075 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9076 |
options.destroyed = true; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9077 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9078 |
var youtubeObject = options.youtubeObject; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9079 |
if( youtubeObject ){
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9080 |
youtubeObject.stopVideo(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9081 |
youtubeObject.clearVideo && youtubeObject.clearVideo(); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9082 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9083 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9084 |
this.removeChild( document.getElementById( options._container.id ) ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9085 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9086 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9087 |
}( window, Popcorn )); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9088 |
// EFFECT: applyclass |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9089 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9090 |
(function (Popcorn) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9091 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9092 |
/** |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9093 |
* apply css class to jquery selector |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9094 |
* selector is relative to plugin target's id |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9095 |
* so .overlay is actually jQuery( "#target .overlay") |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9096 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9097 |
* @param {Object} options
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9098 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9099 |
* Example: |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9100 |
var p = Popcorn('#video')
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9101 |
.footnote({
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9102 |
start: 5, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9103 |
end: 15, // seconds |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9104 |
text: 'This video made exclusively for drumbeat.org', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9105 |
target: 'footnotediv', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9106 |
effect: 'applyclass', |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9107 |
applyclass: 'selector: class' |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9108 |
}) |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9109 |
* |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9110 |
*/ |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9111 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9112 |
var toggleClass = function( event, options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9113 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9114 |
var idx = 0, len = 0, elements; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9115 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9116 |
Popcorn.forEach( options.classes, function( key, val ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9117 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9118 |
elements = []; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9119 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9120 |
if ( key === "parent" ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9121 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9122 |
elements[ 0 ] = document.querySelectorAll("#" + options.target )[ 0 ].parentNode;
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9123 |
} else {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9124 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9125 |
elements = document.querySelectorAll("#" + options.target + " " + key );
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9126 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9127 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9128 |
for ( idx = 0, len = elements.length; idx < len; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9129 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9130 |
elements[ idx ].classList.toggle( val ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9131 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9132 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9133 |
}; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9134 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9135 |
Popcorn.compose( "applyclass", {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9136 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9137 |
manifest: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9138 |
about: {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9139 |
name: "Popcorn applyclass Effect", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9140 |
version: "0.1", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9141 |
author: "@scottdowne", |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9142 |
website: "scottdowne.wordpress.com" |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9143 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9144 |
options: {}
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9145 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9146 |
_setup: function( options ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9147 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9148 |
options.classes = {};
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9149 |
options.applyclass = options.applyclass || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9150 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9151 |
var classes = options.applyclass.replace( /\s/g, "" ).split( "," ), |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9152 |
item = [], |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9153 |
idx = 0, len = classes.length; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9154 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9155 |
for ( ; idx < len; idx++ ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9156 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9157 |
item = classes[ idx ].split( ":" ); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9158 |
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9159 |
if ( item[ 0 ] ) {
|
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9160 |
options.classes[ item[ 0 ] ] = item[ 1 ] || ""; |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9161 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9162 |
} |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9163 |
}, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9164 |
start: toggleClass, |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9165 |
end: toggleClass |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9166 |
}); |
|
f6232b308fbd
base du player niveau 1
Edwin Razafimahatratra <edwin@robotalismsoft.com>
parents:
diff
changeset
|
9167 |
})( Popcorn ); |