This cluster provides an interface for controlling the Output on a Video Player device such as a TV.

This cluster would be supported on a device with audio outputs like a Video Player device (Smart TV, TV Setup Top Box, Smart Speaker, etc).

This cluster provides the list of available outputs and provides commands for selecting and renaming them.

The cluster server for Audio Output is implemented by a device that has configurable audio output.

AudioOutputCluster supports optional features that you can enable with the AudioOutputCluster.with() factory method.

MatterSpecification.v13.Cluster § 6.5

interface Cluster {
    attributes: Merge<{
        currentOutput: Attribute<number, any>;
        outputList: Attribute<TypeFromFields<{
            index: FieldType<number>;
            name: FieldType<string>;
            outputType: FieldType<AudioOutput.OutputType>;
        }>[], any>;
    }, GlobalAttributes<{
        nameUpdates: BitFlag;
    }>>;
    base: undefined;
    commands: {
        selectOutput: Command<TypeFromFields<{
            index: FieldType<number>;
        }>, void, any>;
    };
    events: {};
    extensions: readonly [{
        component: {
            commands: {
                renameOutput: Command<TypeFromFields<{
                    index: FieldType<number>;
                    name: FieldType<string>;
                }>, void, any>;
            };
        };
        flags: {
            nameUpdates: true;
        };
    }];
    features: {
        nameUpdates: BitFlag;
    };
    id: Branded<1291, "ClusterId">;
    name: "AudioOutput";
    revision: 1;
    supportedFeatures: {};
    unknown: false;
    alter<const AlterationsT>(alterations: AlterationsT): WithAlterations<Of<{
        attributes: {
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        };
        commands: {
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameOutput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1291;
        name: "AudioOutput";
        revision: 1;
    }>, AlterationsT>;
    enable<const FlagsT>(flags: FlagsT): WithFlags<Of<{
        attributes: {
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        };
        commands: {
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameOutput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1291;
        name: "AudioOutput";
        revision: 1;
    }>, FlagsT>;
    set<const ValuesT>(values: ValuesT): WithValues<Of<{
        attributes: {
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        };
        commands: {
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameOutput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1291;
        name: "AudioOutput";
        revision: 1;
    }>, ValuesT>;
    with<const SelectionT>(...selection: SelectionT): Of<Of<{
        attributes: {
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        };
        commands: {
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameOutput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1291;
        name: "AudioOutput";
        revision: 1;
    }>, SelectionT>;
}

Hierarchy (view full)

Properties

attributes: Merge<{
    currentOutput: Attribute<number, any>;
    outputList: Attribute<TypeFromFields<{
        index: FieldType<number>;
        name: FieldType<string>;
        outputType: FieldType<AudioOutput.OutputType>;
    }>[], any>;
}, GlobalAttributes<{
    nameUpdates: BitFlag;
}>>

Type declaration

  • ReadonlycurrentOutput: Attribute<number, any>

    This attribute contains the value of the index field of the currently selected OutputInfoStruct.

    MatterSpecification.v13.Cluster § 6.5.6.2

  • ReadonlyoutputList: Attribute<TypeFromFields<{
        index: FieldType<number>;
        name: FieldType<string>;
        outputType: FieldType<AudioOutput.OutputType>;
    }>[], any>

    This attribute provides the list of outputs supported by the device.

    MatterSpecification.v13.Cluster § 6.5.6.1

base: undefined
commands: {
    selectOutput: Command<TypeFromFields<{
        index: FieldType<number>;
    }>, void, any>;
}

Type declaration

  • ReadonlyselectOutput: Command<TypeFromFields<{
        index: FieldType<number>;
    }>, void, any>

    Upon receipt, this shall change the output on the device to the output at a specific index in the Output List.

    Note that when the current output is set to an output of type HDMI, adjustments to volume via a Speaker endpoint on the same node may cause HDMI volume up/down commands to be sent to the given HDMI output.

    MatterSpecification.v13.Cluster § 6.5.7.1

events: {}
extensions: readonly [{
    component: {
        commands: {
            renameOutput: Command<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
            }>, void, any>;
        };
    };
    flags: {
        nameUpdates: true;
    };
}]
features: {
    nameUpdates: BitFlag;
}

Type declaration

  • ReadonlynameUpdates: BitFlag

    NameUpdates

    Supports updates to output names

id: Branded<1291, "ClusterId">
name
revision
supportedFeatures: {}
unknown

Methods

  • Modify elements using ElementModifier.alter.

    Type Parameters

    • const AlterationsT extends Alterations<Of<{
          attributes: {
              currentOutput: Attribute<number, any>;
              outputList: Attribute<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
                  outputType: FieldType<AudioOutput.OutputType>;
              }>[], any>;
          };
          commands: {
              selectOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
          };
          extensions: readonly [{
              component: {
                  commands: {
                      renameOutput: Command<TypeFromFields<{
                          index: FieldType<(...)>;
                          name: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  nameUpdates: true;
              };
          }];
          features: {
              nameUpdates: BitFlag;
          };
          id: 1291;
          name: "AudioOutput";
          revision: 1;
      }>>

    Parameters

    Returns WithAlterations<Of<{
        attributes: {
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        };
        commands: {
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameOutput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1291;
        name: "AudioOutput";
        revision: 1;
    }>, AlterationsT>

  • Modify elements using ElementModifier.enable.

    Type Parameters

    • const FlagsT extends ElementFlags<Of<{
          attributes: {
              currentOutput: Attribute<number, any>;
              outputList: Attribute<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
                  outputType: FieldType<AudioOutput.OutputType>;
              }>[], any>;
          };
          commands: {
              selectOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
          };
          extensions: readonly [{
              component: {
                  commands: {
                      renameOutput: Command<TypeFromFields<{
                          index: FieldType<(...)>;
                          name: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  nameUpdates: true;
              };
          }];
          features: {
              nameUpdates: BitFlag;
          };
          id: 1291;
          name: "AudioOutput";
          revision: 1;
      }>>

    Parameters

    Returns WithFlags<Of<{
        attributes: {
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        };
        commands: {
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameOutput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1291;
        name: "AudioOutput";
        revision: 1;
    }>, FlagsT>

  • Modify elements using ElementModifier.set.

    Type Parameters

    • const ValuesT extends {
          currentOutput: number;
          outputList: {
              index: number;
              name: string;
              outputType: number;
          }[];
      }

    Parameters

    Returns WithValues<Of<{
        attributes: {
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        };
        commands: {
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameOutput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1291;
        name: "AudioOutput";
        revision: 1;
    }>, ValuesT>

  • Select features using ClusterComposer.compose.

    Type Parameters

    • const SelectionT extends FeatureSelection<Of<{
          attributes: {
              currentOutput: Attribute<number, any>;
              outputList: Attribute<TypeFromFields<{
                  index: FieldType<number>;
                  name: FieldType<string>;
                  outputType: FieldType<AudioOutput.OutputType>;
              }>[], any>;
          };
          commands: {
              selectOutput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
          };
          extensions: readonly [{
              component: {
                  commands: {
                      renameOutput: Command<TypeFromFields<{
                          index: FieldType<(...)>;
                          name: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  nameUpdates: true;
              };
          }];
          features: {
              nameUpdates: BitFlag;
          };
          id: 1291;
          name: "AudioOutput";
          revision: 1;
      }>>

    Parameters

    Returns Of<Of<{
        attributes: {
            currentOutput: Attribute<number, any>;
            outputList: Attribute<TypeFromFields<{
                index: FieldType<number>;
                name: FieldType<string>;
                outputType: FieldType<AudioOutput.OutputType>;
            }>[], any>;
        };
        commands: {
            selectOutput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameOutput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1291;
        name: "AudioOutput";
        revision: 1;
    }>, SelectionT>