namespace JSONRPC
{
const char* const JSONRPC_SERVICE_ID = "http://www.xbmc.org/jsonrpc/ServiceDescription.json";
- const char* const JSONRPC_SERVICE_VERSION = "6.1.0";
+ const char* const JSONRPC_SERVICE_VERSION = "6.2.0";
const char* const JSONRPC_SERVICE_DESCRIPTION = "JSON-RPC API of XBMC";
const char* const JSONRPC_SERVICE_TYPES[] = {
"{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
"{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" },"
"{ \"name\": \"tag\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
- "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork\", \"required\": true } ], \"default\": null }"
+ "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork\", \"required\": true } ], \"default\": null },"
+ "{ \"name\": \"resume\", \"type\": [ \"null\", { \"$ref\": \"Video.Resume\", \"required\": true } ], \"default\": null }"
"],"
"\"returns\": \"string\""
"}",
"{ \"name\": \"originaltitle\", \"$ref\": \"Optional.String\" },"
"{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
"{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" },"
- "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork\", \"required\": true } ], \"default\": null }"
+ "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork\", \"required\": true } ], \"default\": null },"
+ "{ \"name\": \"resume\", \"type\": [ \"null\", { \"$ref\": \"Video.Resume\", \"required\": true } ], \"default\": null }"
"],"
"\"returns\": \"string\""
"}",
"{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
"{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" },"
"{ \"name\": \"tag\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
- "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork\", \"required\": true } ], \"default\": null }"
+ "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork\", \"required\": true } ], \"default\": null },"
+ "{ \"name\": \"resume\", \"type\": [ \"null\", { \"$ref\": \"Video.Resume\", \"required\": true } ], \"default\": null }"
"],"
"\"returns\": \"string\""
"}",
videodatabase.SetPlayCount(CFileItem(infos), newPlaycount, infos.m_lastPlayed.IsValid() ? infos.m_lastPlayed : CDateTime::GetCurrentDateTime());
}
+ UpdateResumePoint(parameterObject, infos, videodatabase);
+
CJSONRPCUtils::NotifyItemUpdated();
return ACK;
}
videodatabase.SetPlayCount(CFileItem(infos), newPlaycount, infos.m_lastPlayed.IsValid() ? infos.m_lastPlayed : CDateTime::GetCurrentDateTime());
}
+ UpdateResumePoint(parameterObject, infos, videodatabase);
+
CJSONRPCUtils::NotifyItemUpdated();
return ACK;
}
videodatabase.SetPlayCount(CFileItem(infos), newPlaycount, infos.m_lastPlayed.IsValid() ? infos.m_lastPlayed : CDateTime::GetCurrentDateTime());
}
+ UpdateResumePoint(parameterObject, infos, videodatabase);
+
CJSONRPCUtils::NotifyItemUpdated();
return ACK;
}
return ACK;
}
+void CVideoLibrary::UpdateResumePoint(const CVariant ¶meterObject, CVideoInfoTag &details, CVideoDatabase &videodatabase)
+{
+ if (!parameterObject["resume"].isNull())
+ {
+ CBookmark bookmark;
+ videodatabase.GetResumeBookMark(details.m_strFileNameAndPath, bookmark);
+ int position = (int)parameterObject["resume"]["position"].asInteger();
+ int total = (int)parameterObject["resume"]["total"].asInteger();
+ if (position == 0)
+ videodatabase.ClearBookMarksOfFile(details.m_strFileNameAndPath, CBookmark::RESUME);
+ else
+ {
+ bookmark.timeInSeconds = position;
+ if (total > 0)
+ bookmark.totalTimeInSeconds = total;
+ videodatabase.AddBookMarkToFile(details.m_strFileNameAndPath, bookmark, CBookmark::RESUME);
+ }
+ }
+}
+
void CVideoLibrary::UpdateVideoTag(const CVariant ¶meterObject, CVideoInfoTag& details, std::map<std::string, std::string> &artwork)
{
if (ParameterNotNull(parameterObject, "title"))
static JSONRPC_STATUS GetAdditionalEpisodeDetails(const CVariant ¶meterObject, CFileItemList &items, CVariant &result, CVideoDatabase &videodatabase, bool limit = true);
static JSONRPC_STATUS GetAdditionalMusicVideoDetails(const CVariant ¶meterObject, CFileItemList &items, CVariant &result, CVideoDatabase &videodatabase, bool limit = true);
static JSONRPC_STATUS RemoveVideo(const CVariant ¶meterObject);
- static void UpdateVideoTag(const CVariant ¶meterObject, CVideoInfoTag& details, std::map<std::string, std::string> &artwork);
+ static void UpdateVideoTag(const CVariant ¶meterObject, CVideoInfoTag &details, std::map<std::string, std::string> &artwork);
+ static void UpdateResumePoint(const CVariant ¶meterObject, CVideoInfoTag &details, CVideoDatabase &videodatabase);
};
}
{ "name": "thumbnail", "$ref": "Optional.String" },
{ "name": "fanart", "$ref": "Optional.String" },
{ "name": "tag", "type": [ "null", { "$ref": "Array.String", "required": true } ], "default": null },
- { "name": "art", "type": [ "null", { "$ref": "Media.Artwork", "required": true } ], "default": null }
+ { "name": "art", "type": [ "null", { "$ref": "Media.Artwork", "required": true } ], "default": null },
+ { "name": "resume", "type": [ "null", { "$ref": "Video.Resume", "required": true } ], "default": null }
],
"returns": "string"
},
{ "name": "originaltitle", "$ref": "Optional.String" },
{ "name": "thumbnail", "$ref": "Optional.String" },
{ "name": "fanart", "$ref": "Optional.String" },
- { "name": "art", "type": [ "null", { "$ref": "Media.Artwork", "required": true } ], "default": null }
+ { "name": "art", "type": [ "null", { "$ref": "Media.Artwork", "required": true } ], "default": null },
+ { "name": "resume", "type": [ "null", { "$ref": "Video.Resume", "required": true } ], "default": null }
],
"returns": "string"
},
{ "name": "thumbnail", "$ref": "Optional.String" },
{ "name": "fanart", "$ref": "Optional.String" },
{ "name": "tag", "type": [ "null", { "$ref": "Array.String", "required": true } ], "default": null },
- { "name": "art", "type": [ "null", { "$ref": "Media.Artwork", "required": true } ], "default": null }
+ { "name": "art", "type": [ "null", { "$ref": "Media.Artwork", "required": true } ], "default": null },
+ { "name": "resume", "type": [ "null", { "$ref": "Video.Resume", "required": true } ], "default": null }
],
"returns": "string"
},