blob: ff5350c4d67efe907f5a2720179c40b2059e8827 [file] [log] [blame]
{{> header excludeZapComment=true}}
#import <Foundation/Foundation.h>
#import <stdint.h>
#pragma mark - Clusters IDs
typedef NS_ENUM(uint32_t, MTRClusterIDType) {
{{#zcl_clusters}}
MTRCluster{{asUpperCamelCase label}}ID {{#if (isStrEqual (asUpperCamelCase label) "UnitTesting")}}MTR_NEWLY_AVAILABLE{{/if}}= {{asMEI manufacturerCode code}},
{{#if (isStrEqual (asUpperCamelCase label) "UnitTesting")}}
MTRClusterTestClusterID MTR_NEWLY_DEPRECATED("Please use MTRClusterUnitTestingID") = {{asMEI manufacturerCode code}},
{{/if}}
{{/zcl_clusters}}
};
#pragma mark - Attributes IDs
typedef NS_ENUM(uint32_t, MTRClusterAttributeIDType) {
// Global attributes
{{#zcl_attributes_server}}
{{#unless clusterRef}}
MTRClusterGlobalAttribute{{asUpperCamelCase label}}ID = {{asMEI manufacturerCode code}},
{{/unless}}
{{/zcl_attributes_server}}
{{#zcl_clusters}}
{{#*inline "attributeIDs"}}
{{#zcl_attributes_server}}
{{#first}}
// Cluster {{asUpperCamelCase ../clusterName}} attributes
{{/first}}
{{#if clusterRef}}
{{! TODO: We need a better setup for the API_AVALABLE annotations here; this does not scale at all sanely. }}
MTRCluster{{asUpperCamelCase ../clusterName}}Attribute{{asUpperCamelCase label}}ID
{{#if (isStrEqual (asUpperCamelCase ../clusterName) "Descriptor")}}
{{#if (isStrEqual (asUpperCamelCase label) "DeviceTypeList")}}
API_AVAILABLE(ios(16.2), macos(13.1), watchos(9.2), tvos(16.2))
{{/if}}
{{else if (isStrEqual (asUpperCamelCase ../clusterName) "TestCluster")}}
MTR_NEWLY_DEPRECATED("Please use MTRClusterUnitTestingAttribute{{asUpperCamelCase label}}ID")
{{else if (isStrEqual (asUpperCamelCase ../clusterName) "UnitTesting")}}
MTR_NEWLY_AVAILABLE
{{/if}}
= {{asMEI manufacturerCode code}},
{{!Backwards compat for now: DeviceList as an alias for DeviceTypeList}}
{{#if (isStrEqual (asUpperCamelCase ../clusterName) "Descriptor")}}
{{#if (isStrEqual (asUpperCamelCase label) "DeviceTypeList")}}
MTRClusterDescriptorAttributeDeviceListID = {{asMEI manufacturerCode code}},
{{/if}}
{{/if}}
{{else}}
MTRCluster{{asUpperCamelCase ../clusterName}}Attribute{{asUpperCamelCase label}}ID = MTRClusterGlobalAttribute{{asUpperCamelCase label}}ID,
{{/if}}
{{#last}}
{{/last}}
{{/zcl_attributes_server}}
{{/inline}}
{{> attributeIDs clusterName=label}}
{{#if (isStrEqual (asUpperCamelCase label) "UnitTesting")}}
{{> attributeIDs clusterName="TestCluster"}}
{{/if}}
{{/zcl_clusters}}
};
#pragma mark - Commands IDs
typedef NS_ENUM(uint32_t, MTRClusterCommandIDType) {
{{#zcl_clusters}}
{{#*inline "commandIDs"}}
{{#zcl_commands}}
{{#first}}
// Cluster {{asUpperCamelCase ../clusterName}} commands
{{/first}}
MTRCluster{{asUpperCamelCase ../clusterName}}Command{{asUpperCamelCase label}}ID
{{#if (isStrEqual (asUpperCamelCase ../clusterName) "TestCluster")}}
MTR_NEWLY_DEPRECATED("Please use MTRClusterUnitTestingCommand{{asUpperCamelCase label}}ID")
{{else if (isStrEqual (asUpperCamelCase ../clusterName) "UnitTesting")}}
MTR_NEWLY_AVAILABLE
{{/if}}
= {{asMEI manufacturerCode code}},
{{#last}}
{{/last}}
{{/zcl_commands}}
{{/inline}}
{{> commandIDs clusterName=label}}
{{#if (isStrEqual (asUpperCamelCase label) "UnitTesting")}}
{{> commandIDs clusterName="TestCluster"}}
{{/if}}
{{/zcl_clusters}}
};
#pragma mark - Events IDs
typedef NS_ENUM(uint32_t, MTRClusterEventIDType) {
{{#zcl_clusters}}
{{#*inline "eventIDs"}}
{{#zcl_events}}
{{#first}}
// Cluster {{asUpperCamelCase ../clusterName}} events
{{/first}}
MTRCluster{{asUpperCamelCase ../clusterName}}Event{{asUpperCamelCase name}}ID
{{#if (isStrEqual (asUpperCamelCase ../clusterName) "TestCluster")}}
MTR_NEWLY_DEPRECATED("Please use MTRClusterUnitTestingEvent{{asUpperCamelCase name}}ID")
{{else if (isStrEqual (asUpperCamelCase ../clusterName) "UnitTesting")}}
MTR_NEWLY_AVAILABLE
{{/if}}
= {{asMEI manufacturerCode code}},
{{#last}}
{{/last}}
{{/zcl_events}}
{{/inline}}
{{> eventIDs clusterName=label}}
{{#if (isStrEqual (asUpperCamelCase label) "UnitTesting")}}
{{> eventIDs clusterName="TestCluster"}}
{{/if}}
{{/zcl_clusters}}
};