1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| var express = require("express");
var app = express();
var server = require("http").createServer(app);
var io = require("socket.io").listen(server);
var Timecode = require('smpte-timecode');
var CasparCG = require("caspar-cg");
//var playoutCG = require("./playout");
var socketer = io.sockets;
var playout, ccg;
var librairie = [];
app.use(express.static(__dirname + '/public'));
server.listen(8080, function () {
console.log("listening on port 8080");
});
app.get("/layout", function (req, res) {
res.sendFile(__dirname + "/public/test.html");
});
socketer.on("connection", function (connected) {
connected.on("connectCaspar", function () {
console.log("connect");
//playout.connect();
ccg = new CasparCG("192.168.1.22", 5250);
console.log("connect 2");
ccg.connect(function () {
ccg.info(function (err, serverInfo) {
console.log("info : " +serverInfo);
});
});
/*playout.on("play", function(){
console.log("play");
});*/
ccg.on("disconnected", function () {
console.log("casparCG est disconnected");
ccg.disconnect();
//pourquoi socketer et pas connected
socketer.emit("Deconnect", {
'logiciel':'casparcg',
'statut': 'false'
});
});
ccg.on("connected", function () {
console.log("Connected 11");
socketer.emit("Connect", {
'logiciel':'casparcg',
'statut': 'true'
});
});
});
connected.on("librairie", function () {
ccg.getMediaFiles(function (err, cb) {
librairie = [];
for (var x in cb) {
if(cb[x].type == "MOVIE"){
var media = {'groupe':'0','file':cb[x].file,'time':timeCodes(parseInt(cb[x].count))} ;
librairie.push(media);
console.log(librairie);
}
}
socketer.emit("libMedia",librairie);
});
});
connected.on("playCaspar", function () {
ccg.play("1-10", librairie[0].file);
timer(librairie[0].time)
});
connected.once('next', function(mediaNext){
console.log('next',mediaNext);
});
function nextfile(){
ccg.play("1-10", librairie[1].file);
timer(librairie[1].time)
}
function timer(duration) {
var timer = setInterval(function () {
duration--;
console.log(duration);
if (duration <= 0) {
clearInterval(timer);
connected.emit('next',nextfile());
}
}, 1000);
}
});
function timeCodes(frames){
var eightHundredFrames = new Timecode(frames,25,false);
return (eightHundredFrames.hours * 3600) + (eightHundredFrames.minutes *60) + eightHundredFrames.seconds;
} |