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 71da6771c0e97a..0b35b596292b5b 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 EthernetNetworkDiagnostics = 55 {
}
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 @@ server cluster MediaPlayback = 1286 {
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 0c92be802dc55f..870ea65eb0062f 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 EthernetNetworkDiagnostics = 55 {
}
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 @@ server cluster MediaPlayback = 1286 {
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 3baf998f23fe38..138789996e7852 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 EthernetNetworkDiagnostics = 55 {
}
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 aad52328e0c617..3c465df356c2c2 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 EthernetNetworkDiagnostics = 55 {
}
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 60596508a41450..e7fdaaeefdd07c 100644
--- a/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
+++ b/examples/chef/devices/rootnode_contactsensor_lFAGG1bfRO.matter
@@ -1015,6 +1015,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 d2f9ec77638453..c0275e21e72b66 100644
--- a/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
+++ b/examples/chef/devices/rootnode_dimmablelight_bCwGYSDpoe.matter
@@ -1270,6 +1270,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 c0b9d2c3c52d73..6cbe7a36a7fba9 100644
--- a/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
+++ b/examples/chef/devices/rootnode_doorlock_aNKYAreMXE.matter
@@ -1237,6 +1237,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 7a4a4fb9c85575..01f2502d71adf4 100644
--- a/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
+++ b/examples/chef/devices/rootnode_extendedcolorlight_8lcaaYJVAa.matter
@@ -1270,6 +1270,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 e5ae8514734a09..61ef9bfc36d9da 100644
--- a/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
+++ b/examples/chef/devices/rootnode_fan_7N2TobIlOX.matter
@@ -1017,6 +1017,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 34cf518f1973f6..daf54c98a7dcb0 100644
--- a/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
+++ b/examples/chef/devices/rootnode_flowsensor_1zVxHedlaV.matter
@@ -1028,6 +1028,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 b46ab7cfb2dc50..e5c2a0469bdd8d 100644
--- a/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
+++ b/examples/chef/devices/rootnode_heatingcoolingunit_ncdGai1E5a.matter
@@ -1263,6 +1263,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 10b6896979e97a..fcb6064dca42b2 100644
--- a/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
+++ b/examples/chef/devices/rootnode_humiditysensor_Xyj4gda6Hb.matter
@@ -1028,6 +1028,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 f808bc7b148904..c605e42d0de9ab 100644
--- a/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
+++ b/examples/chef/devices/rootnode_lightsensor_lZQycTFcJK.matter
@@ -1028,6 +1028,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 a1053201d67f99..535763399d623f 100644
--- a/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
+++ b/examples/chef/devices/rootnode_occupancysensor_iHyVgifZuo.matter
@@ -1028,6 +1028,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 bd6b39ca2ac72c..b757b5d62b7817 100644
--- a/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
+++ b/examples/chef/devices/rootnode_onofflight_bbs1b7IaOV.matter
@@ -1270,6 +1270,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 eba212420b0454..4d0ce7aee5a0e7 100644
--- a/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
+++ b/examples/chef/devices/rootnode_onofflightswitch_FsPlMr090Q.matter
@@ -1329,6 +1329,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 9724738e878eb3..bdb631dbbdeacc 100644
--- a/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
+++ b/examples/chef/devices/rootnode_onoffpluginunit_Wtf8ss5EBY.matter
@@ -1176,6 +1176,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 9efb799b9ec1dd..388979274fd065 100644
--- a/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
+++ b/examples/chef/devices/rootnode_pressuresensor_s0qC9wLH4k.matter
@@ -1028,6 +1028,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 12a1f4e942535e..cbf27d1f709ba0 100644
--- a/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
+++ b/examples/chef/devices/rootnode_speaker_RpzeXdimqA.matter
@@ -1150,6 +1150,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 66c14827159114..cebe916ff0ce95 100644
--- a/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
+++ b/examples/chef/devices/rootnode_temperaturesensor_Qy1zkNW7c3.matter
@@ -1028,6 +1028,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 a6dcee8bfd7fdb..c5708822cd4483 100644
--- a/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
+++ b/examples/chef/devices/rootnode_thermostat_bm3fb8dhYi.matter
@@ -1126,6 +1126,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 b6b8e3feba8740..16721a189a8ff6 100644
--- a/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
+++ b/examples/chef/devices/rootnode_windowcovering_RLCxaGi9Yx.matter
@@ -1126,6 +1126,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 3dc91b42426063..f99150bd192a5f 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 EthernetNetworkDiagnostics = 55 {
}
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 fc6b3778c4afaf..8cbb903d0374a0 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 EthernetNetworkDiagnostics = 55 {
}
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 f3e42f939f7db1..454dcf45dbf27f 100644
--- a/examples/placeholder/linux/apps/app1/config.matter
+++ b/examples/placeholder/linux/apps/app1/config.matter
@@ -1122,6 +1122,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 @@ client cluster Switch = 59 {
}
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 f3e42f939f7db1..454dcf45dbf27f 100644
--- a/examples/placeholder/linux/apps/app2/config.matter
+++ b/examples/placeholder/linux/apps/app2/config.matter
@@ -1122,6 +1122,14 @@ server cluster EthernetNetworkDiagnostics = 55 {
}
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 @@ client cluster Switch = 59 {
}
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 e2994a99611d48..0c023840dd67bf 100644
--- a/examples/tv-app/tv-common/tv-app.matter
+++ b/examples/tv-app/tv-common/tv-app.matter
@@ -1656,6 +1656,11 @@ server cluster MediaPlayback = 1286 {
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 ca2b0794270265..c3164ada025632 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 EthernetNetworkDiagnostics = 55 {
}
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 @@ client cluster MediaPlayback = 1286 {
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 2c9b4cc45479b1..aad4a93ee93810 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 @@ limitations under the License.
true
This cluster provides an interface for controlling Media Playback (PLAY, PAUSE, etc) on a media device such as a TV or Speaker.
+
CurrentState
StartTime
Duration
@@ -112,4 +113,10 @@ limitations under the License.
-
\ No newline at end of file
+
+
+
+
+
+
+
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 b87d790d3b102d..512cf5b384d055 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 @@ Interactions with the switch device are exposed as attributes (for the latching
+
diff --git a/src/controller/data_model/controller-clusters.matter b/src/controller/data_model/controller-clusters.matter
index 88d083f391bbd8..60bd47c8466b9e 100644
--- a/src/controller/data_model/controller-clusters.matter
+++ b/src/controller/data_model/controller-clusters.matter
@@ -1700,6 +1700,14 @@ client cluster BridgedDeviceBasic = 57 {
}
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 @@ client cluster MediaPlayback = 1286 {
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 2e6fc6dd0a061e..96ffebb92eeef9 100644
--- a/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
+++ b/src/darwin/Framework/CHIP/zap-generated/MTRBaseClusters.h
@@ -19617,6 +19617,14 @@ typedef NS_ENUM(uint8_t, MTRTimeSynchronizationTimeSource) {
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 @@ typedef NS_ENUM(uint8_t, MTRMediaPlaybackPlaybackState) {
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 70a3f843d43583..52bf6e3ff7ac29 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 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 @@ enum class PlaybackStateEnum : uint8_t
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 9becdd8f249d2f..76e565bbaeedb6 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 @@ enum EmberAfWiFiVersionType : uint8_t
#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)