12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028 |
- var syncRatems = 100;
- var syncDelta = 0.;
- var doSync = false ;
- var inibValuesChanged = false ;
- var doSyncKeysCues = false ;
- var saveFile = script.addFileParameter("auto save sequence","");
- var saveRatems = 30;
- var saveDelta = 0.;
- var debug = true;
- var debugFile;
- var parametersPath = local.getChild("parameters") ;
- var sequence = '' ;
- var sequencePath = local.getChild("parameters").sequence ;
- var file ;
- var filePath = local.parameters.sequenceFile ;
- var newGroupLayers = local.values.newGroup.layers ;
- var cues = local.getChild("values").keys.cues ;
- var layers = local.getChild("values").keys.layers ;
- var rebuildValues = script.addTrigger("rebuild values", "adds a key at current cursor position" );
- var refreshKeys = script.addTrigger("refresh keys", "truc");
- var TrigprintKeys = script.addTrigger("printKeys","truc");
- var clearSeq = script.addTrigger("clear Sequence","truc");
- var UIposGet = script.addTrigger("get UIPos", "");
- var viewZoom = script.addFloatParameter("View Zoom", "", 0.5, 0., 1.);
- var viewFollowCursor = script.addBoolParameter("follow Cursor", "", false);
- var followCursor = false ;
- var followZoom = 0.5 ;
- var followRatems = 1.;
- var followDelta = 0.;
-
-
-
-
-
- function init() {
- script.log("LOADED SEQUENCE GROUPING MANAGEMENT MODULE ");
-
-
- updateSyncRate();
- updateSynchronize();
-
- saveFile.set("sequence_autosave.json");
- saveFile.setAttribute("readonly", true);
-
-
-
-
-
-
-
-
-
-
- sequence = local.getChild("parameters").sequence.getKey();
-
-
-
- if(sequence == ""){refreshSequenceEnum();}
- else{
- sequencePath.removeOptions();
- sequencePath.addOption(sequence,0);
- sequencePath.setAttribute("readonly", true);
- }
- sequence = local.getChild("parameters").sequence.getKey();
- }
- function scriptParameterChanged(param){
-
- if (param.is(TrigprintKeys) ){printKeys();}
- else if(param.is(viewZoom)) {
- script.log("view zoom changed");
- followZoom = param.get();
- }
- if (param.is(viewFollowCursor)){
- script.log("follow cursor " + (param.get() ? "ON" : "OFF"));
- followCursor = param.get();
- }
- else if(param.is(rebuildValues)){struct_buildValuesFromSeq();}
- else if (param.is(refreshKeys)){
- script.log("refreshKeys");
- refreshKeysList();
- }
-
- else {script.log("scriptparamchanged" + param.name);}
- }
- function update(deltaTime){
- if(sequence!=""){
-
- if(doSync){
- syncDelta += deltaTime ;
-
- if (syncDelta >= syncRatems){
- syncDelta = 0. ;
- var autosave = struct_buildValuesFromSeq();
- if(autosave){exportSequenceFile(saveFile);}
- }
- }
-
-
-
-
-
-
- followDelta += deltaTime ;
- if(followCursor && (followDelta>followRatems)){
- followDelta = 0. ;
- seq_followCursor() ;
- }
- }
- }
- function printMethodsAndProperties(obj){
- script.log(" ");
-
- var name = "object";
- script.log(" METHODS OF " + name);
- var methods = util.getObjectMethods(obj);
- for(var i=0 ; i<methods.length ; i++){
- script.log(" "+ methods[i]);
- }
- script.log(" PARAMETERS OF " + name);
- var props = util.getObjectProperties(obj, true, false);
- for(var i=0 ; i<props.length ; i++){
- script.log(" "+ props[i]);
- }
- script.log(" OBJECTS OF " + name);
- var props = util.getObjectProperties(obj, false, true);
- for(var i=0 ; i<props.length ; i++){
- script.log(" "+ props[i]);
- }
- }
- function printKeys(){
- var seq = root.sequences.sequence.layers.mapping.automation.getItems() ;
- if(seq.length){
- for(var i=0; i<seq.length; i++){
- script.log (">> "+seq[i].name + " " + seq[i].position.get() + " " + seq[i].listSize.get() );
- }
- }
- else{script.log("nothing to print");}
- }
- function moduleParameterChanged(param){
- parametersPath = local.getChild("parameters") ;
- script.log("received module param :" + param.name);
- if (param.is(parametersPath.importExport.sequenceFile)) {}
- else if (param.is(parametersPath.importExport.importSequence)){importSequenceFile(parametersPath.importExport.sequenceFile);}
-
- else if (param.is(parametersPath.importExport.exportSequence)) {
- exportSequenceFile(parametersPath.importExport.sequenceFile);
- exportSequenceFile(saveFile);
- }
- else if (param.is(parametersPath.synchronize)){updateSynchronize();}
- else if (param.is(parametersPath.syncRate)){updateSyncRate();}
- else if (param.is(parametersPath.monitorKeysCues)){monitorKeysCues();}
- else if (param.is(parametersPath.clearSequence)){seq_clearSequence();}
- else if (param.is(parametersPath.reorderSequence)){seq_reorderSequence();}
- else if (param.is(parametersPath.changeSequence)){refreshSequenceEnum();}
- else if (param.is(parametersPath.sequence)){
- sequence = sequencePath.getKey();
- if(sequence!=""){
- script.log("watching "+ sequence);
- local.parameters.sequence.setAttribute("readonly",true);
- }
-
- }
- else{script.log("received module param :" + param.name);}
- }
- function updateSynchronize(){
-
- doSync = parametersPath.synchronize.get();
- script.log(doSync ? "sync ON" : "sync OFF" );
- }
- function updateSyncRate(){
-
- syncRatems = parametersPath.syncRate.get() / 1000.;
- script.log("new sync rate : " + syncRatems);
-
- }
- function monitorKeysCues(){
-
- doSyncKeysCues = parametersPath.monitorKeysCues.get() ;
- script.log(doSyncKeysCues ? "syncKeys ON" : "syncKeys OFF" );
-
- }
- function refreshSequenceEnum(){
- script.log("refresh list of sequences");
- local.parameters.sequence.setAttribute("readonly",false);
-
- if(root.sequences.getItems().length){
- local.parameters.sequence.removeOptions();
- local.parameters.sequence.addOption("", 0);
- for(var i=0 ; i<root.sequences.getItems().length ; i++ ){
- local.parameters.sequence.addOption(root.sequences.getItems()[i].name,i+1);
- }
- }
- }
- function importSequenceFile(loadFile){
- doSync = false ;
- script.log("loading file");
- loadData = loadFile.readFile(true);
-
- var parameters = local.getChild("parameters");
- parameters.syncRate.set(loadData.parameters.SyncRate);
- parameters.synchronize.set(loadData.parameters.Synchronize);
- sequence = loadData.parameters.Sequence;
- if(1){
- parameters.sequence.removeOptions();
- parameters.sequence.addOption(sequence,0);
- parameters.sequence.setAttribute("readonly", true);
-
-
-
- var tl_sequence = root.sequences.getItemWithName(sequence) ;
- if(tl_sequence == undefined){
- tl_sequence = root.sequences.addItem();
- tl_sequence.setName(sequence);
- }
-
- tl_sequence.cues.removeAll();
- var cuesList = util.getObjectProperties(loadData.values.keys.cues, true, false);
- if(cuesList.length){
- for(var i=0; i<cuesList.length; i++){
- var cue = tl_sequence.cues.addItem();
- cue.setName(cuesList[i]);
- cue.time.set(loadData.values.keys.cues[cuesList[i]].time);
- }
- }
-
- tl_sequence.layers.removeAll();
- var layersList = util.getObjectProperties(loadData.values.keys.layers, true, false);
- if(layersList.length){
- for(var i=0; i<layersList.length; i++ ){
- var layerType = loadData.values.keys.layers[layersList[i]].type ;
- var layer = tl_sequence.layers.addItem(layerType);
- layer.setName(layersList[i]);
- var keysList = util.getObjectProperties(loadData.values.keys.layers[layersList[i]], true, false);
- if(keysList.length){
- if (layerType != "Audio"){
- for(var j=0; j<keysList.length; j++){
- var key = layer.automation.addItem();
- key.setName(keysList[j]);
- key.value.set(loadData.values.keys.layers[layersList[i]][keysList[j]].value);
- key.position.set(loadData.values.keys.layers[layersList[i]][keysList[j]].time);
- }
- layer.automation.reorderItems();
- }
- else {
- for(var j=0; j<keysList.length; j++){
- var clip = layer.clips.addItem();
- clip.setName(keysList[j]);
- clip.filePath.set(loadData.values.keys.layers[layersList[i]][keysList[j]].filePath);
- clip.startTime.set(loadData.values.keys.layers[layersList[i]][keysList[j]].startTime);
- }
- }
- }
-
- }
- }
-
- var groupList = util.getObjectProperties(loadData.values.groups, true, false);
- if(groupList.length){
- for(var i=0; i<groupList.length; i++){
- var group = local.getChild("Values").groups.addContainer(groupList[i]);
- var groupLayers = util.getObjectProperties(loadData.values.groups[groupList[i]], true, false);
- var cue = group.addFloatParameter("cue", "", 0., 0.);
- group.setName(groupList[i]);
- cue.set(loadData.values.groups[groupList[i]].time);
- var groupKeysList = util.getObjectProperties(loadData.values.groups[groupList[i]].groupKeys, true, false);
- if (groupKeysList.length){
- var keysContainer = group.addContainer("keys");
- keysContainer.setCollapsed(true);
- for (var j=0; j<groupKeysList.length; j++){
- group.addFloatParameter(groupKeysList[j], "", 0., 0., 1.);
- keysContainer.addStringParameter(groupKeysList[j], "", loadData.values.groups[groupList[i]]['groupKeys'][groupKeysList[j]]['key']);
- }
- }
- }
- }
-
- doSync = true;
-
- }
- }
- function exportSequenceFile(fileObj){
- script.log("exporting file");
- var exportData = {parameters:{}, values:{groups:{}, keys:{cues:{}, layers:{}}}};
-
- var parameters = local.getChild("parameters");
- exportData.parameters["Sequence"] = parameters.sequence.getKey();
- exportData.parameters["Synchronize"] = parameters.synchronize.get();
- exportData.parameters["Sync Rate"] = parameters.syncRate.get();
-
- var values = local.getChild("values");
- var groups = values.groups;
- var groupsList=util.getObjectProperties(groups, true, false);
- if(groupsList.length){
- for(var i=0; i<groupsList.length; i++){
- var exportGroup = exportData.values.groups[groupsList[i]] = {cue:"", time:0., groupKeys:{}};
- var currentGroup = groups.getChild(groupsList[i]);
- exportGroup.cue = currentGroup.cue.name;
- exportGroup.time = currentGroup.cue.get();
- var currentGroupLayers = util.getObjectProperties(currentGroup.keys, true, false);
- if (currentGroupLayers.length){
- for(var j=0; j<currentGroupLayers.length; j++){
-
- exportGroup.groupKeys[currentGroupLayers[j]] = {key:"", value:0};
- exportGroup.groupKeys[currentGroupLayers[j]].value = currentGroup.getChild(currentGroupLayers[j]).get();
- exportGroup.groupKeys[currentGroupLayers[j]].key = currentGroup.keys.getChild(currentGroupLayers[j]).get();
- }
- }
- }
- }
- var cues = values.keys.cues;
- var cuesList=util.getObjectProperties(cues, true, false);
- if(cuesList.length){
- for(var i=0; i<cuesList.length; i++){
- var exportCue = exportData.values.keys.cues[cuesList[i]] = {cue:"", time:0.};
- exportCue.cue = cuesList[i];
- exportCue.time = cues.getChild(cuesList[i]).time.get();
-
- }
- }
- var layers = values.keys.layers;
- var layersList=util.getObjectProperties(layers, true, false);
- if(layersList.length){
- for(var i=0; i<layersList.length; i++){
- var exportLayer = exportData.values.keys.layers[layersList[i]] = {};
- var currentLayer = layers.getChild(layersList[i]);
- var currentLayersKeys = util.getObjectProperties(currentLayer, true, false);
- exportLayer["type"] = values.keys.layerTypes.getChild(layersList[i]).get();
- if (currentLayersKeys.length){
- for(var j=0; j<currentLayersKeys.length; j++){
- if (exportLayer["type"]!= "Audio"){
- if(currentLayersKeys[j]!="type"){
-
-
- exportLayer[currentLayersKeys[j]] = {key:"", value:0., time:0.};
- exportLayer[currentLayersKeys[j]].value = currentLayer.getChild(currentLayersKeys[j]).value.get();
- exportLayer[currentLayersKeys[j]].key = currentLayer.getChild(currentLayersKeys[j]).name;
- exportLayer[currentLayersKeys[j]].time = currentLayer.getChild(currentLayersKeys[j]).time.get();
- }
- }
- else {
- exportLayer[currentLayersKeys[j]] = {clip:"", filePath:0., startTime:0.};
- exportLayer[currentLayersKeys[j]].filePath = currentLayer.getChild(currentLayersKeys[j]).filePath.get();
- exportLayer[currentLayersKeys[j]].clip = currentLayer.getChild(currentLayersKeys[j]).name;
- exportLayer[currentLayersKeys[j]].startTime = currentLayer.getChild(currentLayersKeys[j]).startTime.get();
- }
-
- }
- }
- }
- }
-
- fileObj.writeFile(JSON.stringify(exportData), true);
- }
- function moduleValueChanged(value){
- if(!inibValuesChanged){
- doSync = false;
- script.log(value.getParent().name);
- doSync = true;
-
- }
- if (value.is(local.values.newGroup.create)){createNewGroup();}
-
-
- if (value.name == "addGroup"){createNewGroup();}
- }
- function struct_rebuildValues(){
-
- var tl_cues = tl_seq.cues.getItems();
- cues = local.getChild("values").keys.cues ;
- var cuesList = util.getObjectProperties(cues, true, false);
-
-
- if (cuesList.length != tl_cues.length){
-
- var delta = cuesList.length-tl_cues.length;
- var addRemove = delta > 0 ? false : true ;
-
- delta = Math.abs(delta);
- script.log("cues "+ delta + (addRemove ? " up" : " down"));
- for(var i=0; i<delta; i++){
-
- if(addRemove){
- var newCue = cues.addContainer("newCue"+i);
- newCue.addFloatParameter("time", "position in time", 0., 0.);
- newCue.setCollapsed(true);
- }
- else {
-
- cues.removeContainer(util.getObjectProperties(cues, true, false)[i]);
- }
-
-
- }
- hasUpdated = true;
- }
-
- cues = local.getChild("values").keys.cues ;
- var cuesList = util.getObjectProperties(cues, true, false);
- if(tl_cues.length){
- for (var i=0; i<tl_cues.length; i++){
- var currentCue = cues.getChild(cuesList[i]);
- currentCue.setName(tl_cues[i].name);
- currentCue.time.set(tl_cues[i].time.get());
- }
- }
-
-
- var layersChanged = false ;
- var tl_layers = tl_seq.layers.getItems();
- layers = local.getChild("values").keys.layers ;
- var layersList = util.getObjectProperties(layers, true, false);
- if (layersList.length != tl_layers.length){
- layersChanged = true ;
- var delta = layersList.length-tl_layers.length;
- var addRemove = delta > 0 ? false : true ;
- delta = Math.abs(delta);
- script.log("layers "+ delta + (addRemove ? " up" : " down"));
- for(var i=0; i<delta; i++){
-
-
- if(addRemove){
- var newLayer = layers.addContainer("newLayer"+i);
-
- local.getChild("values").keys.layerTypes.addStringParameter("newLayer"+i, "", "");
- newLayer.setCollapsed(true);
- local.getChild("values").newGroup.layers.addFloatParameter("newLayer"+i, "value for this layer at group creation", 0., 0., 1.);
-
-
-
-
- }
- else {
-
- layers.removeContainer(util.getObjectProperties(layers, true, false)[i]);
- local.getChild("values").newGroup.layers.removeParameter(util.getObjectProperties(layers, true, false)[i]);
- local.getChild("values").newGroup.layers.setCollapsed(true);
- local.getChild("values").newGroup.layers.setCollapsed(false);
- local.getChild("values").keys.layerTypes.removeParameter(util.getObjectProperties(layers, true, false)[i]);
- local.getChild("values").keys.layerTypes.setCollapsed(true);
- local.getChild("values").keys.layerTypes.setCollapsed(false);
- }
-
-
- }
- hasUpdated = true;
- }
-
- if(layersChanged){
- layers = local.getChild("values").keys.layers ;
- var layerList = util.getObjectProperties(layers, true, false);
- layerTypes = local.getChild("values").keys.layerTypes ;
- var layerTypeList = util.getObjectProperties(layerTypes, true, false);
- var template = local.getChild("values").newGroup.layers;
- var layerTemplate = util.getObjectProperties(template, true, false);
- if(tl_layers.length){
- var layer_offset = 0 ;
- for (var i=0; i<tl_layers.length; i++){
- var currentLayer = layers.getChild(layerList[i]);
-
- currentLayer.setName(tl_layers[i].name);
- var currentLayerType = layerTypes.getChild(layerTypeList[i]);
- currentLayerType.setName(tl_layers[i].name);
- currentLayerType.set(tl_layers[i].getType());
- var currentTemplate = template.getChild(layerTemplate[i]) ;
- if (tl_layers[i].getType()=="Audio"){layer_offset+=1;}
- currentTemplate.setName(tl_layers[i+layer_offset].name);
- }
- }
- }
-
- layers = local.getChild("values").keys.layers ;
- layersList = util.getObjectProperties(layers, true, false);
-
- if(layersList.length){
- for(var layerIndex=0; layerIndex<layersList.length; layerIndex++){
-
- var currentLayer = layers.getChild(layersList[layerIndex]);
- var keyList = util.getObjectProperties(currentLayer, true, false);
- var tl_lay = tl_seq.layers.getItemWithName(layersList[layerIndex]);
- var tl_keys;
-
-
- if(tl_lay.automation!=undefined){
- tl_keys = tl_lay.automation.getItems();
-
- if (keyList.length != tl_keys.length){
- var delta = keyList.length-tl_keys.length;
- var addRemove = delta > 0 ? false : true ;
- delta = Math.abs(delta);
- script.log("keys "+ delta + (addRemove ? " up" : " down"));
- for(var i=0; i<delta; i++){
-
-
- if(addRemove){
- var newKey = currentLayer.addContainer("newkey"+i);
- newKey.addFloatParameter("time", "position in time", 0., 0.);
- newKey.addFloatParameter("value", "vertical value", 0., 0.);
- newKey.setCollapsed(true);
- }
- else {
-
- currentLayer.removeContainer(util.getObjectProperties(currentLayer, true, false)[i]);
- }
-
-
- }
- hasUpdated = true;
- }
- }
-
-
- var tl_clips ;
- if(tl_lay.clips!=undefined){
- tl_clips = tl_lay.clips.getItems();
-
- if (keyList.length != tl_clips.length){
- var delta = keyList.length-tl_clips.length;
- var addRemove = delta > 0 ? false : true ;
- delta = Math.abs(delta);
- script.log("clips "+ delta + (addRemove ? " up" : " down"));
- for(var i=0; i<delta; i++){
-
-
- if(addRemove){
- var newClip = currentLayer.addContainer("newclip"+i);
- newClip.addFileParameter("File Path", "sound file");
- newClip.addFloatParameter("start Time", "", 0., 0.);
- newClip.setCollapsed(true);
- }
- else {
-
- currentLayer.removeContainer(util.getObjectProperties(currentLayer, true, false)[i]);
- }
-
-
- }
- hasUpdated = true;
- }
- }
-
- currentLayer = layers.getChild(layersList[layerIndex]);
- keyList = util.getObjectProperties(currentLayer, true, false);
-
- if(tl_keys.length){
- for(var i=0; i<tl_keys.length; i++){
- var currentKey = currentLayer.getChild(keyList[i]);
- currentKey.setName(tl_keys[i].name);
- currentKey.time.set(tl_keys[i].position.get());
- currentKey.value.set(tl_keys[i].value.get());
- }
- }
- if(tl_clips.length){
- for(var i=0; i<tl_clips.length; i++){
- var currentKey = currentLayer.getChild(keyList[i]);
- currentKey.setName(tl_clips[i].name);
- currentKey.filePath.set(tl_clips[i].filePath.get());
- currentKey.startTime.set(tl_clips[i].startTime.get());
- }
- }
- }
- }
- }
- function struct_rebuildGroupLayers(){
- var layersChanged = false;
- var tl_layers = tl_seq.layers.getItems();
- layers = local.getChild("values").newGroup.layers ;
- var layersList = util.getObjectProperties(layers, true, false);
- if (layersList.length != tl_layers.length){
-
- var delta = layersList.length-tl_layers.length;
- var addRemove = delta > 0 ? false : true ;
- delta = Math.abs(delta);
- script.log("Group layers "+ delta + (addRemove ? " up" : " down"));
- for(var i=0; i<delta; i++){
-
-
- if(addRemove){
- local.getChild("values").newGroup.layers.addFloatParameter("newLayer"+i, "value for this layer at group creation", 0., 0., 1.);
-
- }
- else {
- local.getChild("values").newGroup.layers.removeParameter(util.getObjectProperties(layers, true, false)[i]);
- local.getChild("values").newGroup.layers.setCollapsed(true);
- local.getChild("values").newGroup.layers.setCollapsed(false);
- }
-
-
- }
- layersChanged = true;
- }
- if(layersChanged){
- var template = local.getChild("values").newGroup.layers;
- var layerTemplate = util.getObjectProperties(template, true, false);
- if(tl_layers.length){
- for (var i=0; i<tl_layers.length; i++){
- var currentTemplate = template.getChild(layerTemplate[i]) ;
- currentTemplate.setName(tl_layers[i].name);
- }
- }
- }
- }
- function struct_buildValuesFromSeq(){
-
- inibValuesChanged = true;
- var hasUpdated = false ;
-
- var tl_seq = root.sequences.getItemWithName(sequence);
-
- if(tl_seq.name!="undefined"){
- if(doSyncKeysCues) {struct_rebuildValues();}
- else{struct_rebuildGroupLayers();}
-
- tl_seq = root.sequences.getItemWithName(sequence);
- var groups = local.getChild("values").groups ;
- var groupList = util.getObjectProperties(groups, true, false);
-
- if(groupList.length){
- for (var i = 0; i<groupList.length; i++){
-
-
-
-
-
-
-
-
-
-
-
-
- var groupCue = tl_seq.cues.getItemWithName(groupList[i]);
- if(groupCue.name==undefined){
- script.log("cue " + groupList[i] + "not found, removing keys and group");
- var groupToRemove = groups.getChild(groupList[i]);
- var groupToRemoveKeyslist = util.getObjectProperties(groupToRemove.keys, true, false);
- for(var removeKeyIndex = 0; removeKeyIndex< groupToRemoveKeyslist.length; removeKeyIndex++) {
- var tl_removeLayer = tl_seq.layers.getItemWithName( groupToRemoveKeyslist[removeKeyIndex]) ;
- var tl_removeKey = tl_removeLayer.automation.getItemWithName(groupToRemove.keys.getChild( groupToRemoveKeyslist[removeKeyIndex]).get());
-
- tl_removeLayer.automation.removeItem(tl_removeKey);
- }
- groups.removeContainer(groupList[i]);
- hasUpdated = true;
- break;
- }
-
- else {
- groups = local.getChild("values").groups ;
- groupList = util.getObjectProperties(groups, true, false);
- var currentGroup = groups.getChild(groupList[i]);
- var currentGroupLayers = util.getObjectProperties (currentGroup.keys, true, false);
-
- var groupTime = groupCue.time.get();
- currentGroup.cue.set(groupTime);
- if (currentGroupLayers.length){
-
- for(var j=0; j<currentGroupLayers.length; j++){
-
- groups = local.getChild("values").groups ;
- groupList = util.getObjectProperties(groups, true, false);
- currentGroup = groups.getChild(groupList[i]);
- currentGroupLayers = util.getObjectProperties (currentGroup.keys, true, false);
- var tl_layer = tl_seq.layers.getItemWithName(currentGroupLayers[j]);
- var keyName = currentGroup.keys.getChild(tl_layer.name).get();
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if(tl_layer.automation.getItemWithName(keyName).name != undefined){
-
- var tl_key = tl_layer.automation.getItemWithName(keyName);
- tl_key.position.set(groupTime);
-
- var keyValue = tl_key.value.get();
-
- var currentKey = currentGroup.getChild(tl_layer.name);
-
-
- currentKey.set(keyValue);
-
- }
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
- }
- }
- }
- inibValuesChanged = false;
- return hasUpdated;
- }
-
- }
-
-
- function seq_clearSequence(){
- var seq = root.sequences.getItemWithName(sequence) ;
- script.log("clearing all keys and cues of sequence : "+seq.name);
- seq.cues.removeAll();
- var layers = seq.layers.getItems();
- if(layers.length){
- for (var i = 0; i<layers.length; i++){
- if(layers[i].automation){layers[i].automation.removeAll();}
- if(layers[i].clips){layers[i].clips.removeAll();}
- }
- }
-
- var groups = local.getChild("values").groups;
- var groupsList = util.getObjectProperties(groups, true, false);
- if (groupsList.length){
- for(var i=0; i<groupsList.length; i++){
- groups.removeContainer(groupsList[i]);
- }
- }
-
-
- }
- function seq_reorderSequence(){
- var seq = root.sequences.getItemWithName(sequence) ;
- script.log("reordering sequence : "+seq.name);
- var layers = seq.layers.getItems();
- if(layers.length){
- for (var i = 0; i<layers.length; i++){
- if(layers[i].automation){layers[i].automation.reorderItems();}
- if(layers[i].clips){layers[i].clips.reorderItems();}
- }
- }
- }
- function seq_buildSeqFromValues(){}
- function seq_buildSeqFromFile(){}
- function seq_MoveCurrentTime(deltaSeconds){
- var tl_seq = root.sequences.getItemWithName(sequence);
- var currentTime = tl_seq.currentTime.get();
- tl_seq.currentTime.set(currentTime + deltaSeconds);
- }
- function createNewGroup(){
- script.log("create new group");
-
- var groups = local.getChild("values").groups;
- var groupsList = util.getObjectProperties(groups, true, false);
-
- var currentGroup;
- var tl_seq = root.sequences.getItemWithName(sequence);
- var tl_layers = tl_seq.layers.getItems();
- script.log(groupList.length);
-
- var currentTime = tl_seq.currentTime.get() ;
-
-
- newCue = tl_seq.cues.addItem();
- newCue.time.set(currentTime);
-
- for (var i=0; i<=groupsList.length+1; i++){
- if(tl_seq.cues.getChild("group"+i)==undefined){
- newCue.setName("group"+i);
- currentGroup = groups.addContainer("group"+i);
- script.log("create new group: group"+i);
- break;
- }
- }
-
-
-
- currentGroup.addFloatParameter("cue", "cue of the group", currentTime, 0.);
- var keysContainer = currentGroup.addContainer("keys");
- keysContainer.setCollapsed(true);
- tl_seq = root.sequences.getItemWithName(sequence);
- tl_layers = tl_seq.layers.getItems();
-
- if(tl_layers.length){
- for(var i=0;i<tl_layers.length; i++ ){
- if(tl_layers[i].automation!=undefined){
-
- var newKey = tl_layers[i].automation.addItem();
- newKey.position.set(currentTime);
- newKey.setName(currentGroup.name);
- script.log(currentGroup.name);
- newKey.value.set(local.getChild("values").newGroup.layers.getChild(tl_layers[i].name).get());
-
- keysContainer.addStringParameter(tl_layers[i].name, "",currentGroup.name );
- currentGroup.addFloatParameter(tl_layers[i].name,tl_layers[i].name+" value" , currentGroup.name, 0., 1.);
-
- tl_layers[i].automation.reorderItems();
- }
- }
- }
-
- }
- function seq_followCursor(){
- var tl_seq = root.sequences.getItemWithName(sequence);
- var tl_cursor = tl_seq.currentTime.get();
- var tl_totalTime = tl_seq.totalTime.get() ;
- var viewTime = followZoom * tl_totalTime ;
- var startTime = tl_cursor - viewTime/2. ;
- var endTime = tl_cursor + viewTime/2. ;
- tl_seq.viewStartTime.set(startTime);
- tl_seq.viewEndTime.set(endTime);
-
- }
|