Could you be anymore vague? What script tools, or enhancement were you looking to incorporate? In the past, I've heard the same as Lukas quite correctly mentioned. However, being a little clearer about what it was you were attempting, might enable you to find such a "workaround".Thanks for the response. I hear (I think) the implications of "at least officially." I both understand that policy, and also understand why it could be very helpful for users to have this capability. I'll see if I can find a workaround.
Studio Pro only loads the first ScriptClass entry in classfactory.xml. Additional entries are silently ignored. Each script must be its own .package file.
That’s indeed incorrect. Even in the macro toolbar code alone, you can see that it uses several ScriptClasses with different entry points. If this doesn’t work, then you have a mistake in the declaration, such as an incorrect sourceFile, a non-existent functionName (although Studio Pro throws an error at startup in that case) or duplicate classIDs.Studio Pro only loads the first ScriptClass entry in classfactory.xml. Additional entries are silently ignored. Each script must be its own .package file.
function ScriptATask() {
this.interfaces = [Host.Interfaces.IEditTask];
}
ScriptATask.prototype.prepareEdit = function(context) {
this.ShowMessage = context.parameters.addInteger(0, 1, "ShowMessage");
this.ShowMessage.value = 1;
context.restore();
return context.runDialog("ScriptADialog", "com.chris.multi-script-demo");
};
ScriptATask.prototype.performEdit = function(context) {
if (this.ShowMessage && this.ShowMessage.value === 1) {
Host.GUI.alert("Script A ran successfully.");
}
return Host.Results.kResultOk;
};
function ScriptATask() {
this.interfaces = [Host.Interfaces.IEditTask];
this.prepareEdit = function(context) {
this.ShowMessage = context.parameters.addInteger(0, 1, "ShowMessage");
this.ShowMessage.value = 1;
context.restore();
return context.runDialog("ScriptADialog", "com.chris.multi-script-demo");
};
this.performEdit = function(context) {
if (this.ShowMessage && this.ShowMessage.value === 1) {
Host.GUI.alert("Script A ran successfully.");
}
return Host.Results.kResultOk;
};
What does that mean? Did you use AI to extract all this information from the code you collected and create this documentation?That's generated code, I don't know any programming languages at all. This is all speculative.
Yes, and it generated the discovery packages used to inspect runtime classes that exist, their exposed properties, callable methods, returned values, etc. For skin.xml elements, it generated packages with a bunch of potential elements so I can see what renders in the UI, same with options and attributes, then I test their behavior.What does that mean? Did you use AI to extract all this information from the code you collected and create this documentation?
Yes, and it generated the discovery packages used to inspect runtime classes that exist, their exposed properties, callable methods, returned values, etc. For skin.xml elements, it generated packages with a bunch of potential elements so I can see what renders in the UI, same with options and attributes, then I test their behavior.
If you have suggestions on my approach, let me know.
This isn't decompiling Studio Pro source code. It's just interacting with the API that's exposed for scripts and documenting it.
I’m not interested in debating the legalities. If Fender doesn’t want this publicly documented for users creating scripts, they can request that it be removed.
We use essential cookies to make this site work, and optional cookies to enhance your experience.