diff --git a/packages/timeline-state-resolver/src/integrations/atem/index.ts b/packages/timeline-state-resolver/src/integrations/atem/index.ts index 1b98b6efe8..1223da25cb 100644 --- a/packages/timeline-state-resolver/src/integrations/atem/index.ts +++ b/packages/timeline-state-resolver/src/integrations/atem/index.ts @@ -143,6 +143,10 @@ export class AtemDevice extends DeviceWithState { resolve(false) }) + .finally(() => { + this._atem.destroy().catch(() => null) + this._atem.removeAllListeners() + }) }) } diff --git a/packages/timeline-state-resolver/src/integrations/casparCG/index.ts b/packages/timeline-state-resolver/src/integrations/casparCG/index.ts index 323634d3fa..242f603f2d 100644 --- a/packages/timeline-state-resolver/src/integrations/casparCG/index.ts +++ b/packages/timeline-state-resolver/src/integrations/casparCG/index.ts @@ -168,6 +168,7 @@ export class CasparCGDevice extends DeviceWithState { resolve(true) + this._ccg.removeAllListeners() } }) } diff --git a/packages/timeline-state-resolver/src/integrations/httpSend/index.ts b/packages/timeline-state-resolver/src/integrations/httpSend/index.ts index db425634bb..764d9328ee 100644 --- a/packages/timeline-state-resolver/src/integrations/httpSend/index.ts +++ b/packages/timeline-state-resolver/src/integrations/httpSend/index.ts @@ -111,6 +111,7 @@ export class HTTPSendDevice extends DeviceWithState { if (this._vizmseManager) { await this._vizmseManager.terminate() + this._vizmseManager.removeAllListeners() delete this._vizmseManager } this._doOnTime.dispose() diff --git a/packages/timeline-state-resolver/src/integrations/vmix/index.ts b/packages/timeline-state-resolver/src/integrations/vmix/index.ts index 49e3afddbc..ca68177dbd 100644 --- a/packages/timeline-state-resolver/src/integrations/vmix/index.ts +++ b/packages/timeline-state-resolver/src/integrations/vmix/index.ts @@ -243,6 +243,7 @@ export class VMixDevice extends DeviceWithState