diff options
author | finkleandeinhorn <david.drinfernoo@gmail.com> | 2020-07-06 17:39:23 -0700 |
---|---|---|
committer | finkleandeinhorn <david.drinfernoo@gmail.com> | 2020-07-06 17:39:27 -0700 |
commit | 7c308a78852269a89228d465b76cf0e31b9df9c1 (patch) | |
tree | 8136a580ff3fb12429187769bce1fae09a7a944e | |
parent | f098e1e234e9e33b4a7319ecd4db695920465dc1 (diff) |
[interfaces/json-rpc] Retrieve ListItem properties via Files API
-rw-r--r-- | xbmc/FileItem.cpp | 7 | ||||
-rw-r--r-- | xbmc/interfaces/json-rpc/schema/types.json | 11 | ||||
-rw-r--r-- | xbmc/interfaces/json-rpc/schema/version.txt | 2 |
3 files changed, 16 insertions, 4 deletions
diff --git a/xbmc/FileItem.cpp b/xbmc/FileItem.cpp index d0a86211a8..ab14fa3355 100644 --- a/xbmc/FileItem.cpp +++ b/xbmc/FileItem.cpp @@ -668,6 +668,13 @@ void CFileItem::Serialize(CVariant& value) const if (m_gameInfoTag) (*m_gameInfoTag).Serialize(value["gameInfoTag"]); + + if (!m_mapProperties.empty()) + { + auto& customProperties = value["customproperties"]; + for (const auto& prop : m_mapProperties) + customProperties[prop.first] = prop.second; + } } void CFileItem::ToSortable(SortItem &sortable, Field field) const diff --git a/xbmc/interfaces/json-rpc/schema/types.json b/xbmc/interfaces/json-rpc/schema/types.json index bf755dc5bf..21a2347ed1 100644 --- a/xbmc/interfaces/json-rpc/schema/types.json +++ b/xbmc/interfaces/json-rpc/schema/types.json @@ -397,6 +397,10 @@ "label": { "type": "string", "required": true } } }, + "Item.CustomProperties": { + "type": "object", + "additionalProperties": { "$ref": "Global.String.NotEmpty" } + }, "Media.Details.Base": { "extends": "Item.Details.Base", "properties": { @@ -1527,7 +1531,8 @@ "bitrate": { "type": "integer" }, "samplerate": { "type": "integer" }, "channels": { "type": "integer"}, - "albumstatus": { "type": "string" } + "albumstatus": { "type": "string" }, + "customproperties": { "$ref": "Item.CustomProperties" } } }, "List.Fields.All": { @@ -1550,7 +1555,7 @@ "contributors", "displaycomposer", "displayconductor", "displayorchestra", "displaylyricist", "userrating", "votes", "sortartist", "musicbrainzreleasegroupid", "mediapath", "dynpath", "isboxset", "totaldiscs", "disctitle", "releasedate", "originaldate", "bpm", - "bitrate", "samplerate", "channels", "albumstatus", "datemodified", "datenew"] + "bitrate", "samplerate", "channels", "albumstatus", "datemodified", "datenew", "customproperties"] } }, "List.Item.All": { @@ -1582,7 +1587,7 @@ "episodeguide", "uniqueid", "dateadded", "size", "lastmodified", "mimetype", "specialsortseason", "specialsortepisode", "sortartist", "musicbrainzreleasegroupid", "isboxset", "totaldiscs", "disctitle", "releasedate", "originaldate", "bpm", - "bitrate", "samplerate", "channels", "datemodified", "datenew"] + "bitrate", "samplerate", "channels", "datemodified", "datenew", "customproperties"] } }, "List.Item.File": { diff --git a/xbmc/interfaces/json-rpc/schema/version.txt b/xbmc/interfaces/json-rpc/schema/version.txt index 6fb712b06f..1b9bbc7425 100644 --- a/xbmc/interfaces/json-rpc/schema/version.txt +++ b/xbmc/interfaces/json-rpc/schema/version.txt @@ -1 +1 @@ -JSONRPC_VERSION 11.11.0 +JSONRPC_VERSION 11.12.0 |