mcopy/app/lib/capture-report.js

108 lines
1.8 KiB
JavaScript

var capture = {},
fs = require('fs'),
exec = require('child_process').exec;
capture.active = false;
capture.store = {};
capture.start = function () {
'use strict';
capture.store.events = [];
capture.store.start = +new Date();
};
capture.proj_start = function () {
'use strict';
var e = {
'start' : +new Date()
};
capture.store.events.push(e);
};
capture.proj_end = function () {
'use strict';
var e = {
'end' : +new Date()
};
capture.store.events.push(e);
};
capture.report = {};
capture.report.parse = function (first, report, fps, type) {
'use strict';
var output = [],
frame,
last = null,
buffer;
if (typeof fps === 'undefined') {
fps = 24;
}
frame = 1000 / fps;
if (typeof report === 'undefined') {
report = capture.store;
} else {
report = JSON.parse(fs.readFileSync(report, 'utf8'));
}
if (typeof type === 'undefined') {
type = 'still';
}
if (typeof first === 'undefined') {
first = 0;
}
if (type === 'still') {
//first clean frame
for (i = 0; i < report.events.length; i++) {
if (typeof report.events[i].start !=== 'undefined') {
buffer = report.events[i].start;
if (last !== null) {
output.push();
}
} else {
buffer = report.events[i].end - buffer;
last = report.events[i].end;
}
}
} else if (type === 'video') {
}
return output;
};
capture.report.render = function () {
'use strict';
};
capture.test = function () {
'use strict';
var i = -1,
len = 10,
intval,
next = function () {
i++
if (i === len) {
clearInterval(intval);
intval = null;
console.dir(capture.store);
parse();
} else {
if (i % 2 === 0) {
capture.proj_start();
} else {
capture.proj_end();
}
}
},
parse = function () {
capture.report.parse();
};
capture.start();
intval = setInterval(next, 800);
};
capture.test();
//module.exports = capture;