Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions companion/lib/Controls/Controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import { createActionSetsTrpcRouter } from './ActionSetsTrpcRouter.js'
import { createControlsTrpcRouter } from './ControlsTrpcRouter.js'
import z from 'zod'
import type { SomeControlModel, UIControlUpdate } from '@companion-app/shared/Model/Controls.js'
import type { VariableValues } from '@companion-app/shared/Model/Variables.js'
import type { VariableValue, VariableValues } from '@companion-app/shared/Model/Variables.js'
import type { VariablesAndExpressionParser } from '../Variables/VariablesAndExpressionParser.js'
import { ControlExpressionVariable } from './ControlTypes/ExpressionVariable.js'
import type {
Expand All @@ -41,6 +41,7 @@ import { ExpressionVariableCollections } from './ExpressionVariableCollections.j
import { createExpressionVariableTrpcRouter } from './ExpressionVariableTrpcRouter.js'
import { ExpressionVariableNameMap } from './ExpressionVariableNameMap.js'
import { ControlButtonPreset } from './ControlTypes/Button/Preset.js'
import type { CompanionFeedbackButtonStyleResult } from '@companion-module/host'

/**
* The class that manages the controls
Expand Down Expand Up @@ -766,5 +767,5 @@ export class ControlsController {
export interface NewFeedbackValue {
id: string
controlId: string
value: any
value: CompanionFeedbackButtonStyleResult | VariableValue
}
2 changes: 2 additions & 0 deletions companion/lib/Instance/Connection/ChildHandlerLegacy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -753,6 +753,7 @@ export class ConnectionChildHandlerLegacy implements ChildProcessHandlerBase, Co

feedbackType: null,
feedbackStyle: undefined,
optionsSupportExpressions: false, // Expressions not supported from 1.x modules
} satisfies Complete<ClientEntityDefinition>
}

Expand Down Expand Up @@ -789,6 +790,7 @@ export class ConnectionChildHandlerLegacy implements ChildProcessHandlerBase, Co

showButtonPreview: false,
supportsChildGroups: [],
optionsSupportExpressions: false, // Expressions not supported from 1.x modules
} satisfies Complete<ClientEntityDefinition>
}

Expand Down
13 changes: 10 additions & 3 deletions companion/lib/Instance/Connection/ConfigFieldsLegacy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,11 @@ function translateTextInputField(
usesInternalVariableParsing: boolean
): Complete<CompanionInputFieldTextInputExtended> {
let useVariables: CompanionFieldVariablesSupport | undefined
if (field.useVariables) {
if (usesInternalVariableParsing) {
useVariables = { local: true }
} else if (field.useVariables) {
useVariables = {
local: usesInternalVariableParsing || (typeof field.useVariables === 'object' && field.useVariables.local),
local: typeof field.useVariables === 'object' && field.useVariables.local,
}
}

Expand Down Expand Up @@ -254,13 +256,18 @@ function translateCustomVariableField(

function translateCommonFields(
field: EncodeIsVisible<CompanionInputFieldBase>
): Pick<Complete<CompanionInputFieldBaseExtended>, 'id' | 'label' | 'tooltip' | 'description' | 'isVisibleUi'> {
): Pick<
Complete<CompanionInputFieldBaseExtended>,
'id' | 'label' | 'tooltip' | 'description' | 'expressionDescription' | 'isVisibleUi' | 'disableAutoExpression'
> {
return {
id: field.id,
label: field.label,
tooltip: field.tooltip,
description: field.description,
expressionDescription: undefined, // Expressions not supported from 1.x modules
isVisibleUi: translateIsVisibleFn(field),
disableAutoExpression: true, // Expressions not supported from 1.x modules
}
}

Expand Down
7 changes: 6 additions & 1 deletion companion/lib/Instance/Connection/Thread/ConfigFields.ts
Original file line number Diff line number Diff line change
Expand Up @@ -240,18 +240,23 @@ function translateCustomVariableField(

function translateCommonFields(
field: CompanionInputFieldBase
): Pick<Complete<CompanionInputFieldBaseExtended>, 'id' | 'label' | 'tooltip' | 'description' | 'isVisibleUi'> {
): Pick<
Complete<CompanionInputFieldBaseExtended>,
'id' | 'label' | 'tooltip' | 'description' | 'expressionDescription' | 'isVisibleUi' | 'disableAutoExpression'
> {
return {
id: field.id,
label: field.label,
tooltip: field.tooltip,
description: field.description,
expressionDescription: undefined, // Temporary until #2345
isVisibleUi: field.isVisibleExpression
? {
type: 'expression',
fn: field.isVisibleExpression,
data: undefined,
}
: undefined,
disableAutoExpression: true, // Temporary until #2345
}
}
4 changes: 4 additions & 0 deletions companion/lib/Instance/Connection/Thread/HostContext.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ export class HostContext<TConfig, TSecrets> implements ModuleHostContext<TConfig

feedbackType: null,
feedbackStyle: undefined,

optionsSupportExpressions: false, // Future: follow up to enable for modules!
} satisfies Complete<ClientEntityDefinition>
}

Expand Down Expand Up @@ -97,6 +99,8 @@ export class HostContext<TConfig, TSecrets> implements ModuleHostContext<TConfig

showButtonPreview: false,
supportsChildGroups: [],

optionsSupportExpressions: false, // Future: follow up to enable for modules!
} satisfies Complete<ClientEntityDefinition>
}

Expand Down
11 changes: 10 additions & 1 deletion companion/lib/Instance/Definitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import { EventEmitter } from 'node:events'
import type { InstanceConfigStore } from './ConfigStore.js'
import { ModuleInstanceType } from '@companion-app/shared/Model/Instance.js'
import { ConvertPresetStyleToDrawStyle } from './Connection/Thread/Presets.js'
import type { ExpressionOrValue } from '@companion-app/shared/Model/Options.js'

type InstanceDefinitionsEvents = {
readonly updatePresets: [connectionId: string]
Expand Down Expand Up @@ -151,7 +152,15 @@ export class InstanceDefinitions extends EventEmitter<InstanceDefinitionsEvents>

if (definition.options !== undefined && definition.options.length > 0) {
for (const opt of definition.options) {
entity.options[opt.id] = structuredClone((opt as any).default)
const defaultValue = structuredClone((opt as any).default)
if (definition.optionsSupportExpressions && !opt.disableAutoExpression) {
entity.options[opt.id] = {
isExpression: false,
value: defaultValue,
} satisfies ExpressionOrValue<any>
} else {
entity.options[opt.id] = defaultValue
}
}
}

Expand Down
12 changes: 11 additions & 1 deletion companion/lib/Instance/Surface/Thread/ConfigFields.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,14 @@ function translateCommonFields(
field: CompanionInputFieldBase
): Pick<
Complete<CompanionInputFieldBaseExtended>,
'id' | 'label' | 'tooltip' | 'description' | 'isVisibleUi' | 'width'
| 'id'
| 'label'
| 'tooltip'
| 'description'
| 'expressionDescription'
| 'isVisibleUi'
| 'width'
| 'disableAutoExpression'
> {
return {
id: field.id,
Expand All @@ -127,6 +134,9 @@ function translateCommonFields(
data: undefined,
}
: undefined,
// Note valid for surface configs:
expressionDescription: undefined,
width: undefined,
disableAutoExpression: true,
}
}
Loading