Skip to content

Commit

Permalink
Update Account Login with Node & Media Playback with advance mute flag
Browse files Browse the repository at this point in the history
  • Loading branch information
lazarkov committed Nov 29, 2023
1 parent b0c8b9a commit 99430b9
Show file tree
Hide file tree
Showing 20 changed files with 77 additions and 97 deletions.
5 changes: 0 additions & 5 deletions data_model/clusters/MediaPlayback.xml
Original file line number Diff line number Diff line change
Expand Up @@ -290,11 +290,6 @@ Davis, CA 95616, USA
</mandatoryConform>
<constraint type="desc"/>
</attribute>
<attribute id="0x000B" name="AudioAdvanceMuted" type="bool" default="true">
<access read="true" readPrivilege="view"/>
<quality changeOmitted="false" scene="false" persistence="volatile" reportable="false"/>
<optionalConform/>
</attribute>
</attributes>
<commands>
<command id="0x00" name="Play" response="PlaybackResponse">
Expand Down
1 change: 0 additions & 1 deletion data_model/clusters/TargetNavigator.xml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ Davis, CA 95616, USA
</enum>
<struct name="TargetInfoStruct">
<field id="0" name="Identifier" type="uint8">
<constraint type="maxLength" value="254"/>
<mandatoryConform/>
<constraint type="max" value="254"/>
</field>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ AccountLoginManager::AccountLoginManager(ContentAppCommandDelegate * commandDele
CopyString(mSetupPin, sizeof(mSetupPin), setupPin);
}

bool AccountLoginManager::HandleLogin(const CharSpan & tempAccountIdentifier, const CharSpan & setupPin)
bool AccountLoginManager::HandleLogin(const CharSpan & tempAccountIdentifier, const CharSpan & setupPin, const chip::Optional<chip::NodeId> & nodeId)
{
ChipLogProgress(DeviceLayer, "AccountLoginManager::HandleLogin called for endpoint %d", mEndpointId);
string tempAccountIdentifierString(tempAccountIdentifier.data(), tempAccountIdentifier.size());
Expand All @@ -50,7 +50,7 @@ bool AccountLoginManager::HandleLogin(const CharSpan & tempAccountIdentifier, co
}
}

bool AccountLoginManager::HandleLogout()
bool AccountLoginManager::HandleLogout(const chip::Optional<chip::NodeId> & nodeId)
{
// TODO: Insert your code here to send logout request
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@ class AccountLoginManager : public AccountLoginDelegate

inline void SetSetupPin(char * setupPin) override { CopyString(mSetupPin, sizeof(mSetupPin), setupPin); };

bool HandleLogin(const CharSpan & tempAccountIdentifierString, const CharSpan & setupPinString) override;
bool HandleLogout() override;
bool HandleLogin(const CharSpan & tempAccountIdentifierString, const CharSpan & setupPinString,
const chip::Optional<chip::NodeId> & nodeId) override;
bool HandleLogout(const chip::Optional<chip::NodeId> & nodeId) override;
void HandleGetSetupPin(CommandResponseHelper<GetSetupPINResponse> & helper,
const CharSpan & tempAccountIdentifierString) override;
void GetSetupPin(char * setupPin, size_t setupPinSize, const CharSpan & tempAccountIdentifierString) override;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,6 @@ CHIP_ERROR AppMediaPlaybackManager::HandleGetAvailableTextTracks(AttributeValueE
});
}

bool AppMediaPlaybackManager::HandleGetAudioAdvanceMuted()
{
return false;
}

void AppMediaPlaybackManager::HandlePlay(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
{
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_PLAY, 0));
Expand All @@ -127,7 +122,8 @@ void AppMediaPlaybackManager::HandleStop(CommandResponseHelper<Commands::Playbac
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_STOP, 0));
}

void AppMediaPlaybackManager::HandleFastForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
void AppMediaPlaybackManager::HandleFastForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted)
{
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_FAST_FORWARD, 0));
}
Expand All @@ -137,7 +133,8 @@ void AppMediaPlaybackManager::HandlePrevious(CommandResponseHelper<Commands::Pla
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_PREVIOUS, 0));
}

void AppMediaPlaybackManager::HandleRewind(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
void AppMediaPlaybackManager::HandleRewind(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted)
{
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_REWIND, 0));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,15 @@ class AppMediaPlaybackManager : public MediaPlaybackDelegate
CHIP_ERROR HandleGetAvailableAudioTracks(AttributeValueEncoder & aEncoder)override;
CHIP_ERROR HandleGetActiveTextTrack(AttributeValueEncoder & aEncoder) override;
CHIP_ERROR HandleGetAvailableTextTracks(AttributeValueEncoder & aEncoder) override;
bool HandleGetAudioAdvanceMuted() override;

void HandlePlay(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandlePause(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleStop(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleFastForward(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleFastForward(CommandResponseHelper<PlaybackResponseType> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted) override;
void HandlePrevious(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleRewind(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleRewind(CommandResponseHelper<PlaybackResponseType> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted) override;
void HandleSkipBackward(CommandResponseHelper<PlaybackResponseType> & helper,
const uint64_t & deltaPositionMilliseconds) override;
void HandleSkipForward(CommandResponseHelper<PlaybackResponseType> & helper,
Expand Down
31 changes: 4 additions & 27 deletions examples/tv-app/android/java/MediaPlaybackManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,31 +128,6 @@ CHIP_ERROR MediaPlaybackManager::HandleGetAvailableTextTracks(AttributeValueEnco
});
}

bool MediaPlaybackManager::HandleGetAudioAdvanceMuted()
{
return false;
}

// CHIP_ERROR MediaPlaybackManager::HandleGetActiveAudioTrack(AttributeValueEncoder & aEncoder)
// {
// return HandleMediaRequestGetAttribute(MEDIA_PLAYBACK_ATTRIBUTE_ACTIVE_AUDIO_TRACK);
// }

// CHIP_ERROR MediaPlaybackManager::HandleGetAvailableAudioTracks(AttributeValueEncoder & aEncoder)
// {
// return HandleMediaRequestGetAttribute(MEDIA_PLAYBACK_ATTRIBUTE_AVAILABLE_AUDIO_TRACKS);
// }

// CHIP_ERROR MediaPlaybackManager::HandleGetActiveTextTrack(AttributeValueEncoder & aEncoder)
// {
// return HandleMediaRequestGetAttribute(MEDIA_PLAYBACK_ATTRIBUTE_ACTIVE_TEXT_TRACK);
// }

// CHIP_ERROR MediaPlaybackManager::HandleGetAvailableTextTracks(AttributeValueEncoder & aEncoder)
// {
// return HandleMediaRequestGetAttribute(MEDIA_PLAYBACK_ATTRIBUTE_AVAILABLE_TEXT_TRACKS);
// }

void MediaPlaybackManager::HandlePlay(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
{
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_PLAY, 0));
Expand All @@ -168,7 +143,8 @@ void MediaPlaybackManager::HandleStop(CommandResponseHelper<Commands::PlaybackRe
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_STOP, 0));
}

void MediaPlaybackManager::HandleFastForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
void MediaPlaybackManager::HandleFastForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted)
{
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_FAST_FORWARD, 0));
}
Expand All @@ -178,7 +154,8 @@ void MediaPlaybackManager::HandlePrevious(CommandResponseHelper<Commands::Playba
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_PREVIOUS, 0));
}

void MediaPlaybackManager::HandleRewind(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
void MediaPlaybackManager::HandleRewind(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted)
{
helper.Success(HandleMediaRequest(MEDIA_PLAYBACK_REQUEST_REWIND, 0));
}
Expand Down
7 changes: 4 additions & 3 deletions examples/tv-app/android/java/MediaPlaybackManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,15 @@ class MediaPlaybackManager : public MediaPlaybackDelegate
CHIP_ERROR HandleGetAvailableAudioTracks(AttributeValueEncoder & aEncoder)override;
CHIP_ERROR HandleGetActiveTextTrack(AttributeValueEncoder & aEncoder) override;
CHIP_ERROR HandleGetAvailableTextTracks(AttributeValueEncoder & aEncoder) override;
bool HandleGetAudioAdvanceMuted() override;

void HandlePlay(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandlePause(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleStop(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleFastForward(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleFastForward(CommandResponseHelper<PlaybackResponseType> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted) override;
void HandlePrevious(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleRewind(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleRewind(CommandResponseHelper<PlaybackResponseType> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted) override;
void HandleSkipBackward(CommandResponseHelper<PlaybackResponseType> & helper,
const uint64_t & deltaPositionMilliseconds) override;
void HandleSkipForward(CommandResponseHelper<PlaybackResponseType> & helper,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ AccountLoginManager::AccountLoginManager(const char * setupPin)
CopyString(mSetupPin, sizeof(mSetupPin), setupPin);
}

bool AccountLoginManager::HandleLogin(const CharSpan & tempAccountIdentifier, const CharSpan & setupPin)
bool AccountLoginManager::HandleLogin(const CharSpan & tempAccountIdentifier, const CharSpan & setupPin, const chip::Optional<chip::NodeId> & nodeId)
{
string tempAccountIdentifierString(tempAccountIdentifier.data(), tempAccountIdentifier.size());
string setupPinString(setupPin.data(), setupPin.size());
Expand All @@ -45,7 +45,7 @@ bool AccountLoginManager::HandleLogin(const CharSpan & tempAccountIdentifier, co
return false;
}

bool AccountLoginManager::HandleLogout()
bool AccountLoginManager::HandleLogout(const chip::Optional<chip::NodeId> & nodeId)
{
// TODO: Insert your code here to send logout request
ChipLogProgress(Zcl, "AccountLoginManager::HandleLogout success");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ class AccountLoginManager : public AccountLoginDelegate

inline void SetSetupPin(char * setupPin) override { CopyString(mSetupPin, sizeof(mSetupPin), setupPin); };

bool HandleLogin(const CharSpan & tempAccountIdentifierString, const CharSpan & setupPinString) override;
bool HandleLogout() override;
bool HandleLogin(const CharSpan & tempAccountIdentifierString, const CharSpan & setupPinString,
const chip::Optional<chip::NodeId> & nodeId) override;
bool HandleLogout(const chip::Optional<chip::NodeId> & nodeId) override;
void HandleGetSetupPin(CommandResponseHelper<GetSetupPINResponse> & helper,
const CharSpan & tempAccountIdentifierString) override;
inline void GetSetupPin(char * setupPin, size_t setupPinSize, const CharSpan & tempAccountIdentifierString) override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,6 @@ CHIP_ERROR MediaPlaybackManager::HandleGetAvailableTextTracks(AttributeValueEnco
});
}

bool MediaPlaybackManager::HandleGetAudioAdvanceMuted()
{
return mAudioAdvanceMuted;
}

void MediaPlaybackManager::HandlePlay(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
{
// TODO: Insert code here
Expand Down Expand Up @@ -136,7 +131,8 @@ void MediaPlaybackManager::HandleStop(CommandResponseHelper<Commands::PlaybackRe
helper.Success(response);
}

void MediaPlaybackManager::HandleFastForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
void MediaPlaybackManager::HandleFastForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted)
{
// TODO: Insert code here
if (mPlaybackSpeed == kPlaybackMaxForwardSpeed)
Expand Down Expand Up @@ -176,7 +172,8 @@ void MediaPlaybackManager::HandlePrevious(CommandResponseHelper<Commands::Playba
helper.Success(response);
}

void MediaPlaybackManager::HandleRewind(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper)
void MediaPlaybackManager::HandleRewind(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted)
{
// TODO: Insert code here
if (mPlaybackSpeed == kPlaybackMaxRewindSpeed)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,15 @@ class MediaPlaybackManager : public MediaPlaybackDelegate
CHIP_ERROR HandleGetAvailableAudioTracks(AttributeValueEncoder & aEncoder)override;
CHIP_ERROR HandleGetActiveTextTrack(AttributeValueEncoder & aEncoder) override;
CHIP_ERROR HandleGetAvailableTextTracks(AttributeValueEncoder & aEncoder) override;
bool HandleGetAudioAdvanceMuted() override;

void HandlePlay(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandlePause(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleStop(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleFastForward(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleFastForward(CommandResponseHelper<PlaybackResponseType> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted) override;
void HandlePrevious(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleRewind(CommandResponseHelper<PlaybackResponseType> & helper) override;
void HandleRewind(CommandResponseHelper<PlaybackResponseType> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted) override;
void HandleSkipBackward(CommandResponseHelper<PlaybackResponseType> & helper,
const uint64_t & deltaPositionMilliseconds) override;
void HandleSkipForward(CommandResponseHelper<PlaybackResponseType> & helper,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@ class Delegate
// helper method to allow the platform to facilitate providing the pin
virtual void SetSetupPin(char * setupPin) = 0;

virtual bool HandleLogin(const chip::CharSpan & tempAccountIdentifierString, const chip::CharSpan & setupPinString) = 0;
virtual bool HandleLogout() = 0;
virtual bool HandleLogin(const chip::CharSpan & tempAccountIdentifierString, const chip::CharSpan & setupPinString,
const chip::Optional<NodeId> & nodeId) = 0;
virtual bool HandleLogout(const chip::Optional<NodeId> & nodeId) = 0;
virtual void HandleGetSetupPin(CommandResponseHelper<Commands::GetSetupPINResponse::Type> & helper,
const chip::CharSpan & tempAccountIdentifierString) = 0;
virtual void GetSetupPin(char * setupPin, size_t setupPinSize, const chip::CharSpan & tempAccountIdentifierString) = 0;
Expand Down
24 changes: 15 additions & 9 deletions src/app/clusters/account-login-server/account-login-server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,12 @@ bool emberAfAccountLoginClusterLoginCallback(app::CommandHandler * command, cons
Status status = Status::Success;
auto & tempAccountIdentifier = commandData.tempAccountIdentifier;
auto & setupPin = commandData.setupPIN;
auto & nodeId = commandData.node;

Delegate * delegate = GetDelegate(endpoint);
VerifyOrExit(isDelegateNull(delegate, endpoint) != true, err = CHIP_ERROR_INCORRECT_STATE);

if (!delegate->HandleLogin(tempAccountIdentifier, setupPin))
if (!delegate->HandleLogin(tempAccountIdentifier, setupPin, nodeId))
{
status = Status::UnsupportedAccess;
}
Expand All @@ -201,10 +202,12 @@ bool emberAfAccountLoginClusterLogoutCallback(app::CommandHandler * commandObj,
EndpointId endpoint = commandPath.mEndpointId;
Status status = Status::Success;

auto & nodeId = commandData.node;

Delegate * delegate = GetDelegate(endpoint);
VerifyOrExit(isDelegateNull(delegate, endpoint) != true, err = CHIP_ERROR_INCORRECT_STATE);

if (!delegate->HandleLogout())
if (!delegate->HandleLogout(nodeId))
{
status = Status::Failure;
}
Expand All @@ -216,15 +219,18 @@ bool emberAfAccountLoginClusterLogoutCallback(app::CommandHandler * commandObj,
status = Status::Failure;
}

NodeId nodeId = getNodeId(commandObj);
EventNumber eventNumber;
LoggedOutEvent event{ .node = nodeId };
CHIP_ERROR logEventError = LogEvent(event, endpoint, eventNumber);
if (nodeId.HasValue()) {
// NodeId nodeId = getNodeId(commandObj);
EventNumber eventNumber;
LoggedOutEvent event{ .node = nodeId };
CHIP_ERROR logEventError = LogEvent(event, endpoint, eventNumber);

if (CHIP_NO_ERROR != logEventError)
{
ChipLogError(Zcl, "[Notify] Unable to send notify event: %s [endpointId=%d]", logEventError.AsString(), endpoint);
if (CHIP_NO_ERROR != logEventError)
{
ChipLogError(Zcl, "[Notify] Unable to send notify event: %s [endpointId=%d]", logEventError.AsString(), endpoint);
}
}


commandObj->AddStatus(commandPath, status);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,15 @@ class Delegate
virtual CHIP_ERROR HandleGetAvailableAudioTracks(app::AttributeValueEncoder & aEncoder) = 0;
virtual CHIP_ERROR HandleGetActiveTextTrack(app::AttributeValueEncoder & aEncoder) = 0;
virtual CHIP_ERROR HandleGetAvailableTextTracks(app::AttributeValueEncoder & aEncoder) = 0;
virtual bool HandleGetAudioAdvanceMuted() = 0;

virtual void HandlePlay(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper) = 0;
virtual void HandlePause(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper) = 0;
virtual void HandleStop(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper) = 0;
virtual void HandleFastForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper) = 0;
virtual void HandleFastForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted) = 0;
virtual void HandlePrevious(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper) = 0;
virtual void HandleRewind(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper) = 0;
virtual void HandleRewind(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const chip::Optional<bool> & audioAdvanceUnmuted) = 0;
virtual void HandleSkipBackward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
const uint64_t & deltaPositionMilliseconds) = 0;
virtual void HandleSkipForward(CommandResponseHelper<Commands::PlaybackResponse::Type> & helper,
Expand Down
Loading

0 comments on commit 99430b9

Please sign in to comment.