From 0f5ba555e66cb5cf2905e7064939f459a035c441 Mon Sep 17 00:00:00 2001 From: Carter Swedal Date: Fri, 23 Sep 2022 13:31:05 -0500 Subject: [PATCH] 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 --- .../all-clusters-common/all-clusters-app.matter | 13 +++++++++++++ .../all-clusters-minimal-app.matter | 13 +++++++++++++ .../bridge-app/bridge-common/bridge-app.matter | 8 ++++++++ ...oip_rootnode_dimmablelight_bCwGYSDpoe.matter | 8 ++++++++ .../rootnode_contactsensor_lFAGG1bfRO.matter | 8 ++++++++ .../rootnode_dimmablelight_bCwGYSDpoe.matter | 8 ++++++++ .../devices/rootnode_doorlock_aNKYAreMXE.matter | 8 ++++++++ ...ootnode_extendedcolorlight_8lcaaYJVAa.matter | 8 ++++++++ .../chef/devices/rootnode_fan_7N2TobIlOX.matter | 8 ++++++++ .../rootnode_flowsensor_1zVxHedlaV.matter | 8 ++++++++ ...ootnode_heatingcoolingunit_ncdGai1E5a.matter | 8 ++++++++ .../rootnode_humiditysensor_Xyj4gda6Hb.matter | 8 ++++++++ .../rootnode_lightsensor_lZQycTFcJK.matter | 8 ++++++++ .../rootnode_occupancysensor_iHyVgifZuo.matter | 8 ++++++++ .../rootnode_onofflight_bbs1b7IaOV.matter | 8 ++++++++ .../rootnode_onofflightswitch_FsPlMr090Q.matter | 8 ++++++++ .../rootnode_onoffpluginunit_Wtf8ss5EBY.matter | 8 ++++++++ .../rootnode_pressuresensor_s0qC9wLH4k.matter | 8 ++++++++ .../devices/rootnode_speaker_RpzeXdimqA.matter | 8 ++++++++ ...rootnode_temperaturesensor_Qy1zkNW7c3.matter | 8 ++++++++ .../rootnode_thermostat_bm3fb8dhYi.matter | 8 ++++++++ .../rootnode_windowcovering_RLCxaGi9Yx.matter | 8 ++++++++ .../light-switch-common/light-switch-app.matter | 8 ++++++++ .../lighting-common/lighting-app.matter | 8 ++++++++ .../placeholder/linux/apps/app1/config.matter | 16 ++++++++++++++++ .../placeholder/linux/apps/app2/config.matter | 16 ++++++++++++++++ examples/tv-app/tv-common/tv-app.matter | 5 +++++ .../tv-casting-common/tv-casting-app.matter | 13 +++++++++++++ .../data-model/chip/media-playback-cluster.xml | 9 ++++++++- .../zcl/data-model/chip/switch-cluster.xml | 1 + .../data_model/controller-clusters.matter | 13 +++++++++++++ .../CHIP/zap-generated/MTRBaseClusters.h | 13 +++++++++++++ .../app-common/zap-generated/cluster-enums.h | 17 +++++++++++++++++ .../app-common/app-common/zap-generated/enums.h | 4 ++++ 34 files changed, 308 insertions(+), 1 deletion(-) 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)