};
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 = {
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);
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);
server->OnPlaybackPositionCommand(client_name,
static_cast<unsigned long long>(position),
server);
+ server->CommandReply(client_name, reply_id_str, data);
return;
}
if (command == kInternalCommandSendShuffleMode) {
server->OnShuffleModeCommand(client_name,
mode ? SHUFFLE_MODE_ON : SHUFFLE_MODE_OFF,
server);
+ server->CommandReply(client_name, reply_id_str, data);
return;
}
if (command == kInternalCommandSendRepeatMode) {
server->OnRepeatModeCommand(client_name,
mode ? REPEAT_MODE_ON : REPEAT_MODE_OFF,
server);
+ server->CommandReply(client_name, reply_id_str, data);
return;
}
picojson::value request = picojson::value(picojson::object());
picojson::object& request_o = request.get<picojson::object>();
- 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));