@synthetic-ai/premiere-mcp 2.1.0 → 2.3.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +135 -123
- package/LICENSE +21 -21
- package/README.md +242 -242
- package/cep-plugin/.debug +8 -8
- package/cep-plugin/CSInterface.js +92 -92
- package/cep-plugin/host.jsx +7 -7
- package/cep-plugin/index.html +472 -472
- package/cep-plugin/main.js +6 -0
- package/cep-plugin/premiere.jsx +24947 -24947
- package/dist/bridge/script-builder.js +378 -378
- package/dist/index.js +103 -4
- package/dist/license.js +38 -0
- package/dist/server.js +60 -60
- package/dist/tools/advanced.js +357 -357
- package/dist/tools/audio-advanced.js +1049 -1049
- package/dist/tools/audio.js +42 -42
- package/dist/tools/captions.js +27 -27
- package/dist/tools/clipboard.js +214 -214
- package/dist/tools/color-advanced.js +253 -253
- package/dist/tools/discovery.js +291 -291
- package/dist/tools/effects.js +285 -285
- package/dist/tools/export-presets.js +206 -206
- package/dist/tools/export.js +255 -255
- package/dist/tools/health.js +10 -10
- package/dist/tools/inspection.js +885 -885
- package/dist/tools/keyframes.js +369 -369
- package/dist/tools/markers.js +89 -89
- package/dist/tools/media.js +178 -178
- package/dist/tools/metadata.js +94 -94
- package/dist/tools/multicam.js +50 -50
- package/dist/tools/playback.js +15 -15
- package/dist/tools/playhead.js +95 -95
- package/dist/tools/project-manager.js +21 -21
- package/dist/tools/project.js +149 -149
- package/dist/tools/scripting.js +319 -319
- package/dist/tools/selection.js +202 -202
- package/dist/tools/sequence-advanced.js +379 -379
- package/dist/tools/sequence-settings.js +564 -564
- package/dist/tools/sequence.js +167 -167
- package/dist/tools/source-monitor.js +68 -68
- package/dist/tools/text.js +58 -58
- package/dist/tools/timeline.js +312 -312
- package/dist/tools/track-management.js +446 -446
- package/dist/tools/track-targeting.js +635 -635
- package/dist/tools/tracks.js +87 -87
- package/dist/tools/transitions-motion.js +174 -174
- package/dist/tools/transitions.js +111 -111
- package/dist/tools/utility.js +606 -606
- package/dist/tools/workspace.js +29 -29
- package/package.json +66 -66
- package/scripts/build-chat-dmg.sh +210 -210
- package/scripts/build-chat-zip.sh +291 -291
- package/scripts/install-cep-windows.ps1 +99 -99
- package/scripts/install-cep.sh +66 -66
- package/scripts/install-chat-plugin.bat +67 -67
- package/scripts/install-chat-plugin.sh +85 -85
- package/scripts/install-windows.bat +95 -95
- package/scripts/package.mjs +254 -254
|
@@ -13,11 +13,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
13
13
|
required: ["track_index", "clip_index"],
|
|
14
14
|
},
|
|
15
15
|
handler: async (args) => {
|
|
16
|
-
const script = buildToolScript(`
|
|
17
|
-
var result = lumetriGetAll(${args.track_index}, ${args.clip_index});
|
|
18
|
-
var parsed = JSON.parse(result);
|
|
19
|
-
if (!parsed.success) return __error(parsed.error);
|
|
20
|
-
return __result(parsed.data);
|
|
16
|
+
const script = buildToolScript(`
|
|
17
|
+
var result = lumetriGetAll(${args.track_index}, ${args.clip_index});
|
|
18
|
+
var parsed = JSON.parse(result);
|
|
19
|
+
if (!parsed.success) return __error(parsed.error);
|
|
20
|
+
return __result(parsed.data);
|
|
21
21
|
`);
|
|
22
22
|
return sendCommand(script, bridgeOptions);
|
|
23
23
|
},
|
|
@@ -34,11 +34,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
34
34
|
required: ["track_index", "clip_index", "value"],
|
|
35
35
|
},
|
|
36
36
|
handler: async (args) => {
|
|
37
|
-
const script = buildToolScript(`
|
|
38
|
-
var result = lumetriSetExposure(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
39
|
-
var parsed = JSON.parse(result);
|
|
40
|
-
if (!parsed.success) return __error(parsed.error);
|
|
41
|
-
return __result(parsed.data);
|
|
37
|
+
const script = buildToolScript(`
|
|
38
|
+
var result = lumetriSetExposure(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
39
|
+
var parsed = JSON.parse(result);
|
|
40
|
+
if (!parsed.success) return __error(parsed.error);
|
|
41
|
+
return __result(parsed.data);
|
|
42
42
|
`);
|
|
43
43
|
return sendCommand(script, bridgeOptions);
|
|
44
44
|
},
|
|
@@ -55,11 +55,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
55
55
|
required: ["track_index", "clip_index", "value"],
|
|
56
56
|
},
|
|
57
57
|
handler: async (args) => {
|
|
58
|
-
const script = buildToolScript(`
|
|
59
|
-
var result = lumetriSetContrast(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
60
|
-
var parsed = JSON.parse(result);
|
|
61
|
-
if (!parsed.success) return __error(parsed.error);
|
|
62
|
-
return __result(parsed.data);
|
|
58
|
+
const script = buildToolScript(`
|
|
59
|
+
var result = lumetriSetContrast(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
60
|
+
var parsed = JSON.parse(result);
|
|
61
|
+
if (!parsed.success) return __error(parsed.error);
|
|
62
|
+
return __result(parsed.data);
|
|
63
63
|
`);
|
|
64
64
|
return sendCommand(script, bridgeOptions);
|
|
65
65
|
},
|
|
@@ -76,11 +76,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
76
76
|
required: ["track_index", "clip_index", "value"],
|
|
77
77
|
},
|
|
78
78
|
handler: async (args) => {
|
|
79
|
-
const script = buildToolScript(`
|
|
80
|
-
var result = lumetriSetHighlights(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
81
|
-
var parsed = JSON.parse(result);
|
|
82
|
-
if (!parsed.success) return __error(parsed.error);
|
|
83
|
-
return __result(parsed.data);
|
|
79
|
+
const script = buildToolScript(`
|
|
80
|
+
var result = lumetriSetHighlights(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
81
|
+
var parsed = JSON.parse(result);
|
|
82
|
+
if (!parsed.success) return __error(parsed.error);
|
|
83
|
+
return __result(parsed.data);
|
|
84
84
|
`);
|
|
85
85
|
return sendCommand(script, bridgeOptions);
|
|
86
86
|
},
|
|
@@ -97,11 +97,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
97
97
|
required: ["track_index", "clip_index", "value"],
|
|
98
98
|
},
|
|
99
99
|
handler: async (args) => {
|
|
100
|
-
const script = buildToolScript(`
|
|
101
|
-
var result = lumetriSetShadows(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
102
|
-
var parsed = JSON.parse(result);
|
|
103
|
-
if (!parsed.success) return __error(parsed.error);
|
|
104
|
-
return __result(parsed.data);
|
|
100
|
+
const script = buildToolScript(`
|
|
101
|
+
var result = lumetriSetShadows(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
102
|
+
var parsed = JSON.parse(result);
|
|
103
|
+
if (!parsed.success) return __error(parsed.error);
|
|
104
|
+
return __result(parsed.data);
|
|
105
105
|
`);
|
|
106
106
|
return sendCommand(script, bridgeOptions);
|
|
107
107
|
},
|
|
@@ -118,11 +118,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
118
118
|
required: ["track_index", "clip_index", "value"],
|
|
119
119
|
},
|
|
120
120
|
handler: async (args) => {
|
|
121
|
-
const script = buildToolScript(`
|
|
122
|
-
var result = lumetriSetWhites(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
123
|
-
var parsed = JSON.parse(result);
|
|
124
|
-
if (!parsed.success) return __error(parsed.error);
|
|
125
|
-
return __result(parsed.data);
|
|
121
|
+
const script = buildToolScript(`
|
|
122
|
+
var result = lumetriSetWhites(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
123
|
+
var parsed = JSON.parse(result);
|
|
124
|
+
if (!parsed.success) return __error(parsed.error);
|
|
125
|
+
return __result(parsed.data);
|
|
126
126
|
`);
|
|
127
127
|
return sendCommand(script, bridgeOptions);
|
|
128
128
|
},
|
|
@@ -139,11 +139,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
139
139
|
required: ["track_index", "clip_index", "value"],
|
|
140
140
|
},
|
|
141
141
|
handler: async (args) => {
|
|
142
|
-
const script = buildToolScript(`
|
|
143
|
-
var result = lumetriSetBlacks(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
144
|
-
var parsed = JSON.parse(result);
|
|
145
|
-
if (!parsed.success) return __error(parsed.error);
|
|
146
|
-
return __result(parsed.data);
|
|
142
|
+
const script = buildToolScript(`
|
|
143
|
+
var result = lumetriSetBlacks(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
144
|
+
var parsed = JSON.parse(result);
|
|
145
|
+
if (!parsed.success) return __error(parsed.error);
|
|
146
|
+
return __result(parsed.data);
|
|
147
147
|
`);
|
|
148
148
|
return sendCommand(script, bridgeOptions);
|
|
149
149
|
},
|
|
@@ -160,11 +160,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
160
160
|
required: ["track_index", "clip_index", "value"],
|
|
161
161
|
},
|
|
162
162
|
handler: async (args) => {
|
|
163
|
-
const script = buildToolScript(`
|
|
164
|
-
var result = lumetriSetTemperature(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
165
|
-
var parsed = JSON.parse(result);
|
|
166
|
-
if (!parsed.success) return __error(parsed.error);
|
|
167
|
-
return __result(parsed.data);
|
|
163
|
+
const script = buildToolScript(`
|
|
164
|
+
var result = lumetriSetTemperature(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
165
|
+
var parsed = JSON.parse(result);
|
|
166
|
+
if (!parsed.success) return __error(parsed.error);
|
|
167
|
+
return __result(parsed.data);
|
|
168
168
|
`);
|
|
169
169
|
return sendCommand(script, bridgeOptions);
|
|
170
170
|
},
|
|
@@ -181,11 +181,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
181
181
|
required: ["track_index", "clip_index", "value"],
|
|
182
182
|
},
|
|
183
183
|
handler: async (args) => {
|
|
184
|
-
const script = buildToolScript(`
|
|
185
|
-
var result = lumetriSetTint(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
186
|
-
var parsed = JSON.parse(result);
|
|
187
|
-
if (!parsed.success) return __error(parsed.error);
|
|
188
|
-
return __result(parsed.data);
|
|
184
|
+
const script = buildToolScript(`
|
|
185
|
+
var result = lumetriSetTint(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
186
|
+
var parsed = JSON.parse(result);
|
|
187
|
+
if (!parsed.success) return __error(parsed.error);
|
|
188
|
+
return __result(parsed.data);
|
|
189
189
|
`);
|
|
190
190
|
return sendCommand(script, bridgeOptions);
|
|
191
191
|
},
|
|
@@ -202,11 +202,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
202
202
|
required: ["track_index", "clip_index", "value"],
|
|
203
203
|
},
|
|
204
204
|
handler: async (args) => {
|
|
205
|
-
const script = buildToolScript(`
|
|
206
|
-
var result = lumetriSetSaturation(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
207
|
-
var parsed = JSON.parse(result);
|
|
208
|
-
if (!parsed.success) return __error(parsed.error);
|
|
209
|
-
return __result(parsed.data);
|
|
205
|
+
const script = buildToolScript(`
|
|
206
|
+
var result = lumetriSetSaturation(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
207
|
+
var parsed = JSON.parse(result);
|
|
208
|
+
if (!parsed.success) return __error(parsed.error);
|
|
209
|
+
return __result(parsed.data);
|
|
210
210
|
`);
|
|
211
211
|
return sendCommand(script, bridgeOptions);
|
|
212
212
|
},
|
|
@@ -223,11 +223,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
223
223
|
required: ["track_index", "clip_index", "value"],
|
|
224
224
|
},
|
|
225
225
|
handler: async (args) => {
|
|
226
|
-
const script = buildToolScript(`
|
|
227
|
-
var result = lumetriSetVibrance(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
228
|
-
var parsed = JSON.parse(result);
|
|
229
|
-
if (!parsed.success) return __error(parsed.error);
|
|
230
|
-
return __result(parsed.data);
|
|
226
|
+
const script = buildToolScript(`
|
|
227
|
+
var result = lumetriSetVibrance(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
228
|
+
var parsed = JSON.parse(result);
|
|
229
|
+
if (!parsed.success) return __error(parsed.error);
|
|
230
|
+
return __result(parsed.data);
|
|
231
231
|
`);
|
|
232
232
|
return sendCommand(script, bridgeOptions);
|
|
233
233
|
},
|
|
@@ -244,11 +244,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
244
244
|
required: ["track_index", "clip_index", "value"],
|
|
245
245
|
},
|
|
246
246
|
handler: async (args) => {
|
|
247
|
-
const script = buildToolScript(`
|
|
248
|
-
var result = lumetriSetFadedFilm(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
249
|
-
var parsed = JSON.parse(result);
|
|
250
|
-
if (!parsed.success) return __error(parsed.error);
|
|
251
|
-
return __result(parsed.data);
|
|
247
|
+
const script = buildToolScript(`
|
|
248
|
+
var result = lumetriSetFadedFilm(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
249
|
+
var parsed = JSON.parse(result);
|
|
250
|
+
if (!parsed.success) return __error(parsed.error);
|
|
251
|
+
return __result(parsed.data);
|
|
252
252
|
`);
|
|
253
253
|
return sendCommand(script, bridgeOptions);
|
|
254
254
|
},
|
|
@@ -265,11 +265,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
265
265
|
required: ["track_index", "clip_index", "value"],
|
|
266
266
|
},
|
|
267
267
|
handler: async (args) => {
|
|
268
|
-
const script = buildToolScript(`
|
|
269
|
-
var result = lumetriSetSharpen(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
270
|
-
var parsed = JSON.parse(result);
|
|
271
|
-
if (!parsed.success) return __error(parsed.error);
|
|
272
|
-
return __result(parsed.data);
|
|
268
|
+
const script = buildToolScript(`
|
|
269
|
+
var result = lumetriSetSharpen(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
270
|
+
var parsed = JSON.parse(result);
|
|
271
|
+
if (!parsed.success) return __error(parsed.error);
|
|
272
|
+
return __result(parsed.data);
|
|
273
273
|
`);
|
|
274
274
|
return sendCommand(script, bridgeOptions);
|
|
275
275
|
},
|
|
@@ -289,56 +289,56 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
289
289
|
},
|
|
290
290
|
handler: async (args) => {
|
|
291
291
|
const safeChannel = args.channel.replace(/"/g, '\\"');
|
|
292
|
-
const script = buildToolScript(`
|
|
293
|
-
var seq = app.project.activeSequence;
|
|
294
|
-
if (!seq) return __error("No active sequence");
|
|
295
|
-
var track = seq.videoTracks[${args.track_index}];
|
|
296
|
-
if (!track || ${args.clip_index} >= track.clips.numItems) return __error("Track or clip not found");
|
|
297
|
-
var clip = track.clips[${args.clip_index}];
|
|
298
|
-
var lumetri = null;
|
|
299
|
-
for (var i = 0; i < clip.components.numItems; i++) {
|
|
300
|
-
if (clip.components[i].displayName === "Lumetri Color" || clip.components[i].matchName === "AE.ADBE Lumetri") {
|
|
301
|
-
lumetri = clip.components[i]; break;
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
if (!lumetri) {
|
|
305
|
-
app.enableQE();
|
|
306
|
-
clip.addVideoEffect(qe.project.getVideoEffectByName("Lumetri Color"));
|
|
307
|
-
for (var i = 0; i < clip.components.numItems; i++) {
|
|
308
|
-
if (clip.components[i].displayName === "Lumetri Color") { lumetri = clip.components[i]; break; }
|
|
309
|
-
}
|
|
310
|
-
if (!lumetri) return __error("Could not find or add Lumetri Color to clip");
|
|
311
|
-
}
|
|
312
|
-
var channelMap = { luma: "Luma Curve", red: "Red Curve", green: "Green Curve", blue: "Blue Curve" };
|
|
313
|
-
var curvePropName = channelMap["${safeChannel}"] || "Luma Curve";
|
|
314
|
-
var curveProp = null;
|
|
315
|
-
for (var p = 0; p < lumetri.properties.numItems; p++) {
|
|
316
|
-
var group = lumetri.properties[p];
|
|
317
|
-
if (group.properties) {
|
|
318
|
-
for (var sp = 0; sp < group.properties.numItems; sp++) {
|
|
319
|
-
if (group.properties[sp].displayName === curvePropName) {
|
|
320
|
-
curveProp = group.properties[sp]; break;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
if (group.displayName === curvePropName) { curveProp = group; break; }
|
|
325
|
-
if (curveProp) break;
|
|
326
|
-
}
|
|
327
|
-
if (!curveProp) return __error("Could not find curve property: " + curvePropName + ". Ensure Lumetri Color is applied.");
|
|
328
|
-
var normIn = ${args.input_value} / 255;
|
|
329
|
-
var normOut = ${args.output_value} / 255;
|
|
330
|
-
try {
|
|
331
|
-
var currentVal = curveProp.getValue(0, 0);
|
|
332
|
-
if (Array.isArray(currentVal)) {
|
|
333
|
-
currentVal.push(normIn, normOut);
|
|
334
|
-
curveProp.setValue(currentVal, true);
|
|
335
|
-
} else {
|
|
336
|
-
curveProp.setValue([0, 0, normIn, normOut, 1, 1], true);
|
|
337
|
-
}
|
|
338
|
-
return __result({ set: true, channel: "${safeChannel}", input: ${args.input_value}, output: ${args.output_value}, normalized: { in: normIn, out: normOut } });
|
|
339
|
-
} catch(e) {
|
|
340
|
-
return __error("Could not set curve point: " + e.toString() + ". Try using lumetri_auto_color or setting curves manually.");
|
|
341
|
-
}
|
|
292
|
+
const script = buildToolScript(`
|
|
293
|
+
var seq = app.project.activeSequence;
|
|
294
|
+
if (!seq) return __error("No active sequence");
|
|
295
|
+
var track = seq.videoTracks[${args.track_index}];
|
|
296
|
+
if (!track || ${args.clip_index} >= track.clips.numItems) return __error("Track or clip not found");
|
|
297
|
+
var clip = track.clips[${args.clip_index}];
|
|
298
|
+
var lumetri = null;
|
|
299
|
+
for (var i = 0; i < clip.components.numItems; i++) {
|
|
300
|
+
if (clip.components[i].displayName === "Lumetri Color" || clip.components[i].matchName === "AE.ADBE Lumetri") {
|
|
301
|
+
lumetri = clip.components[i]; break;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (!lumetri) {
|
|
305
|
+
app.enableQE();
|
|
306
|
+
clip.addVideoEffect(qe.project.getVideoEffectByName("Lumetri Color"));
|
|
307
|
+
for (var i = 0; i < clip.components.numItems; i++) {
|
|
308
|
+
if (clip.components[i].displayName === "Lumetri Color") { lumetri = clip.components[i]; break; }
|
|
309
|
+
}
|
|
310
|
+
if (!lumetri) return __error("Could not find or add Lumetri Color to clip");
|
|
311
|
+
}
|
|
312
|
+
var channelMap = { luma: "Luma Curve", red: "Red Curve", green: "Green Curve", blue: "Blue Curve" };
|
|
313
|
+
var curvePropName = channelMap["${safeChannel}"] || "Luma Curve";
|
|
314
|
+
var curveProp = null;
|
|
315
|
+
for (var p = 0; p < lumetri.properties.numItems; p++) {
|
|
316
|
+
var group = lumetri.properties[p];
|
|
317
|
+
if (group.properties) {
|
|
318
|
+
for (var sp = 0; sp < group.properties.numItems; sp++) {
|
|
319
|
+
if (group.properties[sp].displayName === curvePropName) {
|
|
320
|
+
curveProp = group.properties[sp]; break;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
if (group.displayName === curvePropName) { curveProp = group; break; }
|
|
325
|
+
if (curveProp) break;
|
|
326
|
+
}
|
|
327
|
+
if (!curveProp) return __error("Could not find curve property: " + curvePropName + ". Ensure Lumetri Color is applied.");
|
|
328
|
+
var normIn = ${args.input_value} / 255;
|
|
329
|
+
var normOut = ${args.output_value} / 255;
|
|
330
|
+
try {
|
|
331
|
+
var currentVal = curveProp.getValue(0, 0);
|
|
332
|
+
if (Array.isArray(currentVal)) {
|
|
333
|
+
currentVal.push(normIn, normOut);
|
|
334
|
+
curveProp.setValue(currentVal, true);
|
|
335
|
+
} else {
|
|
336
|
+
curveProp.setValue([0, 0, normIn, normOut, 1, 1], true);
|
|
337
|
+
}
|
|
338
|
+
return __result({ set: true, channel: "${safeChannel}", input: ${args.input_value}, output: ${args.output_value}, normalized: { in: normIn, out: normOut } });
|
|
339
|
+
} catch(e) {
|
|
340
|
+
return __error("Could not set curve point: " + e.toString() + ". Try using lumetri_auto_color or setting curves manually.");
|
|
341
|
+
}
|
|
342
342
|
`);
|
|
343
343
|
return sendCommand(script, bridgeOptions);
|
|
344
344
|
},
|
|
@@ -357,11 +357,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
357
357
|
required: ["track_index", "clip_index", "hue", "saturation", "brightness"],
|
|
358
358
|
},
|
|
359
359
|
handler: async (args) => {
|
|
360
|
-
const script = buildToolScript(`
|
|
361
|
-
var result = lumetriSetShadowColor(${args.track_index}, ${args.clip_index}, ${args.hue}, ${args.saturation}, ${args.brightness});
|
|
362
|
-
var parsed = JSON.parse(result);
|
|
363
|
-
if (!parsed.success) return __error(parsed.error);
|
|
364
|
-
return __result(parsed.data);
|
|
360
|
+
const script = buildToolScript(`
|
|
361
|
+
var result = lumetriSetShadowColor(${args.track_index}, ${args.clip_index}, ${args.hue}, ${args.saturation}, ${args.brightness});
|
|
362
|
+
var parsed = JSON.parse(result);
|
|
363
|
+
if (!parsed.success) return __error(parsed.error);
|
|
364
|
+
return __result(parsed.data);
|
|
365
365
|
`);
|
|
366
366
|
return sendCommand(script, bridgeOptions);
|
|
367
367
|
},
|
|
@@ -380,11 +380,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
380
380
|
required: ["track_index", "clip_index", "hue", "saturation", "brightness"],
|
|
381
381
|
},
|
|
382
382
|
handler: async (args) => {
|
|
383
|
-
const script = buildToolScript(`
|
|
384
|
-
var result = lumetriSetMidtoneColor(${args.track_index}, ${args.clip_index}, ${args.hue}, ${args.saturation}, ${args.brightness});
|
|
385
|
-
var parsed = JSON.parse(result);
|
|
386
|
-
if (!parsed.success) return __error(parsed.error);
|
|
387
|
-
return __result(parsed.data);
|
|
383
|
+
const script = buildToolScript(`
|
|
384
|
+
var result = lumetriSetMidtoneColor(${args.track_index}, ${args.clip_index}, ${args.hue}, ${args.saturation}, ${args.brightness});
|
|
385
|
+
var parsed = JSON.parse(result);
|
|
386
|
+
if (!parsed.success) return __error(parsed.error);
|
|
387
|
+
return __result(parsed.data);
|
|
388
388
|
`);
|
|
389
389
|
return sendCommand(script, bridgeOptions);
|
|
390
390
|
},
|
|
@@ -403,11 +403,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
403
403
|
required: ["track_index", "clip_index", "hue", "saturation", "brightness"],
|
|
404
404
|
},
|
|
405
405
|
handler: async (args) => {
|
|
406
|
-
const script = buildToolScript(`
|
|
407
|
-
var result = lumetriSetHighlightColor(${args.track_index}, ${args.clip_index}, ${args.hue}, ${args.saturation}, ${args.brightness});
|
|
408
|
-
var parsed = JSON.parse(result);
|
|
409
|
-
if (!parsed.success) return __error(parsed.error);
|
|
410
|
-
return __result(parsed.data);
|
|
406
|
+
const script = buildToolScript(`
|
|
407
|
+
var result = lumetriSetHighlightColor(${args.track_index}, ${args.clip_index}, ${args.hue}, ${args.saturation}, ${args.brightness});
|
|
408
|
+
var parsed = JSON.parse(result);
|
|
409
|
+
if (!parsed.success) return __error(parsed.error);
|
|
410
|
+
return __result(parsed.data);
|
|
411
411
|
`);
|
|
412
412
|
return sendCommand(script, bridgeOptions);
|
|
413
413
|
},
|
|
@@ -424,11 +424,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
424
424
|
required: ["track_index", "clip_index", "value"],
|
|
425
425
|
},
|
|
426
426
|
handler: async (args) => {
|
|
427
|
-
const script = buildToolScript(`
|
|
428
|
-
var result = lumetriSetVignetteAmount(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
429
|
-
var parsed = JSON.parse(result);
|
|
430
|
-
if (!parsed.success) return __error(parsed.error);
|
|
431
|
-
return __result(parsed.data);
|
|
427
|
+
const script = buildToolScript(`
|
|
428
|
+
var result = lumetriSetVignetteAmount(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
429
|
+
var parsed = JSON.parse(result);
|
|
430
|
+
if (!parsed.success) return __error(parsed.error);
|
|
431
|
+
return __result(parsed.data);
|
|
432
432
|
`);
|
|
433
433
|
return sendCommand(script, bridgeOptions);
|
|
434
434
|
},
|
|
@@ -445,11 +445,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
445
445
|
required: ["track_index", "clip_index", "value"],
|
|
446
446
|
},
|
|
447
447
|
handler: async (args) => {
|
|
448
|
-
const script = buildToolScript(`
|
|
449
|
-
var result = lumetriSetVignetteMidpoint(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
450
|
-
var parsed = JSON.parse(result);
|
|
451
|
-
if (!parsed.success) return __error(parsed.error);
|
|
452
|
-
return __result(parsed.data);
|
|
448
|
+
const script = buildToolScript(`
|
|
449
|
+
var result = lumetriSetVignetteMidpoint(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
450
|
+
var parsed = JSON.parse(result);
|
|
451
|
+
if (!parsed.success) return __error(parsed.error);
|
|
452
|
+
return __result(parsed.data);
|
|
453
453
|
`);
|
|
454
454
|
return sendCommand(script, bridgeOptions);
|
|
455
455
|
},
|
|
@@ -466,11 +466,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
466
466
|
required: ["track_index", "clip_index", "value"],
|
|
467
467
|
},
|
|
468
468
|
handler: async (args) => {
|
|
469
|
-
const script = buildToolScript(`
|
|
470
|
-
var result = lumetriSetVignetteRoundness(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
471
|
-
var parsed = JSON.parse(result);
|
|
472
|
-
if (!parsed.success) return __error(parsed.error);
|
|
473
|
-
return __result(parsed.data);
|
|
469
|
+
const script = buildToolScript(`
|
|
470
|
+
var result = lumetriSetVignetteRoundness(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
471
|
+
var parsed = JSON.parse(result);
|
|
472
|
+
if (!parsed.success) return __error(parsed.error);
|
|
473
|
+
return __result(parsed.data);
|
|
474
474
|
`);
|
|
475
475
|
return sendCommand(script, bridgeOptions);
|
|
476
476
|
},
|
|
@@ -487,11 +487,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
487
487
|
required: ["track_index", "clip_index", "value"],
|
|
488
488
|
},
|
|
489
489
|
handler: async (args) => {
|
|
490
|
-
const script = buildToolScript(`
|
|
491
|
-
var result = lumetriSetVignetteFeather(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
492
|
-
var parsed = JSON.parse(result);
|
|
493
|
-
if (!parsed.success) return __error(parsed.error);
|
|
494
|
-
return __result(parsed.data);
|
|
490
|
+
const script = buildToolScript(`
|
|
491
|
+
var result = lumetriSetVignetteFeather(${args.track_index}, ${args.clip_index}, ${args.value});
|
|
492
|
+
var parsed = JSON.parse(result);
|
|
493
|
+
if (!parsed.success) return __error(parsed.error);
|
|
494
|
+
return __result(parsed.data);
|
|
495
495
|
`);
|
|
496
496
|
return sendCommand(script, bridgeOptions);
|
|
497
497
|
},
|
|
@@ -509,11 +509,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
509
509
|
},
|
|
510
510
|
handler: async (args) => {
|
|
511
511
|
const lutPathEsc = args.lut_path.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
512
|
-
const script = buildToolScript(`
|
|
513
|
-
var result = lumetriApplyLUT(${args.track_index}, ${args.clip_index}, "${lutPathEsc}");
|
|
514
|
-
var parsed = JSON.parse(result);
|
|
515
|
-
if (!parsed.success) return __error(parsed.error);
|
|
516
|
-
return __result(parsed.data);
|
|
512
|
+
const script = buildToolScript(`
|
|
513
|
+
var result = lumetriApplyLUT(${args.track_index}, ${args.clip_index}, "${lutPathEsc}");
|
|
514
|
+
var parsed = JSON.parse(result);
|
|
515
|
+
if (!parsed.success) return __error(parsed.error);
|
|
516
|
+
return __result(parsed.data);
|
|
517
517
|
`);
|
|
518
518
|
return sendCommand(script, bridgeOptions);
|
|
519
519
|
},
|
|
@@ -529,11 +529,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
529
529
|
required: ["track_index", "clip_index"],
|
|
530
530
|
},
|
|
531
531
|
handler: async (args) => {
|
|
532
|
-
const script = buildToolScript(`
|
|
533
|
-
var result = lumetriRemoveLUT(${args.track_index}, ${args.clip_index});
|
|
534
|
-
var parsed = JSON.parse(result);
|
|
535
|
-
if (!parsed.success) return __error(parsed.error);
|
|
536
|
-
return __result(parsed.data);
|
|
532
|
+
const script = buildToolScript(`
|
|
533
|
+
var result = lumetriRemoveLUT(${args.track_index}, ${args.clip_index});
|
|
534
|
+
var parsed = JSON.parse(result);
|
|
535
|
+
if (!parsed.success) return __error(parsed.error);
|
|
536
|
+
return __result(parsed.data);
|
|
537
537
|
`);
|
|
538
538
|
return sendCommand(script, bridgeOptions);
|
|
539
539
|
},
|
|
@@ -549,11 +549,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
549
549
|
required: ["track_index", "clip_index"],
|
|
550
550
|
},
|
|
551
551
|
handler: async (args) => {
|
|
552
|
-
const script = buildToolScript(`
|
|
553
|
-
var result = lumetriAutoColor(${args.track_index}, ${args.clip_index});
|
|
554
|
-
var parsed = JSON.parse(result);
|
|
555
|
-
if (!parsed.success) return __error(parsed.error);
|
|
556
|
-
return __result(parsed.data);
|
|
552
|
+
const script = buildToolScript(`
|
|
553
|
+
var result = lumetriAutoColor(${args.track_index}, ${args.clip_index});
|
|
554
|
+
var parsed = JSON.parse(result);
|
|
555
|
+
if (!parsed.success) return __error(parsed.error);
|
|
556
|
+
return __result(parsed.data);
|
|
557
557
|
`);
|
|
558
558
|
return sendCommand(script, bridgeOptions);
|
|
559
559
|
},
|
|
@@ -569,11 +569,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
569
569
|
required: ["track_index", "clip_index"],
|
|
570
570
|
},
|
|
571
571
|
handler: async (args) => {
|
|
572
|
-
const script = buildToolScript(`
|
|
573
|
-
var result = lumetriReset(${args.track_index}, ${args.clip_index});
|
|
574
|
-
var parsed = JSON.parse(result);
|
|
575
|
-
if (!parsed.success) return __error(parsed.error);
|
|
576
|
-
return __result(parsed.data);
|
|
572
|
+
const script = buildToolScript(`
|
|
573
|
+
var result = lumetriReset(${args.track_index}, ${args.clip_index});
|
|
574
|
+
var parsed = JSON.parse(result);
|
|
575
|
+
if (!parsed.success) return __error(parsed.error);
|
|
576
|
+
return __result(parsed.data);
|
|
577
577
|
`);
|
|
578
578
|
return sendCommand(script, bridgeOptions);
|
|
579
579
|
},
|
|
@@ -589,11 +589,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
589
589
|
required: ["track_index", "clip_index"],
|
|
590
590
|
},
|
|
591
591
|
handler: async (args) => {
|
|
592
|
-
const script = buildToolScript(`
|
|
593
|
-
var result = lumetriAutoWhiteBalance(${args.track_index}, ${args.clip_index});
|
|
594
|
-
var parsed = JSON.parse(result);
|
|
595
|
-
if (!parsed.success) return __error(parsed.error);
|
|
596
|
-
return __result(parsed.data);
|
|
592
|
+
const script = buildToolScript(`
|
|
593
|
+
var result = lumetriAutoWhiteBalance(${args.track_index}, ${args.clip_index});
|
|
594
|
+
var parsed = JSON.parse(result);
|
|
595
|
+
if (!parsed.success) return __error(parsed.error);
|
|
596
|
+
return __result(parsed.data);
|
|
597
597
|
`);
|
|
598
598
|
return sendCommand(script, bridgeOptions);
|
|
599
599
|
},
|
|
@@ -609,11 +609,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
609
609
|
required: ["track_index", "clip_index"],
|
|
610
610
|
},
|
|
611
611
|
handler: async (args) => {
|
|
612
|
-
const script = buildToolScript(`
|
|
613
|
-
var result = copyColorGrade(${args.track_index}, ${args.clip_index});
|
|
614
|
-
var parsed = JSON.parse(result);
|
|
615
|
-
if (!parsed.success) return __error(parsed.error);
|
|
616
|
-
return __result(parsed.data);
|
|
612
|
+
const script = buildToolScript(`
|
|
613
|
+
var result = copyColorGrade(${args.track_index}, ${args.clip_index});
|
|
614
|
+
var parsed = JSON.parse(result);
|
|
615
|
+
if (!parsed.success) return __error(parsed.error);
|
|
616
|
+
return __result(parsed.data);
|
|
617
617
|
`);
|
|
618
618
|
return sendCommand(script, bridgeOptions);
|
|
619
619
|
},
|
|
@@ -629,11 +629,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
629
629
|
required: ["track_index", "clip_index"],
|
|
630
630
|
},
|
|
631
631
|
handler: async (args) => {
|
|
632
|
-
const script = buildToolScript(`
|
|
633
|
-
var result = pasteColorGrade(${args.track_index}, ${args.clip_index});
|
|
634
|
-
var parsed = JSON.parse(result);
|
|
635
|
-
if (!parsed.success) return __error(parsed.error);
|
|
636
|
-
return __result(parsed.data);
|
|
632
|
+
const script = buildToolScript(`
|
|
633
|
+
var result = pasteColorGrade(${args.track_index}, ${args.clip_index});
|
|
634
|
+
var parsed = JSON.parse(result);
|
|
635
|
+
if (!parsed.success) return __error(parsed.error);
|
|
636
|
+
return __result(parsed.data);
|
|
637
637
|
`);
|
|
638
638
|
return sendCommand(script, bridgeOptions);
|
|
639
639
|
},
|
|
@@ -650,11 +650,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
650
650
|
required: ["src_track_index", "src_clip_index", "dest_track_index"],
|
|
651
651
|
},
|
|
652
652
|
handler: async (args) => {
|
|
653
|
-
const script = buildToolScript(`
|
|
654
|
-
var result = applyColorGradeToAll(${args.src_track_index}, ${args.src_clip_index}, ${args.dest_track_index});
|
|
655
|
-
var parsed = JSON.parse(result);
|
|
656
|
-
if (!parsed.success) return __error(parsed.error);
|
|
657
|
-
return __result(parsed.data);
|
|
653
|
+
const script = buildToolScript(`
|
|
654
|
+
var result = applyColorGradeToAll(${args.src_track_index}, ${args.src_clip_index}, ${args.dest_track_index});
|
|
655
|
+
var parsed = JSON.parse(result);
|
|
656
|
+
if (!parsed.success) return __error(parsed.error);
|
|
657
|
+
return __result(parsed.data);
|
|
658
658
|
`);
|
|
659
659
|
return sendCommand(script, bridgeOptions);
|
|
660
660
|
},
|
|
@@ -671,50 +671,50 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
671
671
|
},
|
|
672
672
|
handler: async (args) => {
|
|
673
673
|
const lutPathEsc = args.lut_path.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
674
|
-
const script = buildToolScript(`
|
|
675
|
-
var seq = app.project.activeSequence;
|
|
676
|
-
if (!seq) return __error("No active sequence");
|
|
677
|
-
var track = seq.videoTracks[${args.track_index}];
|
|
678
|
-
if (!track) return __error("Video track not found at index ${args.track_index}");
|
|
679
|
-
var lutPath = "${lutPathEsc}";
|
|
680
|
-
var lutFile = new File(lutPath);
|
|
681
|
-
if (!lutFile.exists) return __error("LUT file not found: " + lutPath);
|
|
682
|
-
app.enableQE();
|
|
683
|
-
var applied = 0;
|
|
684
|
-
var errors = [];
|
|
685
|
-
for (var c = 0; c < track.clips.numItems; c++) {
|
|
686
|
-
var clip = track.clips[c];
|
|
687
|
-
try {
|
|
688
|
-
var lumetri = null;
|
|
689
|
-
for (var i = 0; i < clip.components.numItems; i++) {
|
|
690
|
-
if (clip.components[i].displayName === "Lumetri Color" || clip.components[i].matchName === "AE.ADBE Lumetri") {
|
|
691
|
-
lumetri = clip.components[i]; break;
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
if (!lumetri) {
|
|
695
|
-
clip.addVideoEffect(qe.project.getVideoEffectByName("Lumetri Color"));
|
|
696
|
-
for (var i = 0; i < clip.components.numItems; i++) {
|
|
697
|
-
if (clip.components[i].displayName === "Lumetri Color") { lumetri = clip.components[i]; break; }
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
if (!lumetri) { errors.push("Clip " + c + ": could not add Lumetri"); continue; }
|
|
701
|
-
var lutProp = null;
|
|
702
|
-
for (var p = 0; p < lumetri.properties.numItems; p++) {
|
|
703
|
-
var grp = lumetri.properties[p];
|
|
704
|
-
if (grp.properties) {
|
|
705
|
-
for (var sp = 0; sp < grp.properties.numItems; sp++) {
|
|
706
|
-
if (grp.properties[sp].displayName === "Input LUT" || grp.properties[sp].displayName === "Creative Look") {
|
|
707
|
-
lutProp = grp.properties[sp]; break;
|
|
708
|
-
}
|
|
709
|
-
}
|
|
710
|
-
}
|
|
711
|
-
if (lutProp) break;
|
|
712
|
-
}
|
|
713
|
-
if (lutProp) { lutProp.setValue(lutPath, true); applied++; }
|
|
714
|
-
else { errors.push("Clip " + c + ": LUT property not found"); }
|
|
715
|
-
} catch(e) { errors.push("Clip " + c + ": " + e.toString()); }
|
|
716
|
-
}
|
|
717
|
-
return __result({ applied: applied, total: track.clips.numItems, errors: errors, lutPath: lutPath });
|
|
674
|
+
const script = buildToolScript(`
|
|
675
|
+
var seq = app.project.activeSequence;
|
|
676
|
+
if (!seq) return __error("No active sequence");
|
|
677
|
+
var track = seq.videoTracks[${args.track_index}];
|
|
678
|
+
if (!track) return __error("Video track not found at index ${args.track_index}");
|
|
679
|
+
var lutPath = "${lutPathEsc}";
|
|
680
|
+
var lutFile = new File(lutPath);
|
|
681
|
+
if (!lutFile.exists) return __error("LUT file not found: " + lutPath);
|
|
682
|
+
app.enableQE();
|
|
683
|
+
var applied = 0;
|
|
684
|
+
var errors = [];
|
|
685
|
+
for (var c = 0; c < track.clips.numItems; c++) {
|
|
686
|
+
var clip = track.clips[c];
|
|
687
|
+
try {
|
|
688
|
+
var lumetri = null;
|
|
689
|
+
for (var i = 0; i < clip.components.numItems; i++) {
|
|
690
|
+
if (clip.components[i].displayName === "Lumetri Color" || clip.components[i].matchName === "AE.ADBE Lumetri") {
|
|
691
|
+
lumetri = clip.components[i]; break;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
694
|
+
if (!lumetri) {
|
|
695
|
+
clip.addVideoEffect(qe.project.getVideoEffectByName("Lumetri Color"));
|
|
696
|
+
for (var i = 0; i < clip.components.numItems; i++) {
|
|
697
|
+
if (clip.components[i].displayName === "Lumetri Color") { lumetri = clip.components[i]; break; }
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
if (!lumetri) { errors.push("Clip " + c + ": could not add Lumetri"); continue; }
|
|
701
|
+
var lutProp = null;
|
|
702
|
+
for (var p = 0; p < lumetri.properties.numItems; p++) {
|
|
703
|
+
var grp = lumetri.properties[p];
|
|
704
|
+
if (grp.properties) {
|
|
705
|
+
for (var sp = 0; sp < grp.properties.numItems; sp++) {
|
|
706
|
+
if (grp.properties[sp].displayName === "Input LUT" || grp.properties[sp].displayName === "Creative Look") {
|
|
707
|
+
lutProp = grp.properties[sp]; break;
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
if (lutProp) break;
|
|
712
|
+
}
|
|
713
|
+
if (lutProp) { lutProp.setValue(lutPath, true); applied++; }
|
|
714
|
+
else { errors.push("Clip " + c + ": LUT property not found"); }
|
|
715
|
+
} catch(e) { errors.push("Clip " + c + ": " + e.toString()); }
|
|
716
|
+
}
|
|
717
|
+
return __result({ applied: applied, total: track.clips.numItems, errors: errors, lutPath: lutPath });
|
|
718
718
|
`);
|
|
719
719
|
return sendCommand(script, bridgeOptions);
|
|
720
720
|
},
|
|
@@ -729,20 +729,20 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
729
729
|
required: ["track_index"],
|
|
730
730
|
},
|
|
731
731
|
handler: async (args) => {
|
|
732
|
-
const script = buildToolScript(`
|
|
733
|
-
var seq = app.project.activeSequence;
|
|
734
|
-
if (!seq) return __error("No active sequence");
|
|
735
|
-
var track = seq.videoTracks[${args.track_index}];
|
|
736
|
-
if (!track) return __error("Video track not found at index ${args.track_index}");
|
|
737
|
-
var count = 0;
|
|
738
|
-
for (var c = 0; c < track.clips.numItems; c++) {
|
|
739
|
-
var clip = track.clips[c];
|
|
740
|
-
var lumetri = __findIntrinsic(clip, "lumetri");
|
|
741
|
-
if (lumetri) {
|
|
742
|
-
try { lumetri.remove(); count++; } catch(e) {}
|
|
743
|
-
}
|
|
744
|
-
}
|
|
745
|
-
return __result({ reset: count, total: track.clips.numItems });
|
|
732
|
+
const script = buildToolScript(`
|
|
733
|
+
var seq = app.project.activeSequence;
|
|
734
|
+
if (!seq) return __error("No active sequence");
|
|
735
|
+
var track = seq.videoTracks[${args.track_index}];
|
|
736
|
+
if (!track) return __error("Video track not found at index ${args.track_index}");
|
|
737
|
+
var count = 0;
|
|
738
|
+
for (var c = 0; c < track.clips.numItems; c++) {
|
|
739
|
+
var clip = track.clips[c];
|
|
740
|
+
var lumetri = __findIntrinsic(clip, "lumetri");
|
|
741
|
+
if (lumetri) {
|
|
742
|
+
try { lumetri.remove(); count++; } catch(e) {}
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
return __result({ reset: count, total: track.clips.numItems });
|
|
746
746
|
`);
|
|
747
747
|
return sendCommand(script, bridgeOptions);
|
|
748
748
|
},
|
|
@@ -758,11 +758,11 @@ export function getColorAdvancedTools(bridgeOptions) {
|
|
|
758
758
|
required: ["track_index", "clip_index"],
|
|
759
759
|
},
|
|
760
760
|
handler: async (args) => {
|
|
761
|
-
const script = buildToolScript(`
|
|
762
|
-
var result = getColorInfo(${args.track_index}, ${args.clip_index});
|
|
763
|
-
var parsed = JSON.parse(result);
|
|
764
|
-
if (!parsed.success) return __error(parsed.error);
|
|
765
|
-
return __result(parsed.data);
|
|
761
|
+
const script = buildToolScript(`
|
|
762
|
+
var result = getColorInfo(${args.track_index}, ${args.clip_index});
|
|
763
|
+
var parsed = JSON.parse(result);
|
|
764
|
+
if (!parsed.success) return __error(parsed.error);
|
|
765
|
+
return __result(parsed.data);
|
|
766
766
|
`);
|
|
767
767
|
return sendCommand(script, bridgeOptions);
|
|
768
768
|
},
|