This cluster provides an interface for launching applications on a Video Player device such as a TV.

This cluster is supported on endpoints that can launch Applications, such as a Casting Video Player device with a Content App Platform. It supports identifying an Application by global identifier from a given catalog, and launching it. It also supports tracking the currently in-focus Application.

Depending on the support for the Application Platform feature, the cluster can either support launching the application corresponding to the endpoint on which the cluster is supported (AP feature not supported) or it can support launching any application (AP feature supported).

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

MatterSpecification.v13.Cluster § 6.4

interface Cluster {
    attributes: Merge<{
        currentApp: OptionalAttribute<null | TypeFromFields<{
            application: FieldType<TypeFromFields<{
                applicationId: FieldType<string>;
                catalogVendorId: FieldType<number>;
            }>>;
            endpoint: OptionalFieldType<EndpointNumber>;
        }>, any>;
    }, GlobalAttributes<{
        applicationPlatform: BitFlag;
    }>>;
    base: undefined;
    commands: {
        hideApp: Command<TypeFromFields<{
            application: OptionalFieldType<TypeFromFields<{
                applicationId: FieldType<string>;
                catalogVendorId: FieldType<number>;
            }>>;
        }>, TypeFromFields<{
            data: OptionalFieldType<Uint8Array>;
            status: FieldType<ApplicationLauncher.Status>;
        }>, any>;
        launchApp: Command<TypeFromFields<{
            application: OptionalFieldType<TypeFromFields<{
                applicationId: FieldType<string>;
                catalogVendorId: FieldType<number>;
            }>>;
            data: OptionalFieldType<Uint8Array>;
        }>, TypeFromFields<{
            data: OptionalFieldType<Uint8Array>;
            status: FieldType<ApplicationLauncher.Status>;
        }>, any>;
        stopApp: Command<TypeFromFields<{
            application: OptionalFieldType<TypeFromFields<{
                applicationId: FieldType<string>;
                catalogVendorId: FieldType<number>;
            }>>;
        }>, TypeFromFields<{
            data: OptionalFieldType<Uint8Array>;
            status: FieldType<ApplicationLauncher.Status>;
        }>, any>;
    };
    events: {};
    extensions: readonly [{
        component: {
            attributes: {
                catalogList: Attribute<number[], any>;
            };
        };
        flags: {
            applicationPlatform: true;
        };
    }];
    features: {
        applicationPlatform: BitFlag;
    };
    id: Branded<1292, "ClusterId">;
    name: "ApplicationLauncher";
    revision: 1;
    supportedFeatures: {};
    unknown: false;
    alter<const AlterationsT>(alterations: AlterationsT): WithAlterations<Of<{
        attributes: {
            currentApp: OptionalAttribute<null | TypeFromFields<{
                application: FieldType<TypeFromFields<{
                    applicationId: ...;
                    catalogVendorId: ...;
                }>>;
                endpoint: OptionalFieldType<EndpointNumber>;
            }>, any>;
        };
        commands: {
            hideApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
            launchApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
                data: OptionalFieldType<Uint8Array>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
            stopApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    catalogList: Attribute<number[], any>;
                };
            };
            flags: {
                applicationPlatform: true;
            };
        }];
        features: {
            applicationPlatform: BitFlag;
        };
        id: 1292;
        name: "ApplicationLauncher";
        revision: 1;
    }>, AlterationsT>;
    enable<const FlagsT>(flags: FlagsT): WithFlags<Of<{
        attributes: {
            currentApp: OptionalAttribute<null | TypeFromFields<{
                application: FieldType<TypeFromFields<{
                    applicationId: ...;
                    catalogVendorId: ...;
                }>>;
                endpoint: OptionalFieldType<EndpointNumber>;
            }>, any>;
        };
        commands: {
            hideApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
            launchApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
                data: OptionalFieldType<Uint8Array>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
            stopApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    catalogList: Attribute<number[], any>;
                };
            };
            flags: {
                applicationPlatform: true;
            };
        }];
        features: {
            applicationPlatform: BitFlag;
        };
        id: 1292;
        name: "ApplicationLauncher";
        revision: 1;
    }>, FlagsT>;
    set<const ValuesT>(values: ValuesT): WithValues<Of<{
        attributes: {
            currentApp: OptionalAttribute<null | TypeFromFields<{
                application: FieldType<TypeFromFields<{
                    applicationId: ...;
                    catalogVendorId: ...;
                }>>;
                endpoint: OptionalFieldType<EndpointNumber>;
            }>, any>;
        };
        commands: {
            hideApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
            launchApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
                data: OptionalFieldType<Uint8Array>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
            stopApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    catalogList: Attribute<number[], any>;
                };
            };
            flags: {
                applicationPlatform: true;
            };
        }];
        features: {
            applicationPlatform: BitFlag;
        };
        id: 1292;
        name: "ApplicationLauncher";
        revision: 1;
    }>, ValuesT>;
    with<const SelectionT>(...selection: SelectionT): Of<Of<{
        attributes: {
            currentApp: OptionalAttribute<null | TypeFromFields<{
                application: FieldType<TypeFromFields<{
                    applicationId: ...;
                    catalogVendorId: ...;
                }>>;
                endpoint: OptionalFieldType<EndpointNumber>;
            }>, any>;
        };
        commands: {
            hideApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
            launchApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
                data: OptionalFieldType<Uint8Array>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
            stopApp: Command<TypeFromFields<{
                application: OptionalFieldType<TypeFromFields<{
                    applicationId: FieldType<(...)>;
                    catalogVendorId: FieldType<(...)>;
                }>>;
            }>, TypeFromFields<{
                data: OptionalFieldType<Uint8Array>;
                status: FieldType<ApplicationLauncher.Status>;
            }>, any>;
        };
        extensions: readonly [{
            component: {
                attributes: {
                    catalogList: Attribute<number[], any>;
                };
            };
            flags: {
                applicationPlatform: true;
            };
        }];
        features: {
            applicationPlatform: BitFlag;
        };
        id: 1292;
        name: "ApplicationLauncher";
        revision: 1;
    }>, SelectionT>;
}

Hierarchy (view full)

Properties

attributes: Merge<{
    currentApp: OptionalAttribute<null | TypeFromFields<{
        application: FieldType<TypeFromFields<{
            applicationId: FieldType<string>;
            catalogVendorId: FieldType<number>;
        }>>;
        endpoint: OptionalFieldType<EndpointNumber>;
    }>, any>;
}, GlobalAttributes<{
    applicationPlatform: BitFlag;
}>>

Type declaration

  • ReadonlycurrentApp: OptionalAttribute<null | TypeFromFields<{
        application: FieldType<TypeFromFields<{
            applicationId: FieldType<string>;
            catalogVendorId: FieldType<number>;
        }>>;
        endpoint: OptionalFieldType<EndpointNumber>;
    }>, any>

    This attribute shall specify the current in-focus application, identified using an Application ID, catalog vendor ID and the corresponding endpoint number when the application is represented by a Content App endpoint. A null shall be used to indicate there is no current in-focus application.

    MatterSpecification.v13.Cluster § 6.4.6.2

base: undefined
commands: {
    hideApp: Command<TypeFromFields<{
        application: OptionalFieldType<TypeFromFields<{
            applicationId: FieldType<string>;
            catalogVendorId: FieldType<number>;
        }>>;
    }>, TypeFromFields<{
        data: OptionalFieldType<Uint8Array>;
        status: FieldType<ApplicationLauncher.Status>;
    }>, any>;
    launchApp: Command<TypeFromFields<{
        application: OptionalFieldType<TypeFromFields<{
            applicationId: FieldType<string>;
            catalogVendorId: FieldType<number>;
        }>>;
        data: OptionalFieldType<Uint8Array>;
    }>, TypeFromFields<{
        data: OptionalFieldType<Uint8Array>;
        status: FieldType<ApplicationLauncher.Status>;
    }>, any>;
    stopApp: Command<TypeFromFields<{
        application: OptionalFieldType<TypeFromFields<{
            applicationId: FieldType<string>;
            catalogVendorId: FieldType<number>;
        }>>;
    }>, TypeFromFields<{
        data: OptionalFieldType<Uint8Array>;
        status: FieldType<ApplicationLauncher.Status>;
    }>, any>;
}

Type declaration

  • ReadonlyhideApp: Command<TypeFromFields<{
        application: OptionalFieldType<TypeFromFields<{
            applicationId: FieldType<string>;
            catalogVendorId: FieldType<number>;
        }>>;
    }>, TypeFromFields<{
        data: OptionalFieldType<Uint8Array>;
        status: FieldType<ApplicationLauncher.Status>;
    }>, any>

    Upon receipt of this command, the server shall hide the application. The application shall be either

    • the specified application, if the Application Platform feature is supported;

    • otherwise the application corresponding to the endpoint.

    The endpoint may decide to stop the application based on manufacturer specific behavior or resource constraints if any. The Status attribute shall be updated to ActiveHidden or Stopped, depending on the action taken, on the Application Basic cluster of the Endpoint corresponding to the application on which the action was taken. The Status attribute shall be updated on any other

    application whose Status may have changed as a result of this command. This command returns a Launcher Response.

    MatterSpecification.v13.Cluster § 6.4.7.3

  • ReadonlylaunchApp: Command<TypeFromFields<{
        application: OptionalFieldType<TypeFromFields<{
            applicationId: FieldType<string>;
            catalogVendorId: FieldType<number>;
        }>>;
        data: OptionalFieldType<Uint8Array>;
    }>, TypeFromFields<{
        data: OptionalFieldType<Uint8Array>;
        status: FieldType<ApplicationLauncher.Status>;
    }>, any>

    Upon receipt of this command, the server shall launch the application with optional data. The application shall be either

    • the specified application, if the Application Platform feature is supported;

    • otherwise the application corresponding to the endpoint.

    The endpoint shall launch and bring to foreground the requisite application if the application is not already launched and in foreground. The Status attribute shall be updated to ActiveVisibleFocus on the Application Basic cluster of the Endpoint corresponding to the launched application. The Status attribute shall be updated on any other application whose Status may have changed as a result of this command. The CurrentApp attribute, if supported, shall be updated to reflect the new application in the foreground.

    This command returns a Launcher Response.

    MatterSpecification.v13.Cluster § 6.4.7.1

  • ReadonlystopApp: Command<TypeFromFields<{
        application: OptionalFieldType<TypeFromFields<{
            applicationId: FieldType<string>;
            catalogVendorId: FieldType<number>;
        }>>;
    }>, TypeFromFields<{
        data: OptionalFieldType<Uint8Array>;
        status: FieldType<ApplicationLauncher.Status>;
    }>, any>

    Upon receipt of this command, the server shall stop the application if it is running. The application shall be either

    • the specified application, if the Application Platform feature is supported;

    • otherwise the application corresponding to the endpoint.

    The Status attribute shall be updated to Stopped on the Application Basic cluster of the Endpoint corresponding to the stopped application. The Status attribute shall be updated on any other application whose Status may have changed as a result of this command.

    This command returns a Launcher Response.

    MatterSpecification.v13.Cluster § 6.4.7.2

events: {}
extensions: readonly [{
    component: {
        attributes: {
            catalogList: Attribute<number[], any>;
        };
    };
    flags: {
        applicationPlatform: true;
    };
}]
features: {
    applicationPlatform: BitFlag;
}

Type declaration

  • ReadonlyapplicationPlatform: BitFlag

    ApplicationPlatform

    Support for attributes and commands required for endpoint to support launching any application within the supported application catalogs

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

Methods