115 lines
4.4 KiB
JavaScript
115 lines
4.4 KiB
JavaScript
exports.__esModule = true;
|
|
var MittiClass_1 = require("../MittiClass");
|
|
module.exports = function (actionAPI) {
|
|
//Handle the action when executed
|
|
actionAPI.handle(function (properties, status) {
|
|
var connectionID = properties.connectionID != undefined ? properties.connectionID : 'none';
|
|
var clipID = properties.clipID != undefined ? properties.clipID : 'none';
|
|
if (connectionID != 'none') {
|
|
if (clipID != 'none') {
|
|
var connection = actionAPI.getConnection('mitti', connectionID);
|
|
var ip = connection.properties.ip;
|
|
var mitti = new MittiClass_1.Mitti(ip);
|
|
mitti.on('connected', function () {
|
|
mitti
|
|
.selectClip(parseInt(clipID))
|
|
.then(function () {
|
|
status("Clip " + clipID + " has been selected", 'info');
|
|
})["catch"](function (error) {
|
|
status(error.message, 'error');
|
|
});
|
|
});
|
|
}
|
|
else
|
|
status('No clip specified', 'error');
|
|
}
|
|
else
|
|
status('No connection specified', 'error');
|
|
});
|
|
//Handle the interactive editor
|
|
actionAPI.onOpenEditor(function (editorAPI, properties) {
|
|
var connectionID = properties.connectionID != undefined ? properties.connectionID : 'none';
|
|
var clipID = properties.clipID != undefined ? properties.clipID : 'none';
|
|
var currentIP;
|
|
var currentPort;
|
|
var fields = [
|
|
{
|
|
id: 'connectionID',
|
|
name: 'Connection',
|
|
type: 'connection',
|
|
value: connectionID,
|
|
connectionType: 'mitti'
|
|
},
|
|
{
|
|
id: 'clipID',
|
|
name: 'Clip',
|
|
type: 'select',
|
|
value: clipID,
|
|
values: []
|
|
}
|
|
];
|
|
function updateAddress(connectionID, callback) {
|
|
if (connectionID != 'none') {
|
|
var connection = actionAPI.getConnection('mitti', connectionID);
|
|
var ip = connection.properties.ip;
|
|
var port = connection.properties.port;
|
|
if (currentIP != ip || currentPort != port) {
|
|
currentIP = ip;
|
|
currentPort = port;
|
|
callback(true);
|
|
}
|
|
else {
|
|
callback(false);
|
|
}
|
|
}
|
|
else {
|
|
if (currentIP != null || currentPort != null) {
|
|
currentIP = null;
|
|
currentPort = null;
|
|
callback(true);
|
|
}
|
|
else {
|
|
callback(false);
|
|
}
|
|
}
|
|
}
|
|
function updateSources(callback) {
|
|
var mitti = new MittiClass_1.Mitti(currentIP);
|
|
mitti
|
|
.getClips()
|
|
.then(function (clips) {
|
|
var fieldValues = [];
|
|
for (var clipID in clips) {
|
|
var query = clips[clipID];
|
|
var name = query.split(' ').splice(query.split(' ').length - 3, 2);
|
|
fieldValues.push({ id: clipID, text: clipID + " - " + name });
|
|
}
|
|
fields[1].values = fieldValues;
|
|
callback();
|
|
})["catch"](function (error) {
|
|
fields[1].values = [];
|
|
callback();
|
|
});
|
|
}
|
|
function validate(fieldValues) {
|
|
fields[0].value = fieldValues.connectionID;
|
|
fields[1].value = fieldValues.clipID;
|
|
editorAPI.saveProperties({ connectionID: fieldValues.connectionID, clipID: fieldValues.clipID });
|
|
updateAddress(fieldValues.connectionID, function (changed) {
|
|
if (changed) {
|
|
updateSources(function () {
|
|
editorAPI.setFields(fields);
|
|
});
|
|
}
|
|
else
|
|
editorAPI.setFields(fields);
|
|
});
|
|
}
|
|
validate({ connectionID: connectionID, clipID: clipID });
|
|
editorAPI.onFieldChanges(function (fields) {
|
|
var fieldValues = editorAPI.tools.objectifyFieldsValues(fields);
|
|
validate(fieldValues);
|
|
});
|
|
});
|
|
};
|
|
//# sourceMappingURL=clip.js.map
|