/* SEQUENCE GROUPING MANAGEMENT MODULE allows to define a template of layers, then create groups of keys using that template groups are composed of one key per layer and a cue cue is used to define the time position of the keys values of each key can be changed keys are grouped by name, and groups can be saved/loaded to a file */ // var parameterPath = local.parameters; // var valuesPath = local.values; var newKey = script.addTrigger("newKey", "adds a key at current cursor position" ); var refreshKeys = script.addTrigger("refresh keys", "truc"); var printKeys = script.addTrigger("printKeys","truc"); var moveKey = script.addTrigger("moveKey","truc"); var sequence_structure = { params: {}, groups:{}, keys:{ cues:{}, layers:{} } }; //WAS tl_groups /*group0 : { inCue : {pan : "key", tilt : "key", zoom : "key", dim : "key", focus : "key"}, outCue : {pan : "key", tilt : "key", zoom : "key", dim : "key", focus : "key"} }*/ function init() { script.log("LOADED SEQUENCE GROUPING MANAGEMENT MODULE "); // script.log(); testSequenceFile(); // printMethodsAndProperties(local.parameters.sequenceFile); //test if a file is already defined, //if yes load it, if no refresh sequences enum // if(local.parameters.sequenceFile.getAbsolutePath() != ""){ // script.log("file ok"); // loadSequenceFile(); // } // else{ // local.parameters.sequence.setAttribute("readonly",false); // refreshSequenceEnum(); // } function moduleParameterChanged(param){ script.log("received " + param.name); if (param.name == "sequenceFile") {} else if (param.name == "loadSequence"){loadSequenceFile();} else if (param.name == "exportSequence") { exportSequenceFile();} else if (param.name == "refreshList"){refreshSequenceEnum();} else if (param.name == "sequence"){ var seq = root.sequences.getItems()[local.parameters.sequence.get()]; sequence_structure.params.sequence = seq.name ; script.log(seq.name); // local.parameters.removeContainer("groupTemplate"); // seqCont = local.parameters.addContainer("groupTemplate"); // if (seq.layers.getItems().length){ // for(var j=0 ; j> "+seq[i].name + " " + seq[i].position.get() + " " + seq[i].listSize.get() ); } } else{script.log("nothing to print");} } /////////////////////// VALUES FUNCTIONS /////////////////////// /* Values hold all keys, presented in group containers a nogroup container shows keys that are not grouped */ function clearValues(){ var values = local.values.getItems(); } /////////////////////// TIMELINE FUNCTIONS /////////////////////// function refreshKeysList(){ var sequence = root.sequences.getItemWithName(local.parameters.sequence.getKey(0)); var cues = sequence.cues.getItems(); sequence_structure.keys.cues = {}; if(cues.length){ for (var i = 0 ; i < cues.length ; i++){ sequence_structure.keys.cues['cue'+i] = {index : i}; sequence_structure.keys['cues']['cue'+i]['name'] = cues[i].name; sequence_structure.keys['cues']['cue'+i]['niceName'] = cues[i].niceName; sequence_structure.keys['cues']['cue'+i]['time'] = cues[i].time.get(); // script.log(tl_keyframes['cues']['cue'+i].time); } } var layers = sequence.layers.getItems(); sequence_structure.keys.layers={}; if(layers.length){ for (var i = 0 ; i < layers.length ; i++){ sequence_structure['keys']['layers'][layers[i].name] = {}; // script.log(currentLayer.name); if(layers[i].automation.getItems().length){ // script.log(currentLayer.automation.items.length); for (var j = 0 ; j < layers[i].automation.getItems().length ; j++){ var currentkey = layers[i].automation.getItems()[j] ; sequence_structure['keys']['layers'][layers[i].name][currentkey.name] = { position : currentkey.position.get(), value : currentkey.value.get() }; // script.log(tl_keyframes['keys'][currentLayer.name][currentkey.name].value); } } } } // myFile.writeFile(JSON.stringify(tl_keyframes), 1); }