# Name of the plugin.
name=Scenes Server Cluster
category=Common Clusters

# Any string is allowable here.  Generally it is either: Production Ready, Test Tool, or Requires Extending
qualityString=Requires Extending 
# This must be one of the following:  productionReady, testTool, extensionNeeded
quality=extend

introducedIn=zcl-1.0-07-5123-03

# Description of the plugin.
description=Ember implementation of the Scenes server cluster.  This plugin supports commands for setting up and recalling scenes.  Scenes are stored in a table and each scene consists of a set of values for attributes in other clusters.  Clusters that extend the scene table do so through extension field sets.  This plugin supports extensions for the On/Off, Level Control, Thermostat, Color Control, Door Lock, and Window Covering clusters.  If the application includes any of these clusters, the plugin will automatically include and manage the attributes in those clusters.  For example, if the application includes the On/Off server cluster, the plugin will save and recall the On/Off attribute as part of saving or recalling scenes.  Some ZLL extensions are implemented in this plugin and will be included automatically for ZLL applications.  If the ZLL Scenes server cluster plugin is also enabled, this plugin will use it for handling some additional ZLL enhancements.  Otherwise, these ZLL extensions are disabled.  This plugin requires extending in order to interact with the actual hardware.

# List of .c files that need to be compiled and linked in.
sourceFiles=scenes.c,scenes-cli.c

# List of callbacks implemented by this plugin
implementedCallbacks=emberAfScenesClusterServerInitCallback,emberAfScenesClusterAddSceneCallback,emberAfScenesClusterViewSceneCallback,emberAfScenesClusterRemoveSceneCallback,emberAfScenesClusterRemoveAllScenesCallback,emberAfScenesClusterStoreSceneCallback,emberAfScenesClusterRecallSceneCallback,emberAfScenesClusterGetSceneMembershipCallback,emberAfScenesClusterStoreCurrentSceneCallback,emberAfScenesClusterRecallSavedSceneCallback,emberAfScenesClusterClearSceneTableCallback,emberAfScenesClusterMakeInvalidCallback,emberAfScenesClusterRemoveScenesInGroupCallback

# Turn this on by default
includedByDefault=true

# Which clusters does it depend on
dependsOnClusterServer=scenes

options=tableSize,nameSupport,useTokens

tableSize.name=Scenes table size
tableSize.description=Maximum count of scenes across all endpoints
tableSize.type=NUMBER:1,255
tableSize.default=3

nameSupport.name=Support scene names
nameSupport.description=If this option is selected, the plugin will include support for scene names.  Scene names will require additional space in the scene table (16 characters plus a length byte per entry).  The Name Support attribute will be set based on this option.
nameSupport.type=BOOLEAN
nameSupport.default=FALSE

useTokens.name=On SOC platform, store the table in persistent memory
useTokens.description=On an SOC platform, this option enables the persistent storage of the scenes table into the FLASH memory using the tokens.
useTokens.type=BOOLEAN
useTokens.default=TRUE

setup(token) {
  files=scenes-tokens.h
}
