Fix Switch and MediaPlayback feature map zcl definitions (#22804)
* Add MediaPlayback feature map to zcl xml definition
Fixes Issue #22681
* Link SwitchFeature to cluster for zap tool usage
Fixes Issue #22802
* Zap regeneration for MediaPlayback and Switch Featuremap addition
diff --git a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
index 71da677..0b35b59 100644
--- a/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
+++ b/examples/all-clusters-app/all-clusters-common/all-clusters-app.matter
@@ -1475,6 +1475,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
@@ -3168,6 +3176,11 @@
kBuffering = 3;
}
+ bitmap MediaPlaybackFeature : BITMAP32 {
+ kAdvancedSeek = 0x1;
+ kVariableSpeed = 0x2;
+ }
+
readonly attribute PlaybackStateEnum currentState = 0;
readonly attribute nullable epoch_us startTime = 1;
readonly attribute nullable int64u duration = 2;
diff --git a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
index 0c92be8..870ea65 100644
--- a/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
+++ b/examples/all-clusters-minimal-app/all-clusters-common/all-clusters-minimal-app.matter
@@ -1326,6 +1326,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
@@ -2565,6 +2573,11 @@
kBuffering = 3;
}
+ bitmap MediaPlaybackFeature : BITMAP32 {
+ kAdvancedSeek = 0x1;
+ kVariableSpeed = 0x2;
+ }
+
readonly attribute PlaybackStateEnum currentState = 0;
readonly attribute bitmap32 featureMap = 65532;
readonly attribute int16u clusterRevision = 65533;
diff --git a/examples/bridge-app/bridge-common/bridge-app.matter b/examples/bridge-app/bridge-common/bridge-app.matter
index 3baf998..1387899 100644
--- a/examples/bridge-app/bridge-common/bridge-app.matter
+++ b/examples/bridge-app/bridge-common/bridge-app.matter
@@ -1162,6 +1162,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
index aad5232..3c465df 100644
--- a/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/noip_rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -1136,6 +1136,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
index 6059650..e7fdaae 100644
--- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
+++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
@@ -1015,6 +1015,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
index d2f9ec7..c0275e2 100644
--- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -1270,6 +1270,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
index c0b9d2c..6cbe7a3 100644
--- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
+++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
@@ -1237,6 +1237,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
index 7a4a4fb..01f2502 100644
--- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
+++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
@@ -1270,6 +1270,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
index e5ae851..61ef9bf 100644
--- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
+++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
@@ -1017,6 +1017,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
index 34cf518..daf54c9 100644
--- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
+++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
@@ -1028,6 +1028,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
index b46ab7c..e5c2a04 100644
--- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
+++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
@@ -1263,6 +1263,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
index 10b6896..fcb6064 100644
--- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
+++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
@@ -1028,6 +1028,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
index f808bc7..c605e42 100644
--- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
+++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
@@ -1028,6 +1028,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
index a105320..5357633 100644
--- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
+++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
@@ -1028,6 +1028,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
index bd6b39c..b757b5d 100644
--- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
+++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
@@ -1270,6 +1270,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
index eba2124..4d0ce7a 100644
--- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
+++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
@@ -1329,6 +1329,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
index 9724738..bdb631d 100644
--- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
+++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
@@ -1176,6 +1176,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
index 9efb799..3889792 100644
--- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
+++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
@@ -1028,6 +1028,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
index 12a1f4e..cbf27d1 100644
--- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
+++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
@@ -1150,6 +1150,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
index 66c1482..cebe916 100644
--- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
+++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
@@ -1028,6 +1028,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
index a6dcee8..c570882 100644
--- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
+++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
@@ -1126,6 +1126,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
index b6b8e3f..16721a1 100644
--- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
+++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
@@ -1126,6 +1126,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/light-switch-app/light-switch-common/light-switch-app.matter b/examples/light-switch-app/light-switch-common/light-switch-app.matter
index 3dc91b4..f99150b 100644
--- a/examples/light-switch-app/light-switch-common/light-switch-app.matter
+++ b/examples/light-switch-app/light-switch-common/light-switch-app.matter
@@ -1215,6 +1215,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/lighting-app/lighting-common/lighting-app.matter b/examples/lighting-app/lighting-common/lighting-app.matter
index fc6b377..8cbb903 100644
--- a/examples/lighting-app/lighting-common/lighting-app.matter
+++ b/examples/lighting-app/lighting-common/lighting-app.matter
@@ -1166,6 +1166,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/placeholder/linux/apps/app1/config.matter b/examples/placeholder/linux/apps/app1/config.matter
index f3e42f9..454dcf4 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -1122,6 +1122,14 @@
}
client cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
@@ -1163,6 +1171,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/placeholder/linux/apps/app2/config.matter b/examples/placeholder/linux/apps/app2/config.matter
index f3e42f9..454dcf4 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -1122,6 +1122,14 @@
}
client cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
@@ -1163,6 +1171,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
diff --git a/examples/tv-app/tv-common/tv-app.matter b/examples/tv-app/tv-common/tv-app.matter
index e2994a9..0c02384 100644
--- a/examples/tv-app/tv-common/tv-app.matter
+++ b/examples/tv-app/tv-common/tv-app.matter
@@ -1656,6 +1656,11 @@
kBuffering = 3;
}
+ bitmap MediaPlaybackFeature : BITMAP32 {
+ kAdvancedSeek = 0x1;
+ kVariableSpeed = 0x2;
+ }
+
struct PlaybackPosition {
int64u updatedAt = 0;
nullable int64u position = 1;
diff --git a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
index ca2b079..c3164ad 100644
--- a/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
+++ b/examples/tv-casting-app/tv-casting-common/tv-casting-app.matter
@@ -1376,6 +1376,14 @@
}
server cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
@@ -1741,6 +1749,11 @@
kBuffering = 3;
}
+ bitmap MediaPlaybackFeature : BITMAP32 {
+ kAdvancedSeek = 0x1;
+ kVariableSpeed = 0x2;
+ }
+
readonly attribute int16u clusterRevision = 65533;
request struct SkipForwardRequest {
diff --git a/src/app/zap-templates/zcl/data-model/chip/media-playback-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/media-playback-cluster.xml
index 2c9b4cc..aad4a93 100644
--- a/src/app/zap-templates/zcl/data-model/chip/media-playback-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/media-playback-cluster.xml
@@ -25,6 +25,7 @@
<server init="false" tick="false">true</server>
<description>This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker.</description>
+ <globalAttribute side="server" code="0xFFFC" value="0" />
<attribute side="server" code="0x0000" define="MEDIA_PLAYBACK_STATE" type="PlaybackStateEnum" min="0x00" max="0x02" default="0x00" writable="false" optional="false">CurrentState</attribute>
<attribute side="server" code="0x0001" define="MEDIA_PLAYBACK_START_TIME" type="EPOCH_US" min="0x00" default="0x00" writable="false" isNullable="true" optional="true">StartTime</attribute>
<attribute side="server" code="0x0002" define="MEDIA_PLAYBACK_DURATION" type="INT64U" min="0x00" default="0" writable="false" isNullable="true" optional="true">Duration</attribute>
@@ -112,4 +113,10 @@
<item name="SpeedOutOfRange" value="0x04"/>
<item name="SeekOutOfRange" value="0x05"/>
</enum>
-</configurator>
\ No newline at end of file
+
+ <bitmap name="MediaPlaybackFeature" type="BITMAP32">
+ <cluster code="0x0506"/>
+ <field name="AdvancedSeek" mask="0x1"/>
+ <field name="VariableSpeed" mask="0x2"/>
+ </bitmap>
+</configurator>
diff --git a/src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml b/src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml
index b87d790..512cf5b 100644
--- a/src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml
+++ b/src/app/zap-templates/zcl/data-model/chip/switch-cluster.xml
@@ -67,6 +67,7 @@
</cluster>
<bitmap name="SwitchFeature" type="BITMAP32">
+ <cluster code="0x003B" />
<field name="LatchingSwitch" mask="0x1" />
<field name="MomentarySwitch" mask="0x2" />
<field name="MomentarySwitchRelease" mask="0x4" />
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 88d083f..60bd47c 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -1700,6 +1700,14 @@
}
client cluster Switch = 59 {
+ bitmap SwitchFeature : BITMAP32 {
+ kLatchingSwitch = 0x1;
+ kMomentarySwitch = 0x2;
+ kMomentarySwitchRelease = 0x4;
+ kMomentarySwitchLongPress = 0x8;
+ kMomentarySwitchMultiPress = 0x10;
+ }
+
info event SwitchLatched = 0 {
INT8U newPosition = 0;
}
@@ -3580,6 +3588,11 @@
kBuffering = 3;
}
+ bitmap MediaPlaybackFeature : BITMAP32 {
+ kAdvancedSeek = 0x1;
+ kVariableSpeed = 0x2;
+ }
+
struct PlaybackPosition {
int64u updatedAt = 0;
nullable int64u position = 1;
diff --git a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
index 2e6fc6d..96ffebb 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
@@ -19617,6 +19617,14 @@
MTRTimeSynchronizationTimeSourceGnss = 0x10,
};
+typedef NS_OPTIONS(uint32_t, MTRSwitchFeature) {
+ MTRSwitchFeatureLatchingSwitch = 0x1,
+ MTRSwitchFeatureMomentarySwitch = 0x2,
+ MTRSwitchFeatureMomentarySwitchRelease = 0x4,
+ MTRSwitchFeatureMomentarySwitchLongPress = 0x8,
+ MTRSwitchFeatureMomentarySwitchMultiPress = 0x10,
+};
+
typedef NS_ENUM(uint8_t, MTRAdministratorCommissioningCommissioningWindowStatus) {
MTRAdministratorCommissioningCommissioningWindowStatusWindowNotOpen = 0x00,
MTRAdministratorCommissioningCommissioningWindowStatusEnhancedWindowOpen = 0x01,
@@ -20309,6 +20317,11 @@
MTRMediaPlaybackPlaybackStateBuffering = 0x03,
};
+typedef NS_OPTIONS(uint32_t, MTRMediaPlaybackFeature) {
+ MTRMediaPlaybackFeatureAdvancedSeek = 0x1,
+ MTRMediaPlaybackFeatureVariableSpeed = 0x2,
+};
+
typedef NS_ENUM(uint8_t, MTRMediaInputInputType) {
MTRMediaInputInputTypeInternal = 0x00,
MTRMediaInputInputTypeAux = 0x01,
diff --git a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
index 70a3f84..52bf6e3 100644
--- a/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
+++ b/zzz_generated/app-common/app-common/zap-generated/cluster-enums.h
@@ -933,6 +933,16 @@
} // namespace BridgedDeviceBasic
namespace Switch {
+
+// Bitmap for SwitchFeature
+enum class SwitchFeature : uint32_t
+{
+ kLatchingSwitch = 0x1,
+ kMomentarySwitch = 0x2,
+ kMomentarySwitchRelease = 0x4,
+ kMomentarySwitchLongPress = 0x8,
+ kMomentarySwitchMultiPress = 0x10,
+};
} // namespace Switch
namespace AdministratorCommissioning {
@@ -1994,6 +2004,13 @@
kBuffering = 0x03,
kUnknownEnumValue = 4,
};
+
+// Bitmap for MediaPlaybackFeature
+enum class MediaPlaybackFeature : uint32_t
+{
+ kAdvancedSeek = 0x1,
+ kVariableSpeed = 0x2,
+};
} // namespace MediaPlayback
namespace MediaInput {
diff --git a/zzz_generated/app-common/app-common/zap-generated/enums.h b/zzz_generated/app-common/app-common/zap-generated/enums.h
index 9becdd8..76e565b 100644
--- a/zzz_generated/app-common/app-common/zap-generated/enums.h
+++ b/zzz_generated/app-common/app-common/zap-generated/enums.h
@@ -749,6 +749,10 @@
#define EMBER_AF_MAINS_ALARM_MASK_MAINS_POWER_SUPPLY_LOST_OFFSET (2)
#define EMBER_AF_MEDIA_INPUT_FEATURE_NAME_UPDATES (1)
#define EMBER_AF_MEDIA_INPUT_FEATURE_NAME_UPDATES_OFFSET (0)
+#define EMBER_AF_MEDIA_PLAYBACK_FEATURE_ADVANCED_SEEK (1)
+#define EMBER_AF_MEDIA_PLAYBACK_FEATURE_ADVANCED_SEEK_OFFSET (0)
+#define EMBER_AF_MEDIA_PLAYBACK_FEATURE_VARIABLE_SPEED (2)
+#define EMBER_AF_MEDIA_PLAYBACK_FEATURE_VARIABLE_SPEED_OFFSET (1)
#define EMBER_AF_MODE_MOTOR_DIRECTION_REVERSED (1)
#define EMBER_AF_MODE_MOTOR_DIRECTION_REVERSED_OFFSET (0)
#define EMBER_AF_MODE_CALIBRATION_MODE (2)