diff options
Diffstat (limited to 'src/VideoPlayer.cpp')
-rw-r--r-- | src/VideoPlayer.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/VideoPlayer.cpp b/src/VideoPlayer.cpp index 3e22b8b..4b3ec92 100644 --- a/src/VideoPlayer.cpp +++ b/src/VideoPlayer.cpp @@ -409,7 +409,7 @@ namespace QuickMedia { command_data.append(property_name); command_data.append(value); Json::Value command(Json::objectValue); - command["command"] = command_data; + command["command"] = std::move(command_data); Json::StreamWriterBuilder builder; builder["commentStyle"] = "None"; @@ -429,7 +429,7 @@ namespace QuickMedia { command_data.append("get_property"); command_data.append(property_name); Json::Value command(Json::objectValue); - command["command"] = command_data; + command["command"] = std::move(command_data); command["request_id"] = cmd_request_id; Json::StreamWriterBuilder builder; @@ -472,6 +472,26 @@ namespace QuickMedia { return err; } + VideoPlayer::Error VideoPlayer::add_subtitle(const std::string &url, const std::string &title, const std::string &lang) { + Json::Value command_data(Json::arrayValue); + command_data.append("sub-add"); + command_data.append(url); + command_data.append("auto"); + if(!title.empty()) { + command_data.append(title); + if(!lang.empty()) + command_data.append(lang); + } + Json::Value command(Json::objectValue); + command["command"] = std::move(command_data); + + Json::StreamWriterBuilder builder; + builder["commentStyle"] = "None"; + builder["indentation"] = ""; + const std::string cmd_str = Json::writeString(builder, command) + "\n"; + return send_command(cmd_str.c_str(), cmd_str.size()); + } + VideoPlayer::Error VideoPlayer::send_command(const char *cmd, size_t size) { if(!connected_to_ipc) return Error::FAIL_NOT_CONNECTED; |