<?xml version="1.0"?>
<!--
Copyright (c) 2021 Project CHIP Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configurator>
  <domain name="CHIP"/>
  <cluster>
    <domain>Media</domain>
    <name>Application Launcher</name>
    <code>0x050c</code>
    <define>APPLICATION_LAUNCHER_CLUSTER</define>
    <client init="false" tick="false">true</client>
    <server init="false" tick="false">true</server>
    <description>This cluster provides an interface for launching content on a media player device such as a TV or Speaker.</description>

    <attribute side="server" code="0x0000" define="APPLICATION_LAUNCHER_LIST"        type="ARRAY" entryType="INT16U" length="254" reportable="true"  writable="false" optional="true">CatalogList</attribute>
    <attribute side="server" code="0x0001" define="APPLICATION_LAUNCHER_CURRENT_APP" type="ApplicationEP"            default="0x0" isNullable="true" writable="true"  optional="true">CurrentApp</attribute>

    <command source="client" code="0x00" name="LaunchApp" response="LauncherResponse" optional="false">
      <description>Upon receipt, this SHALL launch the specified app with optional data. The TV Device SHALL launch and bring to foreground the identified application in the command if the application is not already launched and in foreground. The TV Device SHALL update state attribute on the Application Basic cluster of the Endpoint corresponding to the launched application. This command returns a Launch Response.</description>
      <arg name="application" type="Application" reportable="true"/>
      <arg name="data"  type="OCTET_STRING" optional="true"/>
    </command>

    <command source="client" code="0x01" name="StopApp" response="LauncherResponse" optional="false">
      <description>Upon receipt on a Video Player endpoint this SHALL stop the specified application if it is running.</description>
      <arg name="application" type="Application" reportable="true"/>
    </command>

    <command source="client" code="0x02" name="HideApp" response="LauncherResponse" optional="false">
      <description>Upon receipt on a Video Player endpoint this SHALL hide the specified application if it is running and visible.</description>
      <arg name="application" type="Application" reportable="true"/>
    </command>

    <command source="server" code="0x03" name="LauncherResponse" optional="false">
      <description>This command SHALL be generated in response to LaunchApp commands.</description>
      <arg name="status" type="ApplicationLauncherStatusEnum"/>
      <arg name="data"  type="OCTET_STRING"/>
    </command>

  </cluster>

  <struct name="ApplicationEP">
    <cluster code="0x050c"/>
    <item name="application" type="Application"/>
    <item name="endpoint" type="ENDPOINT_NO" optional="true"/>
  </struct>
      
  <struct name="Application">
    <cluster code="0x050c"/>
    <item name="catalogVendorId" type="INT16U"/>
    <item name="applicationId" type="CHAR_STRING"/>
  </struct>

  <enum name="ApplicationLauncherStatusEnum" type="ENUM8">
    <cluster code="0x050c"/>
    <item name="Success" value="0x00"/>
    <item name="AppNotAvailable" value="0x01"/>
    <item name="SystemBusy" value="0x02"/>
  </enum>

  <bitmap name="ApplicationLauncherFeature" type="BITMAP32">
    <cluster code="0x050c"/>
    <field name="ApplicationPlatform" mask="0x1"/>
  </bitmap>
</configurator>
