3 * Copyright (C) 2005-2013 Team XBMC
6 * This Program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
11 * This Program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with XBMC; see the file COPYING. If not, see
18 * <http://www.gnu.org/licenses/>.
24 const char* const JSONRPC_SERVICE_ID = "http://xbmc.org/jsonrpc/ServiceDescription.json";
25 const char* const JSONRPC_SERVICE_VERSION = "6.14.2";
26 const char* const JSONRPC_SERVICE_DESCRIPTION = "JSON-RPC API of XBMC";
28 const char* const JSONRPC_SERVICE_TYPES[] = {
29 "\"Optional.Boolean\": {"
30 "\"type\": [ \"null\", \"boolean\" ],"
33 "\"Optional.String\": {"
34 "\"type\": [ \"null\", \"string\" ],"
37 "\"Optional.Integer\": {"
38 "\"type\": [ \"null\", \"integer\" ],"
41 "\"Optional.Number\": {"
42 "\"type\": [ \"null\", \"number\" ],"
46 "\"type\": \"array\","
47 "\"items\": { \"type\": \"string\", \"minLength\": 1 }"
49 "\"Array.Integer\": {"
50 "\"type\": \"array\","
51 "\"items\": { \"type\": \"integer\" }"
54 "\"type\": \"object\","
56 "\"hours\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 23 },"
57 "\"minutes\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 59 },"
58 "\"seconds\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 59 },"
59 "\"milliseconds\": { \"type\": \"integer\", \"required\": true, \"minimum\": 0, \"maximum\": 999 }"
61 "\"additionalProperties\": false"
63 "\"Global.Weekday\": {"
64 "\"type\": \"string\","
65 "\"enum\": [ \"monday\", \"tuesday\", \"wednesday\", \"thursday\","
66 "\"friday\", \"saturday\", \"sunday\" ]"
68 "\"Global.IncrementDecrement\": {"
69 "\"type\": \"string\","
70 "\"enum\": [ \"increment\", \"decrement\" ]"
72 "\"Global.Toggle\": {"
74 "{ \"type\": \"boolean\", \"required\": true },"
75 "{ \"type\": \"string\", \"enum\": [ \"toggle\" ], \"required\": true }"
78 "\"Global.String.NotEmpty\": {"
79 "\"type\": \"string\","
82 "\"Configuration.Notifications\": {"
83 "\"type\": \"object\","
85 "\"Player\": { \"type\": \"boolean\", \"required\": true },"
86 "\"Playlist\": { \"type\": \"boolean\", \"required\": true },"
87 "\"GUI\": { \"type\": \"boolean\", \"required\": true },"
88 "\"System\": { \"type\": \"boolean\", \"required\": true },"
89 "\"VideoLibrary\": { \"type\": \"boolean\", \"required\": true },"
90 "\"AudioLibrary\": { \"type\": \"boolean\", \"required\": true },"
91 "\"Application\": { \"type\": \"boolean\", \"required\": true },"
92 "\"Input\": { \"type\": \"boolean\", \"required\": true },"
93 "\"PVR\": { \"type\": \"boolean\", \"required\": true },"
94 "\"Other\": { \"type\": \"boolean\", \"required\": true }"
96 "\"additionalProperties\": false"
98 "\"Configuration\": {"
99 "\"type\": \"object\", \"required\": true,"
101 "\"notifications\": { \"$ref\": \"Configuration.Notifications\", \"required\": true }"
105 "\"type\": \"string\","
106 "\"enum\": [ \"video\", \"music\", \"pictures\", \"files\", \"programs\" ]"
109 "\"type\": \"integer\","
114 "\"type\": \"object\","
116 "\"start\": { \"type\": \"integer\", \"minimum\": 0, \"default\": 0, \"description\": \"Index of the first item to return\" },"
117 "\"end\": { \"$ref\": \"List.Amount\", \"description\": \"Index of the last item to return\" }"
119 "\"additionalProperties\": false"
121 "\"List.LimitsReturned\": {"
122 "\"type\": \"object\","
124 "\"start\": { \"type\": \"integer\", \"minimum\": 0, \"default\": 0 },"
125 "\"end\": { \"$ref\": \"List.Amount\" },"
126 "\"total\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true }"
128 "\"additionalProperties\": false"
131 "\"type\": \"object\","
133 "\"method\": { \"type\": \"string\", \"default\": \"none\","
134 "\"enum\": [ \"none\", \"label\", \"date\", \"size\", \"file\", \"path\", \"drivetype\", \"title\", \"track\", \"time\", \"artist\","
135 "\"album\", \"albumtype\", \"genre\", \"country\", \"year\", \"rating\", \"votes\", \"top250\", \"programcount\","
136 "\"playlist\", \"episode\", \"season\", \"totalepisodes\", \"watchedepisodes\", \"tvshowstatus\", \"tvshowtitle\","
137 "\"sorttitle\", \"productioncode\", \"mpaa\", \"studio\", \"dateadded\", \"lastplayed\", \"playcount\", \"listeners\","
138 "\"bitrate\", \"random\" ]"
140 "\"order\": { \"type\": \"string\", \"default\": \"ascending\", \"enum\": [ \"ascending\", \"descending\" ] },"
141 "\"ignorearticle\": { \"type\": \"boolean\", \"default\": false }"
145 "\"type\": \"integer\","
149 "\"PVR.Channel.Type\": {"
150 "\"type\": \"string\","
151 "\"enum\": [ \"tv\", \"radio\" ]"
154 "\"type\": \"integer\","
159 "\"Playlist.Type\": {"
160 "\"type\": \"string\","
161 "\"enum\": [ \"unknown\", \"video\", \"audio\", \"picture\", \"mixed\" ]"
163 "\"Playlist.Property.Name\": {"
164 "\"type\": \"string\","
165 "\"enum\": [ \"type\", \"size\" ]"
167 "\"Playlist.Property.Value\": {"
168 "\"type\": \"object\","
170 "\"type\": { \"$ref\": \"Playlist.Type\" },"
171 "\"size\": { \"type\": \"integer\", \"minimum\": 0 }"
174 "\"Playlist.Position\": {"
175 "\"type\": \"integer\","
179 "\"Playlist.Item\": {"
181 "{ \"type\": \"object\", \"properties\": { \"file\": { \"type\": \"string\", \"description\": \"Path to a file (not a directory) to be added to the playlist\", \"required\": true } }, \"additionalProperties\": false },"
182 "{ \"type\": \"object\", \"properties\": { \"directory\": { \"type\": \"string\", \"required\": true }, \"recursive\": { \"type\": \"boolean\", \"default\": false }, \"media\": { \"$ref\": \"Files.Media\", \"default\": \"files\" } }, \"additionalProperties\": false },"
183 "{ \"type\": \"object\", \"properties\": { \"movieid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
184 "{ \"type\": \"object\", \"properties\": { \"episodeid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
185 "{ \"type\": \"object\", \"properties\": { \"musicvideoid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
186 "{ \"type\": \"object\", \"properties\": { \"artistid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
187 "{ \"type\": \"object\", \"properties\": { \"albumid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
188 "{ \"type\": \"object\", \"properties\": { \"songid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
189 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true, \"description\": \"Identification of a genre from the AudioLibrary\" } }, \"additionalProperties\": false }"
193 "\"type\": \"integer\","
199 "\"type\": \"string\","
200 "\"enum\": [ \"video\", \"audio\", \"picture\" ]"
202 "\"Player.Position.Percentage\": {"
203 "\"type\": \"number\","
207 "\"Player.Position.Time\": {"
208 "\"type\": \"object\","
209 "\"additionalProperties\": false,"
211 "\"hours\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 23, \"default\": 0 },"
212 "\"minutes\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 59, \"default\": 0 },"
213 "\"seconds\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 59, \"default\": 0 },"
214 "\"milliseconds\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 999, \"default\": 0 }"
217 "\"Player.Speed\": {"
218 "\"type\": \"object\","
219 "\"required\": true,"
221 "\"speed\": { \"type\": \"integer\" }"
224 "\"Player.Repeat\": {"
225 "\"type\": \"string\","
226 "\"enum\": [ \"off\", \"one\", \"all\" ]"
228 "\"Player.Audio.Stream\": {"
229 "\"type\": \"object\","
231 "\"index\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
232 "\"name\": { \"type\": \"string\", \"required\": true },"
233 "\"language\": { \"type\": \"string\", \"required\": true },"
234 "\"codec\": { \"type\": \"string\", \"required\": true },"
235 "\"bitrate\": { \"type\": \"integer\", \"required\": true },"
236 "\"channels\": { \"type\": \"integer\", \"required\": true }"
239 "\"Player.Subtitle\": {"
240 "\"type\": \"object\","
242 "\"index\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
243 "\"name\": { \"type\": \"string\", \"required\": true },"
244 "\"language\": { \"type\": \"string\", \"required\": true }"
247 "\"Player.Property.Name\": {"
248 "\"type\": \"string\","
249 "\"enum\": [ \"type\", \"partymode\", \"speed\", \"time\", \"percentage\","
250 "\"totaltime\", \"playlistid\", \"position\", \"repeat\", \"shuffled\","
251 "\"canseek\", \"canchangespeed\", \"canmove\", \"canzoom\", \"canrotate\","
252 "\"canshuffle\", \"canrepeat\", \"currentaudiostream\", \"audiostreams\","
253 "\"subtitleenabled\", \"currentsubtitle\", \"subtitles\", \"live\" ]"
255 "\"Player.Property.Value\": {"
256 "\"type\": \"object\","
258 "\"type\": { \"$ref\": \"Player.Type\" },"
259 "\"partymode\": { \"type\": \"boolean\" },"
260 "\"speed\": { \"type\": \"integer\" },"
261 "\"time\": { \"$ref\": \"Global.Time\" },"
262 "\"percentage\": { \"$ref\": \"Player.Position.Percentage\" },"
263 "\"totaltime\": { \"$ref\": \"Global.Time\" },"
264 "\"playlistid\": { \"$ref\": \"Playlist.Id\" },"
265 "\"position\": { \"$ref\": \"Playlist.Position\" },"
266 "\"repeat\": { \"$ref\": \"Player.Repeat\" },"
267 "\"shuffled\": { \"type\": \"boolean\" },"
268 "\"canseek\": { \"type\": \"boolean\" },"
269 "\"canchangespeed\": { \"type\": \"boolean\" },"
270 "\"canmove\": { \"type\": \"boolean\" },"
271 "\"canzoom\": { \"type\": \"boolean\" },"
272 "\"canrotate\": { \"type\": \"boolean\" },"
273 "\"canshuffle\": { \"type\": \"boolean\" },"
274 "\"canrepeat\": { \"type\": \"boolean\" },"
275 "\"currentaudiostream\": { \"$ref\": \"Player.Audio.Stream\" },"
276 "\"audiostreams\": { \"type\": \"array\", \"items\": { \"$ref\": \"Player.Audio.Stream\" } },"
277 "\"subtitleenabled\": { \"type\": \"boolean\" },"
278 "\"currentsubtitle\": { \"$ref\": \"Player.Subtitle\" },"
279 "\"subtitles\": { \"type\": \"array\", \"items\": { \"$ref\": \"Player.Subtitle\" } },"
280 "\"live\": { \"type\": \"boolean\" }"
283 "\"Notifications.Item.Type\": {"
284 "\"type\": \"string\","
285 "\"enum\": [ \"unknown\", \"movie\", \"episode\", \"musicvideo\", \"song\", \"picture\", \"channel\" ]"
287 "\"Notifications.Item\": {"
289 "{ \"type\": \"object\", \"description\": \"An unknown item does not have any additional information.\","
291 "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true }"
294 "{ \"type\": \"object\", \"description\": \"An item known to the database has an identification.\","
296 "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
297 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true }"
300 "{ \"type\": \"object\", \"description\": \"A movie item has a title and may have a release year.\","
302 "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
303 "\"title\": { \"type\": \"string\", \"required\": true },"
304 "\"year\": { \"type\": \"integer\" }"
307 "{ \"type\": \"object\", \"description\": \"A tv episode has a title and may have an episode number, season number and the title of the show it belongs to.\","
309 "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
310 "\"title\": { \"type\": \"string\", \"required\": true },"
311 "\"episode\": { \"type\": \"integer\" },"
312 "\"season\": { \"type\": \"integer\" },"
313 "\"showtitle\": { \"type\": \"string\" }"
316 "{ \"type\": \"object\", \"description\": \"A music video has a title and may have an album and an artist.\","
318 "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
319 "\"title\": { \"type\": \"string\", \"required\": true },"
320 "\"album\": { \"type\": \"string\" },"
321 "\"artist\": { \"type\": \"string\" }"
324 "{ \"type\": \"object\", \"description\": \"A song has a title and may have an album, an artist and a track number.\","
326 "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
327 "\"title\": { \"type\": \"string\", \"required\": true },"
328 "\"album\": { \"type\": \"string\" },"
329 "\"artist\": { \"type\": \"string\" },"
330 "\"track\": { \"type\": \"integer\" }"
333 "{ \"type\": \"object\", \"description\": \"A picture has a file path.\","
335 "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
336 "\"file\": { \"type\": \"string\", \"required\": true }"
339 "{ \"type\": \"object\", \"description\": \"A PVR channel is either a radio or tv channel and has a title.\","
341 "\"type\": { \"$ref\": \"Notifications.Item.Type\", \"required\": true },"
342 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
343 "\"title\": { \"type\": \"string\", \"required\": true },"
344 "\"channeltype\": { \"$ref\": \"PVR.Channel.Type\", \"required\": true }"
349 "\"Player.Notifications.Player\": {"
350 "\"type\": \"object\","
352 "\"playerid\": { \"$ref\": \"Player.Id\", \"required\": true },"
353 "\"speed\": { \"type\": \"integer\" }"
356 "\"Player.Notifications.Player.Seek\": {"
357 "\"extends\": \"Player.Notifications.Player\","
359 "\"time\": { \"$ref\": \"Global.Time\" },"
360 "\"seekoffset\": { \"$ref\": \"Global.Time\" }"
363 "\"Player.Notifications.Data\": {"
364 "\"type\": \"object\","
366 "\"item\": { \"$ref\": \"Notifications.Item\", \"required\": true },"
367 "\"player\": { \"$ref\": \"Player.Notifications.Player\", \"required\": true }"
370 "\"Item.Fields.Base\": {"
371 "\"type\": \"array\","
372 "\"uniqueItems\": true,"
373 "\"items\": { \"type\": \"string\" }"
375 "\"Item.Details.Base\": {"
376 "\"type\": \"object\","
378 "\"label\": { \"type\": \"string\", \"required\": true }"
381 "\"Media.Details.Base\": {"
382 "\"extends\": \"Item.Details.Base\","
384 "\"fanart\": { \"type\": \"string\" },"
385 "\"thumbnail\": { \"type\": \"string\" }"
388 "\"Media.Artwork\": {"
389 "\"type\": \"object\","
391 "\"thumb\": { \"$ref\": \"Global.String.NotEmpty\" },"
392 "\"poster\": { \"$ref\": \"Global.String.NotEmpty\" },"
393 "\"banner\": { \"$ref\": \"Global.String.NotEmpty\" },"
394 "\"fanart\": { \"$ref\": \"Global.String.NotEmpty\" }"
396 "\"additionalProperties\": { \"$ref\": \"Global.String.NotEmpty\" }"
398 "\"Media.Artwork.Set\": {"
399 "\"type\": \"object\","
401 "\"thumb\": { \"type\": [ \"null\", { \"$ref\": \"Global.String.NotEmpty\", \"required\": true } ], \"default\": \"\" },"
402 "\"poster\": { \"type\": [ \"null\", { \"$ref\": \"Global.String.NotEmpty\", \"required\": true } ], \"default\": \"\" },"
403 "\"banner\": { \"type\": [ \"null\", { \"$ref\": \"Global.String.NotEmpty\", \"required\": true } ], \"default\": \"\" },"
404 "\"fanart\": { \"type\": [ \"null\", { \"$ref\": \"Global.String.NotEmpty\", \"required\": true } ], \"default\": \"\" }"
406 "\"additionalProperties\": { \"type\": [ \"null\", { \"$ref\": \"Global.String.NotEmpty\", \"required\": true } ] }"
408 "\"Library.Fields.Genre\": {"
409 "\"extends\": \"Item.Fields.Base\","
410 "\"items\": { \"type\": \"string\", \"enum\": [ \"title\", \"thumbnail\" ] }"
412 "\"Library.Details.Genre\": {"
413 "\"extends\": \"Item.Details.Base\","
415 "\"genreid\": { \"$ref\": \"Library.Id\", \"required\": true },"
416 "\"title\": { \"type\": \"string\" },"
417 "\"thumbnail\": { \"type\": \"string\" }"
420 "\"Audio.Fields.Artist\": {"
421 "\"extends\": \"Item.Fields.Base\","
422 "\"items\": { \"type\": \"string\","
423 "\"enum\": [ \"instrument\", \"style\", \"mood\", \"born\", \"formed\","
424 "\"description\", \"genre\", \"died\", \"disbanded\","
425 "\"yearsactive\", \"musicbrainzartistid\", \"fanart\","
426 "\"thumbnail\", \"compilationartist\" ]"
429 "\"Audio.Fields.Album\": {"
430 "\"extends\": \"Item.Fields.Base\","
431 "\"items\": { \"type\": \"string\","
432 "\"description\": \"Requesting the genreid and/or artistid field will result in increased response times\","
433 "\"enum\": [ \"title\", \"description\", \"artist\", \"genre\","
434 "\"theme\", \"mood\", \"style\", \"type\", \"albumlabel\","
435 "\"rating\", \"year\", \"musicbrainzalbumid\","
436 "\"musicbrainzalbumartistid\", \"fanart\", \"thumbnail\","
437 "\"playcount\", \"genreid\", \"artistid\", \"displayartist\" ]"
440 "\"Audio.Fields.Song\": {"
441 "\"extends\": \"Item.Fields.Base\","
442 "\"items\": { \"type\": \"string\","
443 "\"description\": \"Requesting the genreid, artistid and/or albumartistid field will result in increased response times\","
444 "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\","
445 "\"rating\", \"album\", \"track\", \"duration\", \"comment\","
446 "\"lyrics\", \"musicbrainztrackid\", \"musicbrainzartistid\","
447 "\"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
448 "\"playcount\", \"fanart\", \"thumbnail\", \"file\", \"albumid\","
449 "\"lastplayed\", \"disc\", \"genreid\", \"artistid\", \"displayartist\","
450 "\"albumartistid\" ]"
453 "\"Audio.Details.Base\": {"
454 "\"extends\": \"Media.Details.Base\","
456 "\"genre\": { \"$ref\": \"Array.String\" }"
459 "\"Audio.Details.Media\": {"
460 "\"extends\": \"Audio.Details.Base\","
462 "\"title\": { \"type\": \"string\" },"
463 "\"artist\": { \"$ref\": \"Array.String\" },"
464 "\"year\": { \"type\": \"integer\" },"
465 "\"rating\": { \"type\": \"integer\" },"
466 "\"musicbrainzalbumid\": { \"type\": \"string\" },"
467 "\"musicbrainzalbumartistid\": { \"type\": \"string\" },"
468 "\"genreid\": { \"$ref\": \"Array.Integer\" },"
469 "\"artistid\": { \"$ref\": \"Array.Integer\" },"
470 "\"displayartist\": { \"type\" : \"string\" }"
473 "\"Audio.Details.Artist\": {"
474 "\"extends\": \"Audio.Details.Base\","
476 "\"artistid\": { \"$ref\": \"Library.Id\", \"required\": true },"
477 "\"artist\": { \"type\": \"string\", \"required\": true },"
478 "\"instrument\": { \"$ref\": \"Array.String\" },"
479 "\"style\": { \"$ref\": \"Array.String\" },"
480 "\"mood\": { \"$ref\": \"Array.String\" },"
481 "\"born\": { \"type\": \"string\" },"
482 "\"formed\": { \"type\": \"string\" },"
483 "\"description\": { \"type\": \"string\" },"
484 "\"died\": { \"type\": \"string\" },"
485 "\"disbanded\": { \"type\": \"string\" },"
486 "\"yearsactive\": { \"$ref\": \"Array.String\" },"
487 "\"compilationartist\": { \"type\": \"boolean\" },"
488 "\"musicbrainzartistid\": { \"type\": \"string\" }"
491 "\"Audio.Details.Album\": {"
492 "\"extends\": \"Audio.Details.Media\","
494 "\"albumid\": { \"$ref\": \"Library.Id\", \"required\": true },"
495 "\"description\": { \"type\": \"string\" },"
496 "\"theme\": { \"$ref\": \"Array.String\" },"
497 "\"mood\": { \"$ref\": \"Array.String\" },"
498 "\"style\": { \"$ref\": \"Array.String\" },"
499 "\"type\": { \"type\": \"string\" },"
500 "\"albumlabel\": { \"type\": \"string\" },"
501 "\"playcount\": { \"type\": \"integer\" }"
504 "\"Audio.Details.Song\": {"
505 "\"extends\": \"Audio.Details.Media\","
507 "\"songid\": { \"$ref\": \"Library.Id\", \"required\": true },"
508 "\"file\": { \"type\": \"string\" },"
509 "\"albumartist\": { \"$ref\": \"Array.String\" },"
510 "\"album\": { \"type\": \"string\" },"
511 "\"track\": { \"type\": \"integer\" },"
512 "\"duration\": { \"type\": \"integer\" },"
513 "\"comment\": { \"type\": \"string\" },"
514 "\"lyrics\": { \"type\": \"string\" },"
515 "\"playcount\": { \"type\": \"integer\" },"
516 "\"musicbrainztrackid\": { \"type\": \"string\" },"
517 "\"musicbrainzartistid\": { \"type\": \"string\" },"
518 "\"albumid\": { \"$ref\": \"Library.Id\" },"
519 "\"lastplayed\": { \"type\": \"string\" },"
520 "\"disc\": { \"type\": \"integer\" },"
521 "\"albumartistid\": { \"$ref\": \"Array.Integer\" }"
524 "\"Video.Fields.Movie\": {"
525 "\"extends\": \"Item.Fields.Base\","
526 "\"items\": { \"type\": \"string\","
527 "\"description\": \"Requesting the cast, showlink and/or tag field will result in increased response times\","
528 "\"enum\": [ \"title\", \"genre\", \"year\", \"rating\", \"director\", \"trailer\","
529 "\"tagline\", \"plot\", \"plotoutline\", \"originaltitle\", \"lastplayed\","
530 "\"playcount\", \"writer\", \"studio\", \"mpaa\", \"cast\", \"country\","
531 "\"imdbnumber\", \"runtime\", \"set\", \"showlink\", \"streamdetails\","
532 "\"top250\", \"votes\", \"fanart\", \"thumbnail\", \"file\", \"sorttitle\","
533 "\"resume\", \"setid\", \"dateadded\", \"tag\", \"art\" ]"
536 "\"Video.Fields.MovieSet\": {"
537 "\"extends\": \"Item.Fields.Base\","
538 "\"items\": { \"type\": \"string\","
539 "\"enum\": [ \"title\", \"playcount\", \"fanart\", \"thumbnail\", \"art\" ]"
542 "\"Video.Fields.TVShow\": {"
543 "\"extends\": \"Item.Fields.Base\","
544 "\"items\": { \"type\": \"string\","
545 "\"description\": \"Requesting the cast field will result in increased response times\","
546 "\"enum\": [ \"title\", \"genre\", \"year\", \"rating\", \"plot\","
547 "\"studio\", \"mpaa\", \"cast\", \"playcount\", \"episode\","
548 "\"imdbnumber\", \"premiered\", \"votes\", \"lastplayed\","
549 "\"fanart\", \"thumbnail\", \"file\", \"originaltitle\","
550 "\"sorttitle\", \"episodeguide\", \"season\", \"watchedepisodes\","
551 "\"dateadded\", \"tag\", \"lastplayed\", \"art\" ]"
554 "\"Video.Fields.Season\": {"
555 "\"extends\": \"Item.Fields.Base\","
556 "\"items\": { \"type\": \"string\","
557 "\"enum\": [ \"season\", \"showtitle\", \"playcount\", \"episode\", \"fanart\", \"thumbnail\", \"tvshowid\","
558 "\"watchedepisodes\", \"art\" ]"
561 "\"Video.Fields.Episode\": {"
562 "\"extends\": \"Item.Fields.Base\","
563 "\"items\": { \"type\": \"string\","
564 "\"description\": \"Requesting the cast field will result in increased response times\","
565 "\"enum\": [ \"title\", \"plot\", \"votes\", \"rating\", \"writer\","
566 "\"firstaired\", \"playcount\", \"runtime\", \"director\","
567 "\"productioncode\", \"season\", \"episode\", \"originaltitle\","
568 "\"showtitle\", \"cast\", \"streamdetails\", \"lastplayed\", \"fanart\","
569 "\"thumbnail\", \"file\", \"resume\", \"tvshowid\", \"dateadded\","
570 "\"uniqueid\", \"art\" ]"
573 "\"Video.Fields.MusicVideo\": {"
574 "\"extends\": \"Item.Fields.Base\","
575 "\"items\": { \"type\": \"string\","
576 "\"enum\": [ \"title\", \"playcount\", \"runtime\", \"director\","
577 "\"studio\", \"year\", \"plot\", \"album\", \"artist\","
578 "\"genre\", \"track\", \"streamdetails\", \"lastplayed\","
579 "\"fanart\", \"thumbnail\", \"file\", \"resume\", \"dateadded\","
584 "\"type\": \"array\","
585 "\"items\": { \"type\": \"object\","
587 "\"name\": { \"type\": \"string\", \"required\": true },"
588 "\"role\": { \"type\": \"string\", \"required\": true },"
589 "\"order\": { \"type\": \"integer\", \"required\": true },"
590 "\"thumbnail\": { \"type\": \"string\" }"
592 "\"additionalProperties\": false"
595 "\"Video.Streams\": {"
596 "\"type\": \"object\","
598 "\"audio\": { \"type\": \"array\", \"minItems\": 1,"
599 "\"items\": { \"type\": \"object\","
601 "\"codec\": { \"type\": \"string\" },"
602 "\"language\": { \"type\": \"string\" },"
603 "\"channels\": { \"type\": \"integer\" }"
605 "\"additionalProperties\": false"
608 "\"video\": { \"type\": \"array\", \"minItems\": 1,"
609 "\"items\": { \"type\": \"object\","
611 "\"codec\": { \"type\": \"string\" },"
612 "\"aspect\": { \"type\": \"number\" },"
613 "\"width\": { \"type\": \"integer\" },"
614 "\"height\": { \"type\": \"integer\" },"
615 "\"duration\": { \"type\": \"integer\" }"
617 "\"additionalProperties\": false"
620 "\"subtitle\": { \"type\": \"array\", \"minItems\": 1,"
621 "\"items\": { \"type\": \"object\","
623 "\"language\": { \"type\": \"string\" }"
625 "\"additionalProperties\": false"
629 "\"additionalProperties\": false"
631 "\"Video.Resume\": {"
632 "\"type\": \"object\","
634 "\"position\": { \"type\": \"number\", \"minimum\": 0 },"
635 "\"total\": { \"type\": \"number\", \"minimum\": 0 }"
637 "\"additionalProperties\": false"
639 "\"Video.Details.Base\": {"
640 "\"extends\": \"Media.Details.Base\","
642 "\"playcount\": { \"type\": \"integer\" },"
643 "\"art\": { \"$ref\": \"Media.Artwork\" }"
646 "\"Video.Details.Media\": {"
647 "\"extends\": \"Video.Details.Base\","
649 "\"title\": { \"type\": \"string\" }"
652 "\"Video.Details.Item\": {"
653 "\"extends\": \"Video.Details.Media\","
655 "\"file\": { \"type\": \"string\" },"
656 "\"plot\": { \"type\": \"string\" },"
657 "\"lastplayed\": { \"type\": \"string\" },"
658 "\"dateadded\": { \"type\": \"string\" }"
661 "\"Video.Details.File\": {"
662 "\"extends\": \"Video.Details.Item\","
664 "\"runtime\": { \"type\": \"integer\", \"description\": \"Runtime in seconds\" },"
665 "\"director\": { \"$ref\": \"Array.String\" },"
666 "\"streamdetails\": { \"$ref\": \"Video.Streams\" },"
667 "\"resume\": { \"$ref\": \"Video.Resume\" }"
670 "\"Video.Details.Movie\": {"
671 "\"extends\": \"Video.Details.File\","
673 "\"movieid\": { \"$ref\": \"Library.Id\", \"required\": true },"
674 "\"genre\": { \"$ref\": \"Array.String\" },"
675 "\"year\": { \"type\": \"integer\" },"
676 "\"rating\": { \"type\": \"number\" },"
677 "\"trailer\": { \"type\": \"string\" },"
678 "\"tagline\": { \"type\": \"string\" },"
679 "\"plotoutline\": { \"type\": \"string\" },"
680 "\"originaltitle\": { \"type\": \"string\" },"
681 "\"sorttitle\": { \"type\": \"string\" },"
682 "\"writer\": { \"$ref\": \"Array.String\" },"
683 "\"studio\": { \"$ref\": \"Array.String\" },"
684 "\"mpaa\": { \"type\": \"string\" },"
685 "\"cast\": { \"$ref\": \"Video.Cast\" },"
686 "\"country\": { \"$ref\": \"Array.String\" },"
687 "\"imdbnumber\": { \"type\": \"string\" },"
688 "\"set\": { \"type\": \"string\" },"
689 "\"showlink\": { \"$ref\": \"Array.String\" },"
690 "\"top250\": { \"type\": \"integer\" },"
691 "\"votes\": { \"type\": \"string\" },"
692 "\"setid\": { \"$ref\": \"Library.Id\" },"
693 "\"tag\": { \"$ref\": \"Array.String\" }"
696 "\"Video.Details.MovieSet\": {"
697 "\"extends\": \"Video.Details.Media\","
699 "\"setid\": { \"$ref\": \"Library.Id\", \"required\": true }"
702 "\"Video.Details.MovieSet.Extended\": {"
703 "\"extends\": \"Video.Details.MovieSet\","
705 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
706 "\"movies\": { \"type\": \"array\","
707 "\"items\": { \"$ref\": \"Video.Details.Movie\" }"
711 "\"Video.Details.TVShow\": {"
712 "\"extends\": \"Video.Details.Item\","
714 "\"tvshowid\": { \"$ref\": \"Library.Id\", \"required\": true },"
715 "\"genre\": { \"$ref\": \"Array.String\" },"
716 "\"year\": { \"type\": \"integer\" },"
717 "\"rating\": { \"type\": \"number\" },"
718 "\"originaltitle\": { \"type\": \"string\" },"
719 "\"sorttitle\": { \"type\": \"string\" },"
720 "\"studio\": { \"$ref\": \"Array.String\" },"
721 "\"mpaa\": { \"type\": \"string\" },"
722 "\"cast\": { \"$ref\": \"Video.Cast\" },"
723 "\"episode\": { \"type\": \"integer\" },"
724 "\"watchedepisodes\": { \"type\": \"integer\" },"
725 "\"imdbnumber\": { \"type\": \"string\" },"
726 "\"premiered\": { \"type\": \"string\" },"
727 "\"votes\": { \"type\": \"string\" },"
728 "\"episodeguide\": { \"type\": \"string\" },"
729 "\"season\": { \"type\": \"integer\" },"
730 "\"tag\": { \"$ref\": \"Array.String\" }"
733 "\"Video.Details.Season\": {"
734 "\"extends\": \"Video.Details.Base\","
736 "\"seasonid\": { \"$ref\": \"Library.Id\", \"required\": true },"
737 "\"season\": { \"type\": \"integer\", \"required\": true },"
738 "\"showtitle\": { \"type\": \"string\" },"
739 "\"episode\": { \"type\": \"integer\" },"
740 "\"watchedepisodes\": { \"type\": \"integer\" },"
741 "\"tvshowid\": { \"$ref\": \"Library.Id\" }"
744 "\"Video.Details.Episode\": {"
745 "\"extends\": \"Video.Details.File\","
747 "\"episodeid\": { \"$ref\": \"Library.Id\", \"required\": true },"
748 "\"votes\": { \"type\": \"string\" },"
749 "\"rating\": { \"type\": \"number\" },"
750 "\"writer\": { \"$ref\": \"Array.String\" },"
751 "\"firstaired\": { \"type\": \"string\" },"
752 "\"productioncode\": { \"type\": \"string\" },"
753 "\"season\": { \"type\": \"integer\" },"
754 "\"episode\": { \"type\": \"integer\" },"
755 "\"uniqueid\": { \"type\": \"object\", \"additionalProperties\": { \"type\": \"string\", \"minLength\": 1 } },"
756 "\"originaltitle\": { \"type\": \"string\" },"
757 "\"showtitle\": { \"type\": \"string\" },"
758 "\"cast\": { \"$ref\": \"Video.Cast\" },"
759 "\"tvshowid\": { \"$ref\": \"Library.Id\" }"
762 "\"Video.Details.MusicVideo\": {"
763 "\"extends\": \"Video.Details.File\","
765 "\"musicvideoid\": { \"$ref\": \"Library.Id\", \"required\": true },"
766 "\"studio\": { \"$ref\": \"Array.String\" },"
767 "\"year\": { \"type\": \"integer\" },"
768 "\"album\": { \"type\": \"string\" },"
769 "\"artist\": { \"$ref\": \"Array.String\" },"
770 "\"genre\": { \"$ref\": \"Array.String\" },"
771 "\"track\": { \"type\": \"integer\" },"
772 "\"tag\": { \"$ref\": \"Array.String\" }"
775 "\"PVR.Property.Name\": {"
776 "\"type\": \"string\","
777 "\"enum\": [ \"available\", \"recording\", \"scanning\" ]"
779 "\"PVR.Property.Value\": {"
780 "\"type\": \"object\","
782 "\"available\": { \"type\": \"boolean\" },"
783 "\"recording\": { \"type\": \"boolean\" },"
784 "\"scanning\": { \"type\": \"boolean\" }"
787 "\"PVR.ChannelGroup.Id\": {"
789 "{ \"$ref\": \"Library.Id\", \"required\": true },"
790 "{ \"type\": \"string\", \"enum\": [ \"alltv\", \"allradio\" ], \"required\": true }"
793 "\"PVR.Fields.Channel\": {"
794 "\"extends\": \"Item.Fields.Base\","
795 "\"items\": { \"type\": \"string\","
796 "\"enum\": [ \"thumbnail\", \"channeltype\", \"hidden\", \"locked\", \"channel\", \"lastplayed\" ]"
799 "\"PVR.Details.Channel\": {"
800 "\"extends\": \"Item.Details.Base\","
802 "\"channelid\": { \"$ref\": \"Library.Id\", \"required\": true },"
803 "\"channel\": { \"type\": \"string\" },"
804 "\"channeltype\": { \"$ref\": \"PVR.Channel.Type\" },"
805 "\"hidden\": { \"type\": \"boolean\" },"
806 "\"locked\": { \"type\": \"boolean\" },"
807 "\"thumbnail\": { \"type\": \"string\" },"
808 "\"lastplayed\": { \"type\": \"string\" }"
811 "\"PVR.Details.ChannelGroup\": {"
812 "\"extends\": \"Item.Details.Base\","
814 "\"channelgroupid\": { \"$ref\": \"Library.Id\", \"required\": true },"
815 "\"channeltype\": { \"$ref\": \"PVR.Channel.Type\", \"required\": true }"
818 "\"PVR.Details.ChannelGroup.Extended\": {"
819 "\"extends\": \"PVR.Details.ChannelGroup\","
821 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
822 "\"channels\": { \"type\": \"array\","
823 "\"items\": { \"$ref\": \"PVR.Details.Channel\" }"
827 "\"PVR.Fields.Broadcast\": {"
828 "\"extends\": \"Item.Fields.Base\","
829 "\"items\": { \"type\": \"string\","
830 "\"enum\": [ \"title\", \"plot\", \"plotoutline\", \"starttime\","
831 "\"endtime\", \"runtime\", \"progress\", \"progresspercentage\","
832 "\"genre\", \"episodename\", \"episodenum\", \"episodepart\","
833 "\"firstaired\", \"hastimer\", \"isactive\", \"parentalrating\","
834 "\"wasactive\", \"thumbnail\", \"rating\" ]"
837 "\"PVR.Details.Broadcast\": {"
838 "\"extends\": \"Item.Details.Base\","
840 "\"broadcastid\": { \"$ref\": \"Library.Id\", \"required\": true },"
841 "\"title\": { \"type\": \"string\" },"
842 "\"plot\": { \"type\": \"string\" },"
843 "\"plotoutline\": { \"type\": \"string\" },"
844 "\"starttime\": { \"type\": \"string\" },"
845 "\"endtime\": { \"type\": \"string\" },"
846 "\"runtime\": { \"type\": \"integer\" },"
847 "\"progress\": { \"type\": \"integer\" },"
848 "\"progresspercentage\": { \"type\": \"number\" },"
849 "\"genre\": { \"type\": \"string\" },"
850 "\"episodename\": { \"type\": \"string\" },"
851 "\"episodenum\": { \"type\": \"integer\" },"
852 "\"episodepart\": { \"type\": \"integer\" },"
853 "\"firstaired\": { \"type\": \"string\" },"
854 "\"hastimer\": { \"type\": \"boolean\" },"
855 "\"isactive\": { \"type\": \"boolean\" },"
856 "\"parentalrating\": { \"type\": \"integer\" },"
857 "\"wasactive\": { \"type\": \"boolean\" },"
858 "\"thumbnail\": { \"type\": \"string\" },"
859 "\"rating\": { \"type\": \"integer\" }"
862 "\"PVR.TimerState\": {"
863 "\"type\": \"string\","
864 "\"enum\": [ \"unknown\", \"new\", \"scheduled\", \"recording\", \"completed\","
865 "\"aborted\", \"cancelled\", \"conflict_ok\", \"conflict_notok\","
868 "\"PVR.Fields.Timer\": {"
869 "\"extends\": \"Item.Fields.Base\","
870 "\"items\": { \"type\": \"string\","
871 "\"enum\": [ \"title\", \"summary\", \"channelid\", \"isradio\", \"repeating\","
872 "\"starttime\", \"endtime\", \"runtime\", \"lifetime\", \"firstday\","
873 "\"weekdays\", \"priority\", \"startmargin\", \"endmargin\", \"state\","
874 "\"file\", \"directory\" ]"
877 "\"PVR.Details.Timer\": {"
878 "\"extends\": \"Item.Details.Base\","
880 "\"timerid\": { \"$ref\": \"Library.Id\", \"required\": true },"
881 "\"title\": { \"type\": \"string\" },"
882 "\"summary\": { \"type\": \"string\" },"
883 "\"channelid\": { \"$ref\": \"Library.Id\" },"
884 "\"isradio\": { \"type\": \"boolean\" },"
885 "\"repeating\": { \"type\": \"boolean\" },"
886 "\"starttime\": { \"type\": \"string\" },"
887 "\"endtime\": { \"type\": \"string\" },"
888 "\"runtime\": { \"type\": \"integer\" },"
889 "\"lifetime\": { \"type\": \"integer\" },"
890 "\"firstday\": { \"type\": \"string\" },"
891 "\"weekdays\": { \"type\": \"array\","
892 "\"items\": { \"$ref\": \"Global.Weekday\" },"
893 "\"uniqueItems\": true"
895 "\"priority\": { \"type\": \"integer\" },"
896 "\"startmargin\": { \"type\": \"integer\" },"
897 "\"endmargin\": { \"type\": \"integer\" },"
898 "\"state\": { \"$ref\": \"PVR.TimerState\" },"
899 "\"file\": { \"type\": \"string\" },"
900 "\"directory\": { \"type\": \"string\" }"
903 "\"PVR.Fields.Recording\": {"
904 "\"extends\": \"Item.Fields.Base\","
905 "\"items\": { \"type\": \"string\","
906 "\"enum\": [ \"title\", \"plot\", \"plotoutline\", \"genre\", \"playcount\","
907 "\"resume\", \"channel\", \"starttime\",\"endtime\", \"runtime\","
908 "\"lifetime\", \"icon\", \"art\", \"streamurl\", \"file\","
912 "\"PVR.Details.Recording\": {"
913 "\"extends\": \"Item.Details.Base\","
915 "\"recordingid\": { \"$ref\": \"Library.Id\", \"required\": true },"
916 "\"title\": { \"type\": \"string\" },"
917 "\"plot\": { \"type\": \"string\" },"
918 "\"plotoutline\": { \"type\": \"string\" },"
919 "\"genre\": { \"type\": \"string\" },"
920 "\"playcount\": { \"type\": \"integer\" },"
921 "\"resume\": { \"$ref\": \"Video.Resume\" },"
922 "\"channel\": { \"type\": \"string\" },"
923 "\"starttime\": { \"type\": \"string\" },"
924 "\"endtime\": { \"type\": \"string\" },"
925 "\"runtime\": { \"type\": \"integer\" },"
926 "\"lifetime\": { \"type\": \"integer\" },"
927 "\"icon\": { \"type\": \"string\" },"
928 "\"art\": { \"$ref\": \"Media.Artwork\" },"
929 "\"streamurl\": { \"type\": \"string\" },"
930 "\"file\": { \"type\": \"string\" },"
931 "\"directory\": { \"type\": \"string\" }"
934 "\"Textures.Details.Size\": {"
935 "\"type\": \"object\","
937 "\"size\": { \"type\": \"integer\", \"description\": \"Size of the texture (1 == largest)\" },"
938 "\"width\": { \"type\": \"integer\", \"description\": \"Width of texture\" },"
939 "\"height\": { \"type\": \"integer\", \"description\": \"Height of texture\" },"
940 "\"usecount\": { \"type\": \"integer\", \"description\": \"Number of uses\" },"
941 "\"lastused\": { \"type\": \"string\", \"description\": \"Date of last use\" }"
944 "\"Textures.Fields.Texture\": {"
945 "\"extends\": \"Item.Fields.Base\","
946 "\"items\": { \"type\": \"string\","
947 "\"enum\": [ \"url\", \"cachedurl\", \"lasthashcheck\", \"imagehash\", \"sizes\" ]"
950 "\"Textures.Details.Texture\": {"
951 "\"type\": \"object\","
953 "\"textureid\": { \"$ref\": \"Library.Id\", \"required\": \"true\" },"
954 "\"url\": { \"type\": \"string\", \"description\": \"Original source URL\" },"
955 "\"cachedurl\": { \"type\": \"string\", \"description\": \"Cached URL on disk\" },"
956 "\"lasthashcheck\": { \"type\": \"string\", \"description\": \"Last time source was checked for changes\" },"
957 "\"imagehash\": { \"type\": \"string\", \"description\": \"Hash of image\" },"
958 "\"sizes\": { \"type\": \"array\", \"items\": { \"$ref\": \"Textures.Details.Size\" } }"
961 "\"Profiles.Password\": {"
962 "\"type\": \"object\","
964 "\"value\": { \"type\": \"string\", \"required\": true, \"description\": \"Password\" },"
965 "\"encryption\": { \"type\": \"string\", \"description\": \"Password Encryption\", \"default\": \"md5\", \"enum\": [ \"none\", \"md5\" ] }"
968 "\"Profiles.Fields.Profile\": {"
969 "\"extends\": \"Item.Fields.Base\","
970 "\"items\": { \"type\": \"string\", \"enum\": [ \"thumbnail\", \"lockmode\" ] }"
972 "\"Profiles.Details.Profile\": {"
973 "\"extends\": \"Item.Details.Base\","
975 "\"thumbnail\": { \"type\": \"string\" },"
976 "\"lockmode\": { \"type\": \"integer\" }"
979 "\"List.Filter.Rule\": {"
980 "\"type\": \"object\","
982 "\"operator\": { \"$ref\": \"List.Filter.Operators\", \"required\": true },"
985 "{ \"type\": \"string\", \"required\": true },"
986 "{ \"type\": \"array\", \"items\": { \"type\": \"string\" }, \"required\": true }"
987 "], \"required\": true"
991 "\"List.Filter.Rule.Movies\": {"
992 "\"extends\": \"List.Filter.Rule\","
994 "\"field\": { \"$ref\": \"List.Filter.Fields.Movies\", \"required\": true }"
997 "\"List.Filter.Rule.TVShows\": {"
998 "\"extends\": \"List.Filter.Rule\","
1000 "\"field\": { \"$ref\": \"List.Filter.Fields.TVShows\", \"required\": true }"
1003 "\"List.Filter.Rule.Episodes\": {"
1004 "\"extends\": \"List.Filter.Rule\","
1006 "\"field\": { \"$ref\": \"List.Filter.Fields.Episodes\", \"required\": true }"
1009 "\"List.Filter.Rule.MusicVideos\": {"
1010 "\"extends\": \"List.Filter.Rule\","
1012 "\"field\": { \"$ref\": \"List.Filter.Fields.MusicVideos\", \"required\": true }"
1015 "\"List.Filter.Rule.Artists\": {"
1016 "\"extends\": \"List.Filter.Rule\","
1018 "\"field\": { \"$ref\": \"List.Filter.Fields.Artists\", \"required\": true }"
1021 "\"List.Filter.Rule.Albums\": {"
1022 "\"extends\": \"List.Filter.Rule\","
1024 "\"field\": { \"$ref\": \"List.Filter.Fields.Albums\", \"required\": true }"
1027 "\"List.Filter.Rule.Songs\": {"
1028 "\"extends\": \"List.Filter.Rule\","
1030 "\"field\": { \"$ref\": \"List.Filter.Fields.Songs\", \"required\": true }"
1033 "\"List.Filter.Rule.Textures\": {"
1034 "\"extends\": \"List.Filter.Rule\","
1036 "\"field\": { \"$ref\": \"List.Filter.Fields.Textures\", \"required\": true }"
1039 "\"List.Filter.Movies\": {"
1041 "{ \"type\": \"object\","
1043 "\"and\": { \"type\": \"array\","
1044 "\"items\": { \"$ref\": \"List.Filter.Movies\" },"
1045 "\"minItems\": 1, \"required\": true"
1049 "{ \"type\": \"object\","
1051 "\"or\": { \"type\": \"array\","
1052 "\"items\": { \"$ref\": \"List.Filter.Movies\" },"
1053 "\"minItems\": 1, \"required\": true"
1057 "{ \"$ref\": \"List.Filter.Rule.Movies\" }"
1060 "\"List.Filter.TVShows\": {"
1062 "{ \"type\": \"object\","
1064 "\"and\": { \"type\": \"array\","
1065 "\"items\": { \"$ref\": \"List.Filter.TVShows\" },"
1066 "\"minItems\": 1, \"required\": true"
1070 "{ \"type\": \"object\","
1072 "\"or\": { \"type\": \"array\","
1073 "\"items\": { \"$ref\": \"List.Filter.TVShows\" },"
1074 "\"minItems\": 1, \"required\": true"
1078 "{ \"$ref\": \"List.Filter.Rule.TVShows\" }"
1081 "\"List.Filter.Episodes\": {"
1083 "{ \"type\": \"object\","
1085 "\"and\": { \"type\": \"array\","
1086 "\"items\": { \"$ref\": \"List.Filter.Episodes\" },"
1087 "\"minItems\": 1, \"required\": true"
1091 "{ \"type\": \"object\","
1093 "\"or\": { \"type\": \"array\","
1094 "\"items\": { \"$ref\": \"List.Filter.Episodes\" },"
1095 "\"minItems\": 1, \"required\": true"
1099 "{ \"$ref\": \"List.Filter.Rule.Episodes\" }"
1102 "\"List.Filter.MusicVideos\": {"
1104 "{ \"type\": \"object\","
1106 "\"and\": { \"type\": \"array\","
1107 "\"items\": { \"$ref\": \"List.Filter.MusicVideos\" },"
1108 "\"minItems\": 1, \"required\": true"
1112 "{ \"type\": \"object\","
1114 "\"or\": { \"type\": \"array\","
1115 "\"items\": { \"$ref\": \"List.Filter.MusicVideos\" },"
1116 "\"minItems\": 1, \"required\": true"
1120 "{ \"$ref\": \"List.Filter.Rule.MusicVideos\" }"
1123 "\"List.Filter.Artists\": {"
1125 "{ \"type\": \"object\","
1127 "\"and\": { \"type\": \"array\","
1128 "\"items\": { \"$ref\": \"List.Filter.Artists\" },"
1129 "\"minItems\": 1, \"required\": true"
1133 "{ \"type\": \"object\","
1135 "\"or\": { \"type\": \"array\","
1136 "\"items\": { \"$ref\": \"List.Filter.Artists\" },"
1137 "\"minItems\": 1, \"required\": true"
1141 "{ \"$ref\": \"List.Filter.Rule.Artists\" }"
1144 "\"List.Filter.Albums\": {"
1146 "{ \"type\": \"object\","
1148 "\"and\": { \"type\": \"array\","
1149 "\"items\": { \"$ref\": \"List.Filter.Albums\" },"
1150 "\"minItems\": 1, \"required\": true"
1154 "{ \"type\": \"object\","
1156 "\"or\": { \"type\": \"array\","
1157 "\"items\": { \"$ref\": \"List.Filter.Albums\" },"
1158 "\"minItems\": 1, \"required\": true"
1162 "{ \"$ref\": \"List.Filter.Rule.Albums\" }"
1165 "\"List.Filter.Songs\": {"
1167 "{ \"type\": \"object\","
1169 "\"and\": { \"type\": \"array\","
1170 "\"items\": { \"$ref\": \"List.Filter.Songs\" },"
1171 "\"minItems\": 1, \"required\": true"
1175 "{ \"type\": \"object\","
1177 "\"or\": { \"type\": \"array\","
1178 "\"items\": { \"$ref\": \"List.Filter.Songs\" },"
1179 "\"minItems\": 1, \"required\": true"
1183 "{ \"$ref\": \"List.Filter.Rule.Songs\" }"
1186 "\"List.Filter.Textures\": {"
1188 "{ \"type\": \"object\","
1190 "\"and\": { \"type\": \"array\","
1191 "\"items\": { \"$ref\": \"List.Filter.Textures\" },"
1192 "\"minItems\": 1, \"required\": true"
1196 "{ \"type\": \"object\","
1198 "\"or\": { \"type\": \"array\","
1199 "\"items\": { \"$ref\": \"List.Filter.Textures\" },"
1200 "\"minItems\": 1, \"required\": true"
1204 "{ \"$ref\": \"List.Filter.Rule.Textures\" }"
1207 "\"List.Item.Base\": {"
1208 "\"extends\": [ \"Video.Details.File\", \"Audio.Details.Media\" ],"
1210 "\"id\": { \"$ref\": \"Library.Id\" },"
1211 "\"type\": { \"type\": \"string\", \"enum\": [ \"unknown\", \"movie\", \"episode\", \"musicvideo\", \"song\", \"picture\", \"channel\" ] },"
1212 "\"albumartist\": { \"$ref\": \"Array.String\" },"
1213 "\"album\": { \"type\": \"string\" },"
1214 "\"track\": { \"type\": \"integer\" },"
1215 "\"duration\": { \"type\": \"integer\" },"
1216 "\"comment\": { \"type\": \"string\" },"
1217 "\"lyrics\": { \"type\": \"string\" },"
1218 "\"musicbrainztrackid\": { \"type\": \"string\" },"
1219 "\"musicbrainzartistid\": { \"type\": \"string\" },"
1220 "\"trailer\": { \"type\": \"string\" },"
1221 "\"tagline\": { \"type\": \"string\" },"
1222 "\"plotoutline\": { \"type\": \"string\" },"
1223 "\"originaltitle\": { \"type\": \"string\" },"
1224 "\"writer\": { \"$ref\": \"Array.String\" },"
1225 "\"studio\": { \"$ref\": \"Array.String\" },"
1226 "\"mpaa\": { \"type\": \"string\" },"
1227 "\"cast\": { \"$ref\": \"Video.Cast\" },"
1228 "\"country\": { \"$ref\": \"Array.String\" },"
1229 "\"imdbnumber\": { \"type\": \"string\" },"
1230 "\"premiered\": { \"type\": \"string\" },"
1231 "\"productioncode\": { \"type\": \"string\" },"
1232 "\"set\": { \"type\": \"string\" },"
1233 "\"showlink\": { \"$ref\": \"Array.String\" },"
1234 "\"top250\": { \"type\": \"integer\" },"
1235 "\"votes\": { \"type\": \"string\" },"
1236 "\"firstaired\": { \"type\": \"string\" },"
1237 "\"season\": { \"type\": \"integer\" },"
1238 "\"episode\": { \"type\": \"integer\" },"
1239 "\"showtitle\": { \"type\": \"string\" },"
1240 "\"albumid\": { \"$ref\": \"Library.Id\" },"
1241 "\"setid\": { \"$ref\": \"Library.Id\" },"
1242 "\"tvshowid\": { \"$ref\": \"Library.Id\" },"
1243 "\"watchedepisodes\": { \"type\": \"integer\" },"
1244 "\"disc\": { \"type\": \"integer\" },"
1245 "\"tag\": { \"$ref\": \"Array.String\" },"
1246 "\"albumartistid\": { \"$ref\": \"Array.Integer\" },"
1247 "\"uniqueid\": { \"type\": \"object\", \"additionalProperties\": { \"type\": \"string\", \"minLength\": 1 } },"
1248 "\"episodeguide\": { \"type\": \"string\" },"
1249 "\"sorttitle\": { \"type\": \"string\" },"
1250 "\"description\": { \"type\": \"string\" },"
1251 "\"theme\": { \"$ref\": \"Array.String\" },"
1252 "\"mood\": { \"$ref\": \"Array.String\" },"
1253 "\"style\": { \"$ref\": \"Array.String\" },"
1254 "\"albumlabel\": { \"type\": \"string\" }"
1257 "\"List.Fields.All\": {"
1258 "\"extends\": \"Item.Fields.Base\","
1259 "\"items\": { \"type\": \"string\","
1260 "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\", \"rating\","
1261 "\"album\", \"track\", \"duration\", \"comment\", \"lyrics\", \"musicbrainztrackid\","
1262 "\"musicbrainzartistid\", \"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
1263 "\"playcount\", \"fanart\", \"director\", \"trailer\", \"tagline\", \"plot\","
1264 "\"plotoutline\", \"originaltitle\", \"lastplayed\", \"writer\", \"studio\","
1265 "\"mpaa\", \"cast\", \"country\", \"imdbnumber\", \"premiered\", \"productioncode\","
1266 "\"runtime\", \"set\", \"showlink\", \"streamdetails\", \"top250\", \"votes\","
1267 "\"firstaired\", \"season\", \"episode\", \"showtitle\", \"thumbnail\", \"file\","
1268 "\"resume\", \"artistid\", \"albumid\", \"tvshowid\", \"setid\", \"watchedepisodes\","
1269 "\"disc\", \"tag\", \"art\", \"genreid\", \"displayartist\", \"albumartistid\","
1270 "\"description\", \"theme\", \"mood\", \"style\", \"albumlabel\", \"sorttitle\","
1271 "\"episodeguide\", \"uniqueid\", \"dateadded\", \"channel\", \"channeltype\", \"hidden\","
1272 "\"locked\", \"channelnumber\", \"starttime\", \"endtime\" ]"
1275 "\"List.Item.All\": {"
1276 "\"extends\": \"List.Item.Base\","
1278 "\"channel\": { \"type\": \"string\" },"
1279 "\"channeltype\": { \"$ref\": \"PVR.Channel.Type\" },"
1280 "\"hidden\": { \"type\": \"boolean\" },"
1281 "\"locked\": { \"type\": \"boolean\" },"
1282 "\"channelnumber\": { \"type\": \"integer\" },"
1283 "\"starttime\": { \"type\": \"string\" },"
1284 "\"endtime\": { \"type\": \"string\" }"
1287 "\"List.Fields.Files\": {"
1288 "\"extends\": \"Item.Fields.Base\","
1289 "\"items\": { \"type\": \"string\","
1290 "\"enum\": [ \"title\", \"artist\", \"albumartist\", \"genre\", \"year\", \"rating\","
1291 "\"album\", \"track\", \"duration\", \"comment\", \"lyrics\", \"musicbrainztrackid\","
1292 "\"musicbrainzartistid\", \"musicbrainzalbumid\", \"musicbrainzalbumartistid\","
1293 "\"playcount\", \"fanart\", \"director\", \"trailer\", \"tagline\", \"plot\","
1294 "\"plotoutline\", \"originaltitle\", \"lastplayed\", \"writer\", \"studio\","
1295 "\"mpaa\", \"cast\", \"country\", \"imdbnumber\", \"premiered\", \"productioncode\","
1296 "\"runtime\", \"set\", \"showlink\", \"streamdetails\", \"top250\", \"votes\","
1297 "\"firstaired\", \"season\", \"episode\", \"showtitle\", \"thumbnail\", \"file\","
1298 "\"resume\", \"artistid\", \"albumid\", \"tvshowid\", \"setid\", \"watchedepisodes\","
1299 "\"disc\", \"tag\", \"art\", \"genreid\", \"displayartist\", \"albumartistid\","
1300 "\"description\", \"theme\", \"mood\", \"style\", \"albumlabel\", \"sorttitle\","
1301 "\"episodeguide\", \"uniqueid\", \"dateadded\", \"size\", \"lastmodified\", \"mimetype\" ]"
1304 "\"List.Item.File\": {"
1305 "\"extends\": \"List.Item.Base\","
1307 "\"file\": { \"type\": \"string\", \"required\": true },"
1308 "\"filetype\": { \"type\": \"string\", \"enum\": [ \"file\", \"directory\" ], \"required\": true },"
1309 "\"size\": { \"type\": \"integer\", \"description\": \"Size of the file in bytes\" },"
1310 "\"lastmodified\": { \"type\": \"string\" },"
1311 "\"mimetype\": { \"type\": \"string\" }"
1314 "\"List.Items.Sources\": {"
1315 "\"type\": \"array\","
1317 "\"extends\": \"Item.Details.Base\","
1319 "\"file\": { \"type\": \"string\", \"required\": true }"
1323 "\"Addon.Types\": {"
1324 "\"type\": \"string\","
1325 "\"enum\": [ \"unknown\", \"xbmc.metadata.scraper.albums\", \"xbmc.metadata.scraper.artists\", \"xbmc.metadata.scraper.movies\","
1326 "\"xbmc.metadata.scraper.musicvideos\", \"xbmc.metadata.scraper.tvshows\", \"xbmc.ui.screensaver\","
1327 "\"xbmc.player.musicviz\", \"xbmc.python.pluginsource\", \"xbmc.python.script\", \"xbmc.python.weather\","
1328 "\"xbmc.python.subtitles\", \"xbmc.python.lyrics\", \"xbmc.gui.skin\", \"xbmc.gui.webinterface\","
1329 "\"xbmc.pvrclient\", \"xbmc.addon.video\", \"xbmc.addon.audio\", \"xbmc.addon.image\", \"xbmc.addon.executable\","
1330 "\"xbmc.service\" ],"
1331 "\"default\": \"unknown\""
1333 "\"Addon.Content\": {"
1334 "\"type\": \"string\","
1335 "\"enum\": [ \"unknown\", \"video\", \"audio\", \"image\", \"executable\" ],"
1336 "\"default\": \"unknown\""
1338 "\"Addon.Fields\": {"
1339 "\"extends\": \"Item.Fields.Base\","
1340 "\"items\": { \"type\": \"string\","
1341 "\"enum\": [ \"name\", \"version\", \"summary\", \"description\", \"path\", \"author\", \"thumbnail\", \"disclaimer\", \"fanart\","
1342 "\"dependencies\", \"broken\", \"extrainfo\", \"rating\", \"enabled\" ]"
1345 "\"Addon.Details\": {"
1346 "\"extends\": \"Item.Details.Base\","
1348 "\"addonid\": { \"type\": \"string\", \"required\": true },"
1349 "\"type\": { \"$ref\": \"Addon.Types\", \"required\": true },"
1350 "\"name\": { \"type\": \"string\" },"
1351 "\"version\": { \"type\": \"string\" },"
1352 "\"summary\": { \"type\": \"string\" },"
1353 "\"description\": { \"type\": \"string\" },"
1354 "\"path\": { \"type\": \"string\" },"
1355 "\"author\": { \"type\": \"string\" },"
1356 "\"thumbnail\": { \"type\": \"string\" },"
1357 "\"disclaimer\": { \"type\": \"string\" },"
1358 "\"fanart\": { \"type\": \"string\" },"
1359 "\"dependencies\": { \"type\": \"array\","
1360 "\"items\": { \"type\": \"object\","
1362 "\"addonid\": { \"type\": \"string\", \"required\": true },"
1363 "\"version\": { \"type\": \"string\", \"required\": true },"
1364 "\"optional\": { \"type\": \"boolean\", \"required\": true }"
1368 "\"broken\": { \"type\": [ \"boolean\", \"string\" ] },"
1369 "\"extrainfo\": { \"type\": \"array\","
1370 "\"items\": { \"type\": \"object\","
1372 "\"key\": { \"type\": \"string\", \"required\": true },"
1373 "\"value\": { \"type\": \"string\", \"required\": true }"
1377 "\"rating\": { \"type\": \"integer\" },"
1378 "\"enabled\": { \"type\": \"boolean\" }"
1381 "\"GUI.Property.Name\": {"
1382 "\"type\": \"string\","
1383 "\"enum\": [ \"currentwindow\", \"currentcontrol\", \"skin\", \"fullscreen\", \"stereoscopicmode\" ]"
1385 "\"GUI.Property.Value\": {"
1386 "\"type\": \"object\","
1388 "\"currentwindow\": { \"type\": \"object\","
1390 "\"id\": { \"type\": \"integer\", \"required\": true },"
1391 "\"label\": { \"type\": \"string\", \"required\": true }"
1394 "\"currentcontrol\": { \"type\": \"object\","
1396 "\"label\": { \"type\": \"string\", \"required\": true }"
1399 "\"skin\": { \"type\": \"object\","
1401 "\"id\": { \"type\": \"string\", \"required\": true, \"minLength\": 1 },"
1402 "\"name\": { \"type\": \"string\" }"
1405 "\"fullscreen\": { \"type\": \"boolean\" },"
1406 "\"stereoscopicmode\": { \"$ref\": \"GUI.Stereoscopy.Mode\" }"
1409 "\"GUI.Stereoscopy.Mode\": {"
1410 "\"type\": \"object\","
1412 "\"mode\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"off\", \"split_vertical\", \"split_horizontal\", \"row_interleaved\", \"hardware_based\", \"anaglyph_cyan_red\", \"anaglyph_green_magenta\", \"monoscopic\" ] },"
1413 "\"label\": { \"type\": \"string\", \"required\": true }"
1416 "\"System.Property.Name\": {"
1417 "\"type\": \"string\","
1418 "\"enum\": [ \"canshutdown\", \"cansuspend\", \"canhibernate\", \"canreboot\" ]"
1420 "\"System.Property.Value\": {"
1421 "\"type\": \"object\","
1423 "\"canshutdown\": { \"type\": \"boolean\" },"
1424 "\"cansuspend\": { \"type\": \"boolean\" },"
1425 "\"canhibernate\": { \"type\": \"boolean\" },"
1426 "\"canreboot\": { \"type\": \"boolean\" }"
1429 "\"Application.Property.Name\": {"
1430 "\"type\": \"string\","
1431 "\"enum\": [ \"volume\", \"muted\", \"name\", \"version\" ]"
1433 "\"Application.Property.Value\": {"
1434 "\"type\": \"object\","
1436 "\"volume\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 100 },"
1437 "\"muted\": { \"type\": \"boolean\" },"
1438 "\"name\": { \"type\": \"string\", \"minLength\": 1 },"
1439 "\"version\": { \"type\": \"object\","
1441 "\"major\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
1442 "\"minor\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true },"
1443 "\"revision\": { \"type\": [ \"string\", \"integer\" ] },"
1444 "\"tag\": { \"type\": \"string\", \"enum\": [ \"prealpha\", \"alpha\", \"beta\", \"releasecandidate\", \"stable\" ], \"required\": true }"
1449 "\"Favourite.Fields.Favourite\": {"
1450 "\"extends\": \"Item.Fields.Base\","
1451 "\"items\": { \"type\": \"string\","
1452 "\"enum\": [ \"window\", \"windowparameter\", \"thumbnail\", \"path\" ]"
1455 "\"Favourite.Type\": {"
1456 "\"type\": \"string\","
1457 "\"enum\": [ \"media\", \"window\", \"script\", \"unknown\" ]"
1459 "\"Favourite.Details.Favourite\": {"
1460 "\"type\": \"object\","
1462 "\"title\": { \"type\": \"string\", \"required\": true },"
1463 "\"type\": { \"$ref\": \"Favourite.Type\", \"required\": true },"
1464 "\"path\": { \"type\": \"string\" },"
1465 "\"window\": { \"type\": \"string\" },"
1466 "\"windowparameter\": { \"type\": \"string\" },"
1467 "\"thumbnail\": { \"type\": \"string\" }"
1469 "\"additionalProperties\": false"
1471 "\"Setting.Type\": {"
1472 "\"type\": \"string\","
1474 "\"boolean\", \"integer\", \"number\", \"string\", \"action\", \"list\","
1475 "\"path\", \"addon\""
1478 "\"Setting.Level\": {"
1479 "\"type\": \"string\","
1480 "\"enum\": [ \"basic\", \"standard\", \"advanced\", \"expert\" ]"
1482 "\"Setting.Value\": {"
1484 "{ \"type\": \"boolean\", \"required\": true },"
1485 "{ \"type\": \"integer\", \"required\": true },"
1486 "{ \"type\": \"number\", \"required\": true },"
1487 "{ \"type\": \"string\", \"required\": true }"
1490 "\"Setting.Value.List\": {"
1491 "\"type\": \"array\","
1492 "\"items\": { \"$ref\": \"Setting.Value\" }"
1494 "\"Setting.Value.Extended\": {"
1496 "{ \"type\": \"boolean\", \"required\": true },"
1497 "{ \"type\": \"integer\", \"required\": true },"
1498 "{ \"type\": \"number\", \"required\": true },"
1499 "{ \"type\": \"string\", \"required\": true },"
1500 "{ \"$ref\": \"Setting.Value.List\", \"required\": true }"
1503 "\"Setting.Details.ControlBase\": {"
1504 "\"type\": \"object\","
1506 "\"type\": { \"type\": \"string\", \"required\": true },"
1507 "\"format\": { \"type\": \"string\", \"required\": true },"
1508 "\"delayed\": { \"type\": \"boolean\", \"required\": true }"
1511 "\"Setting.Details.ControlCheckmark\": {"
1512 "\"extends\": \"Setting.Details.ControlBase\","
1514 "\"type\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"toggle\" ] },"
1515 "\"format\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"boolean\" ] }"
1518 "\"Setting.Details.ControlSpinner\": {"
1519 "\"extends\": \"Setting.Details.ControlBase\","
1521 "\"type\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"spinner\" ] },"
1522 "\"formatlabel\": { \"type\": \"string\" },"
1523 "\"minimumlabel\": { \"type\": \"string\" }"
1526 "\"Setting.Details.ControlHeading\": {"
1527 "\"extends\": \"Setting.Details.ControlBase\","
1529 "\"heading\": { \"type\": \"string\" }"
1532 "\"Setting.Details.ControlEdit\": {"
1533 "\"extends\": \"Setting.Details.ControlHeading\","
1535 "\"type\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"edit\" ] },"
1536 "\"hidden\": { \"type\": \"boolean\", \"required\": true },"
1537 "\"verifynewvalue\": { \"type\": \"boolean\", \"required\": true }"
1540 "\"Setting.Details.ControlButton\": {"
1541 "\"extends\": \"Setting.Details.ControlHeading\","
1543 "\"type\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"button\" ] }"
1546 "\"Setting.Details.ControlList\": {"
1547 "\"extends\": \"Setting.Details.ControlHeading\","
1549 "\"type\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"list\" ] },"
1550 "\"multiselect\": { \"type\": \"boolean\", \"required\": true }"
1553 "\"Setting.Details.Control\": {"
1555 "{ \"$ref\": \"Setting.Details.ControlCheckmark\", \"required\": true },"
1556 "{ \"$ref\": \"Setting.Details.ControlSpinner\", \"required\": true },"
1557 "{ \"$ref\": \"Setting.Details.ControlEdit\", \"required\": true },"
1558 "{ \"$ref\": \"Setting.Details.ControlButton\", \"required\": true },"
1559 "{ \"$ref\": \"Setting.Details.ControlList\", \"required\": true }"
1562 "\"Setting.Details.Base\": {"
1563 "\"type\": \"object\","
1565 "\"id\": { \"type\": \"string\", \"required\": true, \"minLength\": 1 },"
1566 "\"label\": { \"type\": \"string\", \"required\": true },"
1567 "\"help\": { \"type\": \"string\" }"
1570 "\"Setting.Details.SettingBase\": {"
1571 "\"extends\": \"Setting.Details.Base\","
1573 "\"type\": { \"$ref\": \"Setting.Type\", \"required\": true },"
1574 "\"enabled\": { \"type\": \"boolean\", \"required\": true },"
1575 "\"level\": { \"type\": \"integer\", \"required\": true },"
1576 "\"parent\": { \"type\": \"string\" },"
1577 "\"control\": { \"$ref\": \"Setting.Details.Control\" }"
1579 "\"additionalProperties\": false"
1581 "\"Setting.Details.SettingBool\": {"
1582 "\"extends\": \"Setting.Details.SettingBase\","
1584 "\"value\": { \"type\": \"boolean\", \"required\": true },"
1585 "\"default\": { \"type\": \"boolean\", \"required\": true }"
1587 "\"additionalProperties\": false"
1589 "\"Setting.Details.SettingInt\": {"
1590 "\"extends\": \"Setting.Details.SettingBase\","
1592 "\"value\": { \"type\": \"integer\", \"required\": true },"
1593 "\"default\": { \"type\": \"integer\", \"required\": true },"
1594 "\"minimum\": { \"type\": \"integer\" },"
1595 "\"step\": { \"type\": \"integer\" },"
1596 "\"maximum\": { \"type\": \"integer\" },"
1597 "\"options\": { \"type\": \"array\","
1598 "\"items\": { \"type\": \"object\","
1600 "\"label\": { \"type\": \"string\", \"required\": true },"
1601 "\"value\": { \"type\": \"integer\", \"required\": true }"
1606 "\"additionalProperties\": false"
1608 "\"Setting.Details.SettingNumber\": {"
1609 "\"extends\": \"Setting.Details.SettingBase\","
1611 "\"value\": { \"type\": \"number\", \"required\": true },"
1612 "\"default\": { \"type\": \"number\", \"required\": true },"
1613 "\"minimum\": { \"type\": \"number\", \"required\": true },"
1614 "\"step\": { \"type\": \"number\", \"required\": true },"
1615 "\"maximum\": { \"type\": \"number\", \"required\": true }"
1617 "\"additionalProperties\": false"
1619 "\"Setting.Details.SettingString\": {"
1620 "\"extends\": \"Setting.Details.SettingBase\","
1622 "\"value\": { \"type\": \"string\", \"required\": true },"
1623 "\"default\": { \"type\": \"string\", \"required\": true },"
1624 "\"allowempty\": { \"type\": \"boolean\", \"required\": true },"
1625 "\"options\": { \"type\": \"array\","
1626 "\"items\": { \"type\": \"object\","
1628 "\"label\": { \"type\": \"string\", \"required\": true },"
1629 "\"value\": { \"type\": \"string\", \"required\": true }"
1635 "\"Setting.Details.SettingAction\": {"
1636 "\"extends\": \"Setting.Details.SettingBase\","
1637 "\"additionalProperties\": false"
1639 "\"Setting.Details.SettingList\": {"
1640 "\"extends\": \"Setting.Details.SettingBase\","
1642 "\"value\": { \"$ref\": \"Setting.Value.List\", \"required\": true },"
1643 "\"default\": { \"$ref\": \"Setting.Value.List\", \"required\": true },"
1644 "\"elementtype\": { \"$ref\": \"Setting.Type\", \"required\": true },"
1645 "\"definition\": { \"$ref\": \"Setting.Details.Setting\", \"required\": true },"
1646 "\"delimiter\": { \"type\": \"string\", \"required\": true },"
1647 "\"minimumItems\": { \"type\": \"integer\" },"
1648 "\"maximumItems\": { \"type\": \"integer\" }"
1650 "\"additionalProperties\": false"
1652 "\"Setting.Details.SettingPath\": {"
1653 "\"extends\": \"Setting.Details.SettingString\","
1655 "\"writable\": { \"type\": \"boolean\", \"required\": true },"
1656 "\"sources\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } }"
1658 "\"additionalProperties\": false"
1660 "\"Setting.Details.SettingAddon\": {"
1661 "\"extends\": \"Setting.Details.SettingString\","
1663 "\"addontype\": { \"$ref\": \"Addon.Types\", \"required\": true }"
1665 "\"additionalProperties\": false"
1667 "\"Setting.Details.Setting\": {"
1669 "{ \"$ref\": \"Setting.Details.SettingBool\", \"required\": true },"
1670 "{ \"$ref\": \"Setting.Details.SettingInt\", \"required\": true },"
1671 "{ \"$ref\": \"Setting.Details.SettingNumber\", \"required\": true },"
1672 "{ \"$ref\": \"Setting.Details.SettingString\", \"required\": true },"
1673 "{ \"$ref\": \"Setting.Details.SettingAction\", \"required\": true },"
1674 "{ \"$ref\": \"Setting.Details.SettingList\", \"required\": true },"
1675 "{ \"$ref\": \"Setting.Details.SettingPath\", \"required\": true },"
1676 "{ \"$ref\": \"Setting.Details.SettingAddon\", \"required\": true }"
1679 "\"Setting.Details.Group\": {"
1680 "\"type\": \"object\","
1682 "\"id\": { \"type\": \"string\", \"required\": true, \"minLength\": 1 },"
1684 "\"type\": \"array\","
1685 "\"items\": { \"$ref\": \"Setting.Details.Setting\" },"
1687 "\"uniqueItems\": true"
1690 "\"additionalProperties\": false"
1692 "\"Setting.Details.Category\": {"
1693 "\"extends\": \"Setting.Details.Base\","
1696 "\"type\": \"array\","
1697 "\"items\": { \"$ref\": \"Setting.Details.Group\" },"
1699 "\"uniqueItems\": true"
1702 "\"additionalProperties\": false"
1704 "\"Setting.Details.Section\": {"
1705 "\"extends\": \"Setting.Details.Base\","
1708 "\"type\": \"array\","
1709 "\"items\": { \"$ref\": \"Setting.Details.Category\" },"
1711 "\"uniqueItems\": true"
1714 "\"additionalProperties\": false"
1718 const char* const JSONRPC_SERVICE_METHODS[] = {
1719 "\"JSONRPC.Introspect\": {"
1720 "\"type\": \"method\","
1721 "\"description\": \"Enumerates all actions and descriptions\","
1722 "\"transport\": \"Response\","
1723 "\"permission\": \"ReadData\","
1725 "{ \"name\": \"getdescriptions\", \"type\": \"boolean\", \"default\": true },"
1726 "{ \"name\": \"getmetadata\", \"type\": \"boolean\", \"default\": false },"
1727 "{ \"name\": \"filterbytransport\", \"type\": \"boolean\", \"default\": true },"
1728 "{ \"name\": \"filter\", \"type\": \"object\","
1730 "\"id\": { \"type\": \"string\", \"required\": true, \"description\": \"Name of a namespace, method or type\" },"
1731 "\"type\": { \"type\": \"string\", \"required\": true, \"enum\": [ \"method\", \"namespace\", \"type\", \"notification\" ], \"description\": \"Type of the given name\" },"
1732 "\"getreferences\": { \"type\": \"boolean\", \"default\": true, \"description\": \"Whether or not to print the schema for referenced types\" }"
1736 "\"returns\": \"object\""
1738 "\"JSONRPC.Version\": {"
1739 "\"type\": \"method\","
1740 "\"description\": \"Retrieve the JSON-RPC protocol version.\","
1741 "\"transport\": \"Response\","
1742 "\"permission\": \"ReadData\","
1745 "\"type\": \"object\","
1747 "\"version\": { \"type\": \"object\", \"required\": true,"
1749 "\"major\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true, \"description\": \"Bumped on backwards incompatible changes to the API definition\" },"
1750 "\"minor\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true, \"description\": \"Bumped on backwards compatible additions/changes to the API definition\" },"
1751 "\"patch\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true, \"description\": \"Bumped on any changes to the internal implementation but not to the API definition\" }"
1757 "\"JSONRPC.Permission\": {"
1758 "\"type\": \"method\","
1759 "\"description\": \"Retrieve the clients permissions\","
1760 "\"transport\": \"Response\","
1761 "\"permission\": \"ReadData\","
1764 "\"type\": \"object\","
1766 "\"ReadData\": { \"type\": \"boolean\", \"required\": true },"
1767 "\"ControlPlayback\": { \"type\": \"boolean\", \"required\": true },"
1768 "\"ControlNotify\": { \"type\": \"boolean\", \"required\": true },"
1769 "\"ControlPower\": { \"type\": \"boolean\", \"required\": true },"
1770 "\"UpdateData\": { \"type\": \"boolean\", \"required\": true },"
1771 "\"RemoveData\": { \"type\": \"boolean\", \"required\": true },"
1772 "\"Navigate\": { \"type\": \"boolean\", \"required\": true },"
1773 "\"WriteFile\": { \"type\": \"boolean\", \"required\": true },"
1774 "\"ControlSystem\": { \"type\": \"boolean\", \"required\": true },"
1775 "\"ControlGUI\": { \"type\": \"boolean\", \"required\": true },"
1776 "\"ManageAddon\": { \"type\": \"boolean\", \"required\": true },"
1777 "\"ExecuteAddon\": { \"type\": \"boolean\", \"required\": true },"
1778 "\"ControlPVR\": { \"type\": \"boolean\", \"required\": true }"
1782 "\"JSONRPC.Ping\": {"
1783 "\"type\": \"method\","
1784 "\"description\": \"Ping responder\","
1785 "\"transport\": \"Response\","
1786 "\"permission\": \"ReadData\","
1788 "\"returns\": \"string\""
1790 "\"JSONRPC.GetConfiguration\": {"
1791 "\"type\": \"method\","
1792 "\"description\": \"Get client-specific configurations\","
1793 "\"transport\": \"Announcing\","
1794 "\"permission\": \"ReadData\","
1796 "\"returns\": { \"$ref\": \"Configuration\" }"
1798 "\"JSONRPC.SetConfiguration\": {"
1799 "\"type\": \"method\","
1800 "\"description\": \"Change the client-specific configuration\","
1801 "\"transport\": \"Announcing\","
1802 "\"permission\": \"ControlNotify\","
1804 "{ \"name\": \"notifications\", \"type\": \"object\","
1806 "\"Player\": { \"$ref\": \"Optional.Boolean\" },"
1807 "\"Playlist\": { \"$ref\": \"Optional.Boolean\" },"
1808 "\"GUI\": { \"$ref\": \"Optional.Boolean\" },"
1809 "\"System\": { \"$ref\": \"Optional.Boolean\" },"
1810 "\"AudioLibrary\": { \"$ref\": \"Optional.Boolean\" },"
1811 "\"VideoLibrary\": { \"$ref\": \"Optional.Boolean\" },"
1812 "\"Application\": { \"$ref\": \"Optional.Boolean\" },"
1813 "\"Input\": { \"$ref\": \"Optional.Boolean\" },"
1814 "\"Other\": { \"$ref\": \"Optional.Boolean\" }"
1818 "\"returns\": { \"$ref\": \"Configuration\" }"
1820 "\"JSONRPC.NotifyAll\": {"
1821 "\"type\": \"method\","
1822 "\"description\": \"Notify all other connected clients\","
1823 "\"transport\": \"Response\","
1824 "\"permission\": \"ReadData\","
1826 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
1827 "{ \"name\": \"message\", \"type\": \"string\", \"required\": true },"
1828 "{ \"name\": \"data\", \"type\": \"any\", \"default\": null }"
1830 "\"returns\": \"any\""
1832 "\"Player.Open\": {"
1833 "\"type\": \"method\","
1834 "\"description\": \"Start playback of either the playlist with the given ID, a slideshow with the pictures from the given directory or a single file or an item from the database.\","
1835 "\"transport\": \"Response\","
1836 "\"permission\": \"ControlPlayback\","
1838 "{ \"name\": \"item\","
1840 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
1842 "\"playlistid\": { \"$ref\": \"Playlist.Id\", \"required\": true },"
1843 "\"position\": { \"$ref\": \"Playlist.Position\", \"default\": 0 }"
1846 "{ \"$ref\": \"Playlist.Item\", \"required\": true },"
1847 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
1849 "\"path\": { \"type\": \"string\", \"required\": true },"
1850 "\"random\": { \"type\": \"boolean\", \"default\": true, \"description\": \"Deprecated, use the shuffled property of the options parameter instead\" },"
1851 "\"recursive\": { \"type\": \"boolean\", \"default\": true }"
1854 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
1856 "\"partymode\": { \"type\": ["
1857 "{ \"type\": \"string\", \"required\": true, \"enum\": [ \"music\", \"video\" ] },"
1858 "{ \"type\": \"string\", \"required\": true, \"minLength\": 5, \"description\": \"Path to a smartplaylist (*.xsp) file\" }"
1863 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
1865 "\"channelid\": { \"$ref\": \"Library.Id\", \"required\": true }"
1870 "{ \"name\": \"options\", \"type\": \"object\", \"additionalProperties\": false,"
1872 "\"shuffled\": { \"$ref\": \"Optional.Boolean\" },"
1873 "\"repeat\": { \"type\": [ \"null\", { \"$ref\": \"Player.Repeat\", \"required\": true } ], \"default\": null },"
1874 "\"resume\": { \"type\": ["
1875 "{ \"type\": \"boolean\", \"required\": true, \"description\": \"Whether to resume from the resume point or not\" },"
1876 "{ \"$ref\": \"Player.Position.Percentage\", \"required\": true, \"description\": \"Percentage value to start from\" },"
1877 "{ \"$ref\": \"Player.Position.Time\", \"required\": true, \"description\": \"Time to start from\" }"
1879 "\"default\": false"
1884 "\"returns\": \"string\""
1886 "\"Player.GetActivePlayers\": {"
1887 "\"type\": \"method\","
1888 "\"description\": \"Returns all active players\","
1889 "\"transport\": \"Response\","
1890 "\"permission\": \"ReadData\","
1893 "\"type\": \"array\","
1894 "\"uniqueItems\": true,"
1896 "\"type\": \"object\","
1898 "\"playerid\": { \"$ref\": \"Player.Id\", \"required\": true },"
1899 "\"type\": { \"$ref\": \"Player.Type\", \"required\": true }"
1904 "\"Player.GetProperties\": {"
1905 "\"type\": \"method\","
1906 "\"description\": \"Retrieves the values of the given properties\","
1907 "\"transport\": \"Response\","
1908 "\"permission\": \"ReadData\","
1910 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1911 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"Player.Property.Name\" } }"
1913 "\"returns\": { \"$ref\": \"Player.Property.Value\", \"required\": true }"
1915 "\"Player.GetItem\": {"
1916 "\"type\": \"method\","
1917 "\"description\": \"Retrieves the currently played item\","
1918 "\"transport\": \"Response\","
1919 "\"permission\": \"ReadData\","
1921 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1922 "{ \"name\": \"properties\", \"$ref\": \"List.Fields.All\" }"
1924 "\"returns\": { \"type\": \"object\","
1926 "\"item\": { \"$ref\": \"List.Item.All\", \"required\": true }"
1930 "\"Player.PlayPause\": {"
1931 "\"type\": \"method\","
1932 "\"description\": \"Pauses or unpause playback and returns the new state\","
1933 "\"transport\": \"Response\","
1934 "\"permission\": \"ControlPlayback\","
1936 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1937 "{ \"name\": \"play\", \"$ref\": \"Global.Toggle\", \"default\": \"toggle\" }"
1939 "\"returns\": { \"$ref\": \"Player.Speed\" }"
1941 "\"Player.Stop\": {"
1942 "\"type\": \"method\","
1943 "\"description\": \"Stops playback\","
1944 "\"transport\": \"Response\","
1945 "\"permission\": \"ControlPlayback\","
1947 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true }"
1949 "\"returns\": \"string\""
1951 "\"Player.SetSpeed\": {"
1952 "\"type\": \"method\","
1953 "\"description\": \"Set the speed of the current playback\","
1954 "\"transport\": \"Response\","
1955 "\"permission\": \"ControlPlayback\","
1957 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1958 "{ \"name\": \"speed\", \"type\": ["
1959 "{ \"type\": \"integer\", \"required\": true, \"enum\": [ -32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8, 16, 32 ] },"
1960 "{ \"$ref\": \"Global.IncrementDecrement\", \"required\": true }"
1962 "\"required\": true"
1965 "\"returns\": { \"$ref\": \"Player.Speed\" }"
1967 "\"Player.Seek\": {"
1968 "\"type\": \"method\","
1969 "\"description\": \"Seek through the playing item\","
1970 "\"transport\": \"Response\","
1971 "\"permission\": \"ControlPlayback\","
1973 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1974 "{ \"name\": \"value\", \"required\": true, \"type\": ["
1975 "{ \"$ref\": \"Player.Position.Percentage\", \"required\": true, \"description\": \"Percentage value to seek to\" },"
1976 "{ \"$ref\": \"Player.Position.Time\", \"required\": true, \"description\": \"Time to seek to\" },"
1977 "{ \"type\": \"string\", \"enum\": [ \"smallforward\", \"smallbackward\", \"bigforward\", \"bigbackward\" ], \"required\": true, \"description\": \"Seek by predefined jumps\" }"
1982 "\"type\": \"object\","
1984 "\"percentage\": { \"$ref\": \"Player.Position.Percentage\" },"
1985 "\"time\": { \"$ref\": \"Global.Time\" },"
1986 "\"totaltime\": { \"$ref\": \"Global.Time\" }"
1990 "\"Player.Move\": {"
1991 "\"type\": \"method\","
1992 "\"description\": \"If picture is zoomed move viewport left/right/up/down otherwise skip previous/next\","
1993 "\"transport\": \"Response\","
1994 "\"permission\": \"ControlPlayback\","
1996 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
1997 "{ \"name\": \"direction\", \"type\": \"string\", \"enum\": [ \"left\", \"right\", \"up\", \"down\" ], \"required\": true }"
1999 "\"returns\": \"string\""
2001 "\"Player.Zoom\": {"
2002 "\"type\": \"method\","
2003 "\"description\": \"Zoom current picture\","
2004 "\"transport\": \"Response\","
2005 "\"permission\": \"ControlPlayback\","
2007 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
2008 "{ \"name\": \"zoom\", \"type\": ["
2009 "{ \"type\": \"string\", \"enum\": [ \"in\", \"out\" ], \"required\": true },"
2010 "{ \"type\": \"integer\", \"minimum\": 1, \"maximum\": 10, \"description\": \"zoom level\", \"required\": true }"
2012 "\"required\": true }"
2014 "\"returns\": \"string\""
2016 "\"Player.Rotate\": {"
2017 "\"type\": \"method\","
2018 "\"description\": \"Rotates current picture\","
2019 "\"transport\": \"Response\","
2020 "\"permission\": \"ControlPlayback\","
2022 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
2023 "{ \"name\": \"value\", \"type\": \"string\", \"enum\": [ \"clockwise\", \"counterclockwise\" ], \"default\": \"clockwise\" }"
2025 "\"returns\": \"string\""
2027 "\"Player.GoTo\": {"
2028 "\"type\": \"method\","
2029 "\"description\": \"Go to previous/next/specific item in the playlist\","
2030 "\"transport\": \"Response\","
2031 "\"permission\": \"ControlPlayback\","
2033 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
2034 "{ \"name\": \"to\", \"type\": ["
2035 "{ \"type\": \"string\", \"enum\": [ \"previous\", \"next\" ], \"required\": true },"
2036 "{ \"$ref\": \"Playlist.Position\", \"description\": \"position in playlist\", \"required\": true }"
2038 "\"required\": true }"
2040 "\"returns\": \"string\""
2042 "\"Player.SetShuffle\": {"
2043 "\"type\": \"method\","
2044 "\"description\": \"Shuffle/Unshuffle items in the player\","
2045 "\"transport\": \"Response\","
2046 "\"permission\": \"ControlPlayback\","
2048 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
2049 "{ \"name\": \"shuffle\", \"$ref\": \"Global.Toggle\", \"required\": true }"
2051 "\"returns\": \"string\""
2053 "\"Player.SetRepeat\": {"
2054 "\"type\": \"method\","
2055 "\"description\": \"Set the repeat mode of the player\","
2056 "\"transport\": \"Response\","
2057 "\"permission\": \"ControlPlayback\","
2059 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
2060 "{ \"name\": \"repeat\", \"type\": ["
2061 "{ \"$ref\": \"Player.Repeat\", \"required\": true },"
2062 "{ \"type\": \"string\", \"enum\": [ \"cycle\" ], \"required\": true }"
2064 "\"required\": true"
2067 "\"returns\": \"string\""
2069 "\"Player.SetPartymode\": {"
2070 "\"type\": \"method\","
2071 "\"description\": \"Turn partymode on or off\","
2072 "\"transport\": \"Response\","
2073 "\"permission\": \"ControlPlayback\","
2075 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
2076 "{ \"name\": \"partymode\", \"$ref\": \"Global.Toggle\", \"required\": true }"
2078 "\"returns\": \"string\""
2080 "\"Player.SetAudioStream\": {"
2081 "\"type\": \"method\","
2082 "\"description\": \"Set the audio stream played by the player\","
2083 "\"transport\": \"Response\","
2084 "\"permission\": \"ControlPlayback\","
2086 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
2087 "{ \"name\": \"stream\", \"required\": true, \"type\": ["
2088 "{ \"type\": \"string\", \"enum\": [ \"previous\", \"next\" ] },"
2089 "{ \"type\": \"integer\", \"minimum\": 0, \"description\": \"Index of the audio stream to play\" }"
2093 "\"returns\": \"string\""
2095 "\"Player.SetSubtitle\": {"
2096 "\"type\": \"method\","
2097 "\"description\": \"Set the subtitle displayed by the player\","
2098 "\"transport\": \"Response\","
2099 "\"permission\": \"ControlPlayback\","
2101 "{ \"name\": \"playerid\", \"$ref\": \"Player.Id\", \"required\": true },"
2102 "{ \"name\": \"subtitle\", \"required\": true, \"type\": ["
2103 "{ \"type\": \"string\", \"enum\": [ \"previous\", \"next\", \"off\", \"on\" ] },"
2104 "{ \"type\": \"integer\", \"minimum\": 0, \"description\": \"Index of the subtitle to display\" }"
2107 "{ \"name\": \"enable\", \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to enable subtitles to be displayed after setting the new subtitle\" }"
2109 "\"returns\": \"string\""
2111 "\"Playlist.GetPlaylists\": {"
2112 "\"type\": \"method\","
2113 "\"description\": \"Returns all existing playlists\","
2114 "\"transport\": \"Response\","
2115 "\"permission\": \"ReadData\","
2118 "\"type\": \"array\","
2119 "\"uniqueItems\": true,"
2121 "\"type\": \"object\","
2123 "\"playlistid\": { \"$ref\": \"Playlist.Id\", \"required\": true },"
2124 "\"type\": { \"$ref\": \"Playlist.Type\", \"required\": true }"
2129 "\"Playlist.GetProperties\": {"
2130 "\"type\": \"method\","
2131 "\"description\": \"Retrieves the values of the given properties\","
2132 "\"transport\": \"Response\","
2133 "\"permission\": \"ReadData\","
2135 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
2136 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"Playlist.Property.Name\" } }"
2138 "\"returns\": { \"$ref\": \"Playlist.Property.Value\", \"required\": true }"
2140 "\"Playlist.GetItems\": {"
2141 "\"type\": \"method\","
2142 "\"description\": \"Get all items from playlist\","
2143 "\"transport\": \"Response\","
2144 "\"permission\": \"ReadData\","
2146 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
2147 "{ \"name\": \"properties\", \"$ref\": \"List.Fields.All\" },"
2148 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2149 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2151 "\"returns\": { \"type\": \"object\","
2153 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2154 "\"items\": { \"type\": \"array\", \"items\": { \"$ref\": \"List.Item.All\" }, \"required\": true }"
2158 "\"Playlist.Add\": {"
2159 "\"type\": \"method\","
2160 "\"description\": \"Add item(s) to playlist\","
2161 "\"transport\": \"Response\","
2162 "\"permission\": \"ControlPlayback\","
2164 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
2165 "{ \"name\": \"item\","
2167 "{ \"$ref\": \"Playlist.Item\", \"required\": true },"
2168 "{ \"type\": \"array\", \"items\": { \"$ref\": \"Playlist.Item\" }, \"required\": true }"
2170 "\"required\": true }"
2172 "\"returns\": \"string\""
2174 "\"Playlist.Insert\": {"
2175 "\"type\": \"method\","
2176 "\"description\": \"Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).\","
2177 "\"transport\": \"Response\","
2178 "\"permission\": \"ControlPlayback\","
2180 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
2181 "{ \"name\": \"position\", \"$ref\": \"Playlist.Position\", \"required\": true },"
2182 "{ \"name\": \"item\","
2184 "{ \"$ref\": \"Playlist.Item\", \"required\": true },"
2185 "{ \"type\": \"array\", \"items\": { \"$ref\": \"Playlist.Item\" }, \"required\": true }"
2187 "\"required\": true }"
2189 "\"returns\": \"string\""
2191 "\"Playlist.Remove\": {"
2192 "\"type\": \"method\","
2193 "\"description\": \"Remove item from playlist. Does not work for picture playlists (aka slideshows).\","
2194 "\"transport\": \"Response\","
2195 "\"permission\": \"ControlPlayback\","
2197 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
2198 "{ \"name\": \"position\", \"$ref\": \"Playlist.Position\", \"required\": true }"
2200 "\"returns\": \"string\""
2202 "\"Playlist.Clear\": {"
2203 "\"type\": \"method\","
2204 "\"description\": \"Clear playlist\","
2205 "\"transport\": \"Response\","
2206 "\"permission\": \"ControlPlayback\","
2208 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true }"
2210 "\"returns\": \"string\""
2212 "\"Playlist.Swap\": {"
2213 "\"type\": \"method\","
2214 "\"description\": \"Swap items in the playlist. Does not work for picture playlists (aka slideshows).\","
2215 "\"transport\": \"Response\","
2216 "\"permission\": \"ControlPlayback\","
2218 "{ \"name\": \"playlistid\", \"$ref\": \"Playlist.Id\", \"required\": true },"
2219 "{ \"name\": \"position1\", \"$ref\": \"Playlist.Position\", \"required\": true },"
2220 "{ \"name\": \"position2\", \"$ref\": \"Playlist.Position\", \"required\": true }"
2222 "\"returns\": \"string\""
2224 "\"Files.GetSources\": {"
2225 "\"type\": \"method\","
2226 "\"description\": \"Get the sources of the media windows\","
2227 "\"transport\": \"Response\","
2228 "\"permission\": \"ReadData\","
2230 "{ \"name\": \"media\", \"$ref\": \"Files.Media\", \"required\": true },"
2231 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2232 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2235 "\"type\": \"object\","
2237 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2238 "\"sources\": { \"$ref\": \"List.Items.Sources\", \"required\": true }"
2242 "\"Files.PrepareDownload\": {"
2243 "\"type\": \"method\","
2244 "\"description\": \"Provides a way to download a given file (e.g. providing an URL to the real file location)\","
2245 "\"transport\": [ \"Response\", \"FileDownloadRedirect\" ],"
2246 "\"permission\": \"ReadData\","
2248 "{ \"name\": \"path\", \"type\": \"string\", \"required\": true }"
2251 "\"type\": \"object\","
2253 "\"protocol\": { \"type\": \"string\", \"enum\": [ \"http\" ], \"required\": true },"
2254 "\"details\": { \"type\": \"any\", \"required\": true, \"description\": \"Transport specific details on how/from where to download the given file\" },"
2255 "\"mode\": { \"type\": \"string\", \"enum\": [ \"redirect\", \"direct\" ], \"required\": true, \"description\": \"Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol\" }"
2259 "\"Files.Download\": {"
2260 "\"type\": \"method\","
2261 "\"description\": \"Downloads the given file\","
2262 "\"transport\": [ \"Response\", \"FileDownloadDirect\" ],"
2263 "\"permission\": \"ReadData\","
2265 "{ \"name\": \"path\", \"type\": \"string\", \"required\": true }"
2267 "\"returns\": { \"type\": \"any\", \"required\": true }"
2269 "\"Files.GetDirectory\": {"
2270 "\"type\": \"method\","
2271 "\"description\": \"Get the directories and files in the given directory\","
2272 "\"transport\": \"Response\","
2273 "\"permission\": \"ReadData\","
2275 "{ \"name\": \"directory\", \"type\": \"string\", \"required\": true },"
2276 "{ \"name\": \"media\", \"$ref\": \"Files.Media\", \"default\": \"files\" },"
2277 "{ \"name\": \"properties\", \"$ref\": \"List.Fields.Files\" },"
2278 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" },"
2279 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\", \"description\": \"Limits are applied after getting the directory content thus retrieval is not faster when they are applied.\" }"
2282 "\"type\": \"object\","
2284 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2285 "\"files\": { \"type\": \"array\", \"items\": { \"$ref\": \"List.Item.File\" }, \"required\": true }"
2289 "\"Files.GetFileDetails\": {"
2290 "\"type\": \"method\","
2291 "\"description\": \"Get details for a specific file\","
2292 "\"transport\": \"Response\","
2293 "\"permission\": \"ReadData\","
2295 "{ \"name\": \"file\", \"type\": \"string\", \"required\": true, \"description\": \"Full path to the file\" },"
2296 "{ \"name\": \"media\", \"$ref\": \"Files.Media\", \"default\": \"files\" },"
2297 "{ \"name\": \"properties\", \"$ref\": \"List.Fields.Files\" }"
2300 "\"type\": \"object\","
2302 "\"filedetails\": { \"$ref\": \"List.Item.File\", \"required\": true }"
2306 "\"AudioLibrary.GetArtists\": {"
2307 "\"type\": \"method\","
2308 "\"description\": \"Retrieve all artists\","
2309 "\"transport\": \"Response\","
2310 "\"permission\": \"ReadData\","
2312 "{ \"name\": \"albumartistsonly\", \"$ref\": \"Optional.Boolean\", \"description\": \"Whether or not to include artists only appearing in compilations. If the parameter is not passed or is passed as null the GUI setting will be used\" },"
2313 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Artist\" },"
2314 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2315 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" },"
2316 "{ \"name\": \"filter\","
2318 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2319 "{ \"type\": \"object\", \"properties\": { \"genre\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2320 "{ \"type\": \"object\", \"properties\": { \"albumid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2321 "{ \"type\": \"object\", \"properties\": { \"album\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2322 "{ \"type\": \"object\", \"properties\": { \"songid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2323 "{ \"$ref\": \"List.Filter.Artists\" }"
2328 "\"type\": \"object\","
2330 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2331 "\"artists\": { \"type\": \"array\","
2332 "\"items\": { \"$ref\": \"Audio.Details.Artist\" }"
2337 "\"AudioLibrary.GetArtistDetails\": {"
2338 "\"type\": \"method\","
2339 "\"description\": \"Retrieve details about a specific artist\","
2340 "\"transport\": \"Response\","
2341 "\"permission\": \"ReadData\","
2343 "{ \"name\": \"artistid\", \"$ref\": \"Library.Id\", \"required\": true },"
2344 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Artist\" }"
2346 "\"returns\": { \"type\": \"object\","
2348 "\"artistdetails\": { \"$ref\": \"Audio.Details.Artist\" }"
2352 "\"AudioLibrary.GetAlbums\": {"
2353 "\"type\": \"method\","
2354 "\"description\": \"Retrieve all albums from specified artist or genre\","
2355 "\"transport\": \"Response\","
2356 "\"permission\": \"ReadData\","
2358 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Album\" },"
2359 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2360 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" },"
2361 "{ \"name\": \"filter\","
2363 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2364 "{ \"type\": \"object\", \"properties\": { \"genre\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2365 "{ \"type\": \"object\", \"properties\": { \"artistid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2366 "{ \"type\": \"object\", \"properties\": { \"artist\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2367 "{ \"$ref\": \"List.Filter.Albums\" }"
2372 "\"type\": \"object\","
2374 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2375 "\"albums\": { \"type\": \"array\","
2376 "\"items\": { \"$ref\": \"Audio.Details.Album\" }"
2381 "\"AudioLibrary.GetAlbumDetails\": {"
2382 "\"type\": \"method\","
2383 "\"description\": \"Retrieve details about a specific album\","
2384 "\"transport\": \"Response\","
2385 "\"permission\": \"ReadData\","
2387 "{ \"name\": \"albumid\", \"$ref\": \"Library.Id\", \"required\": true },"
2388 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Album\" }"
2390 "\"returns\": { \"type\": \"object\","
2392 "\"albumdetails\": { \"$ref\": \"Audio.Details.Album\" }"
2396 "\"AudioLibrary.GetSongs\": {"
2397 "\"type\": \"method\","
2398 "\"description\": \"Retrieve all songs from specified album, artist or genre\","
2399 "\"transport\": \"Response\","
2400 "\"permission\": \"ReadData\","
2402 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Song\" },"
2403 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2404 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" },"
2405 "{ \"name\": \"filter\","
2407 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2408 "{ \"type\": \"object\", \"properties\": { \"genre\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2409 "{ \"type\": \"object\", \"properties\": { \"artistid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2410 "{ \"type\": \"object\", \"properties\": { \"artist\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2411 "{ \"type\": \"object\", \"properties\": { \"albumid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2412 "{ \"type\": \"object\", \"properties\": { \"album\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2413 "{ \"$ref\": \"List.Filter.Songs\" }"
2418 "\"type\": \"object\","
2420 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2421 "\"songs\": { \"type\": \"array\","
2422 "\"items\": { \"$ref\": \"Audio.Details.Song\" }"
2427 "\"AudioLibrary.GetSongDetails\": {"
2428 "\"type\": \"method\","
2429 "\"description\": \"Retrieve details about a specific song\","
2430 "\"transport\": \"Response\","
2431 "\"permission\": \"ReadData\","
2433 "{ \"name\": \"songid\", \"$ref\": \"Library.Id\", \"required\": true },"
2434 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Song\" }"
2436 "\"returns\": { \"type\": \"object\","
2438 "\"songdetails\": { \"$ref\": \"Audio.Details.Song\" }"
2442 "\"AudioLibrary.GetRecentlyAddedAlbums\": {"
2443 "\"type\": \"method\","
2444 "\"description\": \"Retrieve recently added albums\","
2445 "\"transport\": \"Response\","
2446 "\"permission\": \"ReadData\","
2448 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Album\" },"
2449 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2450 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2453 "\"type\": \"object\","
2455 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2456 "\"albums\": { \"type\": \"array\","
2457 "\"items\": { \"$ref\": \"Audio.Details.Album\" }"
2462 "\"AudioLibrary.GetRecentlyAddedSongs\": {"
2463 "\"type\": \"method\","
2464 "\"description\": \"Retrieve recently added songs\","
2465 "\"transport\": \"Response\","
2466 "\"permission\": \"ReadData\","
2468 "{ \"name\": \"albumlimit\", \"$ref\": \"List.Amount\", \"description\": \"The amount of recently added albums from which to return the songs\" },"
2469 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Song\" },"
2470 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2471 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2474 "\"type\": \"object\","
2476 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2477 "\"songs\": { \"type\": \"array\","
2478 "\"items\": { \"$ref\": \"Audio.Details.Song\" }"
2483 "\"AudioLibrary.GetRecentlyPlayedAlbums\": {"
2484 "\"type\": \"method\","
2485 "\"description\": \"Retrieve recently played albums\","
2486 "\"transport\": \"Response\","
2487 "\"permission\": \"ReadData\","
2489 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Album\" },"
2490 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2491 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2494 "\"type\": \"object\","
2496 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2497 "\"albums\": { \"type\": \"array\","
2498 "\"items\": { \"$ref\": \"Audio.Details.Album\" }"
2503 "\"AudioLibrary.GetRecentlyPlayedSongs\": {"
2504 "\"type\": \"method\","
2505 "\"description\": \"Retrieve recently played songs\","
2506 "\"transport\": \"Response\","
2507 "\"permission\": \"ReadData\","
2509 "{ \"name\": \"properties\", \"$ref\": \"Audio.Fields.Song\" },"
2510 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2511 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2514 "\"type\": \"object\","
2516 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2517 "\"songs\": { \"type\": \"array\","
2518 "\"items\": { \"$ref\": \"Audio.Details.Song\" }"
2523 "\"AudioLibrary.GetGenres\": {"
2524 "\"type\": \"method\","
2525 "\"description\": \"Retrieve all genres\","
2526 "\"transport\": \"Response\","
2527 "\"permission\": \"ReadData\","
2529 "{ \"name\": \"properties\", \"$ref\": \"Library.Fields.Genre\" },"
2530 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2531 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2534 "\"type\": \"object\","
2536 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2537 "\"genres\": { \"type\": \"array\", \"required\": true,"
2538 "\"items\": { \"$ref\": \"Library.Details.Genre\" }"
2543 "\"AudioLibrary.SetArtistDetails\": {"
2544 "\"type\": \"method\","
2545 "\"description\": \"Update the given artist with the given details\","
2546 "\"transport\": \"Response\","
2547 "\"permission\": \"UpdateData\","
2549 "{ \"name\": \"artistid\", \"$ref\": \"Library.Id\", \"required\": true },"
2550 "{ \"name\": \"artist\", \"$ref\": \"Optional.String\" },"
2551 "{ \"name\": \"instrument\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2552 "{ \"name\": \"style\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2553 "{ \"name\": \"mood\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2554 "{ \"name\": \"born\", \"$ref\": \"Optional.String\" },"
2555 "{ \"name\": \"formed\", \"$ref\": \"Optional.String\" },"
2556 "{ \"name\": \"description\", \"$ref\": \"Optional.String\" },"
2557 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2558 "{ \"name\": \"died\", \"$ref\": \"Optional.String\" },"
2559 "{ \"name\": \"disbanded\", \"$ref\": \"Optional.String\" },"
2560 "{ \"name\": \"yearsactive\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null }"
2562 "\"returns\": \"string\""
2564 "\"AudioLibrary.SetAlbumDetails\": {"
2565 "\"type\": \"method\","
2566 "\"description\": \"Update the given album with the given details\","
2567 "\"transport\": \"Response\","
2568 "\"permission\": \"UpdateData\","
2570 "{ \"name\": \"albumid\", \"$ref\": \"Library.Id\", \"required\": true },"
2571 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
2572 "{ \"name\": \"artist\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2573 "{ \"name\": \"description\", \"$ref\": \"Optional.String\" },"
2574 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2575 "{ \"name\": \"theme\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2576 "{ \"name\": \"mood\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2577 "{ \"name\": \"style\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2578 "{ \"name\": \"type\", \"$ref\": \"Optional.String\" },"
2579 "{ \"name\": \"albumlabel\", \"$ref\": \"Optional.String\" },"
2580 "{ \"name\": \"rating\", \"$ref\": \"Optional.Integer\" },"
2581 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" }"
2583 "\"returns\": \"string\""
2585 "\"AudioLibrary.SetSongDetails\": {"
2586 "\"type\": \"method\","
2587 "\"description\": \"Update the given song with the given details\","
2588 "\"transport\": \"Response\","
2589 "\"permission\": \"UpdateData\","
2591 "{ \"name\": \"songid\", \"$ref\": \"Library.Id\", \"required\": true },"
2592 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
2593 "{ \"name\": \"artist\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2594 "{ \"name\": \"albumartist\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2595 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
2596 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" },"
2597 "{ \"name\": \"rating\", \"$ref\": \"Optional.Integer\" },"
2598 "{ \"name\": \"album\", \"$ref\": \"Optional.String\" },"
2599 "{ \"name\": \"track\", \"$ref\": \"Optional.Integer\" },"
2600 "{ \"name\": \"disc\", \"$ref\": \"Optional.Integer\" },"
2601 "{ \"name\": \"duration\", \"$ref\": \"Optional.Integer\" },"
2602 "{ \"name\": \"comment\", \"$ref\": \"Optional.String\" },"
2603 "{ \"name\": \"musicbrainztrackid\", \"$ref\": \"Optional.String\" },"
2604 "{ \"name\": \"musicbrainzartistid\", \"$ref\": \"Optional.String\" },"
2605 "{ \"name\": \"musicbrainzalbumid\", \"$ref\": \"Optional.String\" },"
2606 "{ \"name\": \"musicbrainzalbumartistid\", \"$ref\": \"Optional.String\" }"
2608 "\"returns\": \"string\""
2610 "\"AudioLibrary.Scan\": {"
2611 "\"type\": \"method\","
2612 "\"description\": \"Scans the audio sources for new library items\","
2613 "\"transport\": \"Response\","
2614 "\"permission\": \"UpdateData\","
2616 "{ \"name\": \"directory\", \"type\": \"string\", \"default\": \"\" }"
2618 "\"returns\": \"string\""
2620 "\"AudioLibrary.Export\": {"
2621 "\"type\": \"method\","
2622 "\"description\": \"Exports all items from the audio library\","
2623 "\"transport\": \"Response\","
2624 "\"permission\": \"WriteFile\","
2626 "{ \"name\": \"options\", \"type\": ["
2627 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
2629 "\"path\": { \"type\": \"string\", \"required\": true, \"minLength\": 1, \"description\": \"Path to the directory to where the data should be exported\" }"
2632 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
2634 "\"overwrite\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to overwrite existing exported files\" },"
2635 "\"images\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to export thumbnails and fanart images\" }"
2641 "\"returns\": \"string\""
2643 "\"AudioLibrary.Clean\": {"
2644 "\"type\": \"method\","
2645 "\"description\": \"Cleans the audio library from non-existent items\","
2646 "\"transport\": \"Response\","
2647 "\"permission\": \"RemoveData\","
2649 "\"returns\": \"string\""
2651 "\"VideoLibrary.GetMovies\": {"
2652 "\"type\": \"method\","
2653 "\"description\": \"Retrieve all movies\","
2654 "\"transport\": \"Response\","
2655 "\"permission\": \"ReadData\","
2657 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Movie\" },"
2658 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2659 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" },"
2660 "{ \"name\": \"filter\","
2662 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2663 "{ \"type\": \"object\", \"properties\": { \"genre\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2664 "{ \"type\": \"object\", \"properties\": { \"year\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true } }, \"additionalProperties\": false },"
2665 "{ \"type\": \"object\", \"properties\": { \"actor\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2666 "{ \"type\": \"object\", \"properties\": { \"director\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2667 "{ \"type\": \"object\", \"properties\": { \"studio\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2668 "{ \"type\": \"object\", \"properties\": { \"country\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2669 "{ \"type\": \"object\", \"properties\": { \"setid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2670 "{ \"type\": \"object\", \"properties\": { \"set\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2671 "{ \"type\": \"object\", \"properties\": { \"tag\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2672 "{ \"$ref\": \"List.Filter.Movies\" }"
2677 "\"type\": \"object\","
2679 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2680 "\"movies\": { \"type\": \"array\","
2681 "\"items\": { \"$ref\": \"Video.Details.Movie\" }"
2686 "\"VideoLibrary.GetMovieDetails\": {"
2687 "\"type\": \"method\","
2688 "\"description\": \"Retrieve details about a specific movie\","
2689 "\"transport\": \"Response\","
2690 "\"permission\": \"ReadData\","
2692 "{ \"name\": \"movieid\", \"$ref\": \"Library.Id\", \"required\": true },"
2693 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Movie\" }"
2695 "\"returns\": { \"type\": \"object\","
2697 "\"moviedetails\": { \"$ref\": \"Video.Details.Movie\" }"
2701 "\"VideoLibrary.GetMovieSets\": {"
2702 "\"type\": \"method\","
2703 "\"description\": \"Retrieve all movie sets\","
2704 "\"transport\": \"Response\","
2705 "\"permission\": \"ReadData\","
2707 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MovieSet\" },"
2708 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2709 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2711 "\"returns\": { \"type\": \"object\","
2713 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2714 "\"sets\": { \"type\": \"array\","
2715 "\"items\": { \"$ref\": \"Video.Details.MovieSet\" }"
2720 "\"VideoLibrary.GetMovieSetDetails\": {"
2721 "\"type\": \"method\","
2722 "\"description\": \"Retrieve details about a specific movie set\","
2723 "\"transport\": \"Response\","
2724 "\"permission\": \"ReadData\","
2726 "{ \"name\": \"setid\", \"$ref\": \"Library.Id\", \"required\": true },"
2727 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MovieSet\" },"
2728 "{ \"name\": \"movies\", \"type\": \"object\","
2730 "\"properties\": { \"$ref\": \"Video.Fields.Movie\" },"
2731 "\"limits\": { \"$ref\": \"List.Limits\" },"
2732 "\"sort\": { \"$ref\": \"List.Sort\" }"
2736 "\"returns\": { \"type\": \"object\","
2738 "\"setdetails\": { \"$ref\": \"Video.Details.MovieSet.Extended\" }"
2742 "\"VideoLibrary.GetTVShows\": {"
2743 "\"type\": \"method\","
2744 "\"description\": \"Retrieve all tv shows\","
2745 "\"transport\": \"Response\","
2746 "\"permission\": \"ReadData\","
2748 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.TVShow\" },"
2749 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2750 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" },"
2751 "{ \"name\": \"filter\","
2753 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2754 "{ \"type\": \"object\", \"properties\": { \"genre\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2755 "{ \"type\": \"object\", \"properties\": { \"year\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true } }, \"additionalProperties\": false },"
2756 "{ \"type\": \"object\", \"properties\": { \"actor\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2757 "{ \"type\": \"object\", \"properties\": { \"studio\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2758 "{ \"type\": \"object\", \"properties\": { \"tag\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2759 "{ \"$ref\": \"List.Filter.TVShows\" }"
2763 "\"returns\": { \"type\": \"object\","
2765 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2766 "\"tvshows\": { \"type\": \"array\","
2767 "\"items\": { \"$ref\": \"Video.Details.TVShow\" }"
2772 "\"VideoLibrary.GetTVShowDetails\": {"
2773 "\"type\": \"method\","
2774 "\"description\": \"Retrieve details about a specific tv show\","
2775 "\"transport\": \"Response\","
2776 "\"permission\": \"ReadData\","
2778 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true },"
2779 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.TVShow\" }"
2781 "\"returns\": { \"type\": \"object\","
2783 "\"tvshowdetails\": { \"$ref\": \"Video.Details.TVShow\" }"
2787 "\"VideoLibrary.GetSeasons\": {"
2788 "\"type\": \"method\","
2789 "\"description\": \"Retrieve all tv seasons\","
2790 "\"transport\": \"Response\","
2791 "\"permission\": \"ReadData\","
2793 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true },"
2794 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Season\" },"
2795 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2796 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2798 "\"returns\": { \"type\": \"object\","
2800 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2801 "\"seasons\": { \"type\": \"array\","
2802 "\"items\": { \"$ref\": \"Video.Details.Season\" }"
2807 "\"VideoLibrary.GetSeasonDetails\": {"
2808 "\"type\": \"method\","
2809 "\"description\": \"Retrieve details about a specific tv show season\","
2810 "\"transport\": \"Response\","
2811 "\"permission\": \"ReadData\","
2813 "{ \"name\": \"seasonid\", \"$ref\": \"Library.Id\", \"required\": true },"
2814 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Season\" }"
2816 "\"returns\": { \"type\": \"object\","
2818 "\"seasondetails\": { \"$ref\": \"Video.Details.Season\" }"
2822 "\"VideoLibrary.GetEpisodes\": {"
2823 "\"type\": \"method\","
2824 "\"description\": \"Retrieve all tv show episodes\","
2825 "\"transport\": \"Response\","
2826 "\"permission\": \"ReadData\","
2828 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\" },"
2829 "{ \"name\": \"season\", \"type\": \"integer\", \"minimum\": 0, \"default\": -1 },"
2830 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Episode\" },"
2831 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2832 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" },"
2833 "{ \"name\": \"filter\","
2835 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true, \"description\": \"Requires tvshowid to be set\" } }, \"additionalProperties\": false },"
2836 "{ \"type\": \"object\", \"properties\": { \"genre\": { \"type\": \"string\", \"minLength\": 1, \"required\": true, \"description\": \"Requires tvshowid to be set\" } }, \"additionalProperties\": false },"
2837 "{ \"type\": \"object\", \"properties\": { \"year\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true } }, \"additionalProperties\": false },"
2838 "{ \"type\": \"object\", \"properties\": { \"actor\": { \"type\": \"string\", \"minLength\": 1, \"required\": true, \"description\": \"Requires tvshowid to be set\" } }, \"additionalProperties\": false },"
2839 "{ \"type\": \"object\", \"properties\": { \"director\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2840 "{ \"$ref\": \"List.Filter.Episodes\" }"
2844 "\"returns\": { \"type\": \"object\","
2846 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2847 "\"episodes\": { \"type\": \"array\","
2848 "\"items\": { \"$ref\": \"Video.Details.Episode\" }"
2853 "\"VideoLibrary.GetEpisodeDetails\": {"
2854 "\"type\": \"method\","
2855 "\"description\": \"Retrieve details about a specific tv show episode\","
2856 "\"transport\": \"Response\","
2857 "\"permission\": \"ReadData\","
2859 "{ \"name\": \"episodeid\", \"$ref\": \"Library.Id\", \"required\": true },"
2860 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Episode\" }"
2862 "\"returns\": { \"type\": \"object\","
2864 "\"episodedetails\": { \"$ref\": \"Video.Details.Episode\" }"
2868 "\"VideoLibrary.GetMusicVideos\": {"
2869 "\"type\": \"method\","
2870 "\"description\": \"Retrieve all music videos\","
2871 "\"transport\": \"Response\","
2872 "\"permission\": \"ReadData\","
2874 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MusicVideo\" },"
2875 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2876 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" },"
2877 "{ \"name\": \"filter\","
2879 "{ \"type\": \"object\", \"properties\": { \"artist\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2880 "{ \"type\": \"object\", \"properties\": { \"genreid\": { \"$ref\": \"Library.Id\", \"required\": true } }, \"additionalProperties\": false },"
2881 "{ \"type\": \"object\", \"properties\": { \"genre\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2882 "{ \"type\": \"object\", \"properties\": { \"year\": { \"type\": \"integer\", \"minimum\": 0, \"required\": true } }, \"additionalProperties\": false },"
2883 "{ \"type\": \"object\", \"properties\": { \"director\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2884 "{ \"type\": \"object\", \"properties\": { \"studio\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2885 "{ \"type\": \"object\", \"properties\": { \"tag\": { \"type\": \"string\", \"minLength\": 1, \"required\": true } }, \"additionalProperties\": false },"
2886 "{ \"$ref\": \"List.Filter.MusicVideos\" }"
2890 "\"returns\": { \"type\": \"object\","
2892 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2893 "\"musicvideos\": { \"type\": \"array\","
2894 "\"items\": { \"$ref\": \"Video.Details.MusicVideo\" }"
2899 "\"VideoLibrary.GetMusicVideoDetails\": {"
2900 "\"type\": \"method\","
2901 "\"description\": \"Retrieve details about a specific music video\","
2902 "\"transport\": \"Response\","
2903 "\"permission\": \"ReadData\","
2905 "{ \"name\": \"musicvideoid\", \"$ref\": \"Library.Id\", \"required\": true },"
2906 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MusicVideo\" }"
2908 "\"returns\": { \"type\": \"object\","
2910 "\"musicvideodetails\": { \"$ref\": \"Video.Details.MusicVideo\" }"
2914 "\"VideoLibrary.GetRecentlyAddedMovies\": {"
2915 "\"type\": \"method\","
2916 "\"description\": \"Retrieve all recently added movies\","
2917 "\"transport\": \"Response\","
2918 "\"permission\": \"ReadData\","
2920 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Movie\" },"
2921 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2922 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2924 "\"returns\": { \"type\": \"object\","
2926 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2927 "\"movies\": { \"type\": \"array\","
2928 "\"items\": { \"$ref\": \"Video.Details.Movie\" }"
2933 "\"VideoLibrary.GetRecentlyAddedEpisodes\": {"
2934 "\"type\": \"method\","
2935 "\"description\": \"Retrieve all recently added tv episodes\","
2936 "\"transport\": \"Response\","
2937 "\"permission\": \"ReadData\","
2939 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.Episode\" },"
2940 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2941 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2943 "\"returns\": { \"type\": \"object\","
2945 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2946 "\"episodes\": { \"type\": \"array\","
2947 "\"items\": { \"$ref\": \"Video.Details.Episode\" }"
2952 "\"VideoLibrary.GetRecentlyAddedMusicVideos\": {"
2953 "\"type\": \"method\","
2954 "\"description\": \"Retrieve all recently added music videos\","
2955 "\"transport\": \"Response\","
2956 "\"permission\": \"ReadData\","
2958 "{ \"name\": \"properties\", \"$ref\": \"Video.Fields.MusicVideo\" },"
2959 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2960 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2962 "\"returns\": { \"type\": \"object\","
2964 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2965 "\"musicvideos\": { \"type\": \"array\","
2966 "\"items\": { \"$ref\": \"Video.Details.MusicVideo\" }"
2971 "\"VideoLibrary.GetGenres\": {"
2972 "\"type\": \"method\","
2973 "\"description\": \"Retrieve all genres\","
2974 "\"transport\": \"Response\","
2975 "\"permission\": \"ReadData\","
2977 "{ \"name\": \"type\", \"type\": \"string\", \"required\": true, \"enum\": [ \"movie\", \"tvshow\", \"musicvideo\"] },"
2978 "{ \"name\": \"properties\", \"$ref\": \"Library.Fields.Genre\" },"
2979 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
2980 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
2983 "\"type\": \"object\","
2985 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
2986 "\"genres\": { \"type\": \"array\", \"required\": true,"
2987 "\"items\": { \"$ref\": \"Library.Details.Genre\" }"
2992 "\"VideoLibrary.SetMovieDetails\": {"
2993 "\"type\": \"method\","
2994 "\"description\": \"Update the given movie with the given details\","
2995 "\"transport\": \"Response\","
2996 "\"permission\": \"UpdateData\","
2998 "{ \"name\": \"movieid\", \"$ref\": \"Library.Id\", \"required\": true },"
2999 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
3000 "{ \"name\": \"playcount\", \"$ref\": \"Optional.Integer\" },"
3001 "{ \"name\": \"runtime\", \"$ref\": \"Optional.Integer\", \"description\": \"Runtime in seconds\" },"
3002 "{ \"name\": \"director\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3003 "{ \"name\": \"studio\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3004 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" },"
3005 "{ \"name\": \"plot\", \"$ref\": \"Optional.String\" },"
3006 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3007 "{ \"name\": \"rating\", \"$ref\": \"Optional.Number\" },"
3008 "{ \"name\": \"mpaa\", \"$ref\": \"Optional.String\" },"
3009 "{ \"name\": \"imdbnumber\", \"$ref\": \"Optional.String\" },"
3010 "{ \"name\": \"votes\", \"$ref\": \"Optional.String\" },"
3011 "{ \"name\": \"lastplayed\", \"$ref\": \"Optional.String\" },"
3012 "{ \"name\": \"originaltitle\", \"$ref\": \"Optional.String\" },"
3013 "{ \"name\": \"trailer\", \"$ref\": \"Optional.String\" },"
3014 "{ \"name\": \"tagline\", \"$ref\": \"Optional.String\" },"
3015 "{ \"name\": \"plotoutline\", \"$ref\": \"Optional.String\" },"
3016 "{ \"name\": \"writer\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3017 "{ \"name\": \"country\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3018 "{ \"name\": \"top250\", \"$ref\": \"Optional.Integer\" },"
3019 "{ \"name\": \"sorttitle\", \"$ref\": \"Optional.String\" },"
3020 "{ \"name\": \"set\", \"$ref\": \"Optional.String\" },"
3021 "{ \"name\": \"showlink\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3022 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
3023 "{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" },"
3024 "{ \"name\": \"tag\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3025 "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork.Set\", \"required\": true } ], \"default\": null },"
3026 "{ \"name\": \"resume\", \"type\": [ \"null\", { \"$ref\": \"Video.Resume\", \"required\": true } ], \"default\": null }"
3028 "\"returns\": \"string\""
3030 "\"VideoLibrary.SetMovieSetDetails\": {"
3031 "\"type\": \"method\","
3032 "\"description\": \"Update the given movie set with the given details\","
3033 "\"transport\": \"Response\","
3034 "\"permission\": \"UpdateData\","
3036 "{ \"name\": \"setid\", \"$ref\": \"Library.Id\", \"required\": true },"
3037 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
3038 "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork.Set\", \"required\": true } ], \"default\": null }"
3040 "\"returns\": \"string\""
3042 "\"VideoLibrary.SetTVShowDetails\": {"
3043 "\"type\": \"method\","
3044 "\"description\": \"Update the given tvshow with the given details\","
3045 "\"transport\": \"Response\","
3046 "\"permission\": \"UpdateData\","
3048 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true },"
3049 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
3050 "{ \"name\": \"playcount\", \"$ref\": \"Optional.Integer\" },"
3051 "{ \"name\": \"studio\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3052 "{ \"name\": \"plot\", \"$ref\": \"Optional.String\" },"
3053 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3054 "{ \"name\": \"rating\", \"$ref\": \"Optional.Number\" },"
3055 "{ \"name\": \"mpaa\", \"$ref\": \"Optional.String\" },"
3056 "{ \"name\": \"imdbnumber\", \"$ref\": \"Optional.String\" },"
3057 "{ \"name\": \"premiered\", \"$ref\": \"Optional.String\" },"
3058 "{ \"name\": \"votes\", \"$ref\": \"Optional.String\" },"
3059 "{ \"name\": \"lastplayed\", \"$ref\": \"Optional.String\" },"
3060 "{ \"name\": \"originaltitle\", \"$ref\": \"Optional.String\" },"
3061 "{ \"name\": \"sorttitle\", \"$ref\": \"Optional.String\" },"
3062 "{ \"name\": \"episodeguide\", \"$ref\": \"Optional.String\" },"
3063 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
3064 "{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" },"
3065 "{ \"name\": \"tag\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3066 "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork.Set\", \"required\": true } ], \"default\": null }"
3068 "\"returns\": \"string\""
3070 "\"VideoLibrary.SetSeasonDetails\": {"
3071 "\"type\": \"method\","
3072 "\"description\": \"Update the given season with the given details\","
3073 "\"transport\": \"Response\","
3074 "\"permission\": \"UpdateData\","
3076 "{ \"name\": \"seasonid\", \"$ref\": \"Library.Id\", \"required\": true },"
3077 "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork.Set\", \"required\": true } ], \"default\": null }"
3079 "\"returns\": \"string\""
3081 "\"VideoLibrary.SetEpisodeDetails\": {"
3082 "\"type\": \"method\","
3083 "\"description\": \"Update the given episode with the given details\","
3084 "\"transport\": \"Response\","
3085 "\"permission\": \"UpdateData\","
3087 "{ \"name\": \"episodeid\", \"$ref\": \"Library.Id\", \"required\": true },"
3088 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
3089 "{ \"name\": \"playcount\", \"$ref\": \"Optional.Integer\" },"
3090 "{ \"name\": \"runtime\", \"$ref\": \"Optional.Integer\", \"description\": \"Runtime in seconds\" },"
3091 "{ \"name\": \"director\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3092 "{ \"name\": \"plot\", \"$ref\": \"Optional.String\" },"
3093 "{ \"name\": \"rating\", \"$ref\": \"Optional.Number\" },"
3094 "{ \"name\": \"votes\", \"$ref\": \"Optional.String\" },"
3095 "{ \"name\": \"lastplayed\", \"$ref\": \"Optional.String\" },"
3096 "{ \"name\": \"writer\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3097 "{ \"name\": \"firstaired\", \"$ref\": \"Optional.String\" },"
3098 "{ \"name\": \"productioncode\", \"$ref\": \"Optional.String\" },"
3099 "{ \"name\": \"season\", \"$ref\": \"Optional.Integer\" },"
3100 "{ \"name\": \"episode\", \"$ref\": \"Optional.Integer\" },"
3101 "{ \"name\": \"originaltitle\", \"$ref\": \"Optional.String\" },"
3102 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
3103 "{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" },"
3104 "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork.Set\", \"required\": true } ], \"default\": null },"
3105 "{ \"name\": \"resume\", \"type\": [ \"null\", { \"$ref\": \"Video.Resume\", \"required\": true } ], \"default\": null }"
3107 "\"returns\": \"string\""
3109 "\"VideoLibrary.SetMusicVideoDetails\": {"
3110 "\"type\": \"method\","
3111 "\"description\": \"Update the given music video with the given details\","
3112 "\"transport\": \"Response\","
3113 "\"permission\": \"UpdateData\","
3115 "{ \"name\": \"musicvideoid\", \"$ref\": \"Library.Id\", \"required\": true },"
3116 "{ \"name\": \"title\", \"$ref\": \"Optional.String\" },"
3117 "{ \"name\": \"playcount\", \"$ref\": \"Optional.Integer\" },"
3118 "{ \"name\": \"runtime\", \"$ref\": \"Optional.Integer\", \"description\": \"Runtime in seconds\" },"
3119 "{ \"name\": \"director\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3120 "{ \"name\": \"studio\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3121 "{ \"name\": \"year\", \"$ref\": \"Optional.Integer\" },"
3122 "{ \"name\": \"plot\", \"$ref\": \"Optional.String\" },"
3123 "{ \"name\": \"album\", \"$ref\": \"Optional.String\" },"
3124 "{ \"name\": \"artist\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ] },"
3125 "{ \"name\": \"genre\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3126 "{ \"name\": \"track\", \"$ref\": \"Optional.Integer\" },"
3127 "{ \"name\": \"lastplayed\", \"$ref\": \"Optional.String\" },"
3128 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" },"
3129 "{ \"name\": \"fanart\", \"$ref\": \"Optional.String\" },"
3130 "{ \"name\": \"tag\", \"type\": [ \"null\", { \"$ref\": \"Array.String\", \"required\": true } ], \"default\": null },"
3131 "{ \"name\": \"art\", \"type\": [ \"null\", { \"$ref\": \"Media.Artwork.Set\", \"required\": true } ], \"default\": null },"
3132 "{ \"name\": \"resume\", \"type\": [ \"null\", { \"$ref\": \"Video.Resume\", \"required\": true } ], \"default\": null }"
3134 "\"returns\": \"string\""
3136 "\"VideoLibrary.RemoveMovie\": {"
3137 "\"type\": \"method\","
3138 "\"description\": \"Removes the given movie from the library\","
3139 "\"transport\": \"Response\","
3140 "\"permission\": \"RemoveData\","
3142 "{ \"name\": \"movieid\", \"$ref\": \"Library.Id\", \"required\": true }"
3144 "\"returns\": \"string\""
3146 "\"VideoLibrary.RemoveTVShow\": {"
3147 "\"type\": \"method\","
3148 "\"description\": \"Removes the given tv show from the library\","
3149 "\"transport\": \"Response\","
3150 "\"permission\": \"RemoveData\","
3152 "{ \"name\": \"tvshowid\", \"$ref\": \"Library.Id\", \"required\": true }"
3154 "\"returns\": \"string\""
3156 "\"VideoLibrary.RemoveEpisode\": {"
3157 "\"type\": \"method\","
3158 "\"description\": \"Removes the given episode from the library\","
3159 "\"transport\": \"Response\","
3160 "\"permission\": \"RemoveData\","
3162 "{ \"name\": \"episodeid\", \"$ref\": \"Library.Id\", \"required\": true }"
3164 "\"returns\": \"string\""
3166 "\"VideoLibrary.RemoveMusicVideo\": {"
3167 "\"type\": \"method\","
3168 "\"description\": \"Removes the given music video from the library\","
3169 "\"transport\": \"Response\","
3170 "\"permission\": \"RemoveData\","
3172 "{ \"name\": \"musicvideoid\", \"$ref\": \"Library.Id\", \"required\": true }"
3174 "\"returns\": \"string\""
3176 "\"VideoLibrary.Scan\": {"
3177 "\"type\": \"method\","
3178 "\"description\": \"Scans the video sources for new library items\","
3179 "\"transport\": \"Response\","
3180 "\"permission\": \"UpdateData\","
3182 "{ \"name\": \"directory\", \"type\": \"string\", \"default\": \"\" }"
3184 "\"returns\": \"string\""
3186 "\"VideoLibrary.Export\": {"
3187 "\"type\": \"method\","
3188 "\"description\": \"Exports all items from the video library\","
3189 "\"transport\": \"Response\","
3190 "\"permission\": \"WriteFile\","
3192 "{ \"name\": \"options\", \"type\": ["
3193 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
3195 "\"path\": { \"type\": \"string\", \"required\": true, \"minLength\": 1, \"description\": \"Path to the directory to where the data should be exported\" }"
3198 "{ \"type\": \"object\", \"required\": true, \"additionalProperties\": false,"
3200 "\"overwrite\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to overwrite existing exported files\" },"
3201 "\"images\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to export thumbnails and fanart images\" },"
3202 "\"actorthumbs\": { \"type\": \"boolean\", \"default\": false, \"description\": \"Whether to export actor thumbnails\" }"
3208 "\"returns\": \"string\""
3210 "\"VideoLibrary.Clean\": {"
3211 "\"type\": \"method\","
3212 "\"description\": \"Cleans the video library from non-existent items\","
3213 "\"transport\": \"Response\","
3214 "\"permission\": \"RemoveData\","
3216 "\"returns\": \"string\""
3218 "\"GUI.ActivateWindow\": {"
3219 "\"type\": \"method\","
3220 "\"description\": \"Activates the given window\","
3221 "\"transport\": \"Response\","
3222 "\"permission\": \"ControlGUI\","
3224 "{ \"name\": \"window\", \"$ref\": \"GUI.Window\", \"required\": true },"
3225 "{ \"name\": \"parameters\", \"type\": \"array\", \"items\": { \"type\": \"string\", \"minLength\": 1, \"required\": true }, \"minItems\": 1 }"
3227 "\"returns\": \"string\""
3229 "\"GUI.ShowNotification\": {"
3230 "\"type\": \"method\","
3231 "\"description\": \"Shows a GUI notification\","
3232 "\"transport\": \"Response\","
3233 "\"permission\": \"ControlGUI\","
3235 "{ \"name\": \"title\", \"type\": \"string\", \"required\": true },"
3236 "{ \"name\": \"message\", \"type\": \"string\", \"required\": true },"
3237 "{ \"name\": \"image\", \"type\": ["
3238 "{ \"type\": \"string\", \"required\": true, \"enum\": [ \"info\", \"warning\", \"error\" ] },"
3239 "{ \"type\": \"string\", \"required\": true }"
3240 "], \"default\": \"\""
3242 "{ \"name\": \"displaytime\", \"type\": \"integer\", \"minimum\": 1500, \"default\": 5000, \"description\": \"The time in milliseconds the notification will be visible\" }"
3244 "\"returns\": \"string\""
3246 "\"GUI.GetProperties\": {"
3247 "\"type\": \"method\","
3248 "\"description\": \"Retrieves the values of the given properties\","
3249 "\"transport\": \"Response\","
3250 "\"permission\": \"ReadData\","
3252 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"GUI.Property.Name\" } }"
3254 "\"returns\": { \"$ref\": \"GUI.Property.Value\", \"required\": true }"
3256 "\"GUI.SetFullscreen\": {"
3257 "\"type\": \"method\","
3258 "\"description\": \"Toggle fullscreen/GUI\","
3259 "\"transport\": \"Response\","
3260 "\"permission\": \"ControlGUI\","
3262 "{ \"name\": \"fullscreen\", \"required\": true, \"$ref\": \"Global.Toggle\" }"
3264 "\"returns\": { \"type\": \"boolean\", \"description\": \"Fullscreen state\" }"
3266 "\"GUI.SetStereoscopicMode\": {"
3267 "\"type\": \"method\","
3268 "\"description\": \"Sets the stereoscopic mode of the GUI to the given mode\","
3269 "\"transport\": \"Response\","
3270 "\"permission\": \"ControlGUI\","
3272 "{ \"name\": \"mode\", \"type\": \"string\", \"enum\": [ \"toggle\", \"tomono\", \"next\", \"previous\", \"select\", \"off\", \"split_vertical\", \"split_horizontal\", \"row_interleaved\", \"hardware_based\", \"anaglyph_cyan_red\", \"anaglyph_green_magenta\", \"monoscopic\" ], \"required\": true }"
3274 "\"returns\": \"string\""
3276 "\"GUI.GetStereoscopicModes\": {"
3277 "\"type\": \"method\","
3278 "\"description\": \"Returns the supported stereoscopic modes of the GUI\","
3279 "\"transport\": \"Response\","
3280 "\"permission\": \"ReadData\","
3283 "\"type\": \"object\","
3285 "\"stereoscopicmodes\" : {"
3286 "\"type\": \"array\","
3287 "\"uniqueItems\": true,"
3288 "\"items\": { \"$ref\": \"GUI.Stereoscopy.Mode\" }"
3293 "\"Addons.GetAddons\": {"
3294 "\"type\": \"method\","
3295 "\"description\": \"Gets all available addons\","
3296 "\"transport\": \"Response\","
3297 "\"permission\": \"ReadData\","
3299 "{ \"name\": \"type\", \"$ref\": \"Addon.Types\" },"
3300 "{ \"name\": \"content\", \"$ref\": \"Addon.Content\", \"description\": \"Content provided by the addon. Only considered for plugins and scripts.\" },"
3301 "{ \"name\": \"enabled\", \"type\": [ { \"type\": \"boolean\" }, { \"type\": \"string\", \"enum\": [ \"all\" ] } ], \"default\": \"all\" },"
3302 "{ \"name\": \"properties\", \"$ref\": \"Addon.Fields\" },"
3303 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" }"
3305 "\"returns\": { \"type\": \"object\","
3307 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3308 "\"addons\": { \"type\": \"array\","
3309 "\"items\": { \"$ref\": \"Addon.Details\" }"
3314 "\"Addons.GetAddonDetails\": {"
3315 "\"type\": \"method\","
3316 "\"description\": \"Gets the details of a specific addon\","
3317 "\"transport\": \"Response\","
3318 "\"permission\": \"ReadData\","
3320 "{ \"name\": \"addonid\", \"type\": \"string\", \"required\": true },"
3321 "{ \"name\": \"properties\", \"$ref\": \"Addon.Fields\" }"
3323 "\"returns\": { \"type\": \"object\","
3325 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3326 "\"addon\": { \"$ref\": \"Addon.Details\", \"required\": true }"
3330 "\"Addons.SetAddonEnabled\": {"
3331 "\"type\": \"method\","
3332 "\"description\": \"Enables/Disables a specific addon\","
3333 "\"transport\": \"Response\","
3334 "\"permission\": \"ManageAddon\","
3336 "{ \"name\": \"addonid\", \"type\": \"string\", \"required\": true },"
3337 "{ \"name\": \"enabled\", \"$ref\": \"Global.Toggle\", \"required\": true }"
3339 "\"returns\": \"string\""
3341 "\"Addons.ExecuteAddon\": {"
3342 "\"type\": \"method\","
3343 "\"description\": \"Executes the given addon with the given parameters (if possible)\","
3344 "\"transport\": \"Response\","
3345 "\"permission\": \"ExecuteAddon\","
3347 "{ \"name\": \"addonid\", \"type\": \"string\", \"required\": true },"
3348 "{ \"name\": \"params\", \"type\": ["
3349 "{ \"type\": \"object\", \"additionalProperties\": { \"type\": \"string\" } },"
3350 "{ \"type\": \"array\", \"items\": { \"type\": \"string\" } },"
3351 "{ \"type\": \"string\", \"description\": \"URL path (must start with / or ?\" }"
3355 "{ \"name\": \"wait\", \"type\": \"boolean\", \"default\": false }"
3357 "\"returns\": \"string\""
3359 "\"PVR.GetProperties\": {"
3360 "\"type\": \"method\","
3361 "\"description\": \"Retrieves the values of the given properties\","
3362 "\"transport\": \"Response\","
3363 "\"permission\": \"ReadData\","
3365 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"PVR.Property.Name\" } }"
3367 "\"returns\": { \"$ref\": \"PVR.Property.Value\", \"required\": true }"
3369 "\"PVR.GetChannelGroups\": {"
3370 "\"type\": \"method\","
3371 "\"description\": \"Retrieves the channel groups for the specified type\","
3372 "\"transport\": \"Response\","
3373 "\"permission\": \"ReadData\","
3375 "{ \"name\": \"channeltype\", \"$ref\": \"PVR.Channel.Type\", \"required\": true },"
3376 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" }"
3378 "\"returns\": { \"type\": \"object\","
3380 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3381 "\"channelgroups\": { \"type\": \"array\", \"required\": true,"
3382 "\"items\": { \"$ref\": \"PVR.Details.ChannelGroup\" }"
3387 "\"PVR.GetChannelGroupDetails\": {"
3388 "\"type\": \"method\","
3389 "\"description\": \"Retrieves the details of a specific channel group\","
3390 "\"transport\": \"Response\","
3391 "\"permission\": \"ReadData\","
3393 "{ \"name\": \"channelgroupid\", \"$ref\": \"PVR.ChannelGroup.Id\", \"required\": true },"
3394 "{ \"name\": \"channels\", \"type\": \"object\","
3396 "\"properties\": { \"$ref\": \"PVR.Fields.Channel\" },"
3397 "\"limits\": { \"$ref\": \"List.Limits\" }"
3401 "\"returns\": { \"type\": \"object\","
3403 "\"channelgroupdetails\": { \"$ref\": \"PVR.Details.ChannelGroup.Extended\" }"
3407 "\"PVR.GetChannels\": {"
3408 "\"type\": \"method\","
3409 "\"description\": \"Retrieves the channel list\","
3410 "\"transport\": \"Response\","
3411 "\"permission\": \"ReadData\","
3413 "{ \"name\": \"channelgroupid\", \"$ref\": \"PVR.ChannelGroup.Id\", \"required\": true },"
3414 "{ \"name\": \"properties\", \"$ref\": \"PVR.Fields.Channel\" },"
3415 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" }"
3417 "\"returns\": { \"type\": \"object\","
3419 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3420 "\"channels\": { \"type\": \"array\", \"required\": true,"
3421 "\"items\": { \"$ref\": \"PVR.Details.Channel\" }"
3426 "\"PVR.GetChannelDetails\": {"
3427 "\"type\": \"method\","
3428 "\"description\": \"Retrieves the details of a specific channel\","
3429 "\"transport\": \"Response\","
3430 "\"permission\": \"ReadData\","
3432 "{ \"name\": \"channelid\", \"$ref\": \"Library.Id\", \"required\": true },"
3433 "{ \"name\": \"properties\", \"$ref\": \"PVR.Fields.Channel\" }"
3435 "\"returns\": { \"type\": \"object\","
3437 "\"channeldetails\": { \"$ref\": \"PVR.Details.Channel\" }"
3441 "\"PVR.GetBroadcasts\": {"
3442 "\"type\": \"method\","
3443 "\"description\": \"Retrieves the program of a specific channel\","
3444 "\"transport\": \"Response\","
3445 "\"permission\": \"ReadData\","
3447 "{ \"name\": \"channelid\", \"$ref\": \"Library.Id\", \"required\": true },"
3448 "{ \"name\": \"properties\", \"$ref\": \"PVR.Fields.Broadcast\" },"
3449 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" }"
3451 "\"returns\": { \"type\": \"object\","
3453 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3454 "\"broadcasts\": { \"type\": \"array\", \"required\": true,"
3455 "\"items\": { \"$ref\": \"PVR.Details.Broadcast\" }"
3460 "\"PVR.GetBroadcastDetails\": {"
3461 "\"type\": \"method\","
3462 "\"description\": \"Retrieves the details of a specific broadcast\","
3463 "\"transport\": \"Response\","
3464 "\"permission\": \"ReadData\","
3466 "{ \"name\": \"broadcastid\", \"$ref\": \"Library.Id\", \"required\": true },"
3467 "{ \"name\": \"properties\", \"$ref\": \"PVR.Fields.Broadcast\" }"
3469 "\"returns\": { \"type\": \"object\","
3471 "\"broadcastdetails\": { \"$ref\": \"PVR.Details.Broadcast\" }"
3475 "\"PVR.GetTimers\": {"
3476 "\"type\": \"method\","
3477 "\"description\": \"Retrieves the timers\","
3478 "\"transport\": \"Response\","
3479 "\"permission\": \"ReadData\","
3481 "{ \"name\": \"properties\", \"$ref\": \"PVR.Fields.Timer\" },"
3482 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" }"
3484 "\"returns\": { \"type\": \"object\","
3486 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3487 "\"timers\": { \"type\": \"array\", \"required\": true,"
3488 "\"items\": { \"$ref\": \"PVR.Details.Timer\" }"
3493 "\"PVR.GetTimerDetails\": {"
3494 "\"type\": \"method\","
3495 "\"description\": \"Retrieves the details of a specific timer\","
3496 "\"transport\": \"Response\","
3497 "\"permission\": \"ReadData\","
3499 "{ \"name\": \"timerid\", \"$ref\": \"Library.Id\", \"required\": true },"
3500 "{ \"name\": \"properties\", \"$ref\": \"PVR.Fields.Timer\" }"
3502 "\"returns\": { \"type\": \"object\","
3504 "\"timerdetails\": { \"$ref\": \"PVR.Details.Timer\" }"
3508 "\"PVR.GetRecordings\": {"
3509 "\"type\": \"method\","
3510 "\"description\": \"Retrieves the recordings\","
3511 "\"transport\": \"Response\","
3512 "\"permission\": \"ReadData\","
3514 "{ \"name\": \"properties\", \"$ref\": \"PVR.Fields.Recording\" },"
3515 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" }"
3517 "\"returns\": { \"type\": \"object\","
3519 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3520 "\"recordings\": { \"type\": \"array\", \"required\": true,"
3521 "\"items\": { \"$ref\": \"PVR.Details.Recording\" }"
3526 "\"PVR.GetRecordingDetails\": {"
3527 "\"type\": \"method\","
3528 "\"description\": \"Retrieves the details of a specific recording\","
3529 "\"transport\": \"Response\","
3530 "\"permission\": \"ReadData\","
3532 "{ \"name\": \"recordingid\", \"$ref\": \"Library.Id\", \"required\": true },"
3533 "{ \"name\": \"properties\", \"$ref\": \"PVR.Fields.Recording\" }"
3535 "\"returns\": { \"type\": \"object\","
3537 "\"recordingdetails\": { \"$ref\": \"PVR.Details.Recording\" }"
3542 "\"type\": \"method\","
3543 "\"description\": \"Toggle recording of a channel\","
3544 "\"transport\": \"Response\","
3545 "\"permission\": \"ControlPVR\","
3547 "{ \"name\": \"record\", \"$ref\": \"Global.Toggle\", \"default\": \"toggle\" },"
3548 "{ \"name\": \"channel\", \"type\": ["
3549 "{ \"type\": \"string\", \"enum\": [ \"current\" ], \"required\": true },"
3550 "{ \"$ref\": \"Library.Id\", \"required\": true }"
3552 "\"default\": \"current\""
3555 "\"returns\": \"string\""
3558 "\"type\": \"method\","
3559 "\"description\": \"Starts a channel scan\","
3560 "\"transport\": \"Response\","
3561 "\"permission\": \"ControlPVR\","
3563 "\"returns\": \"string\""
3565 "\"Textures.GetTextures\": {"
3566 "\"type\": \"method\","
3567 "\"description\": \"Retrieve all textures\","
3568 "\"transport\": \"Response\","
3569 "\"permission\": \"ReadData\","
3571 "{ \"name\": \"properties\", \"$ref\": \"Textures.Fields.Texture\" },"
3572 "{ \"name\": \"filter\", \"$ref\": \"List.Filter.Textures\" }"
3575 "\"type\": \"object\","
3577 "\"textures\": { \"type\": \"array\", \"required\": true,"
3578 "\"items\": { \"$ref\": \"Textures.Details.Texture\" }"
3583 "\"Textures.RemoveTexture\": {"
3584 "\"type\": \"method\","
3585 "\"description\": \"Remove the specified texture\","
3586 "\"transport\": \"Response\","
3587 "\"permission\": \"RemoveData\","
3589 "{ \"name\": \"textureid\", \"$ref\": \"Library.Id\", \"required\": true, \"description\": \"Texture database identifier\" }"
3591 "\"returns\": \"string\""
3593 "\"Profiles.GetProfiles\": {"
3594 "\"type\": \"method\","
3595 "\"description\": \"Retrieve all profiles\","
3596 "\"transport\": \"Response\","
3597 "\"permission\": \"ReadData\","
3599 "{ \"name\": \"properties\", \"$ref\": \"Profiles.Fields.Profile\" },"
3600 "{ \"name\": \"limits\", \"$ref\": \"List.Limits\" },"
3601 "{ \"name\": \"sort\", \"$ref\": \"List.Sort\" }"
3604 "\"type\": \"object\","
3606 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3607 "\"profiles\": { \"type\": \"array\", \"required\": true,"
3608 "\"items\": { \"$ref\": \"Profiles.Details.Profile\" }"
3613 "\"Profiles.GetCurrentProfile\": {"
3614 "\"type\": \"method\","
3615 "\"description\": \"Retrieve the current profile\","
3616 "\"transport\": \"Response\","
3617 "\"permission\": \"ReadData\","
3619 "{ \"name\": \"properties\", \"$ref\": \"Profiles.Fields.Profile\" }"
3621 "\"returns\": { \"$ref\": \"Profiles.Details.Profile\", \"required\": true }"
3623 "\"Profiles.LoadProfile\": {"
3624 "\"type\": \"method\","
3625 "\"description\": \"Load the specified profile\","
3626 "\"transport\": \"Response\","
3627 "\"permission\": \"Navigate\","
3629 "{ \"name\": \"profile\", \"type\": \"string\", \"required\": true, \"description\": \"Profile name\" },"
3630 "{ \"name\": \"prompt\", \"type\": \"boolean\", \"description\": \"Prompt for password\" },"
3631 "{ \"name\": \"password\", \"$ref\": \"Profiles.Password\" }"
3633 "\"returns\": \"string\""
3635 "\"System.GetProperties\": {"
3636 "\"type\": \"method\","
3637 "\"description\": \"Retrieves the values of the given properties\","
3638 "\"transport\": \"Response\","
3639 "\"permission\": \"ReadData\","
3641 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"System.Property.Name\" } }"
3643 "\"returns\": { \"$ref\": \"System.Property.Value\", \"required\": true }"
3645 "\"System.EjectOpticalDrive\": {"
3646 "\"type\": \"method\","
3647 "\"description\": \"Ejects or closes the optical disc drive (if available)\","
3648 "\"transport\": \"Response\","
3649 "\"permission\": \"ControlSystem\","
3651 "\"returns\": \"string\""
3653 "\"System.Shutdown\": {"
3654 "\"type\": \"method\","
3655 "\"description\": \"Shuts the system running XBMC down\","
3656 "\"transport\": \"Response\","
3657 "\"permission\": \"ControlPower\","
3659 "\"returns\": \"string\""
3661 "\"System.Suspend\": {"
3662 "\"type\": \"method\","
3663 "\"description\": \"Suspends the system running XBMC\","
3664 "\"transport\": \"Response\","
3665 "\"permission\": \"ControlPower\","
3667 "\"returns\": \"string\""
3669 "\"System.Hibernate\": {"
3670 "\"type\": \"method\","
3671 "\"description\": \"Puts the system running XBMC into hibernate mode\","
3672 "\"transport\": \"Response\","
3673 "\"permission\": \"ControlPower\","
3675 "\"returns\": \"string\""
3677 "\"System.Reboot\": {"
3678 "\"type\": \"method\","
3679 "\"description\": \"Reboots the system running XBMC\","
3680 "\"transport\": \"Response\","
3681 "\"permission\": \"ControlPower\","
3683 "\"returns\": \"string\""
3685 "\"Input.SendText\": {"
3686 "\"type\": \"method\","
3687 "\"description\": \"Send a generic (unicode) text\","
3688 "\"transport\": \"Response\","
3689 "\"permission\": \"Navigate\","
3691 "{ \"name\": \"text\", \"type\": \"string\", \"required\": true, \"description\": \"Unicode text\" },"
3692 "{ \"name\": \"done\", \"type\": \"boolean\", \"default\": true, \"description\": \"Whether this is the whole input or not (closes an open input dialog if true).\" }"
3694 "\"returns\": \"string\""
3696 "\"Input.ExecuteAction\": {"
3697 "\"type\": \"method\","
3698 "\"description\": \"Execute a specific action\","
3699 "\"transport\": \"Response\","
3700 "\"permission\": \"Navigate\","
3702 "{ \"name\": \"action\", \"$ref\": \"Input.Action\", \"required\": true }"
3704 "\"returns\": \"string\""
3707 "\"type\": \"method\","
3708 "\"description\": \"Navigate left in GUI\","
3709 "\"transport\": \"Response\","
3710 "\"permission\": \"Navigate\","
3712 "\"returns\": \"string\""
3714 "\"Input.Right\": {"
3715 "\"type\": \"method\","
3716 "\"description\": \"Navigate right in GUI\","
3717 "\"transport\": \"Response\","
3718 "\"permission\": \"Navigate\","
3720 "\"returns\": \"string\""
3723 "\"type\": \"method\","
3724 "\"description\": \"Navigate down in GUI\","
3725 "\"transport\": \"Response\","
3726 "\"permission\": \"Navigate\","
3728 "\"returns\": \"string\""
3731 "\"type\": \"method\","
3732 "\"description\": \"Navigate up in GUI\","
3733 "\"transport\": \"Response\","
3734 "\"permission\": \"Navigate\","
3736 "\"returns\": \"string\""
3738 "\"Input.Select\": {"
3739 "\"type\": \"method\","
3740 "\"description\": \"Select current item in GUI\","
3741 "\"transport\": \"Response\","
3742 "\"permission\": \"Navigate\","
3744 "\"returns\": \"string\""
3747 "\"type\": \"method\","
3748 "\"description\": \"Goes back in GUI\","
3749 "\"transport\": \"Response\","
3750 "\"permission\": \"Navigate\","
3752 "\"returns\": \"string\""
3754 "\"Input.ContextMenu\": {"
3755 "\"type\": \"method\","
3756 "\"description\": \"Shows the context menu\","
3757 "\"transport\": \"Response\","
3758 "\"permission\": \"Navigate\","
3760 "\"returns\": \"string\""
3763 "\"type\": \"method\","
3764 "\"description\": \"Shows the information dialog\","
3765 "\"transport\": \"Response\","
3766 "\"permission\": \"Navigate\","
3768 "\"returns\": \"string\""
3771 "\"type\": \"method\","
3772 "\"description\": \"Goes to home window in GUI\","
3773 "\"transport\": \"Response\","
3774 "\"permission\": \"Navigate\","
3776 "\"returns\": \"string\""
3778 "\"Input.ShowCodec\": {"
3779 "\"type\": \"method\","
3780 "\"description\": \"Show codec information of the playing item\","
3781 "\"transport\": \"Response\","
3782 "\"permission\": \"Navigate\","
3784 "\"returns\": \"string\""
3786 "\"Input.ShowOSD\": {"
3787 "\"type\": \"method\","
3788 "\"description\": \"Show the on-screen display for the current player\","
3789 "\"transport\": \"Response\","
3790 "\"permission\": \"Navigate\","
3792 "\"returns\": \"string\""
3794 "\"Application.GetProperties\": {"
3795 "\"type\": \"method\","
3796 "\"description\": \"Retrieves the values of the given properties\","
3797 "\"transport\": \"Response\","
3798 "\"permission\": \"ReadData\","
3800 "{ \"name\": \"properties\", \"type\": \"array\", \"uniqueItems\": true, \"required\": true, \"items\": { \"$ref\": \"Application.Property.Name\" } }"
3802 "\"returns\": { \"$ref\": \"Application.Property.Value\", \"required\": true }"
3804 "\"Application.SetVolume\": {"
3805 "\"type\": \"method\","
3806 "\"description\": \"Set the current volume\","
3807 "\"transport\": \"Response\","
3808 "\"permission\": \"ControlPlayback\","
3810 "{ \"name\": \"volume\", \"type\": ["
3811 "{ \"type\": \"integer\", \"minimum\": 0, \"maximum\": 100, \"required\": true },"
3812 "{ \"$ref\": \"Global.IncrementDecrement\", \"required\": true }"
3814 "\"required\": true"
3817 "\"returns\": \"integer\""
3819 "\"Application.SetMute\": {"
3820 "\"type\": \"method\","
3821 "\"description\": \"Toggle mute/unmute\","
3822 "\"transport\": \"Response\","
3823 "\"permission\": \"ControlPlayback\","
3825 "{ \"name\": \"mute\", \"required\": true, \"$ref\": \"Global.Toggle\" }"
3827 "\"returns\": { \"type\": \"boolean\", \"description\": \"Mute state\" }"
3829 "\"Application.Quit\": {"
3830 "\"type\": \"method\","
3831 "\"description\": \"Quit application\","
3832 "\"transport\": \"Response\","
3833 "\"permission\": \"ControlPower\","
3835 "\"returns\": \"string\""
3837 "\"XBMC.GetInfoLabels\": {"
3838 "\"type\": \"method\","
3839 "\"description\": \"Retrieve info labels about XBMC and the system\","
3840 "\"transport\": \"Response\","
3841 "\"permission\": \"ReadData\","
3843 "{ \"name\": \"labels\", \"type\": \"array\", \"required\": true, \"items\": { \"type\": \"string\" }, \"minItems\": 1, \"description\": \"See http://wiki.xbmc.org/index.php?title=InfoLabels for a list of possible info labels\" }"
3846 "\"type\": \"object\","
3847 "\"description\": \"Object containing key-value pairs of the retrieved info labels\","
3848 "\"additionalProperties\": { \"type\": \"string\" }"
3851 "\"XBMC.GetInfoBooleans\": {"
3852 "\"type\": \"method\","
3853 "\"description\": \"Retrieve info booleans about XBMC and the system\","
3854 "\"transport\": \"Response\","
3855 "\"permission\": \"ReadData\","
3857 "{ \"name\": \"booleans\", \"type\": \"array\", \"required\": true, \"items\": { \"type\": \"string\" }, \"minItems\": 1 }"
3860 "\"type\": \"object\","
3861 "\"description\": \"Object containing key-value pairs of the retrieved info booleans\","
3862 "\"additionalProperties\": { \"type\": \"string\" }"
3865 "\"Favourites.GetFavourites\": {"
3866 "\"type\": \"method\","
3867 "\"description\": \"Retrieve all favourites\","
3868 "\"transport\": \"Response\","
3869 "\"permission\": \"ReadData\","
3871 "{ \"name\": \"type\", \"type\": [ \"null\", { \"$ref\": \"Favourite.Type\" } ], \"default\": null },"
3872 "{ \"name\": \"properties\", \"$ref\": \"Favourite.Fields.Favourite\" }"
3875 "\"type\": \"object\","
3877 "\"limits\": { \"$ref\": \"List.LimitsReturned\", \"required\": true },"
3878 "\"favourites\": { \"type\": \"array\","
3879 "\"items\": { \"$ref\": \"Favourite.Details.Favourite\" }"
3884 "\"Favourites.AddFavourite\": {"
3885 "\"type\": \"method\","
3886 "\"description\": \"Add a favourite with the given details\","
3887 "\"transport\": \"Response\","
3888 "\"permission\": \"UpdateData\","
3890 "{ \"name\": \"title\", \"type\": \"string\", \"required\": true },"
3891 "{ \"name\": \"type\", \"$ref\": \"Favourite.Type\", \"required\": true },"
3892 "{ \"name\": \"path\", \"$ref\": \"Optional.String\", \"description\": \"Required for media and script favourites types\" },"
3893 "{ \"name\": \"window\", \"$ref\": \"Optional.String\", \"description\": \"Required for window favourite type\" },"
3894 "{ \"name\": \"windowparameter\", \"$ref\": \"Optional.String\" },"
3895 "{ \"name\": \"thumbnail\", \"$ref\": \"Optional.String\" }"
3897 "\"returns\": \"string\""
3899 "\"Settings.GetSections\": {"
3900 "\"type\": \"method\","
3901 "\"description\": \"Retrieves all setting sections\","
3902 "\"transport\": \"Response\","
3903 "\"permission\": \"ReadData\","
3905 "{ \"name\": \"level\", \"$ref\": \"Setting.Level\", \"default\": \"standard\" },"
3906 "{ \"name\": \"properties\", \"extends\": \"Item.Fields.Base\","
3907 "\"items\": { \"type\": \"string\","
3908 "\"enum\": [ \"categories\" ]"
3913 "\"type\": \"object\","
3915 "\"sections\": { \"type\": \"array\","
3916 "\"items\": { \"$ref\": \"Setting.Details.Section\" }"
3921 "\"Settings.GetCategories\": {"
3922 "\"type\": \"method\","
3923 "\"description\": \"Retrieves all setting categories\","
3924 "\"transport\": \"Response\","
3925 "\"permission\": \"ReadData\","
3927 "{ \"name\": \"level\", \"$ref\": \"Setting.Level\", \"default\": \"standard\" },"
3928 "{ \"name\": \"section\", \"type\": \"string\", \"default\": \"\" },"
3929 "{ \"name\": \"properties\", \"extends\": \"Item.Fields.Base\","
3930 "\"items\": { \"type\": \"string\","
3931 "\"enum\": [ \"settings\" ]"
3936 "\"type\": \"object\","
3938 "\"categories\": { \"type\": \"array\","
3939 "\"items\": { \"$ref\": \"Setting.Details.Category\" }"
3944 "\"Settings.GetSettings\": {"
3945 "\"type\": \"method\","
3946 "\"description\": \"Retrieves all settings\","
3947 "\"transport\": \"Response\","
3948 "\"permission\": \"ReadData\","
3950 "{ \"name\": \"level\", \"$ref\": \"Setting.Level\", \"default\": \"standard\" },"
3951 "{ \"name\": \"filter\", \"type\": ["
3952 "{ \"type\": \"object\","
3954 "\"section\": { \"type\": \"string\", \"required\": true, \"minLength\": 1 },"
3955 "\"category\": { \"type\": \"string\", \"required\": true, \"minLength\": 1 }"
3957 "\"additionalProperties\": false,"
3958 "\"required\": true"
3965 "\"type\": \"object\","
3967 "\"settings\": { \"type\": \"array\","
3968 "\"items\": { \"$ref\": \"Setting.Details.Setting\" }"
3973 "\"Settings.GetSettingValue\": {"
3974 "\"type\": \"method\","
3975 "\"description\": \"Retrieves the value of a setting\","
3976 "\"transport\": \"Response\","
3977 "\"permission\": \"ReadData\","
3979 "{ \"name\": \"setting\", \"type\": \"string\", \"required\": true, \"minLength\": 1 }"
3982 "\"type\": \"object\","
3984 "\"value\": { \"$ref\": \"Setting.Value.Extended\", \"required\": true }"
3988 "\"Settings.SetSettingValue\": {"
3989 "\"type\": \"method\","
3990 "\"description\": \"Changes the value of a setting\","
3991 "\"transport\": \"Response\","
3992 "\"permission\": \"WriteSetting\","
3994 "{ \"name\": \"setting\", \"type\": \"string\", \"required\": true, \"minLength\": 1 },"
3995 "{ \"name\": \"value\", \"$ref\": \"Setting.Value.Extended\", \"required\": true }"
3997 "\"returns\": \"boolean\""
3999 "\"Settings.ResetSettingValue\": {"
4000 "\"type\": \"method\","
4001 "\"description\": \"Resets the value of a setting\","
4002 "\"transport\": \"Response\","
4003 "\"permission\": \"WriteSetting\","
4005 "{ \"name\": \"setting\", \"type\": \"string\", \"required\": true, \"minLength\": 1 }"
4007 "\"returns\": \"string\""
4011 const char* const JSONRPC_SERVICE_NOTIFICATIONS[] = {
4012 "\"Player.OnPlay\": {"
4013 "\"type\": \"notification\","
4014 "\"description\": \"Playback of a media item has been started or the playback speed has changed. If there is no ID available extra information will be provided.\","
4016 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4017 "{ \"name\": \"data\", \"$ref\": \"Player.Notifications.Data\", \"required\": true }"
4021 "\"Player.OnPause\": {"
4022 "\"type\": \"notification\","
4023 "\"description\": \"Playback of a media item has been paused. If there is no ID available extra information will be provided.\","
4025 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4026 "{ \"name\": \"data\", \"$ref\": \"Player.Notifications.Data\", \"required\": true }"
4030 "\"Player.OnStop\": {"
4031 "\"type\": \"notification\","
4032 "\"description\": \"Playback of a media item has been stopped. If there is no ID available extra information will be provided.\","
4034 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4035 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4037 "\"item\": { \"$ref\": \"Notifications.Item\" },"
4038 "\"end\": { \"type\": \"boolean\", \"required\": true, \"description\": \"Whether the player has reached the end of the playable item(s) or not\" }"
4044 "\"Player.OnSpeedChanged\": {"
4045 "\"type\": \"notification\","
4046 "\"description\": \"Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.\","
4048 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4049 "{ \"name\": \"data\", \"$ref\": \"Player.Notifications.Data\", \"required\": true }"
4053 "\"Player.OnSeek\": {"
4054 "\"type\": \"notification\","
4055 "\"description\": \"The playback position has been changed. If there is no ID available extra information will be provided.\","
4057 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4058 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4060 "\"item\": { \"$ref\": \"Notifications.Item\" },"
4061 "\"player\": { \"$ref\": \"Player.Notifications.Player.Seek\", \"required\": true }"
4067 "\"Player.OnPropertyChanged\": {"
4068 "\"type\": \"notification\","
4069 "\"description\": \"A property of the playing items has changed.\","
4071 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4072 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4074 "\"property\": { \"$ref\": \"Player.Property.Value\" },"
4075 "\"player\": { \"$ref\": \"Player.Notifications.Player\", \"required\": true }"
4081 "\"Playlist.OnAdd\": {"
4082 "\"type\": \"notification\","
4083 "\"description\": \"A playlist item has been added.\","
4085 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4086 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4088 "\"playlistid\": { \"$ref\": \"Playlist.Id\", \"required\": true },"
4089 "\"item\": { \"$ref\": \"Notifications.Item\" },"
4090 "\"position\": { \"$ref\": \"Playlist.Position\" }"
4096 "\"Playlist.OnRemove\": {"
4097 "\"type\": \"notification\","
4098 "\"description\": \"A playlist item has been removed.\","
4100 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4101 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4103 "\"playlistid\": { \"$ref\": \"Playlist.Id\", \"required\": true },"
4104 "\"position\": { \"$ref\": \"Playlist.Position\" }"
4110 "\"Playlist.OnClear\": {"
4111 "\"type\": \"notification\","
4112 "\"description\": \"A playlist item has been cleared.\","
4114 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4115 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4117 "\"playlistid\": { \"$ref\": \"Playlist.Id\", \"required\": true }"
4123 "\"AudioLibrary.OnUpdate\": {"
4124 "\"type\": \"notification\","
4125 "\"description\": \"An audio item has been updated.\","
4127 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4128 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4130 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
4131 "\"type\": { \"type\": \"string\", \"id\": \"Notifications.Library.Audio.Type\", \"enum\": [ \"song\" ], \"required\": true }"
4137 "\"AudioLibrary.OnRemove\": {"
4138 "\"type\": \"notification\","
4139 "\"description\": \"An audio item has been removed.\","
4141 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4142 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4144 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
4145 "\"type\": { \"$ref\": \"Notifications.Library.Audio.Type\", \"required\": true }"
4151 "\"AudioLibrary.OnScanStarted\": {"
4152 "\"type\": \"notification\","
4153 "\"description\": \"An audio library scan has started.\","
4155 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4156 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4160 "\"AudioLibrary.OnScanFinished\": {"
4161 "\"type\": \"notification\","
4162 "\"description\": \"Scanning the audio library has been finished.\","
4164 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4165 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4169 "\"AudioLibrary.OnCleanStarted\": {"
4170 "\"type\": \"notification\","
4171 "\"description\": \"An audio library clean operation has started.\","
4173 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4174 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4178 "\"AudioLibrary.OnCleanFinished\": {"
4179 "\"type\": \"notification\","
4180 "\"description\": \"The audio library has been cleaned.\","
4182 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4183 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4187 "\"VideoLibrary.OnUpdate\": {"
4188 "\"type\": \"notification\","
4189 "\"description\": \"A video item has been updated.\","
4191 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4192 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4194 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
4195 "\"type\": { \"type\": \"string\", \"id\": \"Notifications.Library.Video.Type\", \"enum\": [ \"movie\", \"tvshow\", \"episode\", \"musicvideo\" ], \"required\": true },"
4196 "\"playcount\": { \"type\": \"integer\", \"minimum\": 0, \"default\": -1 }"
4202 "\"VideoLibrary.OnRemove\": {"
4203 "\"type\": \"notification\","
4204 "\"description\": \"A video item has been removed.\","
4206 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4207 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4209 "\"id\": { \"$ref\": \"Library.Id\", \"required\": true },"
4210 "\"type\": { \"$ref\": \"Notifications.Library.Video.Type\", \"required\": true }"
4216 "\"VideoLibrary.OnScanStarted\": {"
4217 "\"type\": \"notification\","
4218 "\"description\": \"A video library scan has started.\","
4220 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4221 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4225 "\"VideoLibrary.OnScanFinished\": {"
4226 "\"type\": \"notification\","
4227 "\"description\": \"Scanning the video library has been finished.\","
4229 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4230 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4234 "\"VideoLibrary.OnCleanStarted\": {"
4235 "\"type\": \"notification\","
4236 "\"description\": \"A video library clean operation has started.\","
4238 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4239 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4243 "\"VideoLibrary.OnCleanFinished\": {"
4244 "\"type\": \"notification\","
4245 "\"description\": \"The video library has been cleaned.\","
4247 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4248 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4252 "\"System.OnQuit\": {"
4253 "\"type\": \"notification\","
4254 "\"description\": \"XBMC will be closed.\","
4256 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4257 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4261 "\"System.OnRestart\": {"
4262 "\"type\": \"notification\","
4263 "\"description\": \"The system will be restarted.\","
4265 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4266 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4270 "\"System.OnSleep\": {"
4271 "\"type\": \"notification\","
4272 "\"description\": \"The system will be suspended.\","
4274 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4275 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4279 "\"System.OnWake\": {"
4280 "\"type\": \"notification\","
4281 "\"description\": \"The system woke up from suspension.\","
4283 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4284 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4288 "\"System.OnLowBattery\": {"
4289 "\"type\": \"notification\","
4290 "\"description\": \"The system is on low battery.\","
4292 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4293 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4297 "\"Application.OnVolumeChanged\": {"
4298 "\"type\": \"notification\","
4299 "\"description\": \"The volume of the application has changed.\","
4301 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4302 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4304 "\"volume\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 100, \"required\": true },"
4305 "\"muted\": { \"type\": \"boolean\", \"required\": true }"
4311 "\"Input.OnInputRequested\": {"
4312 "\"type\": \"notification\","
4313 "\"description\": \"The user is requested to provide some information.\","
4315 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4316 "{ \"name\": \"data\", \"type\": \"object\", \"required\": true,"
4318 "\"type\": { \"type\": \"string\", \"enum\": [ \"keyboard\", \"time\", \"date\", \"ip\", \"password\", \"numericpassword\", \"number\", \"seconds\" ], \"required\": true },"
4319 "\"value\": { \"type\": \"string\", \"required\": true },"
4320 "\"title\": { \"type\": \"string\" }"
4326 "\"Input.OnInputFinished\": {"
4327 "\"type\": \"notification\","
4328 "\"description\": \"The user has provided the requested input.\","
4330 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4331 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4335 "\"GUI.OnScreensaverActivated\": {"
4336 "\"type\": \"notification\","
4337 "\"description\": \"The screensaver has been activated.\","
4339 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4340 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"
4344 "\"GUI.OnScreensaverDeactivated\": {"
4345 "\"type\": \"notification\","
4346 "\"description\": \"The screensaver has been deactivated.\","
4348 "{ \"name\": \"sender\", \"type\": \"string\", \"required\": true },"
4349 "{ \"name\": \"data\", \"type\": \"null\", \"required\": true }"