aboutsummaryrefslogtreecommitdiff
path: root/src/VideoPlayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/VideoPlayer.cpp')
-rw-r--r--src/VideoPlayer.cpp24
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;