-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlive.getClips.js
42 lines (40 loc) · 1.18 KB
/
live.getClips.js
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
//REN Shihong © 2018
inlets = 1;
outlets = 2;
var clipSlotsID = [];
var clipSlotsAPI = [];
var list = {};
var loaded = false;
function bang() {
loaded = false;
var trackAPI = new LiveAPI("this_device canonical_parent");
if (!trackAPI["id"]) return;
clipSlotsID = trackAPI.get("clip_slots").filter(function (element, index, array) {
return (index % 2 === 1);
});
for (var i = 0; i < clipSlotsID.length; i++) {
clipSlotsAPI[i] = new LiveAPI(slotFired, "id " + clipSlotsID[i]);
clipSlotsAPI[i].property = "is_triggered";
}
reload();
}
function reload() {
loaded = false;
for (var i = 0; i < clipSlotsAPI.length; i++) {
var clipID = clipSlotsAPI[i].get("clip");
if (clipID[1]) {
var clipAPI = new LiveAPI("id " + clipID[1]);
list[clipSlotsID[i]] = [clipAPI.get("name")[0], clipAPI.get("file_path")[0]];
}
}
loaded = true;
outlet(0, "clear");
outlet(1, "clear");
for (var key in list) {
outlet(0, "append", list[key][0]);
outlet(1, "append", list[key][1]);
}
}
function slotFired(args) {
if (loaded && args[1]) outlet(0, "symbol", list[this.id][0]);
}