diff --git a/src/backend/integrations/builtin/obs/obs-integration.ts b/src/backend/integrations/builtin/obs/obs-integration.ts index 91cbb46a9..208ea593e 100644 --- a/src/backend/integrations/builtin/obs/obs-integration.ts +++ b/src/backend/integrations/builtin/obs/obs-integration.ts @@ -41,6 +41,7 @@ import { SceneNameEventFilter } from "./filters/scene-name-filter"; import { SceneNameVariable } from "./variables/scene-name-variable"; import { SceneCollectionNameVariable } from "./variables/scene-collection-name"; +import { IsConnectedVariable } from "./variables/is-connected"; import { IsStreamingVariable } from "./variables/is-streaming"; import { IsRecordingVariable } from "./variables/is-recording"; import { ColorValueVariable } from "./variables/obs-color-value"; @@ -158,6 +159,7 @@ class ObsIntegration replaceVariableManager.registerReplaceVariable(SceneNameVariable); replaceVariableManager.registerReplaceVariable(SceneCollectionNameVariable); + replaceVariableManager.registerReplaceVariable(IsConnectedVariable); replaceVariableManager.registerReplaceVariable(IsStreamingVariable); replaceVariableManager.registerReplaceVariable(IsRecordingVariable); replaceVariableManager.registerReplaceVariable(ColorValueVariable); diff --git a/src/backend/integrations/builtin/obs/obs-remote.ts b/src/backend/integrations/builtin/obs/obs-remote.ts index 81a9032d7..c6c3480a0 100644 --- a/src/backend/integrations/builtin/obs/obs-remote.ts +++ b/src/backend/integrations/builtin/obs/obs-remote.ts @@ -968,6 +968,8 @@ export async function stopVirtualCam(): Promise { } } +export const isConnected = (): boolean => connected; + export async function isStreaming(): Promise { let isRunning = false; if (!connected) { diff --git a/src/backend/integrations/builtin/obs/variables/is-connected.ts b/src/backend/integrations/builtin/obs/variables/is-connected.ts new file mode 100644 index 000000000..9587e9e12 --- /dev/null +++ b/src/backend/integrations/builtin/obs/variables/is-connected.ts @@ -0,0 +1,13 @@ +import { ReplaceVariable } from "../../../../../types/variables"; +import { isConnected } from "../obs-remote"; + +export const IsConnectedVariable: ReplaceVariable = { + definition: { + handle: "obsIsConnected", + description: "Returns 'true' if OBS is currently connected or 'false' if it is not.", + possibleDataOutput: ["text"] + }, + evaluator: async () => { + return isConnected() ?? false; + } +};