let's not mess around with dancer.js too much...for now
This commit is contained in:
parent
8bad6ebe96
commit
0f2a0fa146
1 changed files with 206 additions and 2 deletions
208
vendor/dancer.js
vendored
208
vendor/dancer.js
vendored
|
|
@ -13,7 +13,7 @@
|
|||
this.bind( 'update', update );
|
||||
};
|
||||
|
||||
Dancer.version = '0.3.2';
|
||||
Dancer.version = '0.4.0';
|
||||
Dancer.adapters = {};
|
||||
|
||||
Dancer.prototype = {
|
||||
|
|
@ -224,7 +224,9 @@
|
|||
return 'webaudio';
|
||||
} else if ( audioEl && audioEl.mozSetup ) {
|
||||
return 'audiodata';
|
||||
} else {
|
||||
} else if ( FlashDetect.versionAtLeast( 9 ) ) {
|
||||
return 'flash';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
};
|
||||
|
|
@ -911,3 +913,205 @@ FFT.prototype.forward = function(buffer) {
|
|||
|
||||
return this.calculateSpectrum();
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Copyright (c) Copyright (c) 2007, Carl S. Yestrau All rights reserved.
|
||||
Code licensed under the BSD License: http://www.featureblend.com/license.txt
|
||||
Version: 1.0.4
|
||||
*/
|
||||
var FlashDetect = new function(){
|
||||
var self = this;
|
||||
self.installed = false;
|
||||
self.raw = "";
|
||||
self.major = -1;
|
||||
self.minor = -1;
|
||||
self.revision = -1;
|
||||
self.revisionStr = "";
|
||||
var activeXDetectRules = [
|
||||
{
|
||||
"name":"ShockwaveFlash.ShockwaveFlash.7",
|
||||
"version":function(obj){
|
||||
return getActiveXVersion(obj);
|
||||
}
|
||||
},
|
||||
{
|
||||
"name":"ShockwaveFlash.ShockwaveFlash.6",
|
||||
"version":function(obj){
|
||||
var version = "6,0,21";
|
||||
try{
|
||||
obj.AllowScriptAccess = "always";
|
||||
version = getActiveXVersion(obj);
|
||||
}catch(err){}
|
||||
return version;
|
||||
}
|
||||
},
|
||||
{
|
||||
"name":"ShockwaveFlash.ShockwaveFlash",
|
||||
"version":function(obj){
|
||||
return getActiveXVersion(obj);
|
||||
}
|
||||
}
|
||||
];
|
||||
/**
|
||||
* Extract the ActiveX version of the plugin.
|
||||
*
|
||||
* @param {Object} The flash ActiveX object.
|
||||
* @type String
|
||||
*/
|
||||
var getActiveXVersion = function(activeXObj){
|
||||
var version = -1;
|
||||
try{
|
||||
version = activeXObj.GetVariable("$version");
|
||||
}catch(err){}
|
||||
return version;
|
||||
};
|
||||
/**
|
||||
* Try and retrieve an ActiveX object having a specified name.
|
||||
*
|
||||
* @param {String} name The ActiveX object name lookup.
|
||||
* @return One of ActiveX object or a simple object having an attribute of activeXError with a value of true.
|
||||
* @type Object
|
||||
*/
|
||||
var getActiveXObject = function(name){
|
||||
var obj = -1;
|
||||
try{
|
||||
obj = new ActiveXObject(name);
|
||||
}catch(err){
|
||||
obj = {activeXError:true};
|
||||
}
|
||||
return obj;
|
||||
};
|
||||
/**
|
||||
* Parse an ActiveX $version string into an object.
|
||||
*
|
||||
* @param {String} str The ActiveX Object GetVariable($version) return value.
|
||||
* @return An object having raw, major, minor, revision and revisionStr attributes.
|
||||
* @type Object
|
||||
*/
|
||||
var parseActiveXVersion = function(str){
|
||||
var versionArray = str.split(",");//replace with regex
|
||||
return {
|
||||
"raw":str,
|
||||
"major":parseInt(versionArray[0].split(" ")[1], 10),
|
||||
"minor":parseInt(versionArray[1], 10),
|
||||
"revision":parseInt(versionArray[2], 10),
|
||||
"revisionStr":versionArray[2]
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Parse a standard enabledPlugin.description into an object.
|
||||
*
|
||||
* @param {String} str The enabledPlugin.description value.
|
||||
* @return An object having raw, major, minor, revision and revisionStr attributes.
|
||||
* @type Object
|
||||
*/
|
||||
var parseStandardVersion = function(str){
|
||||
var descParts = str.split(/ +/);
|
||||
var majorMinor = descParts[2].split(/\./);
|
||||
var revisionStr = descParts[3];
|
||||
return {
|
||||
"raw":str,
|
||||
"major":parseInt(majorMinor[0], 10),
|
||||
"minor":parseInt(majorMinor[1], 10),
|
||||
"revisionStr":revisionStr,
|
||||
"revision":parseRevisionStrToInt(revisionStr)
|
||||
};
|
||||
};
|
||||
/**
|
||||
* Parse the plugin revision string into an integer.
|
||||
*
|
||||
* @param {String} The revision in string format.
|
||||
* @type Number
|
||||
*/
|
||||
var parseRevisionStrToInt = function(str){
|
||||
return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
|
||||
};
|
||||
/**
|
||||
* Is the major version greater than or equal to a specified version.
|
||||
*
|
||||
* @param {Number} version The minimum required major version.
|
||||
* @type Boolean
|
||||
*/
|
||||
self.majorAtLeast = function(version){
|
||||
return self.major >= version;
|
||||
};
|
||||
/**
|
||||
* Is the minor version greater than or equal to a specified version.
|
||||
*
|
||||
* @param {Number} version The minimum required minor version.
|
||||
* @type Boolean
|
||||
*/
|
||||
self.minorAtLeast = function(version){
|
||||
return self.minor >= version;
|
||||
};
|
||||
/**
|
||||
* Is the revision version greater than or equal to a specified version.
|
||||
*
|
||||
* @param {Number} version The minimum required revision version.
|
||||
* @type Boolean
|
||||
*/
|
||||
self.revisionAtLeast = function(version){
|
||||
return self.revision >= version;
|
||||
};
|
||||
/**
|
||||
* Is the version greater than or equal to a specified major, minor and revision.
|
||||
*
|
||||
* @param {Number} major The minimum required major version.
|
||||
* @param {Number} (Optional) minor The minimum required minor version.
|
||||
* @param {Number} (Optional) revision The minimum required revision version.
|
||||
* @type Boolean
|
||||
*/
|
||||
self.versionAtLeast = function(major){
|
||||
var properties = [self.major, self.minor, self.revision];
|
||||
var len = Math.min(properties.length, arguments.length);
|
||||
for(i=0; i<len; i++){
|
||||
if(properties[i]>=arguments[i]){
|
||||
if(i+1<len && properties[i]==arguments[i]){
|
||||
continue;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
/**
|
||||
* Constructor, sets raw, major, minor, revisionStr, revision and installed public properties.
|
||||
*/
|
||||
self.FlashDetect = function(){
|
||||
if(navigator.plugins && navigator.plugins.length>0){
|
||||
var type = 'application/x-shockwave-flash';
|
||||
var mimeTypes = navigator.mimeTypes;
|
||||
if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
|
||||
var version = mimeTypes[type].enabledPlugin.description;
|
||||
var versionObj = parseStandardVersion(version);
|
||||
self.raw = versionObj.raw;
|
||||
self.major = versionObj.major;
|
||||
self.minor = versionObj.minor;
|
||||
self.revisionStr = versionObj.revisionStr;
|
||||
self.revision = versionObj.revision;
|
||||
self.installed = true;
|
||||
}
|
||||
}else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
|
||||
var version = -1;
|
||||
for(var i=0; i<activeXDetectRules.length && version==-1; i++){
|
||||
var obj = getActiveXObject(activeXDetectRules[i].name);
|
||||
if(!obj.activeXError){
|
||||
self.installed = true;
|
||||
version = activeXDetectRules[i].version(obj);
|
||||
if(version!=-1){
|
||||
var versionObj = parseActiveXVersion(version);
|
||||
self.raw = versionObj.raw;
|
||||
self.major = versionObj.major;
|
||||
self.minor = versionObj.minor;
|
||||
self.revision = versionObj.revision;
|
||||
self.revisionStr = versionObj.revisionStr;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}();
|
||||
};
|
||||
FlashDetect.JS_RELEASE = "1.0.4";
|
||||
|
|
|
|||
Reference in a new issue