From 1b6622df092fc7bab1df20a5c01a9f72fdfd1ba8 Mon Sep 17 00:00:00 2001 From: Tomasz Marciniak Date: Wed, 24 Jun 2015 12:22:12 +0200 Subject: [PATCH] [Mediacontroller] Fix for commands reply. [Verification] Code compiles without errors. TCT pass rate 93.41% (167/156/6/5/0) Signed-off-by: Tomasz Marciniak Change-Id: Ib254e2b06bc062af2321899a0a5fe7a005d31e35 --- src/mediacontroller/mediacontroller_api.js | 7 +++--- src/mediacontroller/mediacontroller_server.cc | 22 +++++++++---------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/mediacontroller/mediacontroller_api.js b/src/mediacontroller/mediacontroller_api.js index a19e47ae..bcace46e 100755 --- a/src/mediacontroller/mediacontroller_api.js +++ b/src/mediacontroller/mediacontroller_api.js @@ -72,10 +72,11 @@ ListenerManager.prototype.removeListener = function(watchId) { }; var ServerCommandListener = new ListenerManager(native_, '_ServerCommandListener', function(msg, listener) { - var data = listener(msg.clientName, msg.command, msg.data); + var data = undefined; + data = listener(msg.clientName, msg.command, msg.data); - if (type_.isNullOrUndefined(data)) { - return; + if (type_.isUndefined(data)) { + data = null; } var nativeData = { diff --git a/src/mediacontroller/mediacontroller_server.cc b/src/mediacontroller/mediacontroller_server.cc index 98bcfe45..413a3395 100755 --- a/src/mediacontroller/mediacontroller_server.cc +++ b/src/mediacontroller/mediacontroller_server.cc @@ -214,8 +214,10 @@ void MediaControllerServer::OnCommandReceived(const char* client_name, int ret; char* data_str = nullptr; + char* reply_id_str = nullptr; SCOPE_EXIT { free(data_str); + free(reply_id_str); }; ret = bundle_get_str(bundle, "data", &data_str); @@ -224,6 +226,12 @@ void MediaControllerServer::OnCommandReceived(const char* client_name, return; } + ret = bundle_get_str(bundle, "replyId", &reply_id_str); + if (ret != MEDIA_CONTROLLER_ERROR_NONE) { + LOGGER(ERROR) << "bundle_get_str(replyId) failed, error: " << ret; + return; + } + picojson::value data; std::string err; picojson::parse(data, data_str, data_str + strlen(data_str), &err); @@ -241,6 +249,7 @@ void MediaControllerServer::OnCommandReceived(const char* client_name, server->OnPlaybackPositionCommand(client_name, static_cast(position), server); + server->CommandReply(client_name, reply_id_str, data); return; } if (command == kInternalCommandSendShuffleMode) { @@ -249,6 +258,7 @@ void MediaControllerServer::OnCommandReceived(const char* client_name, server->OnShuffleModeCommand(client_name, mode ? SHUFFLE_MODE_ON : SHUFFLE_MODE_OFF, server); + server->CommandReply(client_name, reply_id_str, data); return; } if (command == kInternalCommandSendRepeatMode) { @@ -257,6 +267,7 @@ void MediaControllerServer::OnCommandReceived(const char* client_name, server->OnRepeatModeCommand(client_name, mode ? REPEAT_MODE_ON : REPEAT_MODE_OFF, server); + server->CommandReply(client_name, reply_id_str, data); return; } @@ -264,17 +275,6 @@ void MediaControllerServer::OnCommandReceived(const char* client_name, picojson::value request = picojson::value(picojson::object()); picojson::object& request_o = request.get(); - char* reply_id_str = nullptr; - SCOPE_EXIT { - free(reply_id_str); - }; - - ret = bundle_get_str(bundle, "replyId", &reply_id_str); - if (ret != MEDIA_CONTROLLER_ERROR_NONE) { - LOGGER(ERROR) << "bundle_get_str(replyId) failed, error: " << ret; - return; - } - request_o["clientName"] = picojson::value(std::string(client_name)); request_o["command"] = picojson::value(std::string(command)); request_o["replyId"] = picojson::value(std::string(reply_id_str)); -- 2.34.1