This is probably a bit more involved than #1 since it involves running the script with the same API as Mixxx (e.g. providing an engine that interfaces with the DJ application).
Since most (all?) invocations of the script are quick one-shot calls to functions mapped in the XML script, IIUC, we might be able to 'collect' a list of actions to take that we can return to the consumer of this library, instead of requiring them to provide callbacks/an interface to us.
The type declarations here might be interesting:
In-script APIs to implement:
To be investigate:
- Could we use Web Workers or some other means of isolation to properly sandbox the scripts while still providing them with context to interact with the app?
This is probably a bit more involved than #1 since it involves running the script with the same API as Mixxx (e.g. providing an
enginethat interfaces with the DJ application).Since most (all?) invocations of the script are quick one-shot calls to functions mapped in the XML script, IIUC, we might be able to 'collect' a list of actions to take that we can return to the consumer of this library, instead of requiring them to provide callbacks/an interface to us.
The type declarations here might be interesting:
In-script APIs to implement:
engine(partially implemented)getValuesetValue(partially implemented)setParameter(partially implemented)script(partially implemented)To be investigate: