Skip to content

Commit 833eb7b

Browse files
committed
Resolve the cluster revision issues
1 parent 2823126 commit 833eb7b

29 files changed

+251
-5
lines changed

examples/tv-app/android/include/account-login/AccountLoginManager.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "AccountLoginManager.h"
2020
#include <app/CommandHandler.h>
2121
#include <app/util/af.h>
22+
#include <app-common/zap-generated/attributes/Accessors.h>
2223
#include <json/json.h>
2324
#include <lib/core/DataModelTypes.h>
2425

@@ -102,3 +103,15 @@ void AccountLoginManager::GetSetupPin(char * setupPin, size_t setupPinSize, cons
102103
}
103104
ChipLogProgress(Zcl, "Returning pin for content app for endpoint %d", mEndpointId);
104105
};
106+
107+
uint16_t AccountLoginManager::GetClusterRevision(chip::EndpointId endpoint)
108+
{
109+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
110+
{
111+
return mDynamicClusterRevision;
112+
}
113+
114+
uint16_t clusterRevision = 0;
115+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
116+
return clusterRevision;
117+
}

examples/tv-app/android/include/account-login/AccountLoginManager.h

+3
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class AccountLoginManager : public AccountLoginDelegate
4646
const CharSpan & tempAccountIdentifierString) override;
4747
void GetSetupPin(char * setupPin, size_t setupPinSize, const CharSpan & tempAccountIdentifierString) override;
4848
void SetEndpointId(EndpointId epId) { mEndpointId = epId; };
49+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
4950

5051
protected:
5152
static const size_t kSetupPinSize = 12;
@@ -54,4 +55,6 @@ class AccountLoginManager : public AccountLoginDelegate
5455
private:
5556
ContentAppCommandDelegate * mCommandDelegate;
5657
EndpointId mEndpointId;
58+
59+
uint16_t mDynamicClusterRevision = 2;
5760
};

examples/tv-app/android/include/media-playback/AppMediaPlaybackManager.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -283,3 +283,15 @@ uint32_t AppMediaPlaybackManager::GetFeatureMap(chip::EndpointId endpoint)
283283
Attributes::FeatureMap::Get(endpoint, &featureMap);
284284
return featureMap;
285285
}
286+
287+
uint16_t AppMediaPlaybackManager::GetClusterRevision(chip::EndpointId endpoint)
288+
{
289+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
290+
{
291+
return mDynamicClusterRevision;
292+
}
293+
294+
uint16_t clusterRevision = 0;
295+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
296+
return clusterRevision;
297+
}

examples/tv-app/android/include/media-playback/AppMediaPlaybackManager.h

+2
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ class AppMediaPlaybackManager : public MediaPlaybackDelegate
102102
bool HandleDeactivateTextTrack() override;
103103

104104
uint32_t GetFeatureMap(chip::EndpointId endpoint) override;
105+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
105106

106107
void SetEndpointId(EndpointId epId) { mEndpointId = epId; };
107108

@@ -114,6 +115,7 @@ class AppMediaPlaybackManager : public MediaPlaybackDelegate
114115

115116
// TODO: set this based upon meta data from app
116117
uint32_t mDynamicEndpointFeatureMap = 3;
118+
uint16_t mDynamicClusterRevision = 2;
117119

118120
ContentAppAttributeDelegate * mAttributeDelegate;
119121
};

examples/tv-app/android/include/target-navigator/TargetNavigatorManager.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18+
#include <app-common/zap-generated/attributes/Accessors.h>
1819
#include "TargetNavigatorManager.h"
1920
#include <json/json.h>
2021

@@ -144,3 +145,15 @@ void TargetNavigatorManager::HandleNavigateTarget(CommandResponseHelper<Navigate
144145
response.status = StatusEnum::kSuccess;
145146
helper.Success(response);
146147
}
148+
149+
uint16_t TargetNavigatorManager::GetClusterRevision(chip::EndpointId endpoint)
150+
{
151+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
152+
{
153+
return mDynamicClusterRevision;
154+
}
155+
156+
uint16_t clusterRevision = 0;
157+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
158+
return clusterRevision;
159+
}

examples/tv-app/android/include/target-navigator/TargetNavigatorManager.h

+5
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ class TargetNavigatorManager : public TargetNavigatorDelegate
3939
uint8_t HandleGetCurrentTarget() override;
4040
void HandleNavigateTarget(CommandResponseHelper<NavigateTargetResponseType> & responser, const uint64_t & target,
4141
const CharSpan & data) override;
42+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
4243

4344
void SetEndpointId(EndpointId epId) { mEndpointId = epId; };
4445

@@ -51,4 +52,8 @@ class TargetNavigatorManager : public TargetNavigatorDelegate
5152
EndpointId mEndpointId;
5253

5354
ContentAppAttributeDelegate * mAttributeDelegate;
55+
56+
private:
57+
// TODO: set this based upon meta data from app
58+
uint16_t mDynamicClusterRevision = 2;
5459
};

examples/tv-app/android/java/ChannelManager.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -751,3 +751,15 @@ uint32_t ChannelManager::GetFeatureMap(chip::EndpointId endpoint)
751751
Attributes::FeatureMap::Get(endpoint, &featureMap);
752752
return featureMap;
753753
}
754+
755+
uint16_t ChannelManager::GetClusterRevision(chip::EndpointId endpoint)
756+
{
757+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
758+
{
759+
return mDynamicClusterRevision;
760+
}
761+
762+
uint16_t clusterRevision = 0;
763+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
764+
return clusterRevision;
765+
}

examples/tv-app/android/java/ChannelManager.h

+2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ class ChannelManager : public ChannelDelegate
6464
const chip::ByteSpan & data) override;
6565

6666
uint32_t GetFeatureMap(chip::EndpointId endpoint) override;
67+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
6768

6869
private:
6970
jobject mChannelManagerObject = nullptr;
@@ -81,4 +82,5 @@ class ChannelManager : public ChannelDelegate
8182

8283
// TODO: set this based upon meta data from app
8384
uint32_t mDynamicEndpointFeatureMap = 3;
85+
uint16_t mDynamicClusterRevision = 2;
8486
};

examples/tv-app/android/java/MediaPlaybackManager.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -602,3 +602,15 @@ uint32_t MediaPlaybackManager::GetFeatureMap(chip::EndpointId endpoint)
602602
Attributes::FeatureMap::Get(endpoint, &featureMap);
603603
return featureMap;
604604
}
605+
606+
uint16_t MediaPlaybackManager::GetClusterRevision(chip::EndpointId endpoint)
607+
{
608+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
609+
{
610+
return mDynamicClusterRevision;
611+
}
612+
613+
uint16_t clusterRevision = 0;
614+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
615+
return clusterRevision;
616+
}

examples/tv-app/android/java/MediaPlaybackManager.h

+2
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ class MediaPlaybackManager : public MediaPlaybackDelegate
103103
bool HandleDeactivateTextTrack() override;
104104

105105
uint32_t GetFeatureMap(chip::EndpointId endpoint) override;
106+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
106107

107108
private:
108109
jobject mMediaPlaybackManagerObject = nullptr;
@@ -121,4 +122,5 @@ class MediaPlaybackManager : public MediaPlaybackDelegate
121122

122123
// TODO: set this based upon meta data from app
123124
uint32_t mDynamicEndpointFeatureMap = 3;
125+
uint16_t mDynamicClusterRevision = 2;
124126
};

examples/tv-app/tv-common/clusters/account-login/AccountLoginManager.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#include "AccountLoginManager.h"
2020
#include <app/CommandHandler.h>
21+
#include <app-common/zap-generated/attributes/Accessors.h>
2122
#include <app/util/af.h>
2223

2324
using namespace std;
@@ -64,3 +65,15 @@ void AccountLoginManager::HandleGetSetupPin(CommandResponseHelper<GetSetupPINRes
6465
response.setupPIN = CharSpan::fromCharString(mSetupPin);
6566
helper.Success(response);
6667
}
68+
69+
uint16_t AccountLoginManager::GetClusterRevision(chip::EndpointId endpoint)
70+
{
71+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
72+
{
73+
return mDynamicClusterRevision;
74+
}
75+
76+
uint16_t clusterRevision = 0;
77+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
78+
return clusterRevision;
79+
}

examples/tv-app/tv-common/clusters/account-login/AccountLoginManager.h

+6
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,13 @@ class AccountLoginManager : public AccountLoginDelegate
4646
CopyString(setupPin, setupPinSize, mSetupPin);
4747
};
4848

49+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
50+
4951
protected:
5052
static const size_t kSetupPinSize = 12;
5153
char mSetupPin[kSetupPinSize];
54+
55+
private:
56+
// TODO: set this based upon meta data from app
57+
uint16_t mDynamicClusterRevision = 2;
5258
};

examples/tv-app/tv-common/clusters/channel/ChannelManager.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -338,3 +338,15 @@ uint32_t ChannelManager::GetFeatureMap(chip::EndpointId endpoint)
338338
Attributes::FeatureMap::Get(endpoint, &featureMap);
339339
return featureMap;
340340
}
341+
342+
uint16_t ChannelManager::GetClusterRevision(chip::EndpointId endpoint)
343+
{
344+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
345+
{
346+
return mDynamicClusterRevision;
347+
}
348+
349+
uint16_t clusterRevision = 0;
350+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
351+
return clusterRevision;
352+
}

examples/tv-app/tv-common/clusters/channel/ChannelManager.h

+2
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class ChannelManager : public ChannelDelegate
6363
const chip::ByteSpan & data) override;
6464

6565
uint32_t GetFeatureMap(chip::EndpointId endpoint) override;
66+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
6667

6768
protected:
6869
uint16_t mCurrentChannelIndex;
@@ -73,4 +74,5 @@ class ChannelManager : public ChannelDelegate
7374
private:
7475
// TODO: set this based upon meta data from app
7576
uint32_t mDynamicEndpointFeatureMap = 3;
77+
uint16_t mDynamicClusterRevision = 2;
7678
};

examples/tv-app/tv-common/clusters/media-playback/MediaPlaybackManager.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -326,3 +326,15 @@ uint32_t MediaPlaybackManager::GetFeatureMap(chip::EndpointId endpoint)
326326
Attributes::FeatureMap::Get(endpoint, &featureMap);
327327
return featureMap;
328328
}
329+
330+
uint16_t MediaPlaybackManager::GetClusterRevision(chip::EndpointId endpoint)
331+
{
332+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
333+
{
334+
return mDynamicClusterRevision;
335+
}
336+
337+
uint16_t clusterRevision = 0;
338+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
339+
return clusterRevision;
340+
}

examples/tv-app/tv-common/clusters/media-playback/MediaPlaybackManager.h

+2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ class MediaPlaybackManager : public MediaPlaybackDelegate
6464
bool HandleDeactivateTextTrack() override;
6565

6666
uint32_t GetFeatureMap(chip::EndpointId endpoint) override;
67+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
6768

6869
protected:
6970
// NOTE: it does not make sense to have default state of playing with a speed of 0, but
@@ -113,4 +114,5 @@ class MediaPlaybackManager : public MediaPlaybackDelegate
113114
private:
114115
// TODO: set this based upon meta data from app
115116
uint32_t mDynamicEndpointFeatureMap = 3;
117+
uint16_t mDynamicClusterRevision = 2;
116118
};

examples/tv-app/tv-common/clusters/target-navigator/TargetNavigatorManager.cpp

+14
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717

1818
#include "TargetNavigatorManager.h"
19+
#include <app-common/zap-generated/attributes/Accessors.h>
1920

2021
using namespace std;
2122
using namespace chip::app;
@@ -66,3 +67,16 @@ void TargetNavigatorManager::HandleNavigateTarget(CommandResponseHelper<Navigate
6667
response.status = StatusEnum::kSuccess;
6768
helper.Success(response);
6869
}
70+
71+
72+
uint16_t TargetNavigatorManager::GetClusterRevision(chip::EndpointId endpoint)
73+
{
74+
if (endpoint >= EMBER_AF_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT)
75+
{
76+
return mDynamicClusterRevision;
77+
}
78+
79+
uint16_t clusterRevision = 0;
80+
Attributes::ClusterRevision::Get(endpoint, &clusterRevision);
81+
return clusterRevision;
82+
}

examples/tv-app/tv-common/clusters/target-navigator/TargetNavigatorManager.h

+4
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,14 @@ class TargetNavigatorManager : public TargetNavigatorDelegate
3636
uint8_t HandleGetCurrentTarget() override;
3737
void HandleNavigateTarget(CommandResponseHelper<NavigateTargetResponseType> & responser, const uint64_t & target,
3838
const CharSpan & data) override;
39+
uint16_t GetClusterRevision(chip::EndpointId endpoint) override;
3940

4041
protected:
4142
// NOTE: the ids for each target start at 1 so that we can reserve 0 as "no current target"
4243
static const uint8_t kNoCurrentTarget = 0;
4344
std::list<std::string> mTargets;
4445
uint8_t mCurrentTarget;
46+
private:
47+
// TODO: set this based upon meta data from app
48+
uint16_t mDynamicClusterRevision = 2;
4549
};

examples/tv-app/tv-common/tv-app.matter

+2-2
Original file line numberDiff line numberDiff line change
@@ -3444,7 +3444,7 @@ endpoint 1 {
34443444
callback attribute lineup;
34453445
callback attribute currentChannel;
34463446
ram attribute featureMap default = 0x0003;
3447-
ram attribute clusterRevision default = 1;
3447+
ram attribute clusterRevision default = 2;
34483448

34493449
handle command ChangeChannel;
34503450
handle command ChangeChannelResponse;
@@ -3461,7 +3461,7 @@ endpoint 1 {
34613461
callback attribute targetList;
34623462
ram attribute currentTarget default = 0;
34633463
ram attribute featureMap default = 0;
3464-
ram attribute clusterRevision default = 1;
3464+
ram attribute clusterRevision default = 2;
34653465

34663466
handle command NavigateTarget;
34673467
handle command NavigateTargetResponse;

examples/tv-app/tv-common/tv-app.zap

+2-2
Original file line numberDiff line numberDiff line change
@@ -4897,7 +4897,7 @@
48974897
"storageOption": "RAM",
48984898
"singleton": 0,
48994899
"bounded": 0,
4900-
"defaultValue": "1",
4900+
"defaultValue": "2",
49014901
"reportable": 1,
49024902
"minInterval": 0,
49034903
"maxInterval": 65344,
@@ -4989,7 +4989,7 @@
49894989
"storageOption": "RAM",
49904990
"singleton": 0,
49914991
"bounded": 0,
4992-
"defaultValue": "1",
4992+
"defaultValue": "2",
49934993
"reportable": 1,
49944994
"minInterval": 0,
49954995
"maxInterval": 65344,

src/app/clusters/account-login-server/account-login-delegate.h

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ class Delegate
4444
const chip::CharSpan & tempAccountIdentifierString) = 0;
4545
virtual void GetSetupPin(char * setupPin, size_t setupPinSize, const chip::CharSpan & tempAccountIdentifierString) = 0;
4646

47+
virtual uint16_t GetClusterRevision(chip::EndpointId endpoint) = 0;
48+
4749
virtual ~Delegate() = default;
4850
};
4951

0 commit comments

Comments
 (0)