/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ /*** THIS FILE IS GENERATED, DO NOT EDIT ***/ import { KeypadInputServer as BaseKeypadInputServer } from "../behaviors/keypad-input/KeypadInputServer.js"; import { ApplicationLauncherServer as BaseApplicationLauncherServer } from "../behaviors/application-launcher/ApplicationLauncherServer.js"; import { ApplicationBasicServer as BaseApplicationBasicServer } from "../behaviors/application-basic/ApplicationBasicServer.js"; import { ChannelServer as BaseChannelServer } from "../behaviors/channel/ChannelServer.js"; import { TargetNavigatorServer as BaseTargetNavigatorServer } from "../behaviors/target-navigator/TargetNavigatorServer.js"; import { MediaPlaybackServer as BaseMediaPlaybackServer } from "../behaviors/media-playback/MediaPlaybackServer.js"; import { ContentLauncherServer as BaseContentLauncherServer } from "../behaviors/content-launcher/ContentLauncherServer.js"; import { AccountLoginServer as BaseAccountLoginServer } from "../behaviors/account-login/AccountLoginServer.js"; import { ContentAppObserverClient as BaseContentAppObserverClient } from "../behaviors/content-app-observer/ContentAppObserverClient.js"; import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js"; import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js"; import { Identity } from "@matter/general"; /** * This defines conformance to the Content App device type. * * A Content App is usually an application built by a Content Provider. A Casting Video Player with a Content App * Platform is able to launch Content Apps and represent these apps as separate endpoints. * * ### Endpoint Composition * * Endpoints with this device type shall support Dynamic Endpoint Allocation as specified in the System Model * specification. * * ### Disambiguation * * When there is more than one sibling endpoint with this device type in a PartsList, disambiguation information shall * be provided by having a unique value in the ApplicationName attribute of the Application Basic cluster on each of * these endpoints. * * @see {@link MatterSpecification.v161.Device} ยง 10.5 */ export interface ContentAppDevice extends Identity {} export namespace ContentAppRequirements { /** * The KeypadInput cluster is required by the Matter specification. * * We provide this alias to the default implementation {@link KeypadInputServer} for convenience. */ export const KeypadInputServer = BaseKeypadInputServer; /** * The ApplicationLauncher cluster is required by the Matter specification. * * We provide this alias to the default implementation {@link ApplicationLauncherServer} for convenience. */ export const ApplicationLauncherServer = BaseApplicationLauncherServer; /** * The ApplicationBasic cluster is required by the Matter specification. * * We provide this alias to the default implementation {@link ApplicationBasicServer} for convenience. */ export const ApplicationBasicServer = BaseApplicationBasicServer; /** * The Channel cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link ChannelServer} for convenience. */ export const ChannelServer = BaseChannelServer; /** * The TargetNavigator cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link TargetNavigatorServer} for convenience. */ export const TargetNavigatorServer = BaseTargetNavigatorServer; /** * The MediaPlayback cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link MediaPlaybackServer} for convenience. */ export const MediaPlaybackServer = BaseMediaPlaybackServer; /** * The ContentLauncher cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link ContentLauncherServer} for convenience. */ export const ContentLauncherServer = BaseContentLauncherServer; /** * The AccountLogin cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link AccountLoginServer} for convenience. */ export const AccountLoginServer = BaseAccountLoginServer; /** * The ContentAppObserver cluster is optional per the Matter specification. * * We provide this alias to the default implementation {@link ContentAppObserverClient} for convenience. */ export const ContentAppObserverClient = BaseContentAppObserverClient; /** * An implementation for each server cluster supported by the endpoint per the Matter specification. */ export const server = { mandatory: { KeypadInput: KeypadInputServer, ApplicationLauncher: ApplicationLauncherServer, ApplicationBasic: ApplicationBasicServer }, optional: { Channel: ChannelServer, TargetNavigator: TargetNavigatorServer, MediaPlayback: MediaPlaybackServer, ContentLauncher: ContentLauncherServer, AccountLogin: AccountLoginServer } }; /** * A definition for each client cluster supported by the endpoint per the Matter specification. */ export const client = { optional: { ContentAppObserver: ContentAppObserverClient } }; } export const ContentAppDeviceDefinition = MutableEndpoint({ name: "ContentApp", deviceType: 0x24, deviceRevision: 2, requirements: ContentAppRequirements, behaviors: SupportedBehaviors( ContentAppRequirements.server.mandatory.KeypadInput, ContentAppRequirements.server.mandatory.ApplicationLauncher, ContentAppRequirements.server.mandatory.ApplicationBasic ) }); Object.freeze(ContentAppDeviceDefinition); export const ContentAppDevice: ContentAppDevice = ContentAppDeviceDefinition;