Constructor
new ClientPlugin(client, id)
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
client |
Client | A soundworks client instance. |
id |
string | User defined id of the plugin as defined in ClientPluginManager#register. |
Attributes
client :Client
- Description:
Instance of soundworks client.
- Source:
- See:
(readonly) id :string
- Description:
User defined ID of the plugin.
- Source:
- Overrides:
- See:
(protected) state :object
- Description:
Placeholder that stores internal (local) state of the plugin. The state should be modified through the
propagateStateChangemethod to ensure the change to be properly propagated to manageronStateChangecallbacks.
- Source:
- Overrides:
- See:
status :'idle'|'inited'|'started'|'errored'
- Description:
Current status of the plugin.
- Source:
- Overrides:
(readonly) type :string
- Description:
Type of the plugin, i.e. the ClassName.
Useful to do perform some logic based on certain types of plugins without knowing under which
idthey have been registered. (e.g. creating some generic views, etc.)
- Source:
- Overrides:
Methods
onStateChange(callback) → {pluginDeleteOnStateChangeCallback}
- Description:
Listen to the state changes propagated by BasePlugin.propagateStateChange
- Source:
- Overrides:
Example
const unsubscribe = plugin.onStateChange(pluginState => console.log(pluginState));
// stop listening state changes
unsubscribe();
Parameters:
| Name | Type | Description |
|---|---|---|
callback |
pluginOnStateChangeCallback | Callback to execute when a state change is propagated. |
Returns:
propagateStateChange(updates)
- Description:
Apply updates to the plugin state and propagate the updated state to the
onStateChangelisteners. The state changes will also be propagated through thePluginManager#onStateChangelisteners.
- Source:
- Overrides:
- See:
Parameters:
| Name | Type | Description |
|---|---|---|
updates |
object | Updates to be merged in the plugin state. |
(async) start()
- Description:
Start the plugin.
This method is automatically called during the client or server
init()lifecycle step. Afterstart()is fulfilled the plugin should be ready to use.
- Source:
- Overrides:
Example
// server-side counterpart of a plugin that creates a dedicated global shared
// state on which the server-side part can attach.
class MyPlugin extends ServerPlugin {
constructor(server, id) {
super(server, id);
this.server.stateManager.defineClass(`my-plugin:${this.id}`, {
someParam: {
type: 'boolean',
default: false,
},
// ...
});
}
async start() {
await super.start()
this.sharedState = await this.server.stateManager.create(`my-plugin:${this.id}`);
}
async stop() {
await this.sharedState.delete();
}
}
(async) stop()
- Description:
Stop the plugin.
This method is automatically called during the client or server
stop()lifecycle step.
- Source:
- Overrides:
Example
// server-side counterpart of a plugin that creates a dedicated global shared
// state on which the client-side part can attach.
class MyPlugin extends ServerPlugin {
constructor(server, id) {
super(server, id);
this.server.stateManager.defineClass(`my-plugin:${this.id}`, {
someParam: {
type: 'boolean',
default: false,
},
// ...
});
}
async start() {
await super.start()
this.sharedState = await this.server.stateManager.create(`my-plugin:${this.id}`);
this.sharedState.onUpdate(updates => this.doSomething(updates));
}
async stop() {
await this.sharedState.delete();
}
}
Type Definitions
deleteOnStateChangeCallback()
- Description:
Delete the registered ClientPlugin~onStateChangeCallback.
- Source:
onStateChangeCallback(state)
- Description:
Callback executed when the plugin state is updated.
- Source:
Parameters:
| Name | Type | Description |
|---|---|---|
state |
ClientPlugin#state | Current state of the plugin. |