From e86dfb93514e84bfd5f2d04511a153bafe4b342d Mon Sep 17 00:00:00 2001 From: zhuchaochao Date: Mon, 15 Jan 2024 14:24:51 +0000 Subject: [PATCH] fix bug of interface Signed-off-by: zhuchaochao Change-Id: I7d1123d9b8a80b18b4fc0ca2bc4965305cc14e67 --- frameworks/common/src/avcontrol_command.cpp | 22 ++++++++++++ .../session/include/napi_avcast_controller.h | 4 +-- .../session/include/napi_control_command.h | 2 ++ .../session/src/napi_avcast_controller.cpp | 8 ++--- .../napi/session/src/napi_control_command.cpp | 35 ++++++++++++++++++- .../session/include/avcontrol_command.h | 3 ++ services/session/server/avsession_item.cpp | 2 +- services/session/server/avsession_item.h | 2 +- 8 files changed, 69 insertions(+), 9 deletions(-) diff --git a/frameworks/common/src/avcontrol_command.cpp b/frameworks/common/src/avcontrol_command.cpp index 372fcbf2..b58f6066 100644 --- a/frameworks/common/src/avcontrol_command.cpp +++ b/frameworks/common/src/avcontrol_command.cpp @@ -56,6 +56,9 @@ AVControlCommand *AVControlCommand::Unmarshalling(Parcel& data) case SESSION_CMD_AVCALL_TOGGLE_CALL_MUTE: result->SetAVCallMuted(data.ReadBool()); break; + case SESSION_CMD_PLAY_FROM_ASSETID: + result->SetPlayFromAssetId(data.ReadInt64()); + break; default: break; } @@ -93,6 +96,10 @@ bool AVControlCommand::Marshalling(Parcel& parcel) const CHECK_AND_RETURN_RET_LOG(std::holds_alternative(param_) && parcel.WriteString(std::get(param_)), false, "write toggle favorite failed"); break; + case SESSION_CMD_PLAY_FROM_ASSETID: + CHECK_AND_RETURN_RET_LOG(std::holds_alternative(param_) + && parcel.WriteInt64(std::get(param_)), false, "write play from assetId failed"); + break; default: break; } @@ -248,4 +255,19 @@ int32_t AVControlCommand::IsAVCallMuted(bool& isAVCallMuted) const isAVCallMuted = std::get(param_); return AVSESSION_SUCCESS; } + +int32_t AVControlCommand::SetPlayFromAssetId(int64_t playFromAssetId) +{ + param_ = playFromAssetId; + return AVSESSION_SUCCESS; +} + +int32_t AVControlCommand::GetPlayFromAssetId(int64_t& playFromAssetId) const +{ + if (!std::holds_alternative(param_)) { + return AVSESSION_ERROR; + } + playFromAssetId = std::get(param_); + return AVSESSION_SUCCESS; +} } // namespace OHOS::AVSession diff --git a/frameworks/js/napi/session/include/napi_avcast_controller.h b/frameworks/js/napi/session/include/napi_avcast_controller.h index 0f14bab0..95c58515 100755 --- a/frameworks/js/napi/session/include/napi_avcast_controller.h +++ b/frameworks/js/napi/session/include/napi_avcast_controller.h @@ -48,8 +48,8 @@ private: static napi_value GetDuration(napi_env env, napi_callback_info info); static napi_value GetCastAVPlaybackState(napi_env env, napi_callback_info info); static napi_value GetCurrentItem(napi_env env, napi_callback_info info); - static napi_value getValidCommands(napi_env env, napi_callback_info info); - static napi_value release(napi_env env, napi_callback_info info); + static napi_value GetValidCommands(napi_env env, napi_callback_info info); + static napi_value Release(napi_env env, napi_callback_info info); static napi_value SetDisplaySurface(napi_env env, napi_callback_info info); static napi_status SetCastPlaybackStateFilter(napi_env env, NapiAVCastController *napiCastController, napi_value filter); diff --git a/frameworks/js/napi/session/include/napi_control_command.h b/frameworks/js/napi/session/include/napi_control_command.h index 35caf0ea..ea4b8eba 100644 --- a/frameworks/js/napi/session/include/napi_control_command.h +++ b/frameworks/js/napi/session/include/napi_control_command.h @@ -41,6 +41,7 @@ public: static napi_status GetSeekTime(napi_env env, napi_value in, AVControlCommand& out); static napi_status GetLoopMode(napi_env env, napi_value in, AVControlCommand& out); static napi_status GetAssetId(napi_env env, napi_value in, AVControlCommand& out); + static napi_status GetPlayFromAssetId(napi_env env, napi_value in, AVControlCommand& out); static napi_status SetNoneParam(napi_env env, AVControlCommand& in, napi_value& out); static napi_status SetSpeed(napi_env env, AVControlCommand& in, napi_value& out); @@ -49,6 +50,7 @@ public: static napi_status SetSeekTime(napi_env env, AVControlCommand& in, napi_value& out); static napi_status SetLoopMode(napi_env env, AVControlCommand& in, napi_value& out); static napi_status SetAssetId(napi_env env, AVControlCommand& in, napi_value& out); + static napi_status SetPlayFromAssetId(napi_env env, AVControlCommand& in, napi_value& out); private: static std::map> commandMap_; diff --git a/frameworks/js/napi/session/src/napi_avcast_controller.cpp b/frameworks/js/napi/session/src/napi_avcast_controller.cpp index ca2e4bd0..d14de667 100755 --- a/frameworks/js/napi/session/src/napi_avcast_controller.cpp +++ b/frameworks/js/napi/session/src/napi_avcast_controller.cpp @@ -68,8 +68,8 @@ napi_value NapiAVCastController::Init(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("getDuration", GetDuration), DECLARE_NAPI_FUNCTION("getAVPlaybackState", GetCastAVPlaybackState), DECLARE_NAPI_FUNCTION("getCurrentItem", GetCurrentItem), - DECLARE_NAPI_FUNCTION("getValidCommands", getValidCommands), - DECLARE_NAPI_FUNCTION("release", release), + DECLARE_NAPI_FUNCTION("getValidCommands", GetValidCommands), + DECLARE_NAPI_FUNCTION("release", Release), DECLARE_NAPI_FUNCTION("setDisplaySurface", SetDisplaySurface), }; @@ -404,7 +404,7 @@ napi_value NapiAVCastController::GetCurrentItem(napi_env env, napi_callback_info return NapiAsyncWork::Enqueue(env, context, "GetCurrentItem", executor, complete); } -napi_value NapiAVCastController::getValidCommands(napi_env env, napi_callback_info info) +napi_value NapiAVCastController::GetValidCommands(napi_env env, napi_callback_info info) { struct ConcreteContext : public ContextBase { std::vector stringCmds; @@ -449,7 +449,7 @@ napi_value NapiAVCastController::getValidCommands(napi_env env, napi_callback_in return NapiAsyncWork::Enqueue(env, context, "GetValidCommands", executor, complete); } -napi_value NapiAVCastController::release(napi_env env, napi_callback_info info) +napi_value NapiAVCastController::Release(napi_env env, napi_callback_info info) { struct ConcreteContext : public ContextBase { std::vector stringCmds; diff --git a/frameworks/js/napi/session/src/napi_control_command.cpp b/frameworks/js/napi/session/src/napi_control_command.cpp index 691d9232..662c1858 100644 --- a/frameworks/js/napi/session/src/napi_control_command.cpp +++ b/frameworks/js/napi/session/src/napi_control_command.cpp @@ -33,7 +33,7 @@ std::map localCapability { SESSION_CMD_PLAY, SESSION_CMD_PAUSE, diff --git a/services/session/server/avsession_item.cpp b/services/session/server/avsession_item.cpp index ea561e42..d84c81f3 100644 --- a/services/session/server/avsession_item.cpp +++ b/services/session/server/avsession_item.cpp @@ -962,7 +962,7 @@ void AVSessionItem::HandleOnPlayFromAssetId(const AVControlCommand& cmd) std::lock_guard callbackLockGuard(callbackLock_); CHECK_AND_RETURN_LOG(callback_ != nullptr, "callback_ is nullptr"); int64_t assetId = 0; - CHECK_AND_RETURN_LOG(cmd.GetSeekTime(assetId) == AVSESSION_SUCCESS, "GetAssetId failed"); + CHECK_AND_RETURN_LOG(cmd.GetPlayFromAssetId(assetId) == AVSESSION_SUCCESS, "Get playFromAssetId failed"); callback_->OnPlayFromAssetId(assetId); } diff --git a/services/session/server/avsession_item.h b/services/session/server/avsession_item.h index 2a0f9078..69ff5ba2 100644 --- a/services/session/server/avsession_item.h +++ b/services/session/server/avsession_item.h @@ -246,10 +246,10 @@ private: &AVSessionItem::HandleOnSetSpeed, &AVSessionItem::HandleOnSetLoopMode, &AVSessionItem::HandleOnToggleFavorite, + &AVSessionItem::HandleOnPlayFromAssetId, &AVSessionItem::HandleOnAVCallAnswer, &AVSessionItem::HandleOnAVCallHangUp, &AVSessionItem::HandleOnAVCallToggleCallMute, - &AVSessionItem::HandleOnPlayFromAssetId, }; std::recursive_mutex controllersLock_; -- Gitee