blob: 0915fa51a2e3fc5e58172fc1075c2f0ff0d5518a [file] [log] [blame]
/*jslint vars: true , plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */
/*global bm_eventDispatcher, bm_generalUtils, bm_keyframeHelper*/
var bm_effectsHelper = (function () {
'use strict';
var ob = {};
var effectTypes = {
sliderControl: 0,
angleControl: 1,
colorControl: 2,
pointControl: 3,
checkboxControl: 4
};
function getEffectType(name) {
switch (name) {
case 'ADBE Slider Control':
return effectTypes.sliderControl;
case 'ADBE Angle Control':
return effectTypes.angleControl;
case 'ADBE Color Control':
return effectTypes.colorControl;
case 'ADBE Point Control':
return effectTypes.pointControl;
case 'ADBE Checkbox Control':
return effectTypes.checkboxControl;
default:
//bm_eventDispatcher.log(name);
return '';
}
}
function exportSliderControl(effect, frameRate) {
var ob = {};
ob.ty = effectTypes.sliderControl;
ob.nm = effect.name;
ob.v = bm_keyframeHelper.exportKeyframes(effect.property('Slider'), frameRate);
return ob;
}
function exportAngleControl(effect, frameRate) {
var ob = {};
ob.ty = effectTypes.angleControl;
ob.nm = effect.name;
ob.v = bm_keyframeHelper.exportKeyframes(effect.property('Angle'), frameRate);
return ob;
}
function exportColorControl(effect, frameRate) {
var ob = {};
ob.ty = effectTypes.colorControl;
ob.nm = effect.name;
ob.v = bm_keyframeHelper.exportKeyframes(effect.property('Color'), frameRate);
return ob;
}
function exportPointControl(effect, frameRate) {
var ob = {};
ob.ty = effectTypes.pointControl;
ob.nm = effect.name;
ob.v = bm_keyframeHelper.exportKeyframes(effect.property('Point'), frameRate);
return ob;
}
function exportCheckboxControl(effect, frameRate) {
var ob = {};
ob.ty = effectTypes.checkboxControl;
ob.nm = effect.name;
ob.v = bm_keyframeHelper.exportKeyframes(effect.property('Checkbox'), frameRate);
return ob;
}
function exportEffects(layerInfo, layerData, frameRate) {
if (!(layerInfo.effect && layerInfo.effect.numProperties > 0)) {
return;
}
var effects = layerInfo.effect;
var i, len = effects.numProperties, effectElement;
var effectsArray = [];
for (i = 0; i < len; i += 1) {
effectElement = effects(i + 1);
var effectType = getEffectType(effectElement.matchName);
switch (effectType) {
case effectTypes.sliderControl:
effectsArray.push(exportSliderControl(effectElement, frameRate));
break;
case effectTypes.angleControl:
effectsArray.push(exportAngleControl(effectElement, frameRate));
break;
case effectTypes.colorControl:
effectsArray.push(exportColorControl(effectElement, frameRate));
break;
case effectTypes.pointControl:
effectsArray.push(exportPointControl(effectElement, frameRate));
break;
case effectTypes.checkboxControl:
effectsArray.push(exportCheckboxControl(effectElement, frameRate));
break;
}
}
if (effectsArray.length) {
layerData.ef = effectsArray;
}
}
ob.exportEffects = exportEffects;
return ob;
}());