This cluster provides an interface for controlling the Input Selector on a media device such as a Video Player.

This cluster would be implemented on TV and other media streaming devices, as well as devices that provide input to or output from such devices.

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

The cluster server for Media Input is implemented by a device that has selectable input, such as a Video Player device.

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

MatterSpecification.v13.Cluster § 6.9

interface Cluster {
    attributes: Merge<{
        currentInput: Attribute<number, any>;
        inputList: Attribute<TypeFromFields<{
            description: FieldType<string>;
            index: FieldType<number>;
            inputType: FieldType<MediaInput.InputType>;
            name: FieldType<string>;
        }>[], any>;
    }, GlobalAttributes<{
        nameUpdates: BitFlag;
    }>>;
    base: undefined;
    commands: {
        hideInputStatus: Command<void, void, any>;
        selectInput: Command<TypeFromFields<{
            index: FieldType<number>;
        }>, void, any>;
        showInputStatus: Command<void, void, any>;
    };
    events: {};
    extensions: readonly [{
        component: {
            commands: {
                renameInput: Command<TypeFromFields<{
                    index: FieldType<number>;
                    name: FieldType<string>;
                }>, void, any>;
            };
        };
        flags: {
            nameUpdates: true;
        };
    }];
    features: {
        nameUpdates: BitFlag;
    };
    id: Branded<1287, "ClusterId">;
    name: "MediaInput";
    revision: 1;
    supportedFeatures: {};
    unknown: false;
    alter<const AlterationsT>(alterations: AlterationsT): WithAlterations<Of<{
        attributes: {
            currentInput: Attribute<number, any>;
            inputList: Attribute<TypeFromFields<{
                description: FieldType<string>;
                index: FieldType<number>;
                inputType: FieldType<MediaInput.InputType>;
                name: FieldType<string>;
            }>[], any>;
        };
        commands: {
            hideInputStatus: Command<void, void, any>;
            selectInput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
            showInputStatus: Command<void, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameInput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1287;
        name: "MediaInput";
        revision: 1;
    }>, AlterationsT>;
    enable<const FlagsT>(flags: FlagsT): WithFlags<Of<{
        attributes: {
            currentInput: Attribute<number, any>;
            inputList: Attribute<TypeFromFields<{
                description: FieldType<string>;
                index: FieldType<number>;
                inputType: FieldType<MediaInput.InputType>;
                name: FieldType<string>;
            }>[], any>;
        };
        commands: {
            hideInputStatus: Command<void, void, any>;
            selectInput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
            showInputStatus: Command<void, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameInput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1287;
        name: "MediaInput";
        revision: 1;
    }>, FlagsT>;
    set<const ValuesT>(values: ValuesT): WithValues<Of<{
        attributes: {
            currentInput: Attribute<number, any>;
            inputList: Attribute<TypeFromFields<{
                description: FieldType<string>;
                index: FieldType<number>;
                inputType: FieldType<MediaInput.InputType>;
                name: FieldType<string>;
            }>[], any>;
        };
        commands: {
            hideInputStatus: Command<void, void, any>;
            selectInput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
            showInputStatus: Command<void, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameInput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1287;
        name: "MediaInput";
        revision: 1;
    }>, ValuesT>;
    with<const SelectionT>(...selection: SelectionT): Of<Of<{
        attributes: {
            currentInput: Attribute<number, any>;
            inputList: Attribute<TypeFromFields<{
                description: FieldType<string>;
                index: FieldType<number>;
                inputType: FieldType<MediaInput.InputType>;
                name: FieldType<string>;
            }>[], any>;
        };
        commands: {
            hideInputStatus: Command<void, void, any>;
            selectInput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
            showInputStatus: Command<void, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameInput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1287;
        name: "MediaInput";
        revision: 1;
    }>, SelectionT>;
}

Hierarchy (view full)

Properties

attributes: Merge<{
    currentInput: Attribute<number, any>;
    inputList: Attribute<TypeFromFields<{
        description: FieldType<string>;
        index: FieldType<number>;
        inputType: FieldType<MediaInput.InputType>;
        name: FieldType<string>;
    }>[], any>;
}, GlobalAttributes<{
    nameUpdates: BitFlag;
}>>

Type declaration

  • ReadonlycurrentInput: Attribute<number, any>

    This attribute shall contain the value of the index field of the currently selected InputInfoStruct.

    MatterSpecification.v13.Cluster § 6.9.6.2

  • ReadonlyinputList: Attribute<TypeFromFields<{
        description: FieldType<string>;
        index: FieldType<number>;
        inputType: FieldType<MediaInput.InputType>;
        name: FieldType<string>;
    }>[], any>

    This attribute shall provide a list of the media inputs supported by the device.

    MatterSpecification.v13.Cluster § 6.9.6.1

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

Type declaration

  • ReadonlyhideInputStatus: Command<void, void, any>

    Upon receipt, this command shall hide the input list from the screen.

    MatterSpecification.v13.Cluster § 6.9.7.3

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

    Upon receipt, this command shall change the media input on the device to the input at a specific index in the Input List.

    MatterSpecification.v13.Cluster § 6.9.7.1

  • ReadonlyshowInputStatus: Command<void, void, any>

    Upon receipt, this command shall display the active status of the input list on screen.

    MatterSpecification.v13.Cluster § 6.9.7.2

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

Type declaration

  • ReadonlynameUpdates: BitFlag

    NameUpdates

    Supports updates to the input names

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

Methods

  • Modify elements using ElementModifier.alter.

    Type Parameters

    • const AlterationsT extends Alterations<Of<{
          attributes: {
              currentInput: Attribute<number, any>;
              inputList: Attribute<TypeFromFields<{
                  description: FieldType<string>;
                  index: FieldType<number>;
                  inputType: FieldType<MediaInput.InputType>;
                  name: FieldType<string>;
              }>[], any>;
          };
          commands: {
              hideInputStatus: Command<void, void, any>;
              selectInput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
              showInputStatus: Command<void, void, any>;
          };
          extensions: readonly [{
              component: {
                  commands: {
                      renameInput: Command<TypeFromFields<{
                          index: FieldType<(...)>;
                          name: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  nameUpdates: true;
              };
          }];
          features: {
              nameUpdates: BitFlag;
          };
          id: 1287;
          name: "MediaInput";
          revision: 1;
      }>>

    Parameters

    Returns WithAlterations<Of<{
        attributes: {
            currentInput: Attribute<number, any>;
            inputList: Attribute<TypeFromFields<{
                description: FieldType<string>;
                index: FieldType<number>;
                inputType: FieldType<MediaInput.InputType>;
                name: FieldType<string>;
            }>[], any>;
        };
        commands: {
            hideInputStatus: Command<void, void, any>;
            selectInput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
            showInputStatus: Command<void, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameInput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1287;
        name: "MediaInput";
        revision: 1;
    }>, AlterationsT>

  • Modify elements using ElementModifier.enable.

    Type Parameters

    • const FlagsT extends ElementFlags<Of<{
          attributes: {
              currentInput: Attribute<number, any>;
              inputList: Attribute<TypeFromFields<{
                  description: FieldType<string>;
                  index: FieldType<number>;
                  inputType: FieldType<MediaInput.InputType>;
                  name: FieldType<string>;
              }>[], any>;
          };
          commands: {
              hideInputStatus: Command<void, void, any>;
              selectInput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
              showInputStatus: Command<void, void, any>;
          };
          extensions: readonly [{
              component: {
                  commands: {
                      renameInput: Command<TypeFromFields<{
                          index: FieldType<(...)>;
                          name: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  nameUpdates: true;
              };
          }];
          features: {
              nameUpdates: BitFlag;
          };
          id: 1287;
          name: "MediaInput";
          revision: 1;
      }>>

    Parameters

    Returns WithFlags<Of<{
        attributes: {
            currentInput: Attribute<number, any>;
            inputList: Attribute<TypeFromFields<{
                description: FieldType<string>;
                index: FieldType<number>;
                inputType: FieldType<MediaInput.InputType>;
                name: FieldType<string>;
            }>[], any>;
        };
        commands: {
            hideInputStatus: Command<void, void, any>;
            selectInput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
            showInputStatus: Command<void, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameInput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1287;
        name: "MediaInput";
        revision: 1;
    }>, FlagsT>

  • Modify elements using ElementModifier.set.

    Type Parameters

    • const ValuesT extends {
          currentInput: number;
          inputList: {
              description: string;
              index: number;
              inputType: number;
              name: string;
          }[];
      }

    Parameters

    Returns WithValues<Of<{
        attributes: {
            currentInput: Attribute<number, any>;
            inputList: Attribute<TypeFromFields<{
                description: FieldType<string>;
                index: FieldType<number>;
                inputType: FieldType<MediaInput.InputType>;
                name: FieldType<string>;
            }>[], any>;
        };
        commands: {
            hideInputStatus: Command<void, void, any>;
            selectInput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
            showInputStatus: Command<void, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameInput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1287;
        name: "MediaInput";
        revision: 1;
    }>, ValuesT>

  • Select features using ClusterComposer.compose.

    Type Parameters

    • const SelectionT extends FeatureSelection<Of<{
          attributes: {
              currentInput: Attribute<number, any>;
              inputList: Attribute<TypeFromFields<{
                  description: FieldType<string>;
                  index: FieldType<number>;
                  inputType: FieldType<MediaInput.InputType>;
                  name: FieldType<string>;
              }>[], any>;
          };
          commands: {
              hideInputStatus: Command<void, void, any>;
              selectInput: Command<TypeFromFields<{
                  index: FieldType<number>;
              }>, void, any>;
              showInputStatus: Command<void, void, any>;
          };
          extensions: readonly [{
              component: {
                  commands: {
                      renameInput: Command<TypeFromFields<{
                          index: FieldType<(...)>;
                          name: FieldType<(...)>;
                      }>, void, any>;
                  };
              };
              flags: {
                  nameUpdates: true;
              };
          }];
          features: {
              nameUpdates: BitFlag;
          };
          id: 1287;
          name: "MediaInput";
          revision: 1;
      }>>

    Parameters

    Returns Of<Of<{
        attributes: {
            currentInput: Attribute<number, any>;
            inputList: Attribute<TypeFromFields<{
                description: FieldType<string>;
                index: FieldType<number>;
                inputType: FieldType<MediaInput.InputType>;
                name: FieldType<string>;
            }>[], any>;
        };
        commands: {
            hideInputStatus: Command<void, void, any>;
            selectInput: Command<TypeFromFields<{
                index: FieldType<number>;
            }>, void, any>;
            showInputStatus: Command<void, void, any>;
        };
        extensions: readonly [{
            component: {
                commands: {
                    renameInput: Command<TypeFromFields<{
                        index: FieldType<(...)>;
                        name: FieldType<(...)>;
                    }>, void, any>;
                };
            };
            flags: {
                nameUpdates: true;
            };
        }];
        features: {
            nameUpdates: BitFlag;
        };
        id: 1287;
        name: "MediaInput";
        revision: 1;
    }>, SelectionT>