JSON-RPC API/v12: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{JSON-RPC_API_nav}}
{{mininav|[[Development]]|[[JSON-RPC API]]}}
{{mininav|[[Development]]|[[JSON-RPC API]]}}
Version 12 is the current development version of Kodi's JSON-RPC API and will be published with the release of v19 (Matrix).<br />
Version 12 is the stable version of Kodi's JSON-RPC API and is published with the release of v19 (Matrix).
This document has been updated to version 11.8.1. Recent changes are announced on the [https://forum.kodi.tv/showthread.php?tid=352779 forum]
This document has been updated to version 12.3.0. Recent changes are announced on the [https://forum.kodi.tv/forumdisplay.php?fid=174 forum]


It comes with support for [http://en.wikipedia.org/wiki/WebSocket WebSockets] as an alternative transport for third party clients. Using WebSockets will allow webinterfaces (which are currently restricted to the HTTP transport only) to get access to a bidirectional transport with Kodi's JSON-RPC API and can therefore also profit from additional features like notifications.
It comes with support for [http://en.wikipedia.org/wiki/WebSocket WebSockets] as an alternative transport for third party clients. Using WebSockets will allow webinterfaces (which are currently restricted to the HTTP transport only) to get access to a bidirectional transport with Kodi's JSON-RPC API and can therefore also profit from additional features like notifications.
Line 177: Line 178:
== Namespaces ==
== Namespaces ==
The Kodi JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:
The Kodi JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:
{|
 
|
{| class="prettytable" style="margin-right: 10;"
<pre>
!style="padding-left: 10px; padding-right: 10px;"|Namespace
Addons           List, enable and execute addons
!style="padding-left: 10px; padding-right: 10px;"|Description
Application     Application information and control
|-
AudioLibrary     Audio Library information
|Addons
Favourites       Favourites GetFavourites and AddFavourite
|List, enable and execute addons.
Files           Shares information & filesystem listings
|-
GUI             Window properties and activation
|Application
Input           Allows limited navigation within Kodi
|Application information and control.
JSONRPC         A variety of standard JSONRPC calls
|-
Player           Manages all available players
|AudioLibrary
Playlist         Playlist modification
|Audio Library information.
Profiles         Support for Profiles operations to xbmc.  
|-
PVR              Live TV control
|Favourites
Settings         Allows manipulation of Kodi settings.
|Favourites GetFavourites and AddFavourite.
System           System controls and information
|-
Textures         Supplies GetTextures and RemoveTexture. Textures are images.
|Files
VideoLibrary     Video Library information
|Shares information & filesystem listings.
XBMC             Dumping ground for very Kodi specific operations
|-
</pre>
|GUI
|Window properties and activation.
|-
|Input
|Allows limited navigation within Kodi.
|-
|JSONRPC
|A variety of standard JSONRPC calls.
|-
|PVR
|Live TV control.
|-
|Player
|Manages all available players.
|-
|Playlist
|Playlist modification.
|-
|Profiles
|Support for Profiles operations to Kodi.
|-
|Settings
|Allows manipulation of Kodi settings.
|-
|System
|System controls and information.
|-
|Textures
|Supplies GetTextures and RemoveTexture. Textures are images.
|-
|VideoLibrary
|Video Library information.
|-
|XBMC
|Dumping ground for very Kodi specific operations.
|}
|}
== Methods ==
== Methods ==
=== Addons ===
=== Addons ===
Line 216: Line 250:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Executes the given addon with the given parameters (if possible)",
   "description": "Executes the given addon with the given parameters (if possible)",
  "transport": "Response",
  "permission": "ExecuteAddon",
   "params": [
   "params": [
     {
     {
       "name": "addonid",
       "name": "addonid",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "default": "",
       "name": "params",
       "name": "params",
       "type": [
       "type": [
         {
         {
          "type": "object",
           "additionalProperties": {
           "additionalProperties": {
            "default": "",
             "type": "string"
             "type": "string"
           }
           },
          "type": "object"
         },
         },
         {
         {
          "type": "array",
           "items": {
           "items": {
             "type": "string"
             "type": "string"
           }
           },
          "type": "array"
         },
         },
         {
         {
          "type": "string",
           "description": "URL path (must start with / or ?",
           "description": "URL path (must start with / or ?"
          "type": "string"
         }
         }
       ],
       ]
      "default": ""
     },
     },
     {
     {
      "default": false,
       "name": "wait",
       "name": "wait",
       "type": "boolean",
       "type": "boolean"
      "default": false
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ExecuteAddon",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 272: Line 308:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''[[#Addon.Details|Addon.Details]]'' addon<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#Addon.Details|Addon.Details]]'' addon<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Gets the details of a specific addon",
   "description": "Gets the details of a specific addon",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "addonid",
       "name": "addonid",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "Addon.Fields",
       "$ref": "Addon.Fields"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "addon": {
        "$ref": "Addon.Details",
        "required": true
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
        "required": true
      },
      "addon": {
        "$ref": "Addon.Details",
         "required": true
         "required": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 313: Line 348:
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Addon.Types|Addon.Types]]'' type]<br />
# [''[[#Addon.Types|Addon.Types]]'' type = unknown]<br />
# [''[[#Addon.Content|Addon.Content]]'' content] (Content provided by the addon. Only considered for plugins and scripts.)<br />
# [''[[#Addon.Content|Addon.Content]]'' content = unknown] (Content provided by the addon. Only considered for plugins and scripts.)<br />
# [''mixed: boolean|string'' enabled = all]<br />
# [''mixed: boolean|string'' enabled = all]<br />
# [''[[#Addon.Fields|Addon.Fields]]'' properties]<br />
# [''[[#Addon.Fields|Addon.Fields]]'' properties]<br />
Line 324: Line 359:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[ [[#Addon.Details|Addon.Details]] ]'' addons]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Addon.Details|Addon.Details]]'' addons]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Gets all available addons",
   "description": "Gets all available addons",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "type",
       "$ref": "Addon.Types",
       "$ref": "Addon.Types"
      "default": "unknown",
       "name": "type"
     },
     },
     {
     {
      "name": "content",
       "$ref": "Addon.Content",
       "$ref": "Addon.Content",
       "description": "Content provided by the addon. Only considered for plugins and scripts."
      "default": "unknown",
       "description": "Content provided by the addon. Only considered for plugins and scripts.",
      "name": "content"
     },
     },
     {
     {
      "default": "all",
       "name": "enabled",
       "name": "enabled",
       "type": [
       "type": [
Line 350: Line 385:
         },
         },
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "all"
             "all"
           ]
           ],
          "type": "string"
         }
         }
       ],
       ]
      "default": "all"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "Addon.Fields",
       "$ref": "Addon.Fields"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
      "default": true,
       "name": "installed",
       "name": "installed",
       "type": [
       "type": [
Line 373: Line 408:
         },
         },
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "all"
             "all"
           ]
           ],
          "type": "string"
         }
         }
       ],
       ]
      "default": true
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "addons": {
        "items": {
          "$ref": "Addon.Details"
        },
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "addons": {
        "type": "array",
        "items": {
          "$ref": "Addon.Details"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 412: Line 448:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Enables/Disables a specific addon",
   "description": "Enables/Disables a specific addon",
  "transport": "Response",
  "permission": "ManageAddon",
   "params": [
   "params": [
     {
     {
       "name": "addonid",
       "name": "addonid",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "$ref": "Global.Toggle",
       "name": "enabled",
       "name": "enabled",
      "$ref": "Global.Toggle",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ManageAddon",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 440: Line 477:
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''array'' properties<br />
# ''array[ [[#Application.Property.Name|Application.Property.Name]] ]'' properties<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 446: Line 483:
'''Type:''' ''[[#Application.Property.Value|Application.Property.Value]]''<br />
'''Type:''' ''[[#Application.Property.Value|Application.Property.Value]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the values of the given properties",
   "description": "Retrieves the values of the given properties",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "items": {
        "$ref": "Application.Property.Name"
      },
       "name": "properties",
       "name": "properties",
      "required": true,
       "type": "array",
       "type": "array",
       "uniqueItems": true,
       "uniqueItems": true
      "required": true,
      "items": {
        "$ref": "Application.Property.Name"
      }
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "$ref": "Application.Property.Value",
     "$ref": "Application.Property.Value"
    "required": true
  },
  }
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 477: Line 512:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Quit application",
   "description": "Quit application",
   "transport": "Response",
   "params": [],
   "permission": "ControlPower",
   "permission": "ControlPower",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 499: Line 535:
'''Type:''' ''boolean (Mute state)''<br />
'''Type:''' ''boolean (Mute state)''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Toggle mute/unmute",
   "description": "Toggle mute/unmute",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Global.Toggle",
       "name": "mute",
       "name": "mute",
       "required": true,
       "required": true
      "$ref": "Global.Toggle"
     }
     }
   ],
   ],
  "permission": "ControlPlayback",
   "returns": {
   "returns": {
     "type": "boolean",
     "description": "Mute state",
     "description": "Mute state"
     "type": "boolean"
   }
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 530: Line 565:
'''Type:''' ''integer''<br />
'''Type:''' ''integer''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Set the current volume",
   "description": "Set the current volume",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
       "name": "volume",
       "name": "volume",
      "required": true,
       "type": [
       "type": [
         {
         {
           "type": "integer",
           "maximum": 100,
           "minimum": 0,
           "minimum": 0,
           "maximum": 100,
           "type": "integer"
          "required": true
         },
         },
         {
         {
           "$ref": "Global.IncrementDecrement",
           "$ref": "Global.IncrementDecrement"
          "required": true
         }
         }
       ],
       ]
      "required": true
     }
     }
   ],
   ],
   "returns": "integer"
  "permission": "ControlPlayback",
   "returns": {
    "type": "integer"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 570: Line 604:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Cleans the audio library from non-existent items",
   "description": "Cleans the audio library from non-existent items",
  "transport": "Response",
  "permission": "RemoveData",
   "params": [
   "params": [
     {
     {
      "default": true,
      "description": "Whether or not to show the progress bar or any other GUI dialog",
       "name": "showdialogs",
       "name": "showdialogs",
       "type": "boolean",
       "type": "boolean"
      "default": true,
      "description": "Whether or not to show the progress bar or any other GUI dialog"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "RemoveData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 599: Line 634:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Exports all items from the audio library",
   "description": "Exports all items from the audio library",
  "transport": "Response",
  "permission": "WriteFile",
   "params": [
   "params": [
     {
     {
Line 610: Line 642:
       "type": [
       "type": [
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
             "path": {
             "path": {
               "type": "string",
               "description": "Path to the directory to where the data should be exported",
              "minLength": 1,
               "required": true,
               "required": true,
               "minLength": 1,
               "type": "string"
              "description": "Path to the directory to where the data should be exported"
             }
             }
           }
           },
          "type": "object"
         },
         },
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
             "overwrite": {
             "images": {
              "type": "boolean",
               "default": false,
               "default": false,
               "description": "Whether to overwrite existing exported files"
               "description": "Whether to export thumbnails and fanart images",
              "type": "boolean"
             },
             },
             "images": {
             "overwrite": {
              "type": "boolean",
               "default": false,
               "default": false,
               "description": "Whether to export thumbnails and fanart images"
               "description": "Whether to overwrite existing exported files",
              "type": "boolean"
             }
             }
           }
           },
          "type": "object"
         }
         }
       ]
       ]
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "WriteFile",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 660: Line 694:
# [''[[#Audio.Details.Album|Audio.Details.Album]]'' albumdetails]<br />
# [''[[#Audio.Details.Album|Audio.Details.Album]]'' albumdetails]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve details about a specific album",
   "description": "Retrieve details about a specific album",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "albumid",
       "name": "albumid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "Audio.Fields.Album",
       "$ref": "Audio.Fields.Album"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "albumdetails": {
       "albumdetails": {
         "$ref": "Audio.Details.Album"
         "$ref": "Audio.Details.Album"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 704: Line 737:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[ [[#Audio.Details.Album|Audio.Details.Album]] ]'' albums]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Audio.Details.Album|Audio.Details.Album]]'' albums]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all albums from specified artist (and role) or that has songs of the specified genre",
   "description": "Retrieve all albums from specified artist (and role) or that has songs of the specified genre",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Audio.Fields.Album",
       "$ref": "Audio.Fields.Album"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     },
     },
     {
     {
Line 730: Line 760:
       "type": [
       "type": [
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "genreid": {
             "genreid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
              "required": true,
               "description": "Song genre. Filter for existence of songs with this genre",
               "description": "Song genre. Filter for existence of songs with this genre"
              "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "genre": {
             "genre": {
               "type": "string",
               "description": "Song genre. Filter for existence of songs with this genre",
               "minLength": 1,
               "minLength": 1,
               "required": true,
               "required": true,
               "description": "Song genre. Filter for existence of songs with this genre"
               "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artistid": {
             "artistid": {
Line 760: Line 790:
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artistid": {
             "artistid": {
Line 774: Line 804:
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artistid": {
             "artistid": {
Line 784: Line 814:
             },
             },
             "role": {
             "role": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artist": {
             "artist": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artist": {
             "artist": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             },
             },
             "roleid": {
             "roleid": {
Line 815: Line 845:
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artist": {
             "artist": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             },
             },
             "role": {
             "role": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
Line 839: Line 869:
     },
     },
     {
     {
      "default": false,
       "name": "includesingles",
       "name": "includesingles",
       "type": "boolean",
       "type": "boolean"
      "default": false
     },
     },
     {
     {
      "default": false,
      "description": "Whether or not to include all roles when filtering by artist, rather than the default of excluding other contributions. When true it overrides any role filter value.",
       "name": "allroles",
       "name": "allroles",
       "type": "boolean",
       "type": "boolean"
      "default": false,
      "description": "Whether or not to include all roles when filtering by artist, rather than the default of excluding other contributions. When true it overrides any role filter value."
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "albums": {
        "items": {
          "$ref": "Audio.Details.Album"
        },
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "albums": {
        "type": "array",
        "items": {
          "$ref": "Audio.Details.Album"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 882: Line 914:
# [''[[#Audio.Details.Artist|Audio.Details.Artist]]'' artistdetails]<br />
# [''[[#Audio.Details.Artist|Audio.Details.Artist]]'' artistdetails]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve details about a specific artist",
   "description": "Retrieve details about a specific artist",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "artistid",
       "name": "artistid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "Audio.Fields.Artist",
       "$ref": "Audio.Fields.Artist"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "artistdetails": {
       "artistdetails": {
         "$ref": "Audio.Details.Artist"
         "$ref": "Audio.Details.Artist"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetArtists ====
==== AudioLibrary.GetArtists ====
Retrieve all artists. For backward compatibility by default this implicity does not include those that only contribute other roles, however absolutely all artists can be returned using allroles=true<br />
Retrieve all artists. For backward compatibility by default this implicitly does not include those that only contribute other roles, however absolutely all artists can be returned using allroles=true<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Optional.Boolean|Optional.Boolean]]'' albumartistsonly] (Whether or not to only include album artists rather than the artists of only individual songs as well. If the parameter is not passed or is passed as null the GUI setting will be used)<br />
# [''[[#Optional.Boolean|Optional.Boolean]]'' albumartistsonly = None] (Whether or not to only include album artists rather than the artists of only individual songs as well. If the parameter is not passed or is passed as null the GUI setting will be used)<br />
# [''[[#Audio.Fields.Artist|Audio.Fields.Artist]]'' properties]<br />
# [''[[#Audio.Fields.Artist|Audio.Fields.Artist]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
Line 926: Line 957:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[ [[#Audio.Details.Artist|Audio.Details.Artist]] ]'' artists]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Audio.Details.Artist|Audio.Details.Artist]]'' artists]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all artists. For backward compatibility by default this implicitly does not include those that only contribute other roles, however absolutely all artists can be returned using allroles=true",
   "description": "Retrieve all artists. For backward compatibility by default this implicity does not include those that only contribute other roles, however absolutely all artists can be returned using allroles=true",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "albumartistsonly",
       "$ref": "Optional.Boolean",
       "$ref": "Optional.Boolean",
       "description": "Whether or not to only include album artists rather than the artists of only individual songs as well. If the parameter is not passed or is passed as null the GUI setting will be used"
      "default": null,
       "description": "Whether or not to only include album artists rather than the artists of only individual songs as well. If the parameter is not passed or is passed as null the GUI setting will be used",
      "name": "albumartistsonly"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "Audio.Fields.Artist",
       "$ref": "Audio.Fields.Artist"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     },
     },
     {
     {
Line 957: Line 986:
       "type": [
       "type": [
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "genreid": {
             "genreid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
              "required": true,
               "description": "Deprecated, use songgenreid. Filter for existence of songs with this genre",
               "description": "Deprecated, use songgenreid. Filter for existence of songs with this genre"
              "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "songgenreid": {
             "songgenreid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
              "required": true,
               "description": "Song genreid. Filter for existence of songs with this genre",
               "description": "Song genreid. Filter for existence of songs with this genre"
              "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "songgenreid": {
             "roleid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true
               "required": true
             },
             },
             "roleid": {
             "songgenreid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
             "songgenreid": {
             "songgenreid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
              "required": true
            },
            "role": {
              "type": "string",
              "minLength": 1,
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "genre": {
             "genre": {
               "type": "string",
               "description": "Deprecated, use songgenre. Filter for existence of songs with this genre",
               "minLength": 1,
               "minLength": 1,
               "required": true,
               "required": true,
               "description": "Deprecated, use songgenre. Filter for existence of songs with this genre"
               "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "songgenre": {
             "songgenre": {
               "type": "string",
               "description": "Song genre. Filter for existence of songs with this genre",
               "minLength": 1,
               "minLength": 1,
               "required": true,
               "required": true,
               "description": "Song genre. Filter for existence of songs with this genre"
               "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
            "songgenre": {
              "type": "string",
              "minLength": 1,
              "required": true
            },
             "roleid": {
             "roleid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true
               "required": true
            },
            "songgenre": {
              "minLength": 1,
              "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "songgenre": {
             "role": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             },
             },
             "role": {
             "songgenre": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "albumid": {
             "albumid": {
Line 1,070: Line 1,099:
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "album": {
             "album": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "songid": {
             "songid": {
Line 1,091: Line 1,120:
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "songid": {
             "roleid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true
               "required": true
             },
             },
             "roleid": {
             "songid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
             "songid": {
             "songid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
              "required": true
            },
            "role": {
              "type": "string",
              "minLength": 1,
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "roleid": {
             "roleid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
              "required": true,
               "description": "Role contributed by artist. Overridden by allroles parameter",
               "description": "Role contributed by artist. Overridden by allroles parameter"
              "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "role": {
             "role": {
               "type": "string",
               "description": "Role contributed by artist. Overridden by allroles parameter",
               "minLength": 1,
               "minLength": 1,
               "required": true,
               "required": true,
               "description": "Role contributed by artist. Overridden by allroles parameter"
               "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
Line 1,151: Line 1,180:
     },
     },
     {
     {
      "default": false,
      "description": "Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.",
       "name": "allroles",
       "name": "allroles",
       "type": "boolean",
       "type": "boolean"
      "default": false,
      "description": "Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value."
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "artists": {
        "items": {
          "$ref": "Audio.Details.Artist"
        },
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "artists": {
        "type": "array",
        "items": {
          "$ref": "Audio.Details.Artist"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetGenres ====
==== AudioLibrary.GetAvailableArt ====
Retrieve all genres<br />
Retrieve all potential art URLs for a media item by art type<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Library.Fields.Genre|Library.Fields.Genre]]'' properties]<br />
# ''mixed: object|object'' item<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''string'' arttype = ""]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 1,188: Line 1,218:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array'' availableart<br />
# ''array[[#Library.Details.Genre|Library.Details.Genre]]'' genres<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all potential art URLs for a media item by art type",
   "description": "Retrieve all genres",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "name": "item",
       "$ref": "Library.Fields.Genre"
       "required": true,
      "type": [
        {
          "additionalProperties": false,
          "properties": {
            "albumid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artistid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        }
      ]
     },
     },
     {
     {
       "name": "limits",
       "default": "",
      "$ref": "List.Limits"
       "name": "arttype",
    },
       "type": "string"
    {
       "name": "sort",
       "$ref": "List.Sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "availableart": {
         "$ref": "List.LimitsReturned",
         "items": {
        "required": true
          "properties": {
      },
            "arttype": {
      "genres": {
              "required": true,
        "type": "array",
              "type": "string"
            },
            "previewurl": {
              "default": "",
              "description": "URL to a preview thumbnail of the image",
              "type": "string"
            },
            "url": {
              "description": "URL to the original image",
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
         "required": true,
         "required": true,
         "items": {
         "type": "array"
          "$ref": "Library.Details.Genre"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetProperties ====
==== AudioLibrary.GetAvailableArtTypes ====
Retrieves the values of the music library properties<br />
Retrieve a list of potential art types for a media item<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''array'' properties<br />
# ''mixed: object|object'' item<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''[[#Audio.Property.Value|Audio.Property.Value]]''<br />
'''Type:''' ''object''<br />
'''Properties:'''
# ''array'' availablearttypes<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve a list of potential art types for a media item",
   "description": "Retrieves the values of the music library properties",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "name": "item",
      "type": "array",
      "uniqueItems": true,
       "required": true,
       "required": true,
       "items": {
       "type": [
         "$ref": "Audio.Property.Name"
        {
       }
          "additionalProperties": false,
          "properties": {
            "albumid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
         },
        {
          "additionalProperties": false,
          "properties": {
            "artistid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        }
       ]
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "$ref": "Audio.Property.Value",
     "properties": {
    "required": true
      "availablearttypes": {
   }
        "items": {
          "type": "string"
        },
        "required": true,
        "type": "array"
      }
    },
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetRecentlyAddedAlbums ====
==== AudioLibrary.GetGenres ====
Retrieve recently added albums<br />
Retrieve all genres<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Audio.Fields.Album|Audio.Fields.Album]]'' properties]<br />
# [''[[#Library.Fields.Genre|Library.Fields.Genre]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
Line 1,278: Line 1,363:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''array[ [[#Library.Details.Genre|Library.Details.Genre]] ]'' genres<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Audio.Details.Album|Audio.Details.Album]]'' albums]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all genres",
   "description": "Retrieve recently added albums",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Library.Fields.Genre",
       "$ref": "Audio.Fields.Album"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "genres": {
        "items": {
          "$ref": "Library.Details.Genre"
        },
        "required": true,
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "albums": {
        "type": "array",
        "items": {
          "$ref": "Audio.Details.Album"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetRecentlyAddedSongs ====
==== AudioLibrary.GetProperties ====
Retrieve recently added songs<br />
Retrieves the values of the music library properties<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#List.Amount|List.Amount]]'' albumlimit] (The amount of recently added albums from which to return the songs)<br />
# ''array[ [[#Audio.Property.Name|Audio.Property.Name]] ]'' properties<br />
# [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Type:''' ''[[#Audio.Property.Value|Audio.Property.Value]]''<br />
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Audio.Details.Song|Audio.Details.Song]]'' songs]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the values of the music library properties",
   "description": "Retrieve recently added songs",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "albumlimit",
       "items": {
      "$ref": "List.Amount",
        "$ref": "Audio.Property.Name"
       "description": "The amount of recently added albums from which to return the songs"
       },
    },
    {
       "name": "properties",
       "name": "properties",
       "$ref": "Audio.Fields.Song"
       "required": true,
    },
       "type": "array",
    {
       "uniqueItems": true
      "name": "limits",
      "$ref": "List.Limits"
    },
    {
       "name": "sort",
       "$ref": "List.Sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "type": "object",
     "$ref": "Audio.Property.Value"
    "properties": {
  },
      "limits": {
  "type": "method"
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "songs": {
        "type": "array",
        "items": {
          "$ref": "Audio.Details.Song"
        }
      }
    }
  }
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetRecentlyPlayedAlbums ====
==== AudioLibrary.GetRecentlyAddedAlbums ====
Retrieve recently played albums<br />
Retrieve recently added albums<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
Line 1,392: Line 1,450:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[ [[#Audio.Details.Album|Audio.Details.Album]] ]'' albums]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Audio.Details.Album|Audio.Details.Album]]'' albums]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve recently added albums",
   "description": "Retrieve recently played albums",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Audio.Fields.Album",
       "$ref": "Audio.Fields.Album"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "albums": {
        "items": {
          "$ref": "Audio.Details.Album"
        },
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "albums": {
        "type": "array",
        "items": {
          "$ref": "Audio.Details.Album"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetRecentlyPlayedSongs ====
==== AudioLibrary.GetRecentlyAddedSongs ====
Retrieve recently played songs<br />
Retrieve recently added songs<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#List.Amount|List.Amount]]'' albumlimit = -1] (The amount of recently added albums from which to return the songs)<br />
# [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
# [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
Line 1,447: Line 1,505:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Audio.Details.Song|Audio.Details.Song]]'' songs]<br />
# [''array[ [[#Audio.Details.Song|Audio.Details.Song]] ]'' songs]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve recently added songs",
   "description": "Retrieve recently played songs",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
      "$ref": "List.Amount",
       "$ref": "Audio.Fields.Song"
      "default": -1,
      "description": "The amount of recently added albums from which to return the songs",
       "name": "albumlimit"
    },
    {
       "$ref": "Audio.Fields.Song",
      "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 1,477: Line 1,538:
       },
       },
       "songs": {
       "songs": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Audio.Details.Song"
           "$ref": "Audio.Details.Song"
         }
         },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetRoles ====
==== AudioLibrary.GetRecentlyPlayedAlbums ====
Retrieve all contributor roles<br />
Retrieve recently played albums<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Audio.Fields.Role|Audio.Fields.Role]]'' properties]<br />
# [''[[#Audio.Fields.Album|Audio.Fields.Album]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
Line 1,500: Line 1,563:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[ [[#Audio.Details.Album|Audio.Details.Album]] ]'' albums]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#Audio.Details.Role|Audio.Details.Role]]'' roles<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve recently played albums",
   "description": "Retrieve all contributor roles",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Audio.Fields.Album",
       "$ref": "Audio.Fields.Role"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "albums": {
        "items": {
          "$ref": "Audio.Details.Album"
        },
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "roles": {
        "type": "array",
        "required": true,
        "items": {
          "$ref": "Audio.Details.Role"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetSongDetails ====
==== AudioLibrary.GetRecentlyPlayedSongs ====
Retrieve details about a specific song<br />
Retrieve recently played songs<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' songid<br />
# [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
# [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 1,554: Line 1,616:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''[[#Audio.Details.Song|Audio.Details.Song]]'' songdetails]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[ [[#Audio.Details.Song|Audio.Details.Song]] ]'' songs]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve recently played songs",
   "description": "Retrieve details about a specific song",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "songid",
      "$ref": "Audio.Fields.Song",
       "$ref": "Library.Id",
       "name": "properties"
       "required": true
    },
    {
       "$ref": "List.Limits",
       "name": "limits"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Sort",
       "$ref": "Audio.Fields.Song"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "songdetails": {
       "limits": {
         "$ref": "Audio.Details.Song"
         "$ref": "List.LimitsReturned",
        "required": true
      },
      "songs": {
        "items": {
          "$ref": "Audio.Details.Song"
        },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== AudioLibrary.GetSongs ====
==== AudioLibrary.GetRoles ====
Retrieve all songs from specified album, artist or genre<br />
Retrieve all contributor roles<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
# [''[[#Audio.Fields.Role|Audio.Fields.Role]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|object|object|object|object|object|[[#List.Filter.Songs|List.Filter.Songs]]'' filter]<br />
# [''boolean'' includesingles = True] (Only songs from albums are returned when false, but overidden when singlesonly parameter is true)<br />
# [''boolean'' allroles = False] (Whether or not to include all roles when filtering by artist, rather than default of excluding other contributors. When true it overrides any role filter value.)<br />
# [''boolean'' singlesonly = False] (Only singles are returned when true, and overides includesingles parameter)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 1,602: Line 1,670:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Audio.Details.Song|Audio.Details.Song]]'' songs]<br />
# ''array[ [[#Audio.Details.Role|Audio.Details.Role]] ]'' roles<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all contributor roles",
   "description": "Retrieve all songs from specified album, artist or genre",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Audio.Fields.Role",
       "$ref": "Audio.Fields.Song"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     },
     }
    {
  ],
      "name": "filter",
  "permission": "ReadData",
      "type": [
  "returns": {
        {
    "properties": {
          "type": "object",
      "limits": {
          "properties": {
        "$ref": "List.LimitsReturned",
            "genreid": {
        "required": true
              "$ref": "Library.Id",
      },
              "required": true,
      "roles": {
              "description": "Song genre. Filter for existence of songs with this genre"
        "items": {
            }
           "$ref": "Audio.Details.Role"
          },
           "additionalProperties": false
         },
         },
         {
         "required": true,
          "type": "object",
        "type": "array"
          "properties": {
      }
            "genre": {
    },
              "type": "string",
    "type": "object"
              "minLength": 1,
  },
              "required": true,
  "type": "method"
              "description": "Song genre. Filter for existence of songs with this genre"
}
            }
</syntaxhighlight>}}
          },
==== AudioLibrary.GetSongDetails ====
          "additionalProperties": false
Retrieve details about a specific song<br />
        },
'''Permissions:'''
        {
* ReadData
          "type": "object",
'''Parameters:'''
          "properties": {
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
            "artistid": {
# ''[[#Library.Id|Library.Id]]'' songid<br />
              "$ref": "Library.Id",
# [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
              "required": true
</div>
            }
'''Returns:'''
          },
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
          "additionalProperties": false
'''Type:''' ''object''<br />
        },
'''Properties:'''
        {
# [''[[#Audio.Details.Song|Audio.Details.Song]]'' songdetails]<br />
          "type": "object",
</div>
          "properties": {
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
            "artistid": {
{
              "$ref": "Library.Id",
  "description": "Retrieve details about a specific song",
              "required": true
  "params": [
            },
    {
            "roleid": {
      "$ref": "Library.Id",
              "$ref": "Library.Id",
      "name": "songid",
              "required": true
      "required": true
            }
    },
          },
    {
          "additionalProperties": false
      "$ref": "Audio.Fields.Song",
        },
      "name": "properties"
        {
    }
          "type": "object",
  ],
           "properties": {
  "permission": "ReadData",
             "artistid": {
  "returns": {
    "properties": {
      "songdetails": {
        "$ref": "Audio.Details.Song"
      }
    },
    "type": "object"
  },
  "type": "method"
}
</syntaxhighlight>}}
==== AudioLibrary.GetSongs ====
Retrieve all songs from specified album, artist or genre<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Audio.Fields.Song|Audio.Fields.Song]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|object|object|object|object|object|[[#List.Filter.Songs|List.Filter.Songs]]'' filter]<br />
# [''boolean'' includesingles = True] (Only songs from albums are returned when false, but overridden when singlesonly parameter is true)<br />
# [''boolean'' allroles = False] (Whether or not to include all roles when filtering by artist, rather than default of excluding other contributors. When true it overrides any role filter value.)<br />
# [''boolean'' singlesonly = False] (Only singles are returned when true, and overrides includesingles parameter)<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[ [[#Audio.Details.Song|Audio.Details.Song]] ]'' songs]<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "Retrieve all songs from specified album, artist or genre",
  "params": [
    {
      "$ref": "Audio.Fields.Song",
      "name": "properties"
    },
    {
      "$ref": "List.Limits",
      "name": "limits"
    },
    {
      "$ref": "List.Sort",
      "name": "sort"
    },
    {
      "name": "filter",
      "type": [
        {
          "additionalProperties": false,
           "properties": {
             "genreid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true
               "description": "Song genre. Filter for existence of songs with this genre",
            },
            "role": {
              "type": "string",
              "minLength": 1,
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artist": {
             "genre": {
               "type": "string",
               "description": "Song genre. Filter for existence of songs with this genre",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artist": {
             "artistid": {
              "type": "string",
              "minLength": 1,
              "required": true
            },
            "roleid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "artist": {
             "artistid": {
               "type": "string",
               "$ref": "Library.Id",
              "minLength": 1,
               "required": true
               "required": true
             },
             },
             "role": {
             "roleid": {
               "type": "string",
               "$ref": "Library.Id",
              "minLength": 1,
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "albumid": {
             "artistid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true
               "required": true
            },
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "roleid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            },
            "role": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "albumid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
           "type": "object"
        },
        {
          "additionalProperties": false,
           "properties": {
           "properties": {
             "album": {
             "album": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
Line 1,757: Line 1,921:
     },
     },
     {
     {
      "default": true,
      "description": "Only songs from albums are returned when false, but overridden when singlesonly parameter is true",
       "name": "includesingles",
       "name": "includesingles",
       "type": "boolean",
       "type": "boolean"
      "default": true,
      "description": "Only songs from albums are returned when false, but overidden when singlesonly parameter is true"
     },
     },
     {
     {
      "default": false,
      "description": "Whether or not to include all roles when filtering by artist, rather than default of excluding other contributors. When true it overrides any role filter value.",
       "name": "allroles",
       "name": "allroles",
       "type": "boolean",
       "type": "boolean"
      "default": false,
      "description": "Whether or not to include all roles when filtering by artist, rather than default of excluding other contributors. When true it overrides any role filter value."
     },
     },
     {
     {
      "default": false,
      "description": "Only singles are returned when true, and overrides includesingles parameter",
       "name": "singlesonly",
       "name": "singlesonly",
       "type": "boolean",
       "type": "boolean"
      "default": false,
      "description": "Only singles are returned when true, and overides includesingles parameter"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 1,783: Line 1,947:
       },
       },
       "songs": {
       "songs": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Audio.Details.Song"
           "$ref": "Audio.Details.Song"
         }
         },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 1,807: Line 1,973:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#Library.Details.Source|Library.Details.Source]]'' sources<br />
# ''array[ [[#Library.Details.Source|Library.Details.Source]] ]'' sources<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Get all music sources, including unique ID",
   "description": "Get all music sources, including unique ID",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Library.Fields.Source",
       "$ref": "Library.Fields.Source"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 1,837: Line 2,000:
       },
       },
       "sources": {
       "sources": {
        "type": "array",
        "required": true,
         "items": {
         "items": {
           "$ref": "Library.Details.Source"
           "$ref": "Library.Details.Source"
         }
         },
        "required": true,
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 1,860: Line 2,025:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Scans the audio sources for new library items",
   "description": "Scans the audio sources for new library items",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "default": "",
       "name": "directory",
       "name": "directory",
       "type": "string",
       "type": "string"
      "default": ""
     },
     },
     {
     {
      "default": true,
      "description": "Whether or not to show the progress bar or any other GUI dialog",
       "name": "showdialogs",
       "name": "showdialogs",
       "type": "boolean",
       "type": "boolean"
      "default": true,
      "description": "Whether or not to show the progress bar or any other GUI dialog"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 1,889: Line 2,055:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' albumid<br />
# ''[[#Library.Id|Library.Id]]'' albumid<br />
# [''[[#Optional.String|Optional.String]]'' title]<br />
# [''[[#Optional.String|Optional.String]]'' title = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' artist = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' artist = None]<br />
# [''[[#Optional.String|Optional.String]]'' description]<br />
# [''[[#Optional.String|Optional.String]]'' description = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' theme = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' theme = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' mood = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' mood = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' style = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' style = None]<br />
# [''[[#Optional.String|Optional.String]]'' type]<br />
# [''[[#Optional.String|Optional.String]]'' type = None]<br />
# [''[[#Optional.String|Optional.String]]'' albumlabel]<br />
# [''[[#Optional.String|Optional.String]]'' albumlabel = None]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' year]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' year = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' votes]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' votes = None]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainzalbumid]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainzalbumid = None]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainzreleasegroupid]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainzreleasegroupid = None]<br />
# [''[[#Optional.String|Optional.String]]'' sortartist]<br />
# [''[[#Optional.String|Optional.String]]'' sortartist = None]<br />
# [''[[#Optional.String|Optional.String]]'' displayartist]<br />
# [''[[#Optional.String|Optional.String]]'' displayartist = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' musicbrainzalbumartistid = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' musicbrainzalbumartistid = None]<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''[[#Optional.Boolean|Optional.Boolean]]'' isboxset]<br />
# [''[[#Optional.Boolean|Optional.Boolean]]'' isboxset = None]<br />
# [''[[#Optional.String|Optional.String]]'' releasedate]<br />
# [''[[#Optional.String|Optional.String]]'' releasedate = None]<br />
# [''[[#Optional.String|Optional.String]]'' originaldate]<br />
# [''[[#Optional.String|Optional.String]]'' originaldate = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 1,916: Line 2,082:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given album with the given details",
   "description": "Update the given album with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "albumid",
       "name": "albumid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "title",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "title"
     },
     },
     {
     {
      "default": null,
       "name": "artist",
       "name": "artist",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "description",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "description"
     },
     },
     {
     {
      "default": null,
       "name": "genre",
       "name": "genre",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "theme",
       "name": "theme",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "mood",
       "name": "mood",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "style",
       "name": "style",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "type",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "type"
     },
     },
     {
     {
       "name": "albumlabel",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "albumlabel"
     },
     },
     {
     {
       "name": "rating",
       "$ref": "Optional.Number",
       "$ref": "Optional.Number"
      "default": null,
       "name": "rating"
     },
     },
     {
     {
       "name": "year",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "year"
     },
     },
     {
     {
       "name": "userrating",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "userrating"
     },
     },
     {
     {
       "name": "votes",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "votes"
     },
     },
     {
     {
       "name": "musicbrainzalbumid",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "musicbrainzalbumid"
     },
     },
     {
     {
       "name": "musicbrainzreleasegroupid",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "musicbrainzreleasegroupid"
     },
     },
     {
     {
       "name": "sortartist",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "sortartist"
     },
     },
     {
     {
       "name": "displayartist",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "displayartist"
     },
     },
     {
     {
      "default": null,
       "name": "musicbrainzalbumartistid",
       "name": "musicbrainzalbumartistid",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "isboxset",
       "$ref": "Optional.Boolean",
       "$ref": "Optional.Boolean"
      "default": null,
       "name": "isboxset"
     },
     },
     {
     {
       "name": "releasedate",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "releasedate"
     },
     },
     {
     {
       "name": "originaldate",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "originaldate"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,076: Line 2,265:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' artistid<br />
# ''[[#Library.Id|Library.Id]]'' artistid<br />
# [''[[#Optional.String|Optional.String]]'' artist]<br />
# [''[[#Optional.String|Optional.String]]'' artist = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' instrument = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' instrument = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' style = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' style = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' mood = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' mood = None]<br />
# [''[[#Optional.String|Optional.String]]'' born]<br />
# [''[[#Optional.String|Optional.String]]'' born = None]<br />
# [''[[#Optional.String|Optional.String]]'' formed]<br />
# [''[[#Optional.String|Optional.String]]'' formed = None]<br />
# [''[[#Optional.String|Optional.String]]'' description]<br />
# [''[[#Optional.String|Optional.String]]'' description = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br />
# [''[[#Optional.String|Optional.String]]'' died]<br />
# [''[[#Optional.String|Optional.String]]'' died = None]<br />
# [''[[#Optional.String|Optional.String]]'' disbanded]<br />
# [''[[#Optional.String|Optional.String]]'' disbanded = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' yearsactive = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' yearsactive = None]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainzartistid]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainzartistid = None]<br />
# [''[[#Optional.String|Optional.String]]'' sortname]<br />
# [''[[#Optional.String|Optional.String]]'' sortname = None]<br />
# [''[[#Optional.String|Optional.String]]'' type]<br />
# [''[[#Optional.String|Optional.String]]'' type = None]<br />
# [''[[#Optional.String|Optional.String]]'' gender]<br />
# [''[[#Optional.String|Optional.String]]'' gender = None]<br />
# [''[[#Optional.String|Optional.String]]'' disambiguation]<br />
# [''[[#Optional.String|Optional.String]]'' disambiguation = None]<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 2,098: Line 2,287:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given artist with the given details",
   "description": "Update the given artist with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "artistid",
       "name": "artistid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "artist",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "artist"
     },
     },
     {
     {
      "default": null,
       "name": "instrument",
       "name": "instrument",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "style",
       "name": "style",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "mood",
       "name": "mood",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "born",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "born"
     },
     },
     {
     {
       "name": "formed",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "formed"
     },
     },
     {
     {
       "name": "description",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "description"
     },
     },
     {
     {
      "default": null,
       "name": "genre",
       "name": "genre",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "died",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "died"
     },
     },
     {
     {
       "name": "disbanded",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "disbanded"
     },
     },
     {
     {
      "default": null,
       "name": "yearsactive",
       "name": "yearsactive",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "musicbrainzartistid",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "musicbrainzartistid"
     },
     },
     {
     {
       "name": "sortname",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "sortname"
     },
     },
     {
     {
       "name": "type",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "type"
     },
     },
     {
     {
       "name": "gender",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "gender"
     },
     },
     {
     {
       "name": "disambiguation",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "disambiguation"
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,231: Line 2,438:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' songid<br />
# ''[[#Library.Id|Library.Id]]'' songid<br />
# [''[[#Optional.String|Optional.String]]'' title]<br />
# [''[[#Optional.String|Optional.String]]'' title = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' artist = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' artist = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' year]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' year = None]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' track]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' track = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' disc]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' disc = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' duration]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' duration = None]<br />
# [''[[#Optional.String|Optional.String]]'' comment]<br />
# [''[[#Optional.String|Optional.String]]'' comment = None]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainztrackid]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainztrackid = None]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainzartistid]<br />
# [''[[#Optional.String|Optional.String]]'' musicbrainzartistid = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' votes]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' votes = None]<br />
# [''[[#Optional.String|Optional.String]]'' displayartist]<br />
# [''[[#Optional.String|Optional.String]]'' displayartist = None]<br />
# [''[[#Optional.String|Optional.String]]'' sortartist]<br />
# [''[[#Optional.String|Optional.String]]'' sortartist = None]<br />
# [''[[#Optional.String|Optional.String]]'' mood]<br />
# [''[[#Optional.String|Optional.String]]'' mood = None]<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''[[#Optional.String|Optional.String]]'' disctitle]<br />
# [''[[#Optional.String|Optional.String]]'' disctitle = None]<br />
# [''[[#Optional.String|Optional.String]]'' releasedate]<br />
# [''[[#Optional.String|Optional.String]]'' releasedate = None]<br />
# [''[[#Optional.String|Optional.String]]'' originaldate]<br />
# [''[[#Optional.String|Optional.String]]'' originaldate = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' bpm]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' bpm = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 2,259: Line 2,466:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given song with the given details",
   "description": "Update the given song with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "songid",
       "name": "songid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "title",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "title"
     },
     },
     {
     {
      "default": null,
       "name": "artist",
       "name": "artist",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "genre",
       "name": "genre",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "year",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "year"
     },
     },
     {
     {
       "name": "rating",
       "$ref": "Optional.Number",
       "$ref": "Optional.Number"
      "default": null,
       "name": "rating"
     },
     },
     {
     {
       "name": "track",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "track"
     },
     },
     {
     {
       "name": "disc",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "disc"
     },
     },
     {
     {
       "name": "duration",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "duration"
     },
     },
     {
     {
       "name": "comment",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "comment"
     },
     },
     {
     {
       "name": "musicbrainztrackid",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "musicbrainztrackid"
     },
     },
     {
     {
       "name": "musicbrainzartistid",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "musicbrainzartistid"
     },
     },
     {
     {
       "name": "playcount",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "playcount"
     },
     },
     {
     {
       "name": "lastplayed",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "lastplayed"
     },
     },
     {
     {
       "name": "userrating",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "userrating"
     },
     },
     {
     {
       "name": "votes",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "votes"
     },
     },
     {
     {
       "name": "displayartist",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "displayartist"
     },
     },
     {
     {
       "name": "sortartist",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "sortartist"
     },
     },
     {
     {
       "name": "mood",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "mood"
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "disctitle",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "disctitle"
     },
     },
     {
     {
       "name": "releasedate",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "releasedate"
     },
     },
     {
     {
       "name": "originaldate",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "originaldate"
     },
     },
     {
     {
       "name": "bpm",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "bpm"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,397: Line 2,628:
# ''string'' title<br />
# ''string'' title<br />
# ''[[#Favourite.Type|Favourite.Type]]'' type<br />
# ''[[#Favourite.Type|Favourite.Type]]'' type<br />
# [''[[#Optional.String|Optional.String]]'' path] (Required for media, script and androidapp favourites types)<br />
# [''[[#Optional.String|Optional.String]]'' path = None] (Required for media, script and androidapp favourites types)<br />
# [''[[#Optional.String|Optional.String]]'' window] (Required for window favourite type)<br />
# [''[[#Optional.String|Optional.String]]'' window = None] (Required for window favourite type)<br />
# [''[[#Optional.String|Optional.String]]'' windowparameter]<br />
# [''[[#Optional.String|Optional.String]]'' windowparameter = None]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 2,406: Line 2,637:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Add a favourite with the given details",
   "description": "Add a favourite with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
       "name": "title",
       "name": "title",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "$ref": "Favourite.Type",
       "name": "type",
       "name": "type",
      "$ref": "Favourite.Type",
       "required": true
       "required": true
     },
     },
     {
     {
      "name": "path",
       "$ref": "Optional.String",
       "$ref": "Optional.String",
       "description": "Required for media, script and androidapp favourites types"
      "default": null,
       "description": "Required for media, script and androidapp favourites types",
      "name": "path"
     },
     },
     {
     {
      "name": "window",
       "$ref": "Optional.String",
       "$ref": "Optional.String",
       "description": "Required for window favourite type"
      "default": null,
       "description": "Required for window favourite type",
      "name": "window"
     },
     },
     {
     {
       "name": "windowparameter",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "windowparameter"
     },
     },
     {
     {
       "name": "thumbnail",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "thumbnail"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,451: Line 2,687:
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''mixed: [[#Favourite.Type|Favourite.Type]]'' type = None]<br />
# [''mixed: null|[[#Favourite.Type|Favourite.Type]]'' type = None]<br />
# [''[[#Favourite.Fields.Favourite|Favourite.Fields.Favourite]]'' properties]<br />
# [''[[#Favourite.Fields.Favourite|Favourite.Fields.Favourite]]'' properties]<br />
</div>
</div>
Line 2,458: Line 2,694:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[ [[#Favourite.Details.Favourite|Favourite.Details.Favourite]] ]'' favourites]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Favourite.Details.Favourite|Favourite.Details.Favourite]]'' favourites]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all favourites",
   "description": "Retrieve all favourites",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "default": null,
       "name": "type",
       "name": "type",
       "type": [
       "type": [
         "null",
         {
          "type": "null"
        },
         {
         {
           "$ref": "Favourite.Type"
           "$ref": "Favourite.Type"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "properties",
       "$ref": "Favourite.Fields.Favourite",
       "$ref": "Favourite.Fields.Favourite"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "favourites": {
        "items": {
          "$ref": "Favourite.Details.Favourite"
        },
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "favourites": {
        "type": "array",
        "items": {
          "$ref": "Favourite.Details.Favourite"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,513: Line 2,750:
'''Type:''' ''any''<br />
'''Type:''' ''any''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Downloads the given file",
   "description": "Downloads the given file",
  "transport": [
    "Response",
    "FileDownloadDirect"
  ],
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "path",
       "name": "path",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "type": "any",
     "type": "any"
    "required": true
  },
  }
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,551: Line 2,783:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''array[ [[#List.Item.File|List.Item.File]] ]'' files<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#List.Item.File|List.Item.File]]'' files<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Get the directories and files in the given directory",
   "description": "Get the directories and files in the given directory",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "directory",
       "name": "directory",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "name": "media",
       "$ref": "Files.Media",
       "$ref": "Files.Media",
       "default": "files"
       "default": "files",
      "name": "media"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Fields.Files",
       "$ref": "List.Fields.Files"
       "name": "properties"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     },
     },
     {
     {
      "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits",
       "description": "Limits are applied after getting the directory content thus retrieval is not faster when they are applied."
       "description": "Limits are applied after getting the directory content thus retrieval is not faster when they are applied.",
      "name": "limits"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
       "files": {
       "files": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "List.Item.File"
           "$ref": "List.Item.File"
         },
         },
        "required": true,
        "type": "array"
      },
      "limits": {
        "$ref": "List.LimitsReturned",
         "required": true
         "required": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,619: Line 2,850:
# ''[[#List.Item.File|List.Item.File]]'' filedetails<br />
# ''[[#List.Item.File|List.Item.File]]'' filedetails<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Get details for a specific file",
   "description": "Get details for a specific file",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "description": "Full path to the file",
       "name": "file",
       "name": "file",
      "type": "string",
       "required": true,
       "required": true,
       "description": "Full path to the file"
       "type": "string"
     },
     },
     {
     {
      "name": "media",
       "$ref": "Files.Media",
       "$ref": "Files.Media",
       "default": "files"
       "default": "files",
      "name": "media"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Fields.Files",
       "$ref": "List.Fields.Files"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "filedetails": {
       "filedetails": {
Line 2,649: Line 2,877:
         "required": true
         "required": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,670: Line 2,900:
# ''[[#List.Items.Sources|List.Items.Sources]]'' sources<br />
# ''[[#List.Items.Sources|List.Items.Sources]]'' sources<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Get the sources of the media windows",
   "description": "Get the sources of the media windows",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Files.Media",
       "name": "media",
       "name": "media",
      "$ref": "Files.Media",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 2,702: Line 2,929:
         "required": true
         "required": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,718: Line 2,947:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''string'' protocol<br />
# ''any'' details (Transport specific details on how/from where to download the given file)<br />
# ''any'' details (Transport specific details on how/from where to download the given file)<br />
# ''string'' mode (Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol)<br />
# ''string'' mode (Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol)<br />
# ''string'' protocol<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Provides a way to download a given file (e.g. providing an URL to the real file location)",
   "description": "Provides a way to download a given file (e.g. providing an URL to the real file location)",
  "transport": [
    "Response",
    "FileDownloadRedirect"
  ],
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "path",
       "name": "path",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "protocol": {
        "type": "string",
        "enum": [
          "http"
        ],
        "required": true
      },
       "details": {
       "details": {
         "type": "any",
         "description": "Transport specific details on how/from where to download the given file",
         "required": true,
         "required": true,
         "description": "Transport specific details on how/from where to download the given file"
         "type": "any"
       },
       },
       "mode": {
       "mode": {
         "type": "string",
         "description": "Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol",
         "enum": [
         "enums": [
           "redirect",
           "redirect",
           "direct"
           "direct"
         ],
         ],
         "required": true,
         "required": true,
         "description": "Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol"
         "type": "string"
      },
      "protocol": {
        "enums": [
          "http"
        ],
        "required": true,
        "type": "string"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,774: Line 2,999:
# ''string'' file (Full path to the file)<br />
# ''string'' file (Full path to the file)<br />
# ''[[#Files.Media|Files.Media]]'' media (File type to update correct database. Currently only "video" is supported.)<br />
# ''[[#Files.Media|Files.Media]]'' media (File type to update correct database. Currently only "video" is supported.)<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed] (Setting a valid lastplayed without a playcount will force playcount to 1.)<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed = None] (Setting a valid lastplayed without a playcount will force playcount to 1.)<br />
# [''mixed: [[#Video.Resume|Video.Resume]]'' resume = None]<br />
# [''mixed: null|[[#Video.Resume|Video.Resume]]'' resume = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 2,782: Line 3,007:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given specific file with the given details",
   "description": "Update the given specific file with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "description": "Full path to the file",
       "name": "file",
       "name": "file",
      "type": "string",
       "required": true,
       "required": true,
       "description": "Full path to the file"
       "type": "string"
     },
     },
     {
     {
      "$ref": "Files.Media",
      "description": "File type to update correct database. Currently only \"video\" is supported.",
       "name": "media",
       "name": "media",
      "$ref": "Files.Media",
       "required": true
       "required": true,
      "description": "File type to update correct database. Currently only \"video\" is supported."
     },
     },
     {
     {
       "name": "playcount",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "playcount"
     },
     },
     {
     {
      "name": "lastplayed",
       "$ref": "Optional.String",
       "$ref": "Optional.String",
       "description": "Setting a valid lastplayed without a playcount will force playcount to 1."
      "default": null,
       "description": "Setting a valid lastplayed without a playcount will force playcount to 1.",
      "name": "lastplayed"
     },
     },
     {
     {
      "default": null,
       "name": "resume",
       "name": "resume",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Video.Resume",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Video.Resume"
         }
         }
       ],
       ]
      "default": null
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,833: Line 3,062:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#GUI.Window|GUI.Window]]'' window<br />
# ''[[#GUI.Window|GUI.Window]]'' window<br />
# [''array'' parameters]<br />
# [''array[string]'' parameters]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 2,839: Line 3,068:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Activates the given window",
   "description": "Activates the given window",
  "transport": "Response",
  "permission": "ControlGUI",
   "params": [
   "params": [
     {
     {
      "$ref": "GUI.Window",
       "name": "window",
       "name": "window",
      "$ref": "GUI.Window",
       "required": true
       "required": true
     },
     },
     {
     {
      "name": "parameters",
      "type": "array",
       "items": {
       "items": {
        "type": "string",
         "minLength": 1,
         "minLength": 1,
         "required": true
         "type": "string"
       },
       },
       "minItems": 1
       "minItems": 1,
      "name": "parameters",
      "type": "array"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlGUI",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,871: Line 3,100:
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''array'' properties<br />
# ''array[ [[#GUI.Property.Name|GUI.Property.Name]] ]'' properties<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 2,877: Line 3,106:
'''Type:''' ''[[#GUI.Property.Value|GUI.Property.Value]]''<br />
'''Type:''' ''[[#GUI.Property.Value|GUI.Property.Value]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the values of the given properties",
   "description": "Retrieves the values of the given properties",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "items": {
        "$ref": "GUI.Property.Name"
      },
       "name": "properties",
       "name": "properties",
      "required": true,
       "type": "array",
       "type": "array",
       "uniqueItems": true,
       "uniqueItems": true
      "required": true,
      "items": {
        "$ref": "GUI.Property.Name"
      }
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "$ref": "GUI.Property.Value",
     "$ref": "GUI.Property.Value"
    "required": true
  },
  }
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,908: Line 3,135:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]'' stereoscopicmodes]<br />
# [''array[ [[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]] ]'' stereoscopicmodes]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Returns the supported stereoscopic modes of the GUI",
   "description": "Returns the supported stereoscopic modes of the GUI",
   "transport": "Response",
   "params": [],
   "permission": "ReadData",
   "permission": "ReadData",
  "params": [],
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "stereoscopicmodes": {
       "stereoscopicmodes": {
        "type": "array",
        "uniqueItems": true,
         "items": {
         "items": {
           "$ref": "GUI.Stereoscopy.Mode"
           "$ref": "GUI.Stereoscopy.Mode"
         }
         },
        "type": "array",
        "uniqueItems": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,943: Line 3,169:
'''Type:''' ''boolean (Fullscreen state)''<br />
'''Type:''' ''boolean (Fullscreen state)''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Toggle fullscreen/GUI",
   "description": "Toggle fullscreen/GUI",
  "transport": "Response",
  "permission": "ControlGUI",
   "params": [
   "params": [
     {
     {
      "$ref": "Global.Toggle",
       "name": "fullscreen",
       "name": "fullscreen",
       "required": true,
       "required": true
      "$ref": "Global.Toggle"
     }
     }
   ],
   ],
  "permission": "ControlGUI",
   "returns": {
   "returns": {
     "type": "boolean",
     "description": "Fullscreen state",
     "description": "Fullscreen state"
     "type": "boolean"
   }
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 2,974: Line 3,199:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Sets the stereoscopic mode of the GUI to the given mode",
   "description": "Sets the stereoscopic mode of the GUI to the given mode",
  "transport": "Response",
  "permission": "ControlGUI",
   "params": [
   "params": [
     {
     {
       "name": "mode",
       "enums": [
      "type": "string",
      "enum": [
         "toggle",
         "toggle",
         "tomono",
         "tomono",
Line 2,999: Line 3,219:
         "monoscopic"
         "monoscopic"
       ],
       ],
       "required": true
      "name": "mode",
       "required": true,
      "type": "string"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlGUI",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,020: Line 3,246:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Shows a GUI notification",
   "description": "Shows a GUI notification",
  "transport": "Response",
  "permission": "ControlGUI",
   "params": [
   "params": [
     {
     {
       "name": "title",
       "name": "title",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "message",
       "name": "message",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "default": "",
       "name": "image",
       "name": "image",
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "required": true,
          "enum": [
             "info",
             "info",
             "warning",
             "warning",
             "error"
             "error"
           ]
           ],
          "type": "string"
         },
         },
         {
         {
           "type": "string",
           "type": "string"
          "required": true
         }
         }
       ],
       ]
      "default": ""
     },
     },
     {
     {
      "default": 5000,
      "description": "The time in milliseconds the notification will be visible",
      "minimum": 1500,
       "name": "displaytime",
       "name": "displaytime",
       "type": "integer",
       "type": "integer"
      "minimum": 1500,
      "default": 5000,
      "description": "The time in milliseconds the notification will be visible"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlGUI",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,076: Line 3,301:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Goes back in GUI",
   "description": "Goes back in GUI",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,094: Line 3,320:
# ''string'' button (Button name)<br />
# ''string'' button (Button name)<br />
# ''string'' keymap (Keymap name (KB, XG, R1, or R2))<br />
# ''string'' keymap (Keymap name (KB, XG, R1, or R2))<br />
# ''integer'' holdtime = 0 (Number of milliseconds to simulate button hold.)<br />
# [''integer'' holdtime = 0] (Number of milliseconds to simulate button hold.)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 3,100: Line 3,326:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Send a button press event",
   "description": "Send a button press event",
  "transport": "Response",
  "permission": "Navigate",
   "params": [
   "params": [
     {
     {
      "description": "Button name",
       "name": "button",
       "name": "button",
      "type": "string",
       "required": true,
       "required": true,
       "description": "Button name"
       "type": "string"
     },
     },
     {
     {
      "name": "keymap",
      "type": "string",
      "required": true,
       "description": "Keymap name (KB, XG, R1, or R2)",
       "description": "Keymap name (KB, XG, R1, or R2)",
       "enum": [
       "enums": [
         "KB",
         "KB",
         "XG",
         "XG",
         "R1",
         "R1",
         "R2"
         "R2"
       ]
       ],
      "name": "keymap",
      "required": true,
      "type": "string"
     },
     },
     {
     {
      "default": 0,
      "description": "Number of milliseconds to simulate button hold.",
      "minimum": 0,
       "name": "holdtime",
       "name": "holdtime",
       "type": "integer",
       "type": "integer"
      "required": false,
      "minimum": 0,
      "default": 0,
      "description": "Number of milliseconds to simulate button hold."
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "Navigate",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,145: Line 3,371:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Shows the context menu",
   "description": "Shows the context menu",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,163: Line 3,390:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Navigate down in GUI",
   "description": "Navigate down in GUI",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,185: Line 3,413:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Execute a specific action",
   "description": "Execute a specific action",
  "transport": "Response",
  "permission": "Navigate",
   "params": [
   "params": [
     {
     {
      "$ref": "Input.Action",
       "name": "action",
       "name": "action",
      "$ref": "Input.Action",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "Navigate",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,209: Line 3,438:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Goes to home window in GUI",
   "description": "Goes to home window in GUI",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,227: Line 3,457:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Shows the information dialog",
   "description": "Shows the information dialog",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,245: Line 3,476:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Navigate left in GUI",
   "description": "Navigate left in GUI",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,263: Line 3,495:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Navigate right in GUI",
   "description": "Navigate right in GUI",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,281: Line 3,514:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Select current item in GUI",
   "description": "Select current item in GUI",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,304: Line 3,538:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Send a generic (unicode) text",
   "description": "Send a generic (unicode) text",
  "transport": "Response",
  "permission": "Navigate",
   "params": [
   "params": [
     {
     {
      "description": "Unicode text",
       "name": "text",
       "name": "text",
      "type": "string",
       "required": true,
       "required": true,
       "description": "Unicode text"
       "type": "string"
     },
     },
     {
     {
      "default": true,
      "description": "Whether this is the whole input or not (closes an open input dialog if true).",
       "name": "done",
       "name": "done",
       "type": "boolean",
       "type": "boolean"
      "default": true,
      "description": "Whether this is the whole input or not (closes an open input dialog if true)."
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "Navigate",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,335: Line 3,570:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Show codec information of the playing item",
   "description": "Show codec information of the playing item",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,353: Line 3,589:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Show the on-screen display for the current player",
   "description": "Show the on-screen display for the current player",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,371: Line 3,608:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...",
   "description": "Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,389: Line 3,627:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Navigate up in GUI",
   "description": "Navigate up in GUI",
   "transport": "Response",
   "params": [],
   "permission": "Navigate",
   "permission": "Navigate",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,408: Line 3,647:
'''Type:''' ''[[#Configuration|Configuration]]''<br />
'''Type:''' ''[[#Configuration|Configuration]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Get client-specific configurations",
   "description": "Get client-specific configurations",
   "transport": "Announcing",
   "params": [],
   "permission": "ReadData",
   "permission": "ReadData",
  "params": [],
   "returns": {
   "returns": {
     "$ref": "Configuration"
     "$ref": "Configuration"
   }
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,435: Line 3,673:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Enumerates all actions and descriptions",
   "description": "Enumerates all actions and descriptions",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "default": true,
       "name": "getdescriptions",
       "name": "getdescriptions",
       "type": "boolean",
       "type": "boolean"
      "default": true
     },
     },
     {
     {
      "default": false,
       "name": "getmetadata",
       "name": "getmetadata",
       "type": "boolean",
       "type": "boolean"
      "default": false
     },
     },
     {
     {
      "default": true,
       "name": "filterbytransport",
       "name": "filterbytransport",
       "type": "boolean",
       "type": "boolean"
      "default": true
     },
     },
     {
     {
       "name": "filter",
       "name": "filter",
      "type": "object",
       "properties": {
       "properties": {
        "getreferences": {
          "default": true,
          "description": "Whether or not to print the schema for referenced types",
          "type": "boolean"
        },
         "id": {
         "id": {
           "type": "string",
           "description": "Name of a namespace, method or type",
           "required": true,
           "required": true,
           "description": "Name of a namespace, method or type"
           "type": "string"
         },
         },
         "type": {
         "type": {
           "type": "string",
           "description": "Type of the given name",
           "required": true,
           "enums": [
          "enum": [
             "method",
             "method",
             "namespace",
             "namespace",
Line 3,475: Line 3,713:
             "notification"
             "notification"
           ],
           ],
           "description": "Type of the given name"
           "required": true,
        },
           "type": "string"
        "getreferences": {
           "type": "boolean",
          "default": true,
          "description": "Whether or not to print the schema for referenced types"
         }
         }
       }
       },
      "type": "object"
     }
     }
   ],
   ],
   "returns": "object"
  "permission": "ReadData",
   "returns": {
    "additionalProperties": false,
    "type": "object"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,502: Line 3,742:
'''Type:''' ''any''<br />
'''Type:''' ''any''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Notify all other connected clients",
   "description": "Notify all other connected clients",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "message",
       "name": "message",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "default": null,
       "name": "data",
       "name": "data",
       "type": "any",
       "type": "any"
      "default": null
     }
     }
   ],
   ],
   "returns": "any"
  "permission": "ReadData",
   "returns": {
    "type": "any"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,536: Line 3,777:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''boolean'' ReadData<br />
# ''boolean'' controlgui<br />
# ''boolean'' ControlPlayback<br />
# ''boolean'' controlnotify<br />
# ''boolean'' ControlNotify<br />
# ''boolean'' controlplayback<br />
# ''boolean'' ControlPower<br />
# ''boolean'' controlpower<br />
# ''boolean'' UpdateData<br />
# ''boolean'' controlpvr<br />
# ''boolean'' RemoveData<br />
# ''boolean'' controlsystem<br />
# ''boolean'' Navigate<br />
# ''boolean'' executeaddon<br />
# ''boolean'' WriteFile<br />
# ''boolean'' manageaddon<br />
# ''boolean'' ControlSystem<br />
# ''boolean'' navigate<br />
# ''boolean'' ControlGUI<br />
# ''boolean'' readdata<br />
# ''boolean'' ManageAddon<br />
# ''boolean'' removedata<br />
# ''boolean'' ExecuteAddon<br />
# ''boolean'' updatedata<br />
# ''boolean'' ControlPVR<br />
# ''boolean'' writefile<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve the clients permissions",
   "description": "Retrieve the clients permissions",
   "transport": "Response",
   "params": [],
   "permission": "ReadData",
   "permission": "ReadData",
  "params": [],
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "ReadData": {
       "controlgui": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "ControlPlayback": {
       "controlnotify": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "ControlNotify": {
       "controlplayback": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "ControlPower": {
       "controlpower": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "UpdateData": {
       "controlpvr": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "RemoveData": {
       "controlsystem": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "Navigate": {
       "executeaddon": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "WriteFile": {
       "manageaddon": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "ControlSystem": {
       "navigate": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "ControlGUI": {
       "readdata": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "ManageAddon": {
       "removedata": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "ExecuteAddon": {
       "updatedata": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       },
       },
       "ControlPVR": {
       "writefile": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "boolean"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,624: Line 3,864:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Ping responder",
   "description": "Ping responder",
   "transport": "Response",
   "params": [],
   "permission": "ReadData",
   "permission": "ReadData",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,646: Line 3,887:
'''Type:''' ''[[#Configuration|Configuration]]''<br />
'''Type:''' ''[[#Configuration|Configuration]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Change the client-specific configuration",
   "description": "Change the client-specific configuration",
  "transport": "Announcing",
  "permission": "ControlNotify",
   "params": [
   "params": [
     {
     {
       "name": "notifications",
       "name": "notifications",
      "type": "object",
       "properties": {
       "properties": {
         "Player": {
         "application": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         },
         },
         "Playlist": {
         "audiolibrary": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         },
         },
         "GUI": {
         "gui": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         },
         },
         "System": {
         "input": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         },
         },
         "AudioLibrary": {
         "other": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         },
         },
         "VideoLibrary": {
         "player": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         },
         },
         "Application": {
         "playlist": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         },
         },
         "Input": {
         "system": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         },
         },
         "Other": {
         "videolibrary": {
           "$ref": "Optional.Boolean"
           "$ref": "Optional.Boolean",
          "default": null
         }
         }
       }
       },
      "type": "object"
     }
     }
   ],
   ],
  "permission": "ControlNotify",
   "returns": {
   "returns": {
     "$ref": "Configuration"
     "$ref": "Configuration"
   }
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,702: Line 3,951:
# ''object'' version<br />
# ''object'' version<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve the JSON-RPC protocol version.",
   "description": "Retrieve the JSON-RPC protocol version.",
   "transport": "Response",
   "params": [],
   "permission": "ReadData",
   "permission": "ReadData",
  "params": [],
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "version": {
       "version": {
        "type": "object",
        "required": true,
         "properties": {
         "properties": {
           "major": {
           "major": {
             "type": "integer",
             "description": "Bumped on backwards incompatible changes to the API definition",
             "minimum": 0,
             "minimum": 0,
             "required": true,
             "required": true,
             "description": "Bumped on backwards incompatible changes to the API definition"
             "type": "integer"
           },
           },
           "minor": {
           "minor": {
             "type": "integer",
             "description": "Bumped on backwards compatible additions/changes to the API definition",
             "minimum": 0,
             "minimum": 0,
             "required": true,
             "required": true,
             "description": "Bumped on backwards compatible additions/changes to the API definition"
             "type": "integer"
           },
           },
           "patch": {
           "patch": {
             "type": "integer",
             "description": "Bumped on any changes to the internal implementation but not to the API definition",
             "minimum": 0,
             "minimum": 0,
             "required": true,
             "required": true,
             "description": "Bumped on any changes to the internal implementation but not to the API definition"
             "type": "integer"
           }
           }
         }
         },
        "required": true,
        "type": "object"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
=== PVR ===
=== PVR ===
==== PVR.AddTimer ====
==== PVR.AddTimer ====
Adds a timer to record the given show one times or a timer rule to record all showings of the given show<br />
Adds a timer to record the given show one times or a timer rule to record all showings of the given show or adds a reminder timer or reminder timer rule<br />
'''Permissions:'''
'''Permissions:'''
* ControlPVR
* ControlPVR
Line 3,749: Line 3,997:
# ''[[#Library.Id|Library.Id]]'' broadcastid (the broadcast id of the item to record)<br />
# ''[[#Library.Id|Library.Id]]'' broadcastid (the broadcast id of the item to record)<br />
# [''boolean'' timerrule = False] (controls whether to create a timer rule or a onetime timer)<br />
# [''boolean'' timerrule = False] (controls whether to create a timer rule or a onetime timer)<br />
# [''boolean'' reminder = False] (controls whether to create a reminder timer or a recording timer)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 3,754: Line 4,003:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Adds a timer to record the given show one times or a timer rule to record all showings of the given show or adds a reminder timer or reminder timer rule",
   "description": "Adds a timer to record the given show one times or a timer rule to record all showings of the given show",
  "transport": "Response",
  "permission": "ControlPVR",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
      "description": "the broadcast id of the item to record",
       "name": "broadcastid",
       "name": "broadcastid",
      "$ref": "Library.Id",
       "required": true
       "required": true,
      "description": "the broadcast id of the item to record"
     },
     },
     {
     {
      "default": false,
      "description": "controls whether to create a timer rule or a onetime timer",
       "name": "timerrule",
       "name": "timerrule",
       "type": "boolean",
       "type": "boolean"
    },
    {
       "default": false,
       "default": false,
       "description": "controls whether to create a timer rule or a onetime timer"
       "description": "controls whether to create a reminder timer or a recording timer",
      "name": "reminder",
      "type": "boolean"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPVR",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,789: Line 4,045:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Deletes a onetime timer or a timer rule",
   "description": "Deletes a onetime timer or a timer rule",
  "transport": "Response",
  "permission": "ControlPVR",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
      "description": "the id of the onetime timer or timer rule to delete",
       "name": "timerid",
       "name": "timerid",
      "$ref": "Library.Id",
       "required": true
       "required": true,
      "description": "the id of the onetime timer or timer rule to delete"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPVR",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,821: Line 4,078:
# [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastdetails]<br />
# [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastdetails]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the details of a specific broadcast",
   "description": "Retrieves the details of a specific broadcast",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "broadcastid",
       "name": "broadcastid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "PVR.Fields.Broadcast",
       "$ref": "PVR.Fields.Broadcast"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "broadcastdetails": {
       "broadcastdetails": {
         "$ref": "PVR.Details.Broadcast"
         "$ref": "PVR.Details.Broadcast"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== PVR.GetBroadcasts ====
==== PVR.GetBroadcastIsPlayable ====
Retrieves the program of a specific channel<br />
Retrieves whether or not a broadcast is playable<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' channelid<br />
# ''[[#Library.Id|Library.Id]]'' broadcastid (the id of the broadcast to to check for playability)<br />
# [''[[#PVR.Fields.Broadcast|PVR.Fields.Broadcast]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Type:''' ''boolean''<br />
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcasts<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves whether or not a broadcast is playable",
   "description": "Retrieves the program of a specific channel",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "channelid",
       "$ref": "Library.Id",
       "$ref": "Library.Id",
      "description": "the id of the broadcast to to check for playability",
      "name": "broadcastid",
      "required": true
    }
  ],
  "permission": "ReadData",
  "returns": {
    "type": "boolean"
  },
  "type": "method"
}
</syntaxhighlight>}}
==== PVR.GetBroadcasts ====
Retrieves the program of a specific channel<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' channelid<br />
# [''[[#PVR.Fields.Broadcast|PVR.Fields.Broadcast]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Properties:'''
# ''array[ [[#PVR.Details.Broadcast|PVR.Details.Broadcast]] ]'' broadcasts<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "Retrieves the program of a specific channel",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "channelid",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "PVR.Fields.Broadcast",
       "$ref": "PVR.Fields.Broadcast"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "broadcasts": {
        "items": {
          "$ref": "PVR.Details.Broadcast"
        },
        "required": true,
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "broadcasts": {
        "type": "array",
        "required": true,
        "items": {
          "$ref": "PVR.Details.Broadcast"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,919: Line 4,204:
# [''[[#PVR.Details.Channel|PVR.Details.Channel]]'' channeldetails]<br />
# [''[[#PVR.Details.Channel|PVR.Details.Channel]]'' channeldetails]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the details of a specific channel",
   "description": "Retrieves the details of a specific channel",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "channelid",
       "name": "channelid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "PVR.Fields.Channel",
       "$ref": "PVR.Fields.Channel"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "channeldetails": {
       "channeldetails": {
         "$ref": "PVR.Details.Channel"
         "$ref": "PVR.Details.Channel"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 3,961: Line 4,245:
# [''[[#PVR.Details.ChannelGroup.Extended|PVR.Details.ChannelGroup.Extended]]'' channelgroupdetails]<br />
# [''[[#PVR.Details.ChannelGroup.Extended|PVR.Details.ChannelGroup.Extended]]'' channelgroupdetails]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the details of a specific channel group",
   "description": "Retrieves the details of a specific channel group",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "PVR.ChannelGroup.Id",
       "name": "channelgroupid",
       "name": "channelgroupid",
      "$ref": "PVR.ChannelGroup.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "channels",
       "name": "channels",
      "type": "object",
       "properties": {
       "properties": {
        "limits": {
          "$ref": "List.Limits"
        },
         "properties": {
         "properties": {
           "$ref": "PVR.Fields.Channel"
           "$ref": "PVR.Fields.Channel"
        },
        "limits": {
          "$ref": "List.Limits"
         }
         }
       }
       },
      "type": "object"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "channelgroupdetails": {
       "channelgroupdetails": {
         "$ref": "PVR.Details.ChannelGroup.Extended"
         "$ref": "PVR.Details.ChannelGroup.Extended"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,009: Line 4,292:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''array[ [[#PVR.Details.ChannelGroup|PVR.Details.ChannelGroup]] ]'' channelgroups<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#PVR.Details.ChannelGroup|PVR.Details.ChannelGroup]]'' channelgroups<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the channel groups for the specified type",
   "description": "Retrieves the channel groups for the specified type",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "PVR.Channel.Type",
       "name": "channeltype",
       "name": "channeltype",
      "$ref": "PVR.Channel.Type",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "channelgroups": {
        "items": {
          "$ref": "PVR.Details.ChannelGroup"
        },
        "required": true,
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "channelgroups": {
        "type": "array",
        "required": true,
        "items": {
          "$ref": "PVR.Details.ChannelGroup"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,056: Line 4,338:
# [''[[#PVR.Fields.Channel|PVR.Fields.Channel]]'' properties]<br />
# [''[[#PVR.Fields.Channel|PVR.Fields.Channel]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 4,061: Line 4,344:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''array[ [[#PVR.Details.Channel|PVR.Details.Channel]] ]'' channels<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#PVR.Details.Channel|PVR.Details.Channel]]'' channels<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the channel list",
   "description": "Retrieves the channel list",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "PVR.ChannelGroup.Id",
       "name": "channelgroupid",
       "name": "channelgroupid",
      "$ref": "PVR.ChannelGroup.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
      "$ref": "PVR.Fields.Channel",
       "$ref": "PVR.Fields.Channel"
       "name": "properties"
    },
    {
       "$ref": "List.Limits",
      "name": "limits"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Sort",
       "$ref": "List.Limits"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "channels": {
        "items": {
          "$ref": "PVR.Details.Channel"
        },
        "required": true,
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "channels": {
        "type": "array",
        "required": true,
        "items": {
          "$ref": "PVR.Details.Channel"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== PVR.GetProperties ====
==== PVR.GetClients ====
Retrieves the values of the given properties<br />
Retrieves the enabled PVR clients and their capabilities<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''array'' properties<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''[[#PVR.Property.Value|PVR.Property.Value]]''<br />
'''Type:''' ''object''<br />
'''Properties:'''
# ''array[ [[#PVR.Details.Client|PVR.Details.Client]] ]'' clients<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the enabled PVR clients and their capabilities",
   "description": "Retrieves the values of the given properties",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "List.Limits",
       "type": "array",
       "name": "limits"
      "uniqueItems": true,
      "required": true,
      "items": {
        "$ref": "PVR.Property.Name"
      }
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "$ref": "PVR.Property.Value",
     "properties": {
     "required": true
      "clients": {
   }
        "items": {
          "$ref": "PVR.Details.Client"
        },
        "required": true,
        "type": "array"
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      }
    },
    "type": "object"
  },
  "type": "method"
}
</syntaxhighlight>}}
==== PVR.GetProperties ====
Retrieves the values of the given properties<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''array[ [[#PVR.Property.Name|PVR.Property.Name]] ]'' properties<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''[[#PVR.Property.Value|PVR.Property.Value]]''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "Retrieves the values of the given properties",
  "params": [
     {
      "items": {
        "$ref": "PVR.Property.Name"
      },
      "name": "properties",
      "required": true,
      "type": "array",
      "uniqueItems": true
    }
  ],
  "permission": "ReadData",
  "returns": {
    "$ref": "PVR.Property.Value"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,153: Line 4,481:
# [''[[#PVR.Details.Recording|PVR.Details.Recording]]'' recordingdetails]<br />
# [''[[#PVR.Details.Recording|PVR.Details.Recording]]'' recordingdetails]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the details of a specific recording",
   "description": "Retrieves the details of a specific recording",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "recordingid",
       "name": "recordingid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "PVR.Fields.Recording",
       "$ref": "PVR.Fields.Recording"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "recordingdetails": {
       "recordingdetails": {
         "$ref": "PVR.Details.Recording"
         "$ref": "PVR.Details.Recording"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,188: Line 4,515:
# [''[[#PVR.Fields.Recording|PVR.Fields.Recording]]'' properties]<br />
# [''[[#PVR.Fields.Recording|PVR.Fields.Recording]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 4,194: Line 4,522:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#PVR.Details.Recording|PVR.Details.Recording]]'' recordings<br />
# ''array[ [[#PVR.Details.Recording|PVR.Details.Recording]] ]'' recordings<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the recordings",
   "description": "Retrieves the recordings",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
      "$ref": "PVR.Fields.Recording",
       "$ref": "PVR.Fields.Recording"
       "name": "properties"
    },
    {
       "$ref": "List.Limits",
      "name": "limits"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Sort",
       "$ref": "List.Limits"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 4,220: Line 4,549:
       },
       },
       "recordings": {
       "recordings": {
        "type": "array",
        "required": true,
         "items": {
         "items": {
           "$ref": "PVR.Details.Recording"
           "$ref": "PVR.Details.Recording"
         }
         },
        "required": true,
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,245: Line 4,576:
# [''[[#PVR.Details.Timer|PVR.Details.Timer]]'' timerdetails]<br />
# [''[[#PVR.Details.Timer|PVR.Details.Timer]]'' timerdetails]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the details of a specific timer",
   "description": "Retrieves the details of a specific timer",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "timerid",
       "name": "timerid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "PVR.Fields.Timer",
       "$ref": "PVR.Fields.Timer"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "timerdetails": {
       "timerdetails": {
         "$ref": "PVR.Details.Timer"
         "$ref": "PVR.Details.Timer"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,280: Line 4,610:
# [''[[#PVR.Fields.Timer|PVR.Fields.Timer]]'' properties]<br />
# [''[[#PVR.Fields.Timer|PVR.Fields.Timer]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 4,286: Line 4,617:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#PVR.Details.Timer|PVR.Details.Timer]]'' timers<br />
# ''array[ [[#PVR.Details.Timer|PVR.Details.Timer]] ]'' timers<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the timers",
   "description": "Retrieves the timers",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
      "$ref": "PVR.Fields.Timer",
       "$ref": "PVR.Fields.Timer"
       "name": "properties"
    },
    {
       "$ref": "List.Limits",
      "name": "limits"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Sort",
       "$ref": "List.Limits"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 4,312: Line 4,644:
       },
       },
       "timers": {
       "timers": {
        "type": "array",
        "required": true,
         "items": {
         "items": {
           "$ref": "PVR.Details.Timer"
           "$ref": "PVR.Details.Timer"
         }
         },
        "required": true,
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,335: Line 4,669:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Toggle recording of a channel",
   "description": "Toggle recording of a channel",
  "transport": "Response",
  "permission": "ControlPVR",
   "params": [
   "params": [
     {
     {
      "name": "record",
       "$ref": "Global.Toggle",
       "$ref": "Global.Toggle",
       "default": "toggle"
       "default": "toggle",
      "name": "record"
     },
     },
     {
     {
      "default": "current",
       "name": "channel",
       "name": "channel",
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "current"
             "current"
           ],
           ],
           "required": true
           "type": "string"
         },
         },
         {
         {
           "$ref": "Library.Id",
           "$ref": "Library.Id"
          "required": true
         }
         }
       ],
       ]
      "default": "current"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPVR",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,372: Line 4,705:
'''Permissions:'''
'''Permissions:'''
* ControlPVR
* ControlPVR
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Library.Id|Library.Id]]'' clientid = -1] (Specify a PVR client id to avoid UI dialog, optional in kodi 19, required in kodi 20)<br />
</div>
'''Returns:'''  
'''Returns:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Starts a channel scan",
   "description": "Starts a channel scan",
   "transport": "Response",
   "params": [
    {
      "$ref": "Library.Id",
      "default": -1,
      "description": "Specify a PVR client id to avoid UI dialog, optional in kodi 19, required in kodi 20",
      "name": "clientid"
    }
  ],
   "permission": "ControlPVR",
   "permission": "ControlPVR",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,399: Line 4,744:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Creates or deletes a onetime timer or timer rule for a given show. If it exists, it will be deleted. If it does not exist, it will be created",
   "description": "Creates or deletes a onetime timer or timer rule for a given show. If it exists, it will be deleted. If it does not exist, it will be created",
  "transport": "Response",
  "permission": "ControlPVR",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
      "description": "the broadcast id of the item to toggle a onetime timer or time rule for",
       "name": "broadcastid",
       "name": "broadcastid",
      "$ref": "Library.Id",
       "required": true
       "required": true,
      "description": "the broadcast id of the item to toggle a onetime timer or time rule for"
     },
     },
     {
     {
      "default": false,
      "description": "controls whether to create / delete a timer rule or a onetime timer",
       "name": "timerrule",
       "name": "timerrule",
       "type": "boolean",
       "type": "boolean"
      "default": false,
      "description": "controls whether to create / delete a timer rule or a onetime timer"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPVR",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
=== Player ===
=== Player ===
==== Player.AddSubtitle ====
Add subtitle to the player<br />
'''Permissions:'''
* ControlPlayback
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Player.Id|Player.Id]]'' playerid<br />
# ''string'' subtitle (Local path or remote URL to the subtitle file to load)<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''string''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "Add subtitle to the player",
  "params": [
    {
      "$ref": "Player.Id",
      "name": "playerid",
      "required": true
    },
    {
      "description": "Local path or remote URL to the subtitle file to load",
      "name": "subtitle",
      "required": true,
      "type": "string"
    }
  ],
  "permission": "ControlPlayback",
  "returns": {
    "type": "string"
  },
  "type": "method"
}
</syntaxhighlight>}}
==== Player.GetActivePlayers ====
==== Player.GetActivePlayers ====
Returns all active players<br />
Returns all active players<br />
Line 4,431: Line 4,813:
'''Type:''' ''array''<br />
'''Type:''' ''array''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Returns all active players",
   "description": "Returns all active players",
   "transport": "Response",
   "params": [],
   "permission": "ReadData",
   "permission": "ReadData",
  "params": [],
   "returns": {
   "returns": {
    "type": "array",
    "uniqueItems": true,
     "items": {
     "items": {
      "type": "object",
       "properties": {
       "properties": {
         "playerid": {
         "playerid": {
           "$ref": "Player.Id",
           "$ref": "Player.Id",
          "required": true
        },
        "type": {
          "$ref": "Player.Type",
           "required": true
           "required": true
         },
         },
         "playertype": {
         "playertype": {
           "type": "string",
           "enums": [
          "enum": [
             "internal",
             "internal",
             "external",
             "external",
             "remote"
             "remote"
           ],
           ],
           "required": true
          "required": true,
          "type": "string"
        },
        "type": {
          "$ref": "Player.Type",
           "required": true
         }
         }
       }
       },
     }
      "type": "object"
   }
     },
    "type": "array",
    "uniqueItems": true
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,481: Line 4,862:
# ''[[#List.Item.All|List.Item.All]]'' item<br />
# ''[[#List.Item.All|List.Item.All]]'' item<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the currently played item",
   "description": "Retrieves the currently played item",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Fields.All",
       "$ref": "List.Fields.All"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "item": {
       "item": {
Line 4,505: Line 4,883:
         "required": true
         "required": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,521: Line 4,901:
'''Type:''' ''array''<br />
'''Type:''' ''array''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Get a list of available players",
   "description": "Get a list of available players",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "media",
       "default": "all",
       "type": "string",
       "enums": [
      "enum": [
         "all",
         "all",
         "video",
         "video",
         "audio"
         "audio"
       ],
       ],
       "default": "all"
       "name": "media",
      "type": "string"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "array",
    "uniqueItems": true,
     "items": {
     "items": {
      "type": "object",
       "properties": {
       "properties": {
         "name": {
         "name": {
           "$ref": "Global.String.NotEmpty",
           "$ref": "Global.String.NotEmpty",
           "required": true
           "required": true
        },
        "playsaudio": {
          "required": true,
          "type": "boolean"
        },
        "playsvideo": {
          "required": true,
          "type": "boolean"
         },
         },
         "type": {
         "type": {
           "type": "string",
           "enums": [
          "enum": [
             "internal",
             "internal",
             "external",
             "external",
             "remote"
             "remote"
           ],
           ],
           "required": true
           "required": true,
        },
           "type": "string"
        "playsvideo": {
           "type": "boolean",
          "required": true
        },
        "playsaudio": {
          "type": "boolean",
          "required": true
         }
         }
       }
       },
     }
      "type": "object"
   }
     },
    "type": "array",
    "uniqueItems": true
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,578: Line 4,957:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Player.Id|Player.Id]]'' playerid<br />
# ''[[#Player.Id|Player.Id]]'' playerid<br />
# ''array'' properties<br />
# ''array[ [[#Player.Property.Name|Player.Property.Name]] ]'' properties<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 4,584: Line 4,963:
'''Type:''' ''[[#Player.Property.Value|Player.Property.Value]]''<br />
'''Type:''' ''[[#Player.Property.Value|Player.Property.Value]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the values of the given properties",
   "description": "Retrieves the values of the given properties",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "items": {
        "$ref": "Player.Property.Name"
      },
       "name": "properties",
       "name": "properties",
      "required": true,
       "type": "array",
       "type": "array",
       "uniqueItems": true,
       "uniqueItems": true
      "required": true,
      "items": {
        "$ref": "Player.Property.Name"
      }
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "$ref": "Player.Property.Value",
     "$ref": "Player.Property.Value"
    "required": true
  },
  }
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,620: Line 4,997:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''boolean'' nonlinearstretch<br />
# ''number'' pixelratio<br />
# ''number'' verticalshift<br />
# ''[[#Player.ViewMode|Player.ViewMode]]'' viewmode<br />
# ''[[#Player.ViewMode|Player.ViewMode]]'' viewmode<br />
# ''number'' zoom<br />
# ''number'' zoom<br />
# ''number'' pixelratio<br />
# ''number'' verticalshift<br />
# ''boolean'' nonlinearstretch<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Get view mode of video player",
   "description": "Get view mode of video player",
   "transport": "Response",
   "params": [],
   "permission": "ReadData",
   "permission": "ReadData",
  "params": [],
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "viewmode": {
       "nonlinearstretch": {
        "$ref": "Player.ViewMode",
         "required": true,
         "required": true
         "type": "boolean"
      },
      "zoom": {
         "type": "number",
        "required": true
       },
       },
       "pixelratio": {
       "pixelratio": {
         "type": "number",
         "required": true,
         "required": true
         "type": "number"
       },
       },
       "verticalshift": {
       "verticalshift": {
         "type": "number",
        "required": true,
         "type": "number"
      },
      "viewmode": {
        "$ref": "Player.ViewMode",
         "required": true
         "required": true
       },
       },
       "nonlinearstretch": {
       "zoom": {
         "type": "boolean",
         "required": true,
         "required": true
         "type": "number"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,673: Line 5,049:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Go to previous/next/specific item in the playlist",
   "description": "Go to previous/next/specific item in the playlist",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "to",
       "name": "to",
      "required": true,
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "previous",
             "previous",
             "next"
             "next"
           ],
           ],
           "required": true
           "type": "string"
         },
         },
         {
         {
           "$ref": "Playlist.Position",
           "$ref": "Playlist.Position",
           "description": "position in playlist",
           "description": "position in playlist"
          "required": true
         }
         }
       ],
       ]
      "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,721: Line 5,096:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "If picture is zoomed move viewport left/right/up/down otherwise skip previous/next",
   "description": "If picture is zoomed move viewport left/right/up/down otherwise skip previous/next",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "direction",
       "enums": [
      "type": "string",
      "enum": [
         "left",
         "left",
         "right",
         "right",
Line 4,742: Line 5,112:
         "down"
         "down"
       ],
       ],
       "required": true
      "name": "direction",
       "required": true,
      "type": "string"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,754: Line 5,130:
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''mixed: object|[[#Playlist.Item|Playlist.Item]]|object|object|object|object'' item]<br />
# [''mixed: object|[[#Playlist.Item|Playlist.Item]]|object|object|object|object|object'' item]<br />
# [''object'' options]<br />
# [''object'' options]<br />
</div>
</div>
Line 4,761: Line 5,137:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "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.",
   "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.",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
Line 4,772: Line 5,145:
       "type": [
       "type": [
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
Line 4,784: Line 5,155:
               "default": 0
               "default": 0
             }
             }
           }
           },
          "type": "object"
         },
         },
         {
         {
           "$ref": "Playlist.Item",
           "$ref": "Playlist.Item"
          "required": true
         },
         },
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
             "path": {
             "path": {
               "type": "string",
               "required": true,
               "required": true
               "type": "string"
             },
             },
             "random": {
             "random": {
              "type": "boolean",
               "default": true,
               "default": true,
               "description": "Deprecated, use the shuffled property of the options parameter instead"
               "description": "Deprecated, use the shuffled property of the options parameter instead",
              "type": "boolean"
             },
             },
             "recursive": {
             "recursive": {
               "type": "boolean",
               "default": true,
               "default": true
               "type": "boolean"
             }
             }
           }
           },
          "type": "object"
         },
         },
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
             "partymode": {
             "partymode": {
              "default": "",
               "type": [
               "type": [
                 {
                 {
                   "type": "string",
                   "enums": [
                  "required": true,
                  "enum": [
                     "music",
                     "music",
                     "video"
                     "video"
                   ]
                   ],
                  "type": "string"
                 },
                 },
                 {
                 {
                   "type": "string",
                   "description": "Path to a smartplaylist (*.xsp) file",
                  "required": true,
                   "minLength": 5,
                   "minLength": 5,
                   "description": "Path to a smartplaylist (*.xsp) file"
                   "type": "string"
                 }
                 }
               ]
               ]
             }
             }
           }
           },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "broadcastid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
         },
         },
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
Line 4,844: Line 5,220:
               "required": true
               "required": true
             }
             }
           }
           },
          "type": "object"
         },
         },
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
Line 4,855: Line 5,230:
               "required": true
               "required": true
             }
             }
           }
           },
          "type": "object"
         }
         }
       ]
       ]
     },
     },
     {
     {
      "additionalProperties": false,
       "name": "options",
       "name": "options",
      "type": "object",
      "additionalProperties": false,
       "properties": {
       "properties": {
         "playername": {
         "playername": {
          "default": null,
           "type": [
           "type": [
            "null",
             {
             {
               "type": "string",
               "type": "null"
               "enum": [
            },
            {
               "enums": [
                 "default"
                 "default"
               ],
               ],
               "required": true
               "type": "string"
             },
             },
             {
             {
               "type": "string",
               "description": "name of player",
               "minLength": 1,
               "minLength": 1,
               "required": true,
               "type": "string"
              "description": "name of player"
             }
             }
           ],
           ]
          "default": null
        },
        "shuffled": {
          "$ref": "Optional.Boolean"
         },
         },
         "repeat": {
         "repeat": {
          "default": null,
           "type": [
           "type": [
            "null",
             {
             {
               "$ref": "Player.Repeat",
               "type": "null"
               "required": true
            },
            {
               "$ref": "Player.Repeat"
             }
             }
           ],
           ]
          "default": null
         },
         },
         "resume": {
         "resume": {
          "default": false,
           "type": [
           "type": [
             {
             {
              "type": "boolean",
               "description": "Whether to resume from the resume point or not",
              "required": true,
              "type": "boolean"
               "description": "Whether to resume from the resume point or not"
             },
             },
             {
             {
               "$ref": "Player.Position.Percentage",
               "$ref": "Player.Position.Percentage",
              "required": true,
               "description": "Percentage value to start from"
               "description": "Percentage value to start from"
             },
             },
             {
             {
               "$ref": "Player.Position.Time",
               "$ref": "Player.Position.Time",
              "required": true,
               "description": "Time to start from"
               "description": "Time to start from"
             }
             }
           ],
           ]
           "default": false
        },
        "shuffled": {
          "$ref": "Optional.Boolean",
           "default": null
         }
         }
       }
       },
      "type": "object"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,935: Line 5,314:
'''Type:''' ''[[#Player.Speed|Player.Speed]]''<br />
'''Type:''' ''[[#Player.Speed|Player.Speed]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Pauses or unpause playback and returns the new state",
   "description": "Pauses or unpause playback and returns the new state",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "name": "play",
       "$ref": "Global.Toggle",
       "$ref": "Global.Toggle",
       "default": "toggle"
       "default": "toggle",
      "name": "play"
     }
     }
   ],
   ],
  "permission": "ControlPlayback",
   "returns": {
   "returns": {
     "$ref": "Player.Speed"
     "$ref": "Player.Speed"
   }
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 4,971: Line 5,349:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Rotates current picture",
   "description": "Rotates current picture",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "value",
       "default": "clockwise",
       "type": "string",
       "enums": [
      "enum": [
         "clockwise",
         "clockwise",
         "counterclockwise"
         "counterclockwise"
       ],
       ],
       "default": "clockwise"
       "name": "value",
      "type": "string"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,010: Line 5,389:
'''Properties:'''
'''Properties:'''
# [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' percentage]<br />
# [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' percentage]<br />
# [''[[#Global.Time|Global.Time]]'' time]<br />
# [''[[#Global.Time|Global.Time]]'' time] (A duration.)<br />
# [''[[#Global.Time|Global.Time]]'' totaltime]<br />
# [''[[#Global.Time|Global.Time]]'' totaltime] (A duration.)<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Seek through the playing item",
   "description": "Seek through the playing item",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
Line 5,030: Line 5,406:
       "type": [
       "type": [
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "percentage": {
             "percentage": {
               "$ref": "Player.Position.Percentage",
               "$ref": "Player.Position.Percentage",
              "required": true,
               "description": "Percentage value to seek to",
               "description": "Percentage value to seek to"
              "required": true
             }
             }
           },
           },
           "additionalProperties": false,
           "type": "object"
          "required": true
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "time": {
             "time": {
               "$ref": "Player.Position.Time",
               "$ref": "Player.Position.Time",
              "required": true,
               "description": "Time to seek to",
               "description": "Time to seek to"
              "required": true
             }
             }
           },
           },
           "additionalProperties": false,
           "type": "object"
          "required": true
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "step": {
             "step": {
               "type": "string",
               "description": "Seek by predefined jumps",
               "enum": [
               "enums": [
                 "smallforward",
                 "smallforward",
                 "smallbackward",
                 "smallbackward",
Line 5,065: Line 5,439:
               ],
               ],
               "required": true,
               "required": true,
               "description": "Seek by predefined jumps"
               "type": "string"
             }
             }
           },
           },
           "additionalProperties": false,
           "type": "object"
          "required": true
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "seconds": {
             "seconds": {
               "type": "integer",
               "description": "Seek by the given number of seconds",
               "required": true,
               "required": true,
               "description": "Seek by the given number of seconds"
               "type": "integer"
             }
             }
           },
           },
           "additionalProperties": false,
           "type": "object"
          "required": true
         }
         }
       ]
       ]
     }
     }
   ],
   ],
  "permission": "ControlPlayback",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "percentage": {
       "percentage": {
         "$ref": "Player.Position.Percentage"
         "$ref": "Player.Position.Percentage",
        "default": 0.0
       },
       },
       "time": {
       "time": {
         "$ref": "Global.Time"
         "$ref": "Global.Time",
        "description": "A duration."
       },
       },
       "totaltime": {
       "totaltime": {
         "$ref": "Global.Time"
         "$ref": "Global.Time",
        "description": "A duration."
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,115: Line 5,492:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Set the audio stream played by the player",
   "description": "Set the audio stream played by the player",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
Line 5,132: Line 5,506:
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "previous",
             "previous",
             "next"
             "next"
           ]
           ],
          "type": "string"
         },
         },
         {
         {
           "type": "integer",
           "description": "Index of the audio stream to play",
           "minimum": 0,
           "minimum": 0,
           "description": "Index of the audio stream to play"
           "type": "integer"
         }
         }
       ]
       ]
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,162: Line 5,540:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Turn partymode on or off",
   "description": "Turn partymode on or off",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "$ref": "Global.Toggle",
       "name": "partymode",
       "name": "partymode",
      "$ref": "Global.Toggle",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,196: Line 5,575:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Set the repeat mode of the player",
   "description": "Set the repeat mode of the player",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "repeat",
       "name": "repeat",
      "required": true,
       "type": [
       "type": [
         {
         {
           "$ref": "Player.Repeat",
           "$ref": "Player.Repeat"
          "required": true
         },
         },
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "cycle"
             "cycle"
           ],
           ],
           "required": true
           "type": "string"
         }
         }
       ],
       ]
      "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,242: Line 5,620:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Shuffle/Unshuffle items in the player",
   "description": "Shuffle/Unshuffle items in the player",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "$ref": "Global.Toggle",
       "name": "shuffle",
       "name": "shuffle",
      "$ref": "Global.Toggle",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,276: Line 5,655:
'''Type:''' ''[[#Player.Speed|Player.Speed]]''<br />
'''Type:''' ''[[#Player.Speed|Player.Speed]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Set the speed of the current playback",
   "description": "Set the speed of the current playback",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "speed",
       "name": "speed",
      "required": true,
       "type": [
       "type": [
         {
         {
           "type": "integer",
           "enums": [
          "required": true,
          "enum": [
             -32,
             -32,
             -16,
             -16,
Line 5,308: Line 5,683:
             16,
             16,
             32
             32
           ]
           ],
          "type": "integer"
         },
         },
         {
         {
           "$ref": "Global.IncrementDecrement",
           "$ref": "Global.IncrementDecrement"
          "required": true
         }
         }
       ],
       ]
      "required": true
     }
     }
   ],
   ],
  "permission": "ControlPlayback",
   "returns": {
   "returns": {
     "$ref": "Player.Speed"
     "$ref": "Player.Speed"
   }
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,337: Line 5,713:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Set the subtitle displayed by the player",
   "description": "Set the subtitle displayed by the player",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
Line 5,354: Line 5,727:
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "previous",
             "previous",
             "next",
             "next",
             "off",
             "off",
             "on"
             "on"
           ]
           ],
          "type": "string"
         },
         },
         {
         {
           "type": "integer",
           "description": "Index of the subtitle to display",
           "minimum": 0,
           "minimum": 0,
           "description": "Index of the subtitle to display"
           "type": "integer"
         }
         }
       ]
       ]
     },
     },
     {
     {
      "default": false,
      "description": "Whether to enable subtitles to be displayed after setting the new subtitle",
       "name": "enable",
       "name": "enable",
       "type": "boolean",
       "type": "boolean"
      "default": false,
      "description": "Whether to enable subtitles to be displayed after setting the new subtitle"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,392: Line 5,769:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Set the video stream played by the player",
   "description": "Set the video stream played by the player",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
Line 5,409: Line 5,783:
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "previous",
             "previous",
             "next"
             "next"
           ]
           ],
          "type": "string"
         },
         },
         {
         {
           "type": "integer",
           "description": "Index of the video stream to play",
           "minimum": 0,
           "minimum": 0,
           "description": "Index of the video stream to play"
           "type": "integer"
         }
         }
       ]
       ]
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,438: Line 5,816:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Set view mode of video player",
   "description": "Set view mode of video player",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
       "name": "viewmode",
       "name": "viewmode",
      "required": true,
       "type": [
       "type": [
         {
         {
           "$ref": "Player.CustomViewMode",
           "$ref": "Player.CustomViewMode",
           "description": "Custom view mode",
           "description": "Custom view mode"
          "required": true
         },
         },
         {
         {
          "name": "value",
           "$ref": "Player.ViewMode"
           "$ref": "Player.ViewMode",
          "required": true
         }
         }
       ],
       ]
      "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,477: Line 5,853:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Stops playback",
   "description": "Stops playback",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,506: Line 5,883:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Zoom current picture",
   "description": "Zoom current picture",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Player.Id",
       "name": "playerid",
       "name": "playerid",
      "$ref": "Player.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "zoom",
       "name": "zoom",
      "required": true,
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "in",
             "in",
             "out"
             "out"
           ],
           ],
           "required": true
           "type": "string"
         },
         },
         {
         {
           "type": "integer",
           "description": "zoom level",
          "maximum": 10,
           "minimum": 1,
           "minimum": 1,
           "maximum": 10,
           "type": "integer"
          "description": "zoom level",
          "required": true
         }
         }
       ],
       ]
      "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,557: Line 5,933:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Add item(s) to playlist",
   "description": "Add item(s) to playlist",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Playlist.Id",
       "name": "playlistid",
       "name": "playlistid",
      "$ref": "Playlist.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "item",
       "name": "item",
      "required": true,
       "type": [
       "type": [
         {
         {
           "$ref": "Playlist.Item",
           "$ref": "Playlist.Item"
          "required": true
         },
         },
         {
         {
          "type": "array",
           "items": {
           "items": {
             "$ref": "Playlist.Item"
             "$ref": "Playlist.Item"
           },
           },
           "required": true
           "type": "array"
         }
         }
       ],
       ]
      "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,602: Line 5,977:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Clear playlist",
   "description": "Clear playlist",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Playlist.Id",
       "name": "playlistid",
       "name": "playlistid",
      "$ref": "Playlist.Id",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,633: Line 6,009:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''array[ [[#List.Item.All|List.Item.All]] ]'' items<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#List.Item.All|List.Item.All]]'' items<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Get all items from playlist",
   "description": "Get all items from playlist",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Playlist.Id",
       "name": "playlistid",
       "name": "playlistid",
      "$ref": "Playlist.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Fields.All",
       "$ref": "List.Fields.All"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
       "items": {
       "items": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "List.Item.All"
           "$ref": "List.Item.All"
         },
         },
        "required": true,
        "type": "array"
      },
      "limits": {
        "$ref": "List.LimitsReturned",
         "required": true
         "required": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,687: Line 6,062:
'''Type:''' ''array''<br />
'''Type:''' ''array''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Returns all existing playlists",
   "description": "Returns all existing playlists",
   "transport": "Response",
   "params": [],
   "permission": "ReadData",
   "permission": "ReadData",
  "params": [],
   "returns": {
   "returns": {
    "type": "array",
    "uniqueItems": true,
     "items": {
     "items": {
      "type": "object",
       "properties": {
       "properties": {
         "playlistid": {
         "playlistid": {
Line 5,708: Line 6,078:
           "required": true
           "required": true
         }
         }
       }
       },
     }
      "type": "object"
   }
     },
    "type": "array",
    "uniqueItems": true
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,720: Line 6,094:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
# ''[[#Playlist.Id|Playlist.Id]]'' playlistid<br />
# ''array'' properties<br />
# ''array[ [[#Playlist.Property.Name|Playlist.Property.Name]] ]'' properties<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 5,726: Line 6,100:
'''Type:''' ''[[#Playlist.Property.Value|Playlist.Property.Value]]''<br />
'''Type:''' ''[[#Playlist.Property.Value|Playlist.Property.Value]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the values of the given properties",
   "description": "Retrieves the values of the given properties",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "$ref": "Playlist.Id",
       "name": "playlistid",
       "name": "playlistid",
      "$ref": "Playlist.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "items": {
        "$ref": "Playlist.Property.Name"
      },
       "name": "properties",
       "name": "properties",
      "required": true,
       "type": "array",
       "type": "array",
       "uniqueItems": true,
       "uniqueItems": true
      "required": true,
      "items": {
        "$ref": "Playlist.Property.Name"
      }
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "$ref": "Playlist.Property.Value",
     "$ref": "Playlist.Property.Value"
    "required": true
  },
  }
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,768: Line 6,140:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).",
   "description": "Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Playlist.Id",
       "name": "playlistid",
       "name": "playlistid",
      "$ref": "Playlist.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "$ref": "Playlist.Position",
       "name": "position",
       "name": "position",
      "$ref": "Playlist.Position",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "item",
       "name": "item",
      "required": true,
       "type": [
       "type": [
         {
         {
           "$ref": "Playlist.Item",
           "$ref": "Playlist.Item"
          "required": true
         },
         },
         {
         {
          "type": "array",
           "items": {
           "items": {
             "$ref": "Playlist.Item"
             "$ref": "Playlist.Item"
           },
           },
           "required": true
           "type": "array"
         }
         }
       ],
       ]
      "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,819: Line 6,190:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Remove item from playlist. Does not work for picture playlists (aka slideshows).",
   "description": "Remove item from playlist. Does not work for picture playlists (aka slideshows).",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Playlist.Id",
       "name": "playlistid",
       "name": "playlistid",
      "$ref": "Playlist.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "$ref": "Playlist.Position",
       "name": "position",
       "name": "position",
      "$ref": "Playlist.Position",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,854: Line 6,226:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Swap items in the playlist. Does not work for picture playlists (aka slideshows).",
   "description": "Swap items in the playlist. Does not work for picture playlists (aka slideshows).",
  "transport": "Response",
  "permission": "ControlPlayback",
   "params": [
   "params": [
     {
     {
      "$ref": "Playlist.Id",
       "name": "playlistid",
       "name": "playlistid",
      "$ref": "Playlist.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "$ref": "Playlist.Position",
       "name": "position1",
       "name": "position1",
      "$ref": "Playlist.Position",
       "required": true
       "required": true
     },
     },
     {
     {
      "$ref": "Playlist.Position",
       "name": "position2",
       "name": "position2",
      "$ref": "Playlist.Position",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ControlPlayback",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,893: Line 6,266:
'''Type:''' ''[[#Profiles.Details.Profile|Profiles.Details.Profile]]''<br />
'''Type:''' ''[[#Profiles.Details.Profile|Profiles.Details.Profile]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve the current profile",
   "description": "Retrieve the current profile",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Profiles.Fields.Profile",
       "$ref": "Profiles.Fields.Profile"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "$ref": "Profiles.Details.Profile",
     "$ref": "Profiles.Details.Profile"
    "required": true
  },
  }
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,926: Line 6,297:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[[#Profiles.Details.Profile|Profiles.Details.Profile]]'' profiles<br />
# ''array[ [[#Profiles.Details.Profile|Profiles.Details.Profile]] ]'' profiles<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all profiles",
   "description": "Retrieve all profiles",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Profiles.Fields.Profile",
       "$ref": "Profiles.Fields.Profile"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 5,956: Line 6,324:
       },
       },
       "profiles": {
       "profiles": {
        "type": "array",
        "required": true,
         "items": {
         "items": {
           "$ref": "Profiles.Details.Profile"
           "$ref": "Profiles.Details.Profile"
         }
         },
        "required": true,
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 5,973: Line 6,343:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''string'' profile (Profile name)<br />
# ''string'' profile (Profile name)<br />
# [''boolean'' prompt] (Prompt for password)<br />
# [''boolean'' prompt = False] (Prompt for password)<br />
# [''[[#Profiles.Password|Profiles.Password]]'' password]<br />
# [''[[#Profiles.Password|Profiles.Password]]'' password]<br />
</div>
</div>
Line 5,980: Line 6,350:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Load the specified profile",
   "description": "Load the specified profile",
  "transport": "Response",
  "permission": "Navigate",
   "params": [
   "params": [
     {
     {
      "description": "Profile name",
       "name": "profile",
       "name": "profile",
      "type": "string",
       "required": true,
       "required": true,
       "description": "Profile name"
       "type": "string"
     },
     },
     {
     {
      "default": false,
      "description": "Prompt for password",
       "name": "prompt",
       "name": "prompt",
       "type": "boolean",
       "type": "boolean"
      "description": "Prompt for password"
     },
     },
     {
     {
       "name": "password",
       "$ref": "Profiles.Password",
       "$ref": "Profiles.Password"
       "name": "password"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "Navigate",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,021: Line 6,393:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[[#Setting.Details.Category|Setting.Details.Category]]'' categories]<br />
# [''array[ [[#Setting.Details.Category|Setting.Details.Category]] ]'' categories]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves all setting categories",
   "description": "Retrieves all setting categories",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "level",
       "$ref": "Setting.Level",
       "$ref": "Setting.Level",
       "default": "standard"
       "default": "standard",
      "name": "level"
     },
     },
     {
     {
      "default": "",
       "name": "section",
       "name": "section",
       "type": "string",
       "type": "string"
      "default": ""
     },
     },
     {
     {
      "name": "properties",
       "extends": "Item.Fields.Base",
       "extends": "Item.Fields.Base",
       "items": {
       "items": {
         "type": "string",
         "enums": [
        "enum": [
           "settings"
           "settings"
         ]
         ],
       }
        "type": "string"
       },
      "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "categories": {
       "categories": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Setting.Details.Category"
           "$ref": "Setting.Details.Category"
         }
         },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,077: Line 6,448:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[[#Setting.Details.Section|Setting.Details.Section]]'' sections]<br />
# [''array[ [[#Setting.Details.Section|Setting.Details.Section]] ]'' sections]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves all setting sections",
   "description": "Retrieves all setting sections",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "level",
       "$ref": "Setting.Level",
       "$ref": "Setting.Level",
       "default": "standard"
       "default": "standard",
      "name": "level"
     },
     },
     {
     {
      "name": "properties",
       "extends": "Item.Fields.Base",
       "extends": "Item.Fields.Base",
       "items": {
       "items": {
         "type": "string",
         "enums": [
        "enum": [
           "categories"
           "categories"
         ]
         ],
       }
        "type": "string"
       },
      "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "sections": {
       "sections": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Setting.Details.Section"
           "$ref": "Setting.Details.Section"
         }
         },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,129: Line 6,499:
# ''[[#Setting.Value.Extended|Setting.Value.Extended]]'' value<br />
# ''[[#Setting.Value.Extended|Setting.Value.Extended]]'' value<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the value of a setting",
   "description": "Retrieves the value of a setting",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "minLength": 1,
       "name": "setting",
       "name": "setting",
      "type": "string",
       "required": true,
       "required": true,
       "minLength": 1
       "type": "string"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "value": {
       "value": {
Line 6,150: Line 6,517:
         "required": true
         "required": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,161: Line 6,530:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Setting.Level|Setting.Level]]'' level = standard]<br />
# [''[[#Setting.Level|Setting.Level]]'' level = standard]<br />
# [''mixed: object'' filter = None]<br />
# [''mixed: object'' filter]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 6,167: Line 6,536:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[[#Setting.Details.Setting|Setting.Details.Setting]]'' settings]<br />
# [''array[ [[#Setting.Details.Setting|Setting.Details.Setting]] ]'' settings]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves all settings",
   "description": "Retrieves all settings",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "level",
       "$ref": "Setting.Level",
       "$ref": "Setting.Level",
       "default": "standard"
       "default": "standard",
      "name": "level"
     },
     },
     {
     {
Line 6,185: Line 6,551:
       "type": [
       "type": [
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "section": {
             "category": {
               "type": "string",
               "minLength": 1,
               "required": true,
               "required": true,
               "minLength": 1
               "type": "string"
             },
             },
             "category": {
             "section": {
               "type": "string",
               "minLength": 1,
               "required": true,
               "required": true,
               "minLength": 1
               "type": "string"
             }
             }
           },
           },
           "additionalProperties": false,
           "type": "object"
          "required": true
         }
         }
       ],
       ]
      "default": null
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "settings": {
       "settings": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Setting.Details.Setting"
           "$ref": "Setting.Details.Setting"
         }
         },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,221: Line 6,587:
Resets the value of a setting<br />
Resets the value of a setting<br />
'''Permissions:'''
'''Permissions:'''
* WriteSetting
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
Line 6,230: Line 6,596:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Resets the value of a setting",
   "description": "Resets the value of a setting",
  "transport": "Response",
  "permission": "WriteSetting",
   "params": [
   "params": [
     {
     {
      "minLength": 1,
       "name": "setting",
       "name": "setting",
      "type": "string",
       "required": true,
       "required": true,
       "minLength": 1
       "type": "string"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ReadData",
}
   "returns": {
    "type": "string"
  },
  "type": "method"
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== Settings.SetSettingValue ====
==== Settings.SetSettingValue ====
Changes the value of a setting<br />
Changes the value of a setting<br />
'''Permissions:'''
'''Permissions:'''
* WriteSetting
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
Line 6,260: Line 6,627:
'''Type:''' ''boolean''<br />
'''Type:''' ''boolean''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Changes the value of a setting",
   "description": "Changes the value of a setting",
  "transport": "Response",
  "permission": "WriteSetting",
   "params": [
   "params": [
     {
     {
      "minLength": 1,
       "name": "setting",
       "name": "setting",
      "type": "string",
       "required": true,
       "required": true,
       "minLength": 1
       "type": "string"
     },
     },
     {
     {
      "$ref": "Setting.Value.Extended",
       "name": "value",
       "name": "value",
      "$ref": "Setting.Value.Extended",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "boolean"
  "permission": "ReadData",
   "returns": {
    "type": "boolean"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,291: Line 6,659:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Ejects or closes the optical disc drive (if available)",
   "description": "Ejects or closes the optical disc drive (if available)",
   "transport": "Response",
   "params": [],
   "permission": "ControlSystem",
   "permission": "ControlSystem",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,307: Line 6,676:
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''array'' properties<br />
# ''array[ [[#System.Property.Name|System.Property.Name]] ]'' properties<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 6,313: Line 6,682:
'''Type:''' ''[[#System.Property.Value|System.Property.Value]]''<br />
'''Type:''' ''[[#System.Property.Value|System.Property.Value]]''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieves the values of the given properties",
   "description": "Retrieves the values of the given properties",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "items": {
        "$ref": "System.Property.Name"
      },
       "name": "properties",
       "name": "properties",
      "required": true,
       "type": "array",
       "type": "array",
       "uniqueItems": true,
       "uniqueItems": true
      "required": true,
      "items": {
        "$ref": "System.Property.Name"
      }
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
     "$ref": "System.Property.Value",
     "$ref": "System.Property.Value"
    "required": true
  },
  }
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,344: Line 6,711:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Puts the system running Kodi into hibernate mode",
   "description": "Puts the system running Kodi into hibernate mode",
   "transport": "Response",
   "params": [],
   "permission": "ControlPower",
   "permission": "ControlPower",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,362: Line 6,730:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Reboots the system running Kodi",
   "description": "Reboots the system running Kodi",
   "transport": "Response",
   "params": [],
   "permission": "ControlPower",
   "permission": "ControlPower",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,380: Line 6,749:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Shuts the system running Kodi down",
   "description": "Shuts the system running Kodi down",
   "transport": "Response",
   "params": [],
   "permission": "ControlPower",
   "permission": "ControlPower",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,398: Line 6,768:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Suspends the system running Kodi",
   "description": "Suspends the system running Kodi",
   "transport": "Response",
   "params": [],
   "permission": "ControlPower",
   "permission": "ControlPower",
   "params": [],
   "returns": {
   "returns": "string"
    "type": "string"
  },
   "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,422: Line 6,793:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''array[[#Textures.Details.Texture|Textures.Details.Texture]]'' textures<br />
# ''array[ [[#Textures.Details.Texture|Textures.Details.Texture]] ]'' textures<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all textures",
   "description": "Retrieve all textures",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Textures.Fields.Texture",
       "$ref": "Textures.Fields.Texture"
       "name": "properties"
     },
     },
     {
     {
       "name": "filter",
       "$ref": "List.Filter.Textures",
       "$ref": "List.Filter.Textures"
       "name": "filter"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "textures": {
       "textures": {
        "type": "array",
        "required": true,
         "items": {
         "items": {
           "$ref": "Textures.Details.Texture"
           "$ref": "Textures.Details.Texture"
         }
         },
        "required": true,
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,466: Line 6,836:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Remove the specified texture",
   "description": "Remove the specified texture",
  "transport": "Response",
  "permission": "RemoveData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
      "description": "Texture database identifier",
       "name": "textureid",
       "name": "textureid",
      "$ref": "Library.Id",
       "required": true
       "required": true,
      "description": "Texture database identifier"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "RemoveData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,492: Line 6,863:
# [''boolean'' showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)<br />
# [''boolean'' showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)<br />
# [''string'' content = video] (Content type to clean for)<br />
# [''string'' content = video] (Content type to clean for)<br />
# [''string'' directory = ""] (Path to the directory to clean up; performs a global cleanup if not specified)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 6,497: Line 6,869:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Cleans the video library for non-existent items",
   "description": "Cleans the video library for non-existent items",
  "transport": "Response",
  "permission": "RemoveData",
   "params": [
   "params": [
     {
     {
      "default": true,
      "description": "Whether or not to show the progress bar or any other GUI dialog",
       "name": "showdialogs",
       "name": "showdialogs",
       "type": "boolean",
       "type": "boolean"
      "default": true,
      "description": "Whether or not to show the progress bar or any other GUI dialog"
     },
     },
     {
     {
      "name": "content",
      "type": "string",
       "default": "video",
       "default": "video",
       "enum": [
       "description": "Content type to clean for",
      "enums": [
         "video",
         "video",
         "movies",
         "movies",
Line 6,520: Line 6,888:
         "musicvideos"
         "musicvideos"
       ],
       ],
       "description": "Content type to clean for"
      "name": "content",
      "type": "string"
    },
    {
      "default": "",
       "description": "Path to the directory to clean up; performs a global cleanup if not specified",
      "name": "directory",
      "type": "string"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "RemoveData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 6,538: Line 6,917:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Exports all items from the video library",
   "description": "Exports all items from the video library",
  "transport": "Response",
  "permission": "WriteFile",
   "params": [
   "params": [
     {
     {
Line 6,549: Line 6,925:
       "type": [
       "type": [
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
             "path": {
             "path": {
               "type": "string",
               "description": "Path to the directory to where the data should be exported",
              "minLength": 1,
               "required": true,
               "required": true,
               "minLength": 1,
               "type": "string"
              "description": "Path to the directory to where the data should be exported"
             }
             }
           }
           },
          "type": "object"
         },
         },
         {
         {
          "type": "object",
          "required": true,
           "additionalProperties": false,
           "additionalProperties": false,
           "properties": {
           "properties": {
             "overwrite": {
             "actorthumbs": {
              "type": "boolean",
               "default": false,
               "default": false,
               "description": "Whether to overwrite existing exported files"
               "description": "Whether to export actor thumbnails",
              "type": "boolean"
             },
             },
             "images": {
             "images": {
              "type": "boolean",
               "default": false,
               "default": false,
               "description": "Whether to export thumbnails and fanart images"
               "description": "Whether to export thumbnails and fanart images",
              "type": "boolean"
             },
             },
             "actorthumbs": {
             "overwrite": {
              "type": "boolean",
               "default": false,
               "default": false,
               "description": "Whether to export actor thumbnails"
               "description": "Whether to overwrite existing exported files",
              "type": "boolean"
             }
             }
           }
           },
          "type": "object"
         }
         }
       ]
       ]
     }
     }
   ],
   ],
  "returns": "string"
   "permission": "WriteFile",
}
</syntaxhighlight>}}
==== VideoLibrary.GetEpisodeDetails ====
Retrieve details about a specific tv show episode<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' episodeid<br />
# [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Properties:'''
# [''[[#Video.Details.Episode|Video.Details.Episode]]'' episodedetails]<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{
  "type": "method",
  "description": "Retrieve details about a specific tv show episode",
  "transport": "Response",
   "permission": "ReadData",
  "params": [
    {
      "name": "episodeid",
      "$ref": "Library.Id",
      "required": true
    },
    {
      "name": "properties",
      "$ref": "Video.Fields.Episode"
    }
  ],
   "returns": {
   "returns": {
     "type": "object",
     "type": "string"
    "properties": {
  },
      "episodedetails": {
  "type": "method"
        "$ref": "Video.Details.Episode"
      }
    }
  }
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetEpisodes ====
==== VideoLibrary.GetAvailableArt ====
Retrieve all tv show episodes<br />
Retrieve all potential art URLs for a media item by art type<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Library.Id|Library.Id]]'' tvshowid]<br />
# ''mixed: object|object|object|object|object|object'' item<br />
# [''integer'' season = -1]<br />
# [''string'' arttype = ""]<br />
# [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|[[#List.Filter.Episodes|List.Filter.Episodes]]'' filter]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 6,648: Line 6,980:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array'' availableart<br />
# [''array[[#Video.Details.Episode|Video.Details.Episode]]'' episodes]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all potential art URLs for a media item by art type",
   "description": "Retrieve all tv show episodes",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "tvshowid",
       "name": "item",
       "$ref": "Library.Id"
       "required": true,
    },
       "type": [
    {
      "name": "season",
      "type": "integer",
      "minimum": 0,
      "default": -1
    },
    {
      "name": "properties",
      "$ref": "Video.Fields.Episode"
    },
    {
      "name": "limits",
      "$ref": "List.Limits"
    },
    {
      "name": "sort",
      "$ref": "List.Sort"
    },
    {
      "name": "filter",
       "type": [
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "genreid": {
             "episodeid": {
               "$ref": "Library.Id",
               "$ref": "Library.Id",
               "required": true,
               "required": true
              "description": "Requires tvshowid to be set"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "genre": {
             "tvshowid": {
               "type": "string",
               "$ref": "Library.Id",
              "minLength": 1,
               "required": true
               "required": true,
              "description": "Requires tvshowid to be set"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "year": {
             "seasonid": {
               "type": "integer",
               "$ref": "Library.Id",
              "minimum": 0,
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "actor": {
             "movieid": {
               "type": "string",
               "$ref": "Library.Id",
              "minLength": 1,
               "required": true
               "required": true,
              "description": "Requires tvshowid to be set"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "director": {
             "setid": {
               "type": "string",
               "$ref": "Library.Id",
              "minLength": 1,
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "$ref": "List.Filter.Episodes"
           "additionalProperties": false,
          "properties": {
            "musicvideoid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
         }
         }
       ]
       ]
    },
    {
      "default": "",
      "name": "arttype",
      "type": "string"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "availableart": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "episodes": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Video.Details.Episode"
           "properties": {
         }
            "arttype": {
              "required": true,
              "type": "string"
            },
            "previewurl": {
              "default": "",
              "description": "URL to a preview thumbnail of the image",
              "type": "string"
            },
            "url": {
              "description": "URL to the original image",
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
         },
        "required": true,
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetGenres ====
==== VideoLibrary.GetAvailableArtTypes ====
Retrieve all genres<br />
Retrieve a list of potential art types for a media item<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''string'' type<br />
# ''mixed: object|object|object|object|object|object'' item<br />
# [''[[#Library.Fields.Genre|Library.Fields.Genre]]'' properties]<br />
</div>
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
'''Returns:'''  
'''Returns:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array'' availablearttypes<br />
# ''array[[#Library.Details.Genre|Library.Details.Genre]]'' genres<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve a list of potential art types for a media item",
   "description": "Retrieve all genres",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "type",
       "name": "item",
      "type": "string",
       "required": true,
       "required": true,
       "enum": [
       "type": [
         "movie",
         {
         "tvshow",
          "additionalProperties": false,
         "musicvideo"
          "properties": {
            "episodeid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
         {
          "additionalProperties": false,
          "properties": {
            "tvshowid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
         },
        {
          "additionalProperties": false,
          "properties": {
            "seasonid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "movieid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "setid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "musicvideoid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        }
       ]
       ]
    },
    {
      "name": "properties",
      "$ref": "Library.Fields.Genre"
    },
    {
      "name": "limits",
      "$ref": "List.Limits"
    },
    {
      "name": "sort",
      "$ref": "List.Sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "availablearttypes": {
         "$ref": "List.LimitsReturned",
         "items": {
        "required": true
          "type": "string"
      },
         },
      "genres": {
         "type": "array",
         "required": true,
         "required": true,
         "items": {
         "type": "array"
          "$ref": "Library.Details.Genre"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetInProgressTVShows ====
==== VideoLibrary.GetEpisodeDetails ====
Retrieve all in progress tvshows<br />
Retrieve details about a specific tv show episode<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
# ''[[#Library.Id|Library.Id]]'' episodeid<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 6,843: Line 7,204:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''[[#Video.Details.Episode|Video.Details.Episode]]'' episodedetails]<br />
# [''array[[#Video.Details.TVShow|Video.Details.TVShow]]'' tvshows]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve details about a specific tv show episode",
   "description": "Retrieve all in progress tvshows",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Library.Id",
       "$ref": "Video.Fields.TVShow"
       "name": "episodeid",
      "required": true
     },
     },
     {
     {
      "name": "limits",
       "$ref": "Video.Fields.Episode",
       "$ref": "List.Limits"
       "name": "properties"
    },
    {
       "name": "sort",
      "$ref": "List.Sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "episodedetails": {
         "$ref": "List.LimitsReturned",
         "$ref": "Video.Details.Episode"
        "required": true
      },
      "tvshows": {
        "type": "array",
        "items": {
          "$ref": "Video.Details.TVShow"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetMovieDetails ====
==== VideoLibrary.GetEpisodes ====
Retrieve details about a specific movie<br />
Retrieve all tv show episodes<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' movieid<br />
# [''[[#Library.Id|Library.Id]]'' tvshowid = -1]<br />
# [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
# [''integer'' season = -1]<br />
# [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|[[#List.Filter.Episodes|List.Filter.Episodes]]'' filter]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 6,896: Line 7,249:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''[[#Video.Details.Movie|Video.Details.Movie]]'' moviedetails]<br />
# [''array[ [[#Video.Details.Episode|Video.Details.Episode]] ]'' episodes]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all tv show episodes",
   "description": "Retrieve details about a specific movie",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "movieid",
       "$ref": "Library.Id",
       "$ref": "Library.Id",
       "required": true
       "default": -1,
      "name": "tvshowid"
    },
    {
      "default": -1,
      "minimum": 0,
      "name": "season",
      "type": "integer"
    },
    {
      "$ref": "Video.Fields.Episode",
      "name": "properties"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Limits",
      "$ref": "Video.Fields.Movie"
       "name": "limits"
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "moviedetails": {
        "$ref": "Video.Details.Movie"
      }
    }
  }
}
</syntaxhighlight>}}
==== VideoLibrary.GetMovieSetDetails ====
Retrieve details about a specific movie set<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' setid<br />
# [''[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]'' properties]<br />
# [''object'' movies]<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Properties:'''
# [''[[#Video.Details.MovieSet.Extended|Video.Details.MovieSet.Extended]]'' setdetails]<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{
  "type": "method",
  "description": "Retrieve details about a specific movie set",
  "transport": "Response",
  "permission": "ReadData",
  "params": [
    {
       "name": "setid",
      "$ref": "Library.Id",
      "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Sort",
       "$ref": "Video.Fields.MovieSet"
       "name": "sort"
     },
     },
     {
     {
       "name": "movies",
       "name": "filter",
       "type": "object",
       "type": [
      "properties": {
        {
         "properties": {
          "additionalProperties": false,
           "$ref": "Video.Fields.Movie"
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "description": "Requires tvshowid to be set",
              "required": true
            }
          },
          "type": "object"
         },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "description": "Requires tvshowid to be set",
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
           "type": "object"
         },
         },
         "limits": {
         {
           "$ref": "List.Limits"
          "additionalProperties": false,
          "properties": {
            "year": {
              "minimum": 0,
              "required": true,
              "type": "integer"
            }
          },
           "type": "object"
         },
         },
         "sort": {
         {
           "$ref": "List.Sort"
          "additionalProperties": false,
         }
          "properties": {
       }
            "actor": {
     }
              "description": "Requires tvshowid to be set",
   ],
              "minLength": 1,
   "returns": {
              "required": true,
    "type": "object",
              "type": "string"
     "properties": {
            }
       "setdetails": {
          },
         "$ref": "Video.Details.MovieSet.Extended"
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "director": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
           "$ref": "List.Filter.Episodes"
         }
       ]
     }
   ],
   "permission": "ReadData",
  "returns": {
     "properties": {
       "episodes": {
         "items": {
          "$ref": "Video.Details.Episode"
        },
        "type": "array"
      },
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetMovieSets ====
==== VideoLibrary.GetGenres ====
Retrieve all movie sets<br />
Retrieve all genres<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]'' properties]<br />
# ''string'' type<br />
# [''[[#Library.Fields.Genre|Library.Fields.Genre]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
Line 6,997: Line 7,379:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''array[ [[#Library.Details.Genre|Library.Details.Genre]] ]'' genres<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Video.Details.MovieSet|Video.Details.MovieSet]]'' sets]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all genres",
   "description": "Retrieve all movie sets",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
      "enums": [
       "$ref": "Video.Fields.MovieSet"
        "movie",
        "tvshow",
        "musicvideo"
      ],
       "name": "type",
      "required": true,
      "type": "string"
    },
    {
       "$ref": "Library.Fields.Genre",
      "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "genres": {
        "items": {
          "$ref": "Library.Details.Genre"
        },
        "required": true,
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "sets": {
        "type": "array",
        "items": {
          "$ref": "Video.Details.MovieSet"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetMovies ====
==== VideoLibrary.GetInProgressTVShows ====
Retrieve all movies<br />
Retrieve all in progress tvshows<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
# [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|object|object|object|object|object|[[#List.Filter.Movies|List.Filter.Movies]]'' filter]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,053: Line 7,444:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Video.Details.Movie|Video.Details.Movie]]'' movies]<br />
# [''array[ [[#Video.Details.TVShow|Video.Details.TVShow]] ]'' tvshows]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all in progress tvshows",
   "description": "Retrieve all movies",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Video.Fields.TVShow",
       "$ref": "Video.Fields.Movie"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
      "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
    }
  ],
  "permission": "ReadData",
  "returns": {
    "properties": {
       "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "tvshows": {
        "items": {
          "$ref": "Video.Details.TVShow"
        },
        "type": "array"
      }
     },
     },
    "type": "object"
  },
  "type": "method"
}
</syntaxhighlight>}}
==== VideoLibrary.GetMovieDetails ====
Retrieve details about a specific movie<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' movieid<br />
# [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Properties:'''
# [''[[#Video.Details.Movie|Video.Details.Movie]]'' moviedetails]<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "Retrieve details about a specific movie",
  "params": [
     {
     {
       "name": "filter",
      "$ref": "Library.Id",
       "type": [
       "name": "movieid",
        {
       "required": true
          "type": "object",
    },
          "properties": {
    {
            "genreid": {
      "$ref": "Video.Fields.Movie",
              "$ref": "Library.Id",
      "name": "properties"
              "required": true
    }
            }
  ],
          },
  "permission": "ReadData",
          "additionalProperties": false
  "returns": {
        },
    "properties": {
        {
      "moviedetails": {
          "type": "object",
        "$ref": "Video.Details.Movie"
          "properties": {
      }
            "genre": {
    },
              "type": "string",
    "type": "object"
              "minLength": 1,
  },
              "required": true
  "type": "method"
            }
}
          },
</syntaxhighlight>}}
           "additionalProperties": false
==== VideoLibrary.GetMovieSetDetails ====
Retrieve details about a specific movie set<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' setid<br />
# [''[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]'' properties]<br />
# [''object'' movies]<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''object''<br />
'''Properties:'''
# [''[[#Video.Details.MovieSet.Extended|Video.Details.MovieSet.Extended]]'' setdetails]<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "Retrieve details about a specific movie set",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "setid",
      "required": true
    },
    {
      "$ref": "Video.Fields.MovieSet",
      "name": "properties"
    },
    {
      "name": "movies",
      "properties": {
        "limits": {
           "$ref": "List.Limits"
         },
         },
         {
         "properties": {
          "type": "object",
          "$ref": "Video.Fields.Movie"
          "properties": {
            "year": {
              "type": "integer",
              "minimum": 0,
              "required": true
            }
          },
          "additionalProperties": false
         },
         },
         {
         "sort": {
          "type": "object",
           "$ref": "List.Sort"
          "properties": {
        }
            "actor": {
      },
              "type": "string",
      "type": "object"
              "minLength": 1,
    }
              "required": true
  ],
            }
  "permission": "ReadData",
          },
  "returns": {
          "additionalProperties": false
    "properties": {
        },
      "setdetails": {
        {
         "$ref": "Video.Details.MovieSet.Extended"
           "type": "object",
      }
          "properties": {
     },
            "director": {
     "type": "object"
              "type": "string",
  },
              "minLength": 1,
  "type": "method"
              "required": true
}
            }
</syntaxhighlight>}}
          },
==== VideoLibrary.GetMovieSets ====
          "additionalProperties": false
Retrieve all movie sets<br />
        },
        {
          "type": "object",
          "properties": {
            "studio": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "country": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "setid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "set": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
          "additionalProperties": false
        },
         {
          "$ref": "List.Filter.Movies"
        }
      ]
     }
  ],
  "returns": {
     "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "movies": {
        "type": "array",
        "items": {
          "$ref": "Video.Details.Movie"
        }
      }
    }
  }
}
</syntaxhighlight>}}
==== VideoLibrary.GetMusicVideoDetails ====
Retrieve details about a specific music video<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
# [''[[#Video.Fields.MovieSet|Video.Fields.MovieSet]]'' properties]<br />
# [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,221: Line 7,594:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]'' musicvideodetails]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[ [[#Video.Details.MovieSet|Video.Details.MovieSet]] ]'' sets]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all movie sets",
   "description": "Retrieve details about a specific music video",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "musicvideoid",
       "$ref": "Video.Fields.MovieSet",
       "$ref": "Library.Id",
       "name": "properties"
       "required": true
     },
     },
     {
     {
       "name": "properties",
      "$ref": "List.Limits",
       "$ref": "Video.Fields.MusicVideo"
       "name": "limits"
    },
    {
       "$ref": "List.Sort",
      "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "musicvideodetails": {
       "limits": {
         "$ref": "Video.Details.MusicVideo"
         "$ref": "List.LimitsReturned",
        "required": true
      },
      "sets": {
        "items": {
          "$ref": "Video.Details.MovieSet"
        },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetMusicVideos ====
==== VideoLibrary.GetMovies ====
Retrieve all music videos<br />
Retrieve all movies<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
# [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|object|object|[[#List.Filter.MusicVideos|List.Filter.MusicVideos]]'' filter]<br />
# [''mixed: object|object|object|object|object|object|object|object|object|object|[[#List.Filter.Movies|List.Filter.Movies]]'' filter]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,266: Line 7,649:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]'' musicvideos]<br />
# [''array[ [[#Video.Details.Movie|Video.Details.Movie]] ]'' movies]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all movies",
   "description": "Retrieve all music videos",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Video.Fields.Movie",
       "$ref": "Video.Fields.MusicVideo"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     },
     },
     {
     {
Line 7,291: Line 7,671:
       "type": [
       "type": [
         {
         {
          "type": "object",
           "additionalProperties": false,
          "properties": {
            "artist": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
           "additionalProperties": false
        },
        {
          "type": "object",
           "properties": {
           "properties": {
             "genreid": {
             "genreid": {
Line 7,309: Line 7,678:
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "genre": {
             "genre": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "year": {
             "year": {
              "type": "integer",
               "minimum": 0,
               "minimum": 0,
               "required": true
               "required": true,
              "type": "integer"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "actor": {
              "minLength": 1,
              "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "director": {
             "director": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "studio": {
             "studio": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
               "required": true
               "required": true,
              "type": "string"
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "type": "object",
           "additionalProperties": false,
           "properties": {
           "properties": {
             "tag": {
             "country": {
              "type": "string",
               "minLength": 1,
               "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "setid": {
              "$ref": "Library.Id",
               "required": true
               "required": true
             }
             }
           },
           },
           "additionalProperties": false
           "type": "object"
         },
         },
         {
         {
           "$ref": "List.Filter.MusicVideos"
          "additionalProperties": false,
         }
          "properties": {
            "set": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "tag": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
           "$ref": "List.Filter.Movies"
         }
       ]
       ]
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 7,379: Line 7,791:
         "required": true
         "required": true
       },
       },
       "musicvideos": {
       "movies": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Video.Details.MusicVideo"
           "$ref": "Video.Details.Movie"
         }
         },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetRecentlyAddedEpisodes ====
==== VideoLibrary.GetMusicVideoDetails ====
Retrieve all recently added tv episodes<br />
Retrieve details about a specific music video<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
# ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,403: Line 7,816:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]'' musicvideodetails]<br />
# [''array[[#Video.Details.Episode|Video.Details.Episode]]'' episodes]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve details about a specific music video",
   "description": "Retrieve all recently added tv episodes",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Library.Id",
       "$ref": "Video.Fields.Episode"
       "name": "musicvideoid",
      "required": true
     },
     },
     {
     {
      "name": "limits",
       "$ref": "Video.Fields.MusicVideo",
       "$ref": "List.Limits"
       "name": "properties"
    },
    {
       "name": "sort",
      "$ref": "List.Sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "musicvideodetails": {
         "$ref": "List.LimitsReturned",
         "$ref": "Video.Details.MusicVideo"
        "required": true
      },
      "episodes": {
        "type": "array",
        "items": {
          "$ref": "Video.Details.Episode"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetRecentlyAddedMovies ====
==== VideoLibrary.GetMusicVideos ====
Retrieve all recently added movies<br />
Retrieve all music videos<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
# [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|object|object|[[#List.Filter.MusicVideos|List.Filter.MusicVideos]]'' filter]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,458: Line 7,860:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Video.Details.Movie|Video.Details.Movie]]'' movies]<br />
# [''array[ [[#Video.Details.MusicVideo|Video.Details.MusicVideo]] ]'' musicvideos]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all music videos",
   "description": "Retrieve all recently added movies",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Video.Fields.MusicVideo",
       "$ref": "Video.Fields.Movie"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
      "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
    },
    {
      "name": "filter",
       "type": [
        {
          "additionalProperties": false,
          "properties": {
            "artist": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genreid": {
              "$ref": "Library.Id",
              "required": true
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "genre": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "year": {
              "minimum": 0,
              "required": true,
              "type": "integer"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "director": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "studio": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "tag": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.MusicVideos"
        }
      ]
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 7,487: Line 7,970:
         "required": true
         "required": true
       },
       },
       "movies": {
       "musicvideos": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Video.Details.Movie"
           "$ref": "Video.Details.MusicVideo"
         }
         },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetRecentlyAddedMusicVideos ====
==== VideoLibrary.GetRecentlyAddedEpisodes ====
Retrieve all recently added music videos<br />
Retrieve all recently added tv episodes<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
# [''[[#Video.Fields.Episode|Video.Fields.Episode]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
Line 7,511: Line 7,996:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''array[ [[#Video.Details.Episode|Video.Details.Episode]] ]'' episodes]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Video.Details.MusicVideo|Video.Details.MusicVideo]]'' musicvideos]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all recently added tv episodes",
   "description": "Retrieve all recently added music videos",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Video.Fields.Episode",
       "$ref": "Video.Fields.MusicVideo"
       "name": "properties"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "List.Limits",
       "$ref": "List.Limits"
       "name": "limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Sort",
       "$ref": "List.Sort"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
      "episodes": {
        "items": {
          "$ref": "Video.Details.Episode"
        },
        "type": "array"
      },
       "limits": {
       "limits": {
         "$ref": "List.LimitsReturned",
         "$ref": "List.LimitsReturned",
         "required": true
         "required": true
      },
      "musicvideos": {
        "type": "array",
        "items": {
          "$ref": "Video.Details.MusicVideo"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetSeasonDetails ====
==== VideoLibrary.GetRecentlyAddedMovies ====
Retrieve details about a specific tv show season<br />
Retrieve all recently added movies<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' seasonid<br />
# [''[[#Video.Fields.Movie|Video.Fields.Movie]]'' properties]<br />
# [''[[#Video.Fields.Season|Video.Fields.Season]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,564: Line 8,049:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''[[#Video.Details.Season|Video.Details.Season]]'' seasondetails]<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[ [[#Video.Details.Movie|Video.Details.Movie]] ]'' movies]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all recently added movies",
   "description": "Retrieve details about a specific tv show season",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "seasonid",
      "$ref": "Video.Fields.Movie",
       "$ref": "Library.Id",
       "name": "properties"
       "required": true
    },
    {
       "$ref": "List.Limits",
       "name": "limits"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Sort",
       "$ref": "Video.Fields.Season"
       "name": "sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "seasondetails": {
       "limits": {
         "$ref": "Video.Details.Season"
         "$ref": "List.LimitsReturned",
        "required": true
      },
      "movies": {
        "items": {
          "$ref": "Video.Details.Movie"
        },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetSeasons ====
==== VideoLibrary.GetRecentlyAddedMusicVideos ====
Retrieve all tv seasons<br />
Retrieve all recently added music videos<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Library.Id|Library.Id]]'' tvshowid]<br />
# [''[[#Video.Fields.MusicVideo|Video.Fields.MusicVideo]]'' properties]<br />
# [''[[#Video.Fields.Season|Video.Fields.Season]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
Line 7,609: Line 8,103:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Video.Details.Season|Video.Details.Season]]'' seasons]<br />
# [''array[ [[#Video.Details.MusicVideo|Video.Details.MusicVideo]] ]'' musicvideos]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all recently added music videos",
   "description": "Retrieve all tv seasons",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "tvshowid",
       "$ref": "Video.Fields.MusicVideo",
       "$ref": "Library.Id"
       "name": "properties"
     },
     },
     {
     {
       "name": "properties",
       "$ref": "List.Limits",
       "$ref": "Video.Fields.Season"
       "name": "limits"
     },
     },
     {
     {
      "name": "limits",
       "$ref": "List.Sort",
       "$ref": "List.Limits"
       "name": "sort"
    },
    {
       "name": "sort",
      "$ref": "List.Sort"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "limits": {
Line 7,642: Line 8,129:
         "required": true
         "required": true
       },
       },
       "seasons": {
       "musicvideos": {
        "type": "array",
         "items": {
         "items": {
           "$ref": "Video.Details.Season"
           "$ref": "Video.Details.MusicVideo"
         }
         },
        "type": "array"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetTVShowDetails ====
==== VideoLibrary.GetSeasonDetails ====
Retrieve details about a specific tv show<br />
Retrieve details about a specific tv show season<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' tvshowid<br />
# ''[[#Library.Id|Library.Id]]'' seasonid<br />
# [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
# [''[[#Video.Fields.Season|Video.Fields.Season]]'' properties]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,665: Line 8,154:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# [''[[#Video.Details.TVShow|Video.Details.TVShow]]'' tvshowdetails]<br />
# [''[[#Video.Details.Season|Video.Details.Season]]'' seasondetails]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve details about a specific tv show season",
   "description": "Retrieve details about a specific tv show",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "tvshowid",
       "$ref": "Library.Id",
       "$ref": "Library.Id",
      "name": "seasonid",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "properties",
       "$ref": "Video.Fields.Season",
       "$ref": "Video.Fields.TVShow"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "tvshowdetails": {
       "seasondetails": {
         "$ref": "Video.Details.TVShow"
         "$ref": "Video.Details.Season"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetTVShows ====
==== VideoLibrary.GetSeasons ====
Retrieve all tv shows<br />
Retrieve all tv seasons<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
# [''[[#Library.Id|Library.Id]]'' tvshowid = -1]<br />
# [''[[#Video.Fields.Season|Video.Fields.Season]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|object|[[#List.Filter.TVShows|List.Filter.TVShows]]'' filter]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,710: Line 8,198:
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[[#Video.Details.TVShow|Video.Details.TVShow]]'' tvshows]<br />
# [''array[ [[#Video.Details.Season|Video.Details.Season]] ]'' seasons]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all tv seasons",
   "description": "Retrieve all tv shows",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "properties",
       "$ref": "Library.Id",
       "$ref": "Video.Fields.TVShow"
       "default": -1,
      "name": "tvshowid"
     },
     },
     {
     {
       "name": "limits",
       "$ref": "Video.Fields.Season",
       "$ref": "List.Limits"
       "name": "properties"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "List.Limits",
       "$ref": "List.Sort"
       "name": "limits"
     },
     },
     {
     {
       "name": "filter",
       "$ref": "List.Sort",
       "type": [
       "name": "sort"
        {
    }
          "type": "object",
  ],
          "properties": {
  "permission": "ReadData",
            "genreid": {
  "returns": {
              "$ref": "Library.Id",
    "properties": {
              "required": true
      "limits": {
            }
        "$ref": "List.LimitsReturned",
          },
        "required": true
          "additionalProperties": false
      },
        },
      "seasons": {
        {
         "items": {
          "type": "object",
           "$ref": "Video.Details.Season"
          "properties": {
            "genre": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
          "additionalProperties": false
         },
        {
          "type": "object",
           "properties": {
            "year": {
              "type": "integer",
              "minimum": 0,
              "required": true
            }
          },
          "additionalProperties": false
         },
         },
        {
         "type": "array"
          "type": "object",
          "properties": {
            "actor": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "studio": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "tag": {
              "type": "string",
              "minLength": 1,
              "required": true
            }
          },
          "additionalProperties": false
        },
        {
          "$ref": "List.Filter.TVShows"
        }
      ]
    }
  ],
  "returns": {
    "type": "object",
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "tvshows": {
         "type": "array",
        "items": {
          "$ref": "Video.Details.TVShow"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.GetTags ====
==== VideoLibrary.GetTVShowDetails ====
Retrieve all tags<br />
Retrieve details about a specific tv show<br />
'''Permissions:'''
'''Permissions:'''
* ReadData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''string'' type<br />
# ''[[#Library.Id|Library.Id]]'' tvshowid<br />
# [''[[#Library.Fields.Tag|Library.Fields.Tag]]'' properties]<br />
# [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,837: Line 8,254:
'''Type:''' ''object''<br />
'''Type:''' ''object''<br />
'''Properties:'''
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''[[#Video.Details.TVShow|Video.Details.TVShow]]'' tvshowdetails]<br />
# ''array[[#Library.Details.Tag|Library.Details.Tag]]'' tags<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve details about a specific tv show",
   "description": "Retrieve all tags",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "type",
       "$ref": "Library.Id",
      "type": "string",
       "name": "tvshowid",
      "required": true,
       "required": true
      "enum": [
        "movie",
        "tvshow",
        "musicvideo"
      ]
    },
    {
      "name": "properties",
       "$ref": "Library.Fields.Tag"
    },
    {
       "name": "limits",
       "$ref": "List.Limits"
     },
     },
     {
     {
       "name": "sort",
       "$ref": "Video.Fields.TVShow",
       "$ref": "List.Sort"
       "name": "properties"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
     "properties": {
     "properties": {
       "limits": {
       "tvshowdetails": {
         "$ref": "List.LimitsReturned",
         "$ref": "Video.Details.TVShow"
        "required": true
      },
      "tags": {
        "type": "array",
        "required": true,
        "items": {
          "$ref": "Library.Details.Tag"
        }
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.RefreshEpisode ====
==== VideoLibrary.GetTVShows ====
Refresh the given episode in the library<br />
Retrieve all tv shows<br />
'''Permissions:'''
'''Permissions:'''
* UpdateData
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' episodeid<br />
# [''[[#Video.Fields.TVShow|Video.Fields.TVShow]]'' properties]<br />
# ''boolean'' ignorenfo = False (Whether or not to ignore a local NFO if present.)<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
# ''string'' title = "" (Title to use for searching (instead of determining it from the item's filename/path).)<br />
# [''[[#List.Sort|List.Sort]]'' sort]<br />
# [''mixed: object|object|object|object|object|object|[[#List.Filter.TVShows|List.Filter.TVShows]]'' filter]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''string''<br />
'''Type:''' ''object''<br />
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# [''array[ [[#Video.Details.TVShow|Video.Details.TVShow]] ]'' tvshows]<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all tv shows",
   "description": "Refresh the given episode in the library",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
       "name": "episodeid",
      "$ref": "Video.Fields.TVShow",
       "$ref": "Library.Id",
       "name": "properties"
       "required": true
    },
    {
       "$ref": "List.Limits",
       "name": "limits"
     },
     },
     {
     {
       "name": "ignorenfo",
       "$ref": "List.Sort",
       "type": "boolean",
       "name": "sort"
      "required": false,
      "default": false,
      "description": "Whether or not to ignore a local NFO if present."
     },
     },
     {
     {
       "name": "title",
       "name": "filter",
       "type": "string",
       "type": [
      "required": "false",
        {
       "default": "",
          "additionalProperties": false,
       "description": "Title to use for searching (instead of determining it from the item's filename/path)."
          "properties": {
     }
            "genreid": {
   ],
              "$ref": "Library.Id",
   "returns": "string"
              "required": true
}
            }
</syntaxhighlight>}}
          },
==== VideoLibrary.RefreshMovie ====
          "type": "object"
Refresh the given movie in the library<br />
        },
'''Permissions:'''
        {
* UpdateData
          "additionalProperties": false,
          "properties": {
            "genre": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "year": {
              "minimum": 0,
              "required": true,
              "type": "integer"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "actor": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "studio": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "tag": {
              "minLength": 1,
              "required": true,
              "type": "string"
            }
          },
          "type": "object"
        },
        {
          "$ref": "List.Filter.TVShows"
        }
       ]
    }
  ],
  "permission": "ReadData",
  "returns": {
    "properties": {
       "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "tvshows": {
        "items": {
          "$ref": "Video.Details.TVShow"
        },
        "type": "array"
      }
     },
    "type": "object"
   },
   "type": "method"
}
</syntaxhighlight>}}
==== VideoLibrary.GetTags ====
Retrieve all tags<br />
'''Permissions:'''
* ReadData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' movieid<br />
# ''string'' type<br />
# ''boolean'' ignorenfo = False (Whether or not to ignore a local NFO if present.)<br />
# [''[[#Library.Fields.Tag|Library.Fields.Tag]]'' properties]<br />
# ''string'' title = "" (Title to use for searching (instead of determining it from the item's filename/path).)<br />
# [''[[#List.Limits|List.Limits]]'' limits]<br />
</div>
# [''[[#List.Sort|List.Sort]]'' sort]<br />
</div>
'''Returns:'''  
'''Returns:'''  
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''string''<br />
'''Type:''' ''object''<br />
'''Properties:'''
# ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits<br />
# ''array[ [[#Library.Details.Tag|Library.Details.Tag]] ]'' tags<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve all tags",
   "description": "Refresh the given movie in the library",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
       "name": "movieid",
      "enums": [
       "$ref": "Library.Id",
        "movie",
       "required": true
        "tvshow",
        "musicvideo"
      ],
       "name": "type",
      "required": true,
      "type": "string"
    },
    {
       "$ref": "Library.Fields.Tag",
       "name": "properties"
     },
     },
     {
     {
       "name": "ignorenfo",
       "$ref": "List.Limits",
       "type": "boolean",
       "name": "limits"
      "required": false,
      "default": false,
      "description": "Whether or not to ignore a local NFO if present."
     },
     },
     {
     {
       "name": "title",
       "$ref": "List.Sort",
       "type": "string",
       "name": "sort"
      "required": "false",
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path)."
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "ReadData",
   "returns": {
    "properties": {
      "limits": {
        "$ref": "List.LimitsReturned",
        "required": true
      },
      "tags": {
        "items": {
          "$ref": "Library.Details.Tag"
        },
        "required": true,
        "type": "array"
      }
    },
    "type": "object"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.RefreshMusicVideo ====
==== VideoLibrary.RefreshEpisode ====
Refresh the given music video in the library<br />
Refresh the given episode in the library<br />
'''Permissions:'''
'''Permissions:'''
* UpdateData
* UpdateData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
# ''[[#Library.Id|Library.Id]]'' episodeid<br />
# ''boolean'' ignorenfo = False (Whether or not to ignore a local NFO if present.)<br />
# [''boolean'' ignorenfo = False] (Whether or not to ignore a local NFO if present.)<br />
# ''string'' title = "" (Title to use for searching (instead of determining it from the item's filename/path).)<br />
# [''string'' title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 7,990: Line 8,488:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Refresh the given episode in the library",
   "description": "Refresh the given music video in the library",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "name": "musicvideoid",
       "$ref": "Library.Id",
       "$ref": "Library.Id",
      "name": "episodeid",
       "required": true
       "required": true
     },
     },
     {
     {
      "default": false,
      "description": "Whether or not to ignore a local NFO if present.",
       "name": "ignorenfo",
       "name": "ignorenfo",
       "type": "boolean",
       "type": "boolean"
      "required": false,
      "default": false,
      "description": "Whether or not to ignore a local NFO if present."
     },
     },
     {
     {
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path).",
       "name": "title",
       "name": "title",
       "type": "string",
       "type": "string"
      "required": "false",
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path)."
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.RefreshTVShow ====
==== VideoLibrary.RefreshMovie ====
Refresh the given tv show in the library<br />
Refresh the given movie in the library<br />
'''Permissions:'''
'''Permissions:'''
* UpdateData
* UpdateData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' tvshowid<br />
# ''[[#Library.Id|Library.Id]]'' movieid<br />
# ''boolean'' ignorenfo = False (Whether or not to ignore a local NFO if present.)<br />
# [''boolean'' ignorenfo = False] (Whether or not to ignore a local NFO if present.)<br />
# ''boolean'' refreshepisodes = False (Whether or not to refresh all episodes belonging to the TV show.)<br />
# [''string'' title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)<br />
# ''string'' title = "" (Title to use for searching (instead of determining it from the item's filename/path).)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,035: Line 8,531:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Refresh the given movie in the library",
   "description": "Refresh the given tv show in the library",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "name": "tvshowid",
       "$ref": "Library.Id",
       "$ref": "Library.Id",
      "name": "movieid",
       "required": true
       "required": true
     },
     },
     {
     {
      "default": false,
      "description": "Whether or not to ignore a local NFO if present.",
       "name": "ignorenfo",
       "name": "ignorenfo",
       "type": "boolean",
       "type": "boolean"
      "required": false,
      "default": false,
      "description": "Whether or not to ignore a local NFO if present."
    },
    {
      "name": "refreshepisodes",
      "type": "boolean",
      "required": false,
      "default": false,
      "description": "Whether or not to refresh all episodes belonging to the TV show."
     },
     },
     {
     {
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path).",
       "name": "title",
       "name": "title",
       "type": "string",
       "type": "string"
      "required": "false",
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path)."
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.RemoveEpisode ====
==== VideoLibrary.RefreshMusicVideo ====
Removes the given episode from the library<br />
Refresh the given music video in the library<br />
'''Permissions:'''
'''Permissions:'''
* RemoveData
* UpdateData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' episodeid<br />
# ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
# [''boolean'' ignorenfo = False] (Whether or not to ignore a local NFO if present.)<br />
# [''string'' title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,084: Line 8,574:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Refresh the given music video in the library",
   "description": "Removes the given episode from the library",
  "transport": "Response",
  "permission": "RemoveData",
   "params": [
   "params": [
     {
     {
      "name": "episodeid",
       "$ref": "Library.Id",
       "$ref": "Library.Id",
      "name": "musicvideoid",
       "required": true
       "required": true
    },
    {
      "default": false,
      "description": "Whether or not to ignore a local NFO if present.",
      "name": "ignorenfo",
      "type": "boolean"
    },
    {
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path).",
      "name": "title",
      "type": "string"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.RemoveMovie ====
==== VideoLibrary.RefreshTVShow ====
Removes the given movie from the library<br />
Refresh the given tv show in the library<br />
'''Permissions:'''
'''Permissions:'''
* RemoveData
* UpdateData
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' movieid<br />
# ''[[#Library.Id|Library.Id]]'' tvshowid<br />
# [''boolean'' ignorenfo = False] (Whether or not to ignore a local NFO if present.)<br />
# [''boolean'' refreshepisodes = False] (Whether or not to refresh all episodes belonging to the TV show.)<br />
# [''string'' title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,112: Line 8,618:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Refresh the given tv show in the library",
   "description": "Removes the given movie from the library",
  "transport": "Response",
  "permission": "RemoveData",
   "params": [
   "params": [
     {
     {
      "name": "movieid",
       "$ref": "Library.Id",
       "$ref": "Library.Id",
      "name": "tvshowid",
       "required": true
       "required": true
    },
    {
      "default": false,
      "description": "Whether or not to ignore a local NFO if present.",
      "name": "ignorenfo",
      "type": "boolean"
    },
    {
      "default": false,
      "description": "Whether or not to refresh all episodes belonging to the TV show.",
      "name": "refreshepisodes",
      "type": "boolean"
    },
    {
      "default": "",
      "description": "Title to use for searching (instead of determining it from the item's filename/path).",
      "name": "title",
      "type": "string"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.RemoveMusicVideo ====
==== VideoLibrary.RemoveEpisode ====
Removes the given episode from the library<br />
'''Permissions:'''
* RemoveData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' episodeid<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''string''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "Removes the given episode from the library",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "episodeid",
      "required": true
    }
  ],
  "permission": "RemoveData",
  "returns": {
    "type": "string"
  },
  "type": "method"
}
</syntaxhighlight>}}
==== VideoLibrary.RemoveMovie ====
Removes the given movie from the library<br />
'''Permissions:'''
* RemoveData
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' movieid<br />
</div>
'''Returns:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
'''Type:''' ''string''<br />
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "Removes the given movie from the library",
  "params": [
    {
      "$ref": "Library.Id",
      "name": "movieid",
      "required": true
    }
  ],
  "permission": "RemoveData",
  "returns": {
    "type": "string"
  },
  "type": "method"
}
</syntaxhighlight>}}
==== VideoLibrary.RemoveMusicVideo ====
Removes the given music video from the library<br />
Removes the given music video from the library<br />
'''Permissions:'''
'''Permissions:'''
Line 8,140: Line 8,723:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Removes the given music video from the library",
   "description": "Removes the given music video from the library",
  "transport": "Response",
  "permission": "RemoveData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "musicvideoid",
       "name": "musicvideoid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "RemoveData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 8,168: Line 8,752:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Removes the given tv show from the library",
   "description": "Removes the given tv show from the library",
  "transport": "Response",
  "permission": "RemoveData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "tvshowid",
       "name": "tvshowid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "RemoveData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 8,197: Line 8,782:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Scans the video sources for new library items",
   "description": "Scans the video sources for new library items",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "default": "",
       "name": "directory",
       "name": "directory",
       "type": "string",
       "type": "string"
      "default": ""
     },
     },
     {
     {
      "default": true,
      "description": "Whether or not to show the progress bar or any other GUI dialog",
       "name": "showdialogs",
       "name": "showdialogs",
       "type": "boolean",
       "type": "boolean"
      "default": true,
      "description": "Whether or not to show the progress bar or any other GUI dialog"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
}
   "returns": {
    "type": "string"
  },
  "type": "method"
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== VideoLibrary.SetEpisodeDetails ====
==== VideoLibrary.SetEpisodeDetails ====
Line 8,226: Line 8,812:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' episodeid<br />
# ''[[#Library.Id|Library.Id]]'' episodeid<br />
# [''[[#Optional.String|Optional.String]]'' title]<br />
# [''[[#Optional.String|Optional.String]]'' title = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' runtime] (Runtime in seconds)<br />
# [''[[#Optional.Integer|Optional.Integer]]'' runtime = None] (Runtime in seconds)<br />
# [''mixed: [[#Array.String|Array.String]]'' director = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' director = None]<br />
# [''[[#Optional.String|Optional.String]]'' plot]<br />
# [''[[#Optional.String|Optional.String]]'' plot = None]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br />
# [''[[#Optional.String|Optional.String]]'' votes]<br />
# [''[[#Optional.String|Optional.String]]'' votes = None]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' writer = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' writer = None]<br />
# [''[[#Optional.String|Optional.String]]'' firstaired]<br />
# [''[[#Optional.String|Optional.String]]'' firstaired = None]<br />
# [''[[#Optional.String|Optional.String]]'' productioncode]<br />
# [''[[#Optional.String|Optional.String]]'' productioncode = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' season]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' season = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' episode]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' episode = None]<br />
# [''[[#Optional.String|Optional.String]]'' originaltitle]<br />
# [''[[#Optional.String|Optional.String]]'' originaltitle = None]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br />
# [''[[#Optional.String|Optional.String]]'' fanart]<br />
# [''[[#Optional.String|Optional.String]]'' fanart = None]<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: [[#Video.Resume|Video.Resume]]'' resume = None]<br />
# [''mixed: null|[[#Video.Resume|Video.Resume]]'' resume = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br />
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
# [''[[#Optional.String|Optional.String]]'' dateadded]<br />
# [''[[#Optional.String|Optional.String]]'' dateadded = None]<br />
# [''mixed: [[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
# [''mixed: null|[[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,253: Line 8,839:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given episode with the given details",
   "description": "Update the given episode with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "episodeid",
       "name": "episodeid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "title",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "title"
     },
     },
     {
     {
       "name": "playcount",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "playcount"
     },
     },
     {
     {
      "name": "runtime",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer",
       "description": "Runtime in seconds"
      "default": null,
       "description": "Runtime in seconds",
      "name": "runtime"
     },
     },
     {
     {
      "default": null,
       "name": "director",
       "name": "director",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "plot",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "plot"
     },
     },
     {
     {
       "name": "rating",
       "$ref": "Optional.Number",
       "$ref": "Optional.Number"
      "default": null,
       "name": "rating"
     },
     },
     {
     {
       "name": "votes",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "votes"
     },
     },
     {
     {
       "name": "lastplayed",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "lastplayed"
     },
     },
     {
     {
      "default": null,
       "name": "writer",
       "name": "writer",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "firstaired",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "firstaired"
     },
     },
     {
     {
       "name": "productioncode",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "productioncode"
     },
     },
     {
     {
       "name": "season",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "season"
     },
     },
     {
     {
       "name": "episode",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "episode"
     },
     },
     {
     {
       "name": "originaltitle",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "originaltitle"
     },
     },
     {
     {
       "name": "thumbnail",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "thumbnail"
     },
     },
     {
     {
       "name": "fanart",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "fanart"
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "resume",
       "name": "resume",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Video.Resume",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Video.Resume"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "userrating",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "userrating"
     },
     },
     {
     {
       "name": "ratings",
       "$ref": "Video.Ratings.Set",
       "$ref": "Video.Ratings.Set"
       "name": "ratings"
     },
     },
     {
     {
       "name": "dateadded",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "dateadded"
     },
     },
     {
     {
      "default": null,
       "name": "uniqueid",
       "name": "uniqueid",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.UniqueID.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.UniqueID.Set"
         }
         }
       ],
       ]
      "default": null
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 8,400: Line 9,008:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' movieid<br />
# ''[[#Library.Id|Library.Id]]'' movieid<br />
# [''[[#Optional.String|Optional.String]]'' title]<br />
# [''[[#Optional.String|Optional.String]]'' title = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' runtime] (Runtime in seconds)<br />
# [''[[#Optional.Integer|Optional.Integer]]'' runtime = None] (Runtime in seconds)<br />
# [''mixed: [[#Array.String|Array.String]]'' director = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' director = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' studio = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' studio = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' year] (linked with premiered. Overridden by premiered parameter)<br />
# [''[[#Optional.Integer|Optional.Integer]]'' year = None] (linked with premiered. Overridden by premiered parameter)<br />
# [''[[#Optional.String|Optional.String]]'' plot]<br />
# [''[[#Optional.String|Optional.String]]'' plot = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br />
# [''[[#Optional.String|Optional.String]]'' mpaa]<br />
# [''[[#Optional.String|Optional.String]]'' mpaa = None]<br />
# [''[[#Optional.String|Optional.String]]'' imdbnumber]<br />
# [''[[#Optional.String|Optional.String]]'' imdbnumber = None]<br />
# [''[[#Optional.String|Optional.String]]'' votes]<br />
# [''[[#Optional.String|Optional.String]]'' votes = None]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br />
# [''[[#Optional.String|Optional.String]]'' originaltitle]<br />
# [''[[#Optional.String|Optional.String]]'' originaltitle = None]<br />
# [''[[#Optional.String|Optional.String]]'' trailer]<br />
# [''[[#Optional.String|Optional.String]]'' trailer = None]<br />
# [''[[#Optional.String|Optional.String]]'' tagline]<br />
# [''[[#Optional.String|Optional.String]]'' tagline = None]<br />
# [''[[#Optional.String|Optional.String]]'' plotoutline]<br />
# [''[[#Optional.String|Optional.String]]'' plotoutline = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' writer = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' writer = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' country = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' country = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' top250]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' top250 = None]<br />
# [''[[#Optional.String|Optional.String]]'' sorttitle]<br />
# [''[[#Optional.String|Optional.String]]'' sorttitle = None]<br />
# [''[[#Optional.String|Optional.String]]'' set]<br />
# [''[[#Optional.String|Optional.String]]'' set = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' showlink = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' showlink = None]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br />
# [''[[#Optional.String|Optional.String]]'' fanart]<br />
# [''[[#Optional.String|Optional.String]]'' fanart = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' tag = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' tag = None]<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: [[#Video.Resume|Video.Resume]]'' resume = None]<br />
# [''mixed: null|[[#Video.Resume|Video.Resume]]'' resume = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br />
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
# [''[[#Optional.String|Optional.String]]'' dateadded]<br />
# [''[[#Optional.String|Optional.String]]'' dateadded = None]<br />
# [''[[#Optional.String|Optional.String]]'' premiered] (linked with year. Overrides year)<br />
# [''[[#Optional.String|Optional.String]]'' premiered = None] (linked with year. Overrides year)<br />
# [''mixed: [[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
# [''mixed: null|[[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,438: Line 9,046:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given movie with the given details",
   "description": "Update the given movie with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "movieid",
       "name": "movieid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "title",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "title"
     },
     },
     {
     {
       "name": "playcount",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "playcount"
     },
     },
     {
     {
      "name": "runtime",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer",
       "description": "Runtime in seconds"
      "default": null,
       "description": "Runtime in seconds",
      "name": "runtime"
     },
     },
     {
     {
      "default": null,
       "name": "director",
       "name": "director",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "studio",
       "name": "studio",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "name": "year",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer",
       "description": "linked with premiered. Overridden by premiered parameter"
      "default": null,
       "description": "linked with premiered. Overridden by premiered parameter",
      "name": "year"
     },
     },
     {
     {
       "name": "plot",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "plot"
     },
     },
     {
     {
      "default": null,
       "name": "genre",
       "name": "genre",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "rating",
       "$ref": "Optional.Number",
       "$ref": "Optional.Number"
      "default": null,
       "name": "rating"
     },
     },
     {
     {
       "name": "mpaa",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "mpaa"
     },
     },
     {
     {
       "name": "imdbnumber",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "imdbnumber"
     },
     },
     {
     {
       "name": "votes",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "votes"
     },
     },
     {
     {
       "name": "lastplayed",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "lastplayed"
     },
     },
     {
     {
       "name": "originaltitle",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "originaltitle"
     },
     },
     {
     {
       "name": "trailer",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "trailer"
     },
     },
     {
     {
       "name": "tagline",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "tagline"
     },
     },
     {
     {
       "name": "plotoutline",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "plotoutline"
     },
     },
     {
     {
      "default": null,
       "name": "writer",
       "name": "writer",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "country",
       "name": "country",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "top250",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "top250"
     },
     },
     {
     {
       "name": "sorttitle",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "sorttitle"
     },
     },
     {
     {
       "name": "set",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "set"
     },
     },
     {
     {
      "default": null,
       "name": "showlink",
       "name": "showlink",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "thumbnail",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "thumbnail"
     },
     },
     {
     {
       "name": "fanart",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "fanart"
     },
     },
     {
     {
      "default": null,
       "name": "tag",
       "name": "tag",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "resume",
       "name": "resume",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Video.Resume",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Video.Resume"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "userrating",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "userrating"
     },
     },
     {
     {
       "name": "ratings",
       "$ref": "Video.Ratings.Set",
       "$ref": "Video.Ratings.Set"
       "name": "ratings"
     },
     },
     {
     {
       "name": "dateadded",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "dateadded"
     },
     },
     {
     {
      "name": "premiered",
       "$ref": "Optional.String",
       "$ref": "Optional.String",
       "description": "linked with year. Overrides year"
      "default": null,
       "description": "linked with year. Overrides year",
      "name": "premiered"
     },
     },
     {
     {
      "default": null,
       "name": "uniqueid",
       "name": "uniqueid",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.UniqueID.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.UniqueID.Set"
         }
         }
       ],
       ]
      "default": null
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 8,666: Line 9,307:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' setid<br />
# ''[[#Library.Id|Library.Id]]'' setid<br />
# [''[[#Optional.String|Optional.String]]'' title]<br />
# [''[[#Optional.String|Optional.String]]'' title = None]<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''[[#Optional.String|Optional.String]]'' plot]<br />
# [''[[#Optional.String|Optional.String]]'' plot = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,674: Line 9,315:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given movie set with the given details",
   "description": "Update the given movie set with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "setid",
       "name": "setid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "title",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "title"
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "plot",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "plot"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 8,716: Line 9,361:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
# ''[[#Library.Id|Library.Id]]'' musicvideoid<br />
# [''[[#Optional.String|Optional.String]]'' title]<br />
# [''[[#Optional.String|Optional.String]]'' title = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' runtime] (Runtime in seconds)<br />
# [''[[#Optional.Integer|Optional.Integer]]'' runtime = None] (Runtime in seconds)<br />
# [''mixed: [[#Array.String|Array.String]]'' director = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' director = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' studio = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' studio = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' year] (linked with premiered. Overridden by premiered parameter)<br />
# [''[[#Optional.Integer|Optional.Integer]]'' year = None] (linked with premiered. Overridden by premiered parameter)<br />
# [''[[#Optional.String|Optional.String]]'' plot]<br />
# [''[[#Optional.String|Optional.String]]'' plot = None]<br />
# [''[[#Optional.String|Optional.String]]'' album]<br />
# [''[[#Optional.String|Optional.String]]'' album = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' artist]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' artist = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' track]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' track = None]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br />
# [''[[#Optional.String|Optional.String]]'' fanart]<br />
# [''[[#Optional.String|Optional.String]]'' fanart = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' tag = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' tag = None]<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: [[#Video.Resume|Video.Resume]]'' resume = None]<br />
# [''mixed: null|[[#Video.Resume|Video.Resume]]'' resume = None]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br />
# [''[[#Optional.String|Optional.String]]'' dateadded]<br />
# [''[[#Optional.String|Optional.String]]'' dateadded = None]<br />
# [''[[#Optional.String|Optional.String]]'' premiered] (linked with year. Overrides year)<br />
# [''[[#Optional.String|Optional.String]]'' premiered = None] (linked with year. Overrides year)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,742: Line 9,387:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given music video with the given details",
   "description": "Update the given music video with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "musicvideoid",
       "name": "musicvideoid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "title",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "title"
     },
     },
     {
     {
       "name": "playcount",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "playcount"
     },
     },
     {
     {
      "name": "runtime",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer",
       "description": "Runtime in seconds"
      "default": null,
       "description": "Runtime in seconds",
      "name": "runtime"
     },
     },
     {
     {
      "default": null,
       "name": "director",
       "name": "director",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "studio",
       "name": "studio",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "name": "year",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer",
       "description": "linked with premiered. Overridden by premiered parameter"
      "default": null,
       "description": "linked with premiered. Overridden by premiered parameter",
      "name": "year"
     },
     },
     {
     {
       "name": "plot",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "plot"
     },
     },
     {
     {
       "name": "album",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "album"
     },
     },
     {
     {
      "default": null,
       "name": "artist",
       "name": "artist",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ]
       ]
     },
     },
     {
     {
      "default": null,
       "name": "genre",
       "name": "genre",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "track",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "track"
     },
     },
     {
     {
       "name": "lastplayed",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "lastplayed"
     },
     },
     {
     {
       "name": "thumbnail",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "thumbnail"
     },
     },
     {
     {
       "name": "fanart",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "fanart"
     },
     },
     {
     {
      "default": null,
       "name": "tag",
       "name": "tag",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "resume",
       "name": "resume",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Video.Resume",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Video.Resume"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "rating",
       "$ref": "Optional.Number",
       "$ref": "Optional.Number"
      "default": null,
       "name": "rating"
     },
     },
     {
     {
       "name": "userrating",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "userrating"
     },
     },
     {
     {
       "name": "dateadded",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "dateadded"
     },
     },
     {
     {
      "name": "premiered",
       "$ref": "Optional.String",
       "$ref": "Optional.String",
       "description": "linked with year. Overrides year"
      "default": null,
       "description": "linked with year. Overrides year",
      "name": "premiered"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 8,900: Line 9,568:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' seasonid<br />
# ''[[#Library.Id|Library.Id]]'' seasonid<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br />
# [''[[#Optional.String|Optional.String]]'' title]<br />
# [''[[#Optional.String|Optional.String]]'' title = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,908: Line 9,576:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given season with the given details",
   "description": "Update the given season with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "seasonid",
       "name": "seasonid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "userrating",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "userrating"
     },
     },
     {
     {
       "name": "title",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "title"
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 8,950: Line 9,622:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''[[#Library.Id|Library.Id]]'' tvshowid<br />
# ''[[#Library.Id|Library.Id]]'' tvshowid<br />
# [''[[#Optional.String|Optional.String]]'' title]<br />
# [''[[#Optional.String|Optional.String]]'' title = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' playcount = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' studio = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' studio = None]<br />
# [''[[#Optional.String|Optional.String]]'' plot]<br />
# [''[[#Optional.String|Optional.String]]'' plot = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' genre = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' genre = None]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating]<br />
# [''[[#Optional.Number|Optional.Number]]'' rating = None]<br />
# [''[[#Optional.String|Optional.String]]'' mpaa]<br />
# [''[[#Optional.String|Optional.String]]'' mpaa = None]<br />
# [''[[#Optional.String|Optional.String]]'' imdbnumber]<br />
# [''[[#Optional.String|Optional.String]]'' imdbnumber = None]<br />
# [''[[#Optional.String|Optional.String]]'' premiered]<br />
# [''[[#Optional.String|Optional.String]]'' premiered = None]<br />
# [''[[#Optional.String|Optional.String]]'' votes]<br />
# [''[[#Optional.String|Optional.String]]'' votes = None]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed]<br />
# [''[[#Optional.String|Optional.String]]'' lastplayed = None]<br />
# [''[[#Optional.String|Optional.String]]'' originaltitle]<br />
# [''[[#Optional.String|Optional.String]]'' originaltitle = None]<br />
# [''[[#Optional.String|Optional.String]]'' sorttitle]<br />
# [''[[#Optional.String|Optional.String]]'' sorttitle = None]<br />
# [''[[#Optional.String|Optional.String]]'' episodeguide]<br />
# [''[[#Optional.String|Optional.String]]'' episodeguide = None]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail]<br />
# [''[[#Optional.String|Optional.String]]'' thumbnail = None]<br />
# [''[[#Optional.String|Optional.String]]'' fanart]<br />
# [''[[#Optional.String|Optional.String]]'' fanart = None]<br />
# [''mixed: [[#Array.String|Array.String]]'' tag = None]<br />
# [''mixed: null|[[#Array.String|Array.String]]'' tag = None]<br />
# [''mixed: [[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''mixed: null|[[#Media.Artwork.Set|Media.Artwork.Set]]'' art = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' userrating = None]<br />
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
# [''[[#Video.Ratings.Set|Video.Ratings.Set]]'' ratings]<br />
# [''[[#Optional.String|Optional.String]]'' dateadded]<br />
# [''[[#Optional.String|Optional.String]]'' dateadded = None]<br />
# [''[[#Optional.Integer|Optional.Integer]]'' runtime] (Runtime in seconds)<br />
# [''[[#Optional.Integer|Optional.Integer]]'' runtime = None] (Runtime in seconds)<br />
# [''[[#Optional.String|Optional.String]]'' status] (Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended')<br />
# [''[[#Optional.String|Optional.String]]'' status = None] (Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended')<br />
# [''mixed: [[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
# [''mixed: null|[[#Media.UniqueID.Set|Media.UniqueID.Set]]'' uniqueid = None]<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 8,979: Line 9,651:
'''Type:''' ''string''<br />
'''Type:''' ''string''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Update the given tvshow with the given details",
   "description": "Update the given tvshow with the given details",
  "transport": "Response",
  "permission": "UpdateData",
   "params": [
   "params": [
     {
     {
      "$ref": "Library.Id",
       "name": "tvshowid",
       "name": "tvshowid",
      "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     {
     {
       "name": "title",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "title"
     },
     },
     {
     {
       "name": "playcount",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "playcount"
     },
     },
     {
     {
      "default": null,
       "name": "studio",
       "name": "studio",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "plot",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "plot"
     },
     },
     {
     {
      "default": null,
       "name": "genre",
       "name": "genre",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "rating",
       "$ref": "Optional.Number",
       "$ref": "Optional.Number"
      "default": null,
       "name": "rating"
     },
     },
     {
     {
       "name": "mpaa",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "mpaa"
     },
     },
     {
     {
       "name": "imdbnumber",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "imdbnumber"
     },
     },
     {
     {
       "name": "premiered",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "premiered"
     },
     },
     {
     {
       "name": "votes",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "votes"
     },
     },
     {
     {
       "name": "lastplayed",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "lastplayed"
     },
     },
     {
     {
       "name": "originaltitle",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "originaltitle"
     },
     },
     {
     {
       "name": "sorttitle",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "sorttitle"
     },
     },
     {
     {
       "name": "episodeguide",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "episodeguide"
     },
     },
     {
     {
       "name": "thumbnail",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "thumbnail"
     },
     },
     {
     {
       "name": "fanart",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "fanart"
     },
     },
     {
     {
      "default": null,
       "name": "tag",
       "name": "tag",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Array.String",
           "type": "null"
           "required": true
        },
        {
           "$ref": "Array.String"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
      "default": null,
       "name": "art",
       "name": "art",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.Artwork.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.Artwork.Set"
         }
         }
       ],
       ]
      "default": null
     },
     },
     {
     {
       "name": "userrating",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer"
      "default": null,
       "name": "userrating"
     },
     },
     {
     {
       "name": "ratings",
       "$ref": "Video.Ratings.Set",
       "$ref": "Video.Ratings.Set"
       "name": "ratings"
     },
     },
     {
     {
       "name": "dateadded",
       "$ref": "Optional.String",
       "$ref": "Optional.String"
      "default": null,
       "name": "dateadded"
     },
     },
     {
     {
      "name": "runtime",
       "$ref": "Optional.Integer",
       "$ref": "Optional.Integer",
       "description": "Runtime in seconds"
      "default": null,
       "description": "Runtime in seconds",
      "name": "runtime"
     },
     },
     {
     {
      "name": "status",
       "$ref": "Optional.String",
       "$ref": "Optional.String",
       "description": "Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended'"
      "default": null,
       "description": "Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended'",
      "name": "status"
     },
     },
     {
     {
      "default": null,
       "name": "uniqueid",
       "name": "uniqueid",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Media.UniqueID.Set",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Media.UniqueID.Set"
         }
         }
       ],
       ]
      "default": null
     }
     }
   ],
   ],
   "returns": "string"
  "permission": "UpdateData",
   "returns": {
    "type": "string"
  },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,135: Line 9,831:
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''array'' booleans<br />
# ''array[string]'' booleans<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 9,141: Line 9,837:
'''Type:''' ''object (Object containing key-value pairs of the retrieved info booleans)''<br />
'''Type:''' ''object (Object containing key-value pairs of the retrieved info booleans)''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve info booleans about Kodi and the system",
   "description": "Retrieve info booleans about Kodi and the system",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
      "name": "booleans",
      "type": "array",
      "required": true,
       "items": {
       "items": {
         "type": "string"
         "type": "string"
       },
       },
       "minItems": 1
       "minItems": 1,
      "name": "booleans",
      "required": true,
      "type": "array"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
    "description": "Object containing key-value pairs of the retrieved info booleans",
     "additionalProperties": {
     "additionalProperties": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     },
   }
    "description": "Object containing key-value pairs of the retrieved info booleans",
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,173: Line 9,869:
'''Parameters:'''
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''array'' labels (See http://kodi.wiki/view/InfoLabels for a list of possible info labels)<br />
# ''array[string]'' labels (See http://kodi.wiki/view/InfoLabels for a list of possible info labels)<br />
</div>
</div>
'''Returns:'''  
'''Returns:'''  
Line 9,179: Line 9,875:
'''Type:''' ''object (Object containing key-value pairs of the retrieved info labels)''<br />
'''Type:''' ''object (Object containing key-value pairs of the retrieved info labels)''<br />
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "method",
   "description": "Retrieve info labels about Kodi and the system",
   "description": "Retrieve info labels about Kodi and the system",
  "transport": "Response",
  "permission": "ReadData",
   "params": [
   "params": [
     {
     {
       "name": "labels",
       "description": "See http://kodi.wiki/view/InfoLabels for a list of possible info labels",
      "type": "array",
      "required": true,
       "items": {
       "items": {
         "type": "string"
         "type": "string"
       },
       },
       "minItems": 1,
       "minItems": 1,
       "description": "See http://kodi.wiki/view/InfoLabels for a list of possible info labels"
       "name": "labels",
      "required": true,
      "type": "array"
     }
     }
   ],
   ],
  "permission": "ReadData",
   "returns": {
   "returns": {
    "type": "object",
    "description": "Object containing key-value pairs of the retrieved info labels",
     "additionalProperties": {
     "additionalProperties": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     },
   }
    "description": "Object containing key-value pairs of the retrieved info labels",
    "type": "object"
   },
  "type": "method"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,211: Line 9,907:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "unknown",
   "enum": [
   "enums": [
     "unknown",
     "unknown",
     "video",
     "video",
Line 9,221: Line 9,917:
     "executable"
     "executable"
   ],
   ],
   "default": "unknown"
   "id": "Addon.Content",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,230: Line 9,927:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' addonid
* ''string'' addonid
* ''[[#Addon.Types|Addon.Types]]'' type
* [''string'' author]
* [''string'' name]
* [''mixed: boolean|string'' broken]
* [''string'' version]
* [''array'' dependencies]
* [''string'' summary]
* [''mixed: boolean|string'' deprecated]
* [''string'' description]
* [''string'' description]
* [''string'' path]
* [''string'' author]
* [''string'' thumbnail]
* [''string'' disclaimer]
* [''string'' disclaimer]
* [''boolean'' enabled]
* [''array'' extrainfo]
* [''string'' fanart]
* [''string'' fanart]
* [''array'' dependencies]
* [''boolean'' installed]
* [''mixed: '' broken]
* [''string'' name]
* [''array'' extrainfo]
* [''string'' path]
* [''integer'' rating]
* [''integer'' rating]
* [''boolean'' enabled]
* [''string'' summary]
* [''boolean'' installed]
* [''string'' thumbnail]
</div>
* ''[[#Addon.Types|Addon.Types]]'' type
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
* [''string'' version]
{
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "Addon.Details",
   "properties": {
   "properties": {
     "addonid": {
     "addonid": {
      "type": "string",
       "required": true,
      "required": true
    },
    "type": {
      "$ref": "Addon.Types",
       "required": true
    },
    "name": {
      "type": "string"
    },
    "version": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "path": {
       "type": "string"
       "type": "string"
     },
     },
     "author": {
     "author": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "thumbnail": {
     "broken": {
       "type": "string"
       "default": null,
    },
      "type": [
    "disclaimer": {
        {
      "type": "string"
          "type": "boolean"
    },
        },
    "fanart": {
        {
      "type": "string"
          "type": "string"
        }
      ]
     },
     },
     "dependencies": {
     "dependencies": {
      "type": "array",
       "items": {
       "items": {
        "type": "object",
         "properties": {
         "properties": {
           "addonid": {
           "addonid": {
             "type": "string",
            "required": true,
             "required": true
             "type": "string"
          },
          "optional": {
             "required": true,
            "type": "boolean"
           },
           },
           "version": {
           "version": {
            "type": "string",
             "required": true,
             "required": true
             "type": "string"
          },
          "optional": {
             "type": "boolean",
            "required": true
           }
           }
         }
         },
       }
        "type": "object"
       },
      "type": "array"
     },
     },
     "broken": {
     "deprecated": {
      "default": null,
       "type": [
       "type": [
         "boolean",
         {
         "string"
          "type": "boolean"
        },
         {
          "type": "string"
        }
       ]
       ]
    },
    "description": {
      "default": "",
      "type": "string"
    },
    "disclaimer": {
      "default": "",
      "type": "string"
    },
    "enabled": {
      "default": false,
      "type": "boolean"
     },
     },
     "extrainfo": {
     "extrainfo": {
      "type": "array",
       "items": {
       "items": {
        "type": "object",
         "properties": {
         "properties": {
           "key": {
           "key": {
             "type": "string",
             "required": true,
             "required": true
             "type": "string"
           },
           },
           "value": {
           "value": {
             "type": "string",
             "required": true,
             "required": true
             "type": "string"
           }
           }
         }
         },
       }
        "type": "object"
      },
      "type": "array"
    },
    "fanart": {
      "default": "",
       "type": "string"
    },
    "installed": {
      "default": false,
      "type": "boolean"
    },
    "name": {
      "default": "",
      "type": "string"
    },
    "path": {
      "default": "",
      "type": "string"
     },
     },
     "rating": {
     "rating": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "enabled": {
     "summary": {
       "type": "boolean"
      "default": "",
       "type": "string"
    },
    "thumbnail": {
      "default": "",
      "type": "string"
    },
    "type": {
      "$ref": "Addon.Types",
      "required": true
     },
     },
     "installed": {
     "version": {
       "type": "boolean"
      "default": "",
       "type": "string"
     }
     }
   }
   }
Line 9,343: Line 10,070:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Addon.Fields",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "name",
       "name",
       "version",
       "version",
Line 9,363: Line 10,090:
       "rating",
       "rating",
       "enabled",
       "enabled",
       "installed"
       "installed",
     ]
      "deprecated"
     ],
    "type": "string"
   }
   }
}
}
Line 9,371: Line 10,100:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "unknown",
   "enums": [
   "enums": [
     "unknown",
     "unknown",
     "xbmc.player.musicviz",
     "xbmc.player.musicviz",
     "xbmc.gui.skin",
     "xbmc.gui.skin",
     "xbmc.pvrclient",
     "kodi.pvrclient",
     "kodi.inputstream",
     "kodi.inputstream",
     "kodi.gameclient",
     "kodi.gameclient",
Line 9,409: Line 10,139:
     "xbmc.python.module",
     "xbmc.python.module",
     "kodi.game.controller",
     "kodi.game.controller",
    "",
     "xbmc.addon.video",
     "xbmc.addon.video",
     "xbmc.addon.audio",
     "xbmc.addon.audio",
Line 9,416: Line 10,147:
   ],
   ],
   "id": "Addon.Types",
   "id": "Addon.Types",
   "type": "string",
   "type": "string"
  "default": "unknown"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,424: Line 10,154:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "volume",
   "enum": [
   "enums": [
     "volume",
     "volume",
     "muted",
     "muted",
     "name",
     "name",
     "version",
     "version",
    "volume",
     "sorttokens",
     "sorttokens",
     "language"
     "language"
   ]
   ],
  "id": "Application.Property.Name",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,443: Line 10,174:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''integer'' volume]
* [''string'' language]
* [''boolean'' muted]
* [''boolean'' muted]
* [''string'' name]
* [''string'' name]
* [''[[#Array.String|Array.String]]'' sorttokens]
* [''object'' version]
* [''object'' version]
* [''[[#Array.String|Array.String]]'' sorttokens]
* [''integer'' volume]
* [''string'' language]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Application.Property.Value",
   "properties": {
   "properties": {
     "volume": {
     "language": {
       "type": "integer",
       "default": "",
       "minimum": 0,
      "description": "Current language code and region e.g. en_GB",
       "maximum": 100
       "minLength": 1,
       "type": "string"
     },
     },
     "muted": {
     "muted": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "name": {
     "name": {
       "type": "string",
      "default": "",
       "minLength": 1
      "minLength": 1,
       "type": "string"
    },
    "sorttokens": {
      "$ref": "Array.String",
       "description": "Articles ignored during sorting when ignorearticle is enabled."
     },
     },
     "version": {
     "version": {
      "type": "object",
       "properties": {
       "properties": {
         "major": {
         "major": {
          "type": "integer",
           "minimum": 0,
           "minimum": 0,
           "required": true
           "required": true,
          "type": "integer"
         },
         },
         "minor": {
         "minor": {
          "type": "integer",
           "minimum": 0,
           "minimum": 0,
           "required": true
           "required": true,
          "type": "integer"
         },
         },
         "revision": {
         "revision": {
          "default": null,
           "type": [
           "type": [
             "string",
             {
             "integer"
              "type": "string"
            },
             {
              "type": "integer"
            }
           ]
           ]
         },
         },
         "tag": {
         "tag": {
           "type": "string",
           "enums": [
          "enum": [
             "prealpha",
             "prealpha",
             "alpha",
             "alpha",
Line 9,494: Line 10,235:
             "stable"
             "stable"
           ],
           ],
           "required": true
           "required": true,
          "type": "string"
         },
         },
         "tagversion": {
         "tagversion": {
          "default": "",
           "type": "string"
           "type": "string"
         }
         }
       }
       },
      "type": "object"
     },
     },
     "sorttokens": {
     "volume": {
       "$ref": "Array.String",
       "default": 0,
      "description": "Articles ignored during sorting when ignorearticle is enabled."
       "maximum": 100,
    },
       "minimum": 0,
    "language": {
       "type": "integer"
       "type": "string",
       "minLength": 1,
       "description": "Current language code and region e.g. en_GB"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,517: Line 10,259:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "Array.Integer",
   "items": {
   "items": {
     "type": "integer"
     "type": "integer"
   }
   },
  "type": "array"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,528: Line 10,271:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "Array.String",
   "items": {
   "items": {
     "type": "string",
    "minLength": 1,
    "minLength": 1
     "type": "string"
  }
  },
  "type": "array"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,541: Line 10,285:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "album",
   "enum": [
   "enums": [
     "album",
     "album",
     "single"
     "single"
   ],
   ],
   "default": "album"
   "id": "Audio.Album.ReleaseType",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,554: Line 10,299:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "Audio.Artist.Roles",
   "items": {
   "items": {
     "type": "object",
     "additionalProperties": false,
     "description": "The various roles contributed by an artist to one or more songs",
     "description": "The various roles contributed by an artist to one or more songs",
     "properties": {
     "properties": {
      "role": {
        "required": true,
        "type": "string"
      },
       "roleid": {
       "roleid": {
         "$ref": "Library.Id",
         "$ref": "Library.Id",
        "required": true
      },
      "role": {
        "type": "string",
         "required": true
         "required": true
       }
       }
     },
     },
     "additionalProperties": false
     "type": "object"
   }
   },
  "type": "array"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,577: Line 10,323:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "Audio.Contributors",
   "items": {
   "items": {
     "type": "object",
     "additionalProperties": false,
     "description": "The artist and the role they contribute to a song",
     "description": "The artist and the role they contribute to a song",
     "properties": {
     "properties": {
      "artistid": {
        "$ref": "Library.Id",
        "required": true
      },
       "name": {
       "name": {
         "type": "string",
         "required": true,
         "required": true
         "type": "string"
       },
       },
       "role": {
       "role": {
         "type": "string",
         "required": true,
         "required": true
         "type": "string"
       },
       },
       "roleid": {
       "roleid": {
        "$ref": "Library.Id",
        "required": true
      },
      "artistid": {
         "$ref": "Library.Id",
         "$ref": "Library.Id",
         "required": true
         "required": true
       }
       }
     },
     },
     "additionalProperties": false
     "type": "object"
   }
   },
  "type": "array"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,610: Line 10,357:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''integer'' albumduration]
* ''[[#Library.Id|Library.Id]]'' albumid
* ''[[#Library.Id|Library.Id]]'' albumid
* [''string'' albumlabel]
* [''string'' albumstatus]
* [''boolean'' compilation]
* [''string'' description]
* [''string'' description]
* [''[[#Array.String|Array.String]]'' theme]
* [''boolean'' isboxset]
* [''string'' lastplayed]
* [''[[#Array.String|Array.String]]'' mood]
* [''[[#Array.String|Array.String]]'' mood]
* [''[[#Array.String|Array.String]]'' style]
* [''string'' musicbrainzalbumid]
* [''string'' type]
* [''string'' musicbrainzreleasegroupid]
* [''string'' albumlabel]
* [''integer'' playcount]
* [''integer'' playcount]
* [''boolean'' compilation]
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' releasetype = album]
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' releasetype]
* [''string'' musicbrainzreleasegroupid]
* [''string'' musicbrainzalbumid]
* [''[[#Audio.Details.Genres|Audio.Details.Genres]]'' songgenres]
* [''[[#Audio.Details.Genres|Audio.Details.Genres]]'' songgenres]
* [''string'' lastplayed]
* [''[[#Array.Integer|Array.Integer]]'' sourceid]
* [''[[#Array.Integer|Array.Integer]]'' sourceid]
* [''boolean'' isboxset]
* [''[[#Array.String|Array.String]]'' style]
* [''[[#Array.String|Array.String]]'' theme]
* [''integer'' totaldiscs]
* [''integer'' totaldiscs]
* [''string'' type]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Audio.Details.Media",
   "extends": "Audio.Details.Media",
  "id": "Audio.Details.Album",
   "properties": {
   "properties": {
     "albumid": {
    "albumduration": {
      "default": 0,
      "type": "integer"
    },
     "albumid": {
       "$ref": "Library.Id",
       "$ref": "Library.Id",
       "required": true
       "required": true
    },
    "albumlabel": {
      "default": "",
      "type": "string"
    },
    "albumstatus": {
      "default": "",
      "type": "string"
    },
    "compilation": {
      "default": false,
      "type": "boolean"
     },
     },
     "description": {
     "description": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "theme": {
     "isboxset": {
       "$ref": "Array.String"
       "default": false,
      "type": "boolean"
    },
    "lastplayed": {
      "default": "",
      "type": "string"
     },
     },
     "mood": {
     "mood": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "style": {
     "musicbrainzalbumid": {
       "$ref": "Array.String"
       "default": "",
    },
    "type": {
       "type": "string"
       "type": "string"
     },
     },
     "albumlabel": {
     "musicbrainzreleasegroupid": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "playcount": {
     "playcount": {
      "default": 0,
       "type": "integer"
       "type": "integer"
    },
    "compilation": {
      "type": "boolean"
     },
     },
     "releasetype": {
     "releasetype": {
       "$ref": "Audio.Album.ReleaseType"
       "$ref": "Audio.Album.ReleaseType",
    },
       "default": "album"
    "musicbrainzreleasegroupid": {
      "type": "string"
    },
    "musicbrainzalbumid": {
       "type": "string"
     },
     },
     "songgenres": {
     "songgenres": {
       "$ref": "Audio.Details.Genres"
       "$ref": "Audio.Details.Genres"
    },
    "lastplayed": {
      "type": "string"
     },
     },
     "sourceid": {
     "sourceid": {
       "$ref": "Array.Integer"
       "$ref": "Array.Integer"
     },
     },
     "isboxset": {
     "style": {
       "type": "boolean"
       "$ref": "Array.String"
    },
    "theme": {
      "$ref": "Array.String"
     },
     },
     "totaldiscs": {
     "totaldiscs": {
      "default": 0,
       "type": "integer"
       "type": "integer"
    },
    "type": {
      "default": "",
      "type": "string"
     }
     }
   }
   }
Line 9,692: Line 10,461:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' artist
* ''[[#Library.Id|Library.Id]]'' artistid
* ''[[#Library.Id|Library.Id]]'' artistid
* ''string'' artist
* [''[[#Array.String|Array.String]]'' instrument]
* [''[[#Array.String|Array.String]]'' style]
* [''[[#Array.String|Array.String]]'' mood]
* [''string'' born]
* [''string'' born]
* [''string'' formed]
* [''boolean'' compilationartist]
* [''string'' description]
* [''string'' description]
* [''string'' died]
* [''string'' died]
* [''string'' disambiguation]
* [''string'' disbanded]
* [''string'' disbanded]
* [''[[#Array.String|Array.String]]'' yearsactive]
* [''string'' formed]
* [''boolean'' compilationartist]
* [''string'' gender]
* [''[[#Array.String|Array.String]]'' instrument]
* [''boolean'' isalbumartist]
* [''[[#Array.String|Array.String]]'' mood]
* [''[[#Array.String|Array.String]]'' musicbrainzartistid]
* [''[[#Array.String|Array.String]]'' musicbrainzartistid]
* [''[[#Audio.Artist.Roles|Audio.Artist.Roles]]'' roles]
* [''[[#Audio.Artist.Roles|Audio.Artist.Roles]]'' roles]
* [''[[#Audio.Details.Genres|Audio.Details.Genres]]'' songgenres]
* [''[[#Audio.Details.Genres|Audio.Details.Genres]]'' songgenres]
* [''boolean'' isalbumartist]
* [''string'' sortname]
* [''string'' sortname]
* [''[[#Array.Integer|Array.Integer]]'' sourceid]
* [''[[#Array.String|Array.String]]'' style]
* [''string'' type]
* [''string'' type]
* [''string'' gender]
* [''[[#Array.String|Array.String]]'' yearsactive]
* [''string'' disambiguation]
* [''[[#Array.Integer|Array.Integer]]'' sourceid]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Audio.Details.Base",
   "extends": "Audio.Details.Base",
  "id": "Audio.Details.Artist",
   "properties": {
   "properties": {
    "artist": {
      "required": true,
      "type": "string"
    },
     "artistid": {
     "artistid": {
       "$ref": "Library.Id",
       "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     "artist": {
     "born": {
       "type": "string",
       "default": "",
       "required": true
       "type": "string"
     },
     },
     "instrument": {
     "compilationartist": {
       "$ref": "Array.String"
       "default": false,
      "type": "boolean"
     },
     },
     "style": {
     "description": {
       "$ref": "Array.String"
       "default": "",
      "type": "string"
     },
     },
     "mood": {
     "died": {
       "$ref": "Array.String"
       "default": "",
    },
    "born": {
       "type": "string"
       "type": "string"
     },
     },
     "formed": {
     "disambiguation": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "description": {
     "disbanded": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "died": {
     "formed": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "disbanded": {
     "gender": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "yearsactive": {
     "instrument": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "compilationartist": {
     "isalbumartist": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
    },
    "mood": {
      "$ref": "Array.String"
     },
     },
     "musicbrainzartistid": {
     "musicbrainzartistid": {
Line 9,764: Line 10,546:
     "songgenres": {
     "songgenres": {
       "$ref": "Audio.Details.Genres"
       "$ref": "Audio.Details.Genres"
    },
    "isalbumartist": {
      "type": "boolean"
     },
     },
     "sortname": {
     "sortname": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "type": {
     "sourceid": {
       "type": "string"
       "$ref": "Array.Integer"
     },
     },
     "gender": {
     "style": {
       "type": "string"
       "$ref": "Array.String"
     },
     },
     "disambiguation": {
     "type": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "sourceid": {
     "yearsactive": {
       "$ref": "Array.Integer"
       "$ref": "Array.String"
     }
     }
   }
   }
Line 9,791: Line 10,572:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Media.Artwork|Media.Artwork]]'' art]
* [''string'' dateadded]
* [''[[#Array.String|Array.String]]'' genre]
* [''[[#Array.String|Array.String]]'' genre]
* [''string'' dateadded]
* [''[[#Media.Artwork|Media.Artwork]]'' art]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Media.Details.Base",
   "extends": "Media.Details.Base",
  "id": "Audio.Details.Base",
   "properties": {
   "properties": {
     "genre": {
     "art": {
       "$ref": "Array.String"
       "$ref": "Media.Artwork"
     },
     },
     "dateadded": {
     "dateadded": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "art": {
     "genre": {
       "$ref": "Media.Artwork"
       "$ref": "Array.String"
     }
     }
   }
   }
Line 9,814: Line 10,597:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "Audio.Details.Genres",
   "items": {
   "items": {
    "type": "object",
     "properties": {
     "properties": {
       "genreid": {
       "genreid": {
Line 9,825: Line 10,607:
       },
       },
       "title": {
       "title": {
        "default": "",
         "type": "string"
         "type": "string"
       }
       }
     }
     },
   }
    "type": "object"
   },
  "type": "array"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 9,836: Line 10,621:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''string'' title]
* [''[[#Array.String|Array.String]]'' artist]
* [''[[#Array.String|Array.String]]'' artist]
* [''integer'' year]
* [''number'' rating]
* [''[[#Array.String|Array.String]]'' musicbrainzalbumartistid]
* [''[[#Array.Integer|Array.Integer]]'' artistid]
* [''[[#Array.Integer|Array.Integer]]'' artistid]
* [''string'' displayartist]
* [''string'' displayartist]
* [''[[#Array.String|Array.String]]'' musicbrainzalbumartistid]
* [''string'' originaldate]
* [''number'' rating]
* [''string'' releasedate]
* [''string'' sortartist]
* [''string'' title]
* [''integer'' userrating]
* [''integer'' votes]
* [''integer'' votes]
* [''integer'' userrating]
* [''integer'' year]
* [''string'' sortartist]
* [''string'' releasedate]
* [''string'' originaldate]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Audio.Details.Base",
   "extends": "Audio.Details.Base",
  "id": "Audio.Details.Media",
   "properties": {
   "properties": {
    "title": {
      "type": "string"
    },
     "artist": {
     "artist": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "year": {
     "artistid": {
       "type": "integer"
       "$ref": "Array.Integer"
     },
     },
     "rating": {
     "displayartist": {
       "type": "number"
      "default": "",
       "type": "string"
     },
     },
     "musicbrainzalbumartistid": {
     "musicbrainzalbumartistid": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "artistid": {
     "originaldate": {
       "$ref": "Array.Integer"
       "default": "",
    },
    "displayartist": {
       "type": "string"
       "type": "string"
     },
     },
     "votes": {
     "rating": {
       "type": "integer"
      "default": 0.0,
       "type": "number"
     },
     },
     "userrating": {
     "releasedate": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "sortartist": {
     "sortartist": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "releasedate": {
     "title": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "originaldate": {
     "userrating": {
       "type": "string"
      "default": 0,
      "type": "integer"
    },
    "votes": {
      "default": 0,
      "type": "integer"
    },
    "year": {
      "default": 0,
       "type": "integer"
     }
     }
   }
   }
Line 9,900: Line 10,695:
* [''string'' title]
* [''string'' title]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "Audio.Details.Role",
   "properties": {
   "properties": {
     "roleid": {
     "roleid": {
Line 9,909: Line 10,705:
     },
     },
     "title": {
     "title": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     }
Line 9,919: Line 10,716:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' songid
* [''string'' album]
* [''string'' file]
* [''[[#Array.String|Array.String]]'' albumartist]
* [''[[#Array.String|Array.String]]'' albumartist]
* [''string'' album]
* [''[[#Array.Integer|Array.Integer]]'' albumartistid]
* [''integer'' track]
* [''[[#Library.Id|Library.Id]]'' albumid = -1]
* [''integer'' duration]
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' albumreleasetype = album]
* [''any'' bitrate]
* [''any'' bpm]
* [''any'' channels]
* [''string'' comment]
* [''string'' comment]
* [''string'' lyrics]
* [''[[#Audio.Contributors|Audio.Contributors]]'' contributors]
* [''integer'' playcount]
* [''string'' musicbrainztrackid]
* [''[[#Array.String|Array.String]]'' musicbrainzartistid]
* [''[[#Library.Id|Library.Id]]'' albumid]
* [''string'' lastplayed]
* [''integer'' disc]
* [''integer'' disc]
* [''[[#Array.Integer|Array.Integer]]'' albumartistid]
* [''string'' disctitle]
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' albumreleasetype]
* [''string'' mood]
* [''[[#Audio.Contributors|Audio.Contributors]]'' contributors]
* [''string'' displaycomposer]
* [''string'' displaycomposer]
* [''string'' displayconductor]
* [''string'' displayconductor]
* [''string'' displaylyricist]
* [''string'' displayorchestra]
* [''string'' displayorchestra]
* [''string'' displaylyricist]
* [''integer'' duration]
* [''string'' file]
* [''[[#Array.Integer|Array.Integer]]'' genreid]
* [''[[#Array.Integer|Array.Integer]]'' genreid]
* [''string'' lastplayed]
* [''string'' lyrics]
* [''string'' mood]
* [''[[#Array.String|Array.String]]'' musicbrainzartistid]
* [''string'' musicbrainztrackid]
* [''integer'' playcount]
* [''any'' samplerate]
* ''[[#Library.Id|Library.Id]]'' songid
* [''[[#Array.Integer|Array.Integer]]'' sourceid]
* [''[[#Array.Integer|Array.Integer]]'' sourceid]
* [''string'' disctitle]
* [''integer'' track]
* [''Integer'' bpm]
* [''Integer'' samplerate]
* [''Integer'' bitrate]
* [''Integer'' channels]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Audio.Details.Media",
   "extends": "Audio.Details.Media",
  "id": "Audio.Details.Song",
   "properties": {
   "properties": {
     "songid": {
     "album": {
       "$ref": "Library.Id",
       "default": "",
      "required": true
    },
    "file": {
       "type": "string"
       "type": "string"
     },
     },
Line 9,963: Line 10,758:
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "album": {
     "albumartistid": {
       "type": "string"
       "$ref": "Array.Integer"
     },
     },
     "track": {
     "albumid": {
       "type": "integer"
       "$ref": "Library.Id",
      "default": -1
     },
     },
     "duration": {
     "albumreleasetype": {
       "type": "integer"
       "$ref": "Audio.Album.ReleaseType",
      "default": "album"
     },
     },
     "comment": {
     "bitrate": {
       "type": "string"
      "default": null,
       "type": "any"
     },
     },
     "lyrics": {
     "bpm": {
       "type": "string"
      "default": null,
       "type": "any"
     },
     },
     "playcount": {
     "channels": {
       "type": "integer"
      "default": null,
       "type": "any"
     },
     },
     "musicbrainztrackid": {
     "comment": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "musicbrainzartistid": {
     "contributors": {
       "$ref": "Array.String"
       "$ref": "Audio.Contributors"
    },
    "albumid": {
      "$ref": "Library.Id"
    },
    "lastplayed": {
      "type": "string"
     },
     },
     "disc": {
     "disc": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "albumartistid": {
     "disctitle": {
       "$ref": "Array.Integer"
       "default": "",
    },
    "albumreleasetype": {
      "$ref": "Audio.Album.ReleaseType"
    },
    "mood": {
       "type": "string"
       "type": "string"
    },
    "contributors": {
      "$ref": "Audio.Contributors"
     },
     },
     "displaycomposer": {
     "displaycomposer": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "displayconductor": {
     "displayconductor": {
      "default": "",
      "type": "string"
    },
    "displaylyricist": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "displayorchestra": {
     "displayorchestra": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "displaylyricist": {
     "duration": {
      "default": 0,
      "type": "integer"
    },
    "file": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
Line 10,023: Line 10,823:
       "$ref": "Array.Integer"
       "$ref": "Array.Integer"
     },
     },
     "sourceid": {
     "lastplayed": {
       "$ref": "Array.Integer"
      "default": "",
      "type": "string"
    },
    "lyrics": {
      "default": "",
      "type": "string"
    },
    "mood": {
      "default": "",
      "type": "string"
    },
    "musicbrainzartistid": {
       "$ref": "Array.String"
     },
     },
     "disctitle": {
     "musicbrainztrackid": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "bpm": {
     "playcount": {
       "type": "Integer"
      "default": 0,
       "type": "integer"
     },
     },
     "samplerate": {
     "samplerate": {
       "type": "Integer"
      "default": null,
       "type": "any"
     },
     },
     "bitrate": {
     "songid": {
       "type": "Integer"
       "$ref": "Library.Id",
      "required": true
    },
    "sourceid": {
      "$ref": "Array.Integer"
     },
     },
     "channels": {
     "track": {
       "type": "Integer"
      "default": 0,
       "type": "integer"
     }
     }
   }
   }
Line 10,047: Line 10,867:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Audio.Fields.Album",
   "items": {
   "items": {
    "type": "string",
     "description": "Requesting the songgenres, artistid and/or sourceid fields will result in increased response times",
     "description": "Requesting the songgenres, artistid and/or sourceid fields will result in increased response times",
     "enum": [
     "enums": [
       "title",
       "title",
       "description",
       "description",
Line 10,086: Line 10,906:
       "totaldiscs",
       "totaldiscs",
       "releasedate",
       "releasedate",
       "originaldate"
       "originaldate",
     ]
      "albumstatus",
      "datemodified",
      "datenew",
      "albumduration"
     ],
    "type": "string"
   }
   }
}
}
Line 10,094: Line 10,919:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Audio.Fields.Artist",
   "items": {
   "items": {
    "type": "string",
     "description": "Requesting the (song)genreid/genre, roleid/role or sourceid fields will result in increased response times",
     "description": "Requesting the (song)genreid/genre, roleid/role or sourceid fields will result in increased response times",
     "enum": [
     "enums": [
       "instrument",
       "instrument",
       "style",
       "style",
Line 10,124: Line 10,949:
       "disambiguation",
       "disambiguation",
       "art",
       "art",
       "sourceid"
       "sourceid",
     ]
      "datemodified",
      "datenew"
     ],
    "type": "string"
   }
   }
}
}
Line 10,132: Line 10,960:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Audio.Fields.Role",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title"
       "title"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 10,146: Line 10,975:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Audio.Fields.Song",
   "items": {
   "items": {
    "type": "string",
     "description": "Requesting the genreid, artistid, albumartistid and/or sourceid fields will result in increased response times",
     "description": "Requesting the genreid, artistid, albumartistid and/or sourceid fields will result in increased response times",
     "enum": [
     "enums": [
       "title",
       "title",
       "artist",
       "artist",
Line 10,198: Line 11,027:
       "samplerate",
       "samplerate",
       "bitrate",
       "bitrate",
       "channels"
       "channels",
     ]
      "datemodified",
      "datenew"
     ],
    "type": "string"
   }
   }
}
}
Line 10,206: Line 11,038:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "missingartistid",
   "enum": [
   "enums": [
     "missingartistid",
     "missingartistid",
     "librarylastupdated"
     "librarylastupdated",
   ]
    "librarylastcleaned",
    "artistlinksupdated",
    "songslastadded",
    "albumslastadded",
    "artistslastadded",
    "genreslastadded",
    "songsmodified",
    "albumsmodified",
    "artistsmodified"
   ],
  "id": "Audio.Property.Name",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,220: Line 11,063:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Library.Id|Library.Id]]'' missingartistid]
* [''string'' albumslastadded]
* [''string'' albumsmodified]
* [''string'' artistlinksupdated]
* [''string'' artistslastadded]
* [''string'' artistsmodified]
* [''string'' genreslastadded]
* [''string'' librarylastcleaned]
* [''string'' librarylastupdated]
* [''string'' librarylastupdated]
* [''[[#Library.Id|Library.Id]]'' missingartistid = -1]
* [''string'' songslastadded]
* [''string'' songsmodified]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Audio.Property.Value",
   "properties": {
   "properties": {
     "missingartistid": {
     "albumslastadded": {
       "$ref": "Library.Id"
       "default": "",
      "type": "string"
    },
    "albumsmodified": {
      "default": "",
      "type": "string"
     },
     },
     "librarylastupdated": {
     "artistlinksupdated": {
      "default": "",
       "type": "string"
       "type": "string"
     }
    },
   }
    "artistslastadded": {
}
      "default": "",
</syntaxhighlight>}}
      "type": "string"
=== Configuration ===
    },
    "artistsmodified": {
      "default": "",
      "type": "string"
    },
    "genreslastadded": {
      "default": "",
      "type": "string"
    },
    "librarylastcleaned": {
      "default": "",
      "type": "string"
    },
    "librarylastupdated": {
      "default": "",
      "type": "string"
    },
    "missingartistid": {
      "$ref": "Library.Id",
      "default": -1
    },
    "songslastadded": {
      "default": "",
      "type": "string"
    },
    "songsmodified": {
      "default": "",
      "type": "string"
     }
   },
  "type": "object"
}
</syntaxhighlight>}}
=== Configuration ===
==== Configuration ====
==== Configuration ====
'''Type:''' ''object''
'''Type:''' ''object''
Line 10,244: Line 11,135:
* ''[[#Configuration.Notifications|Configuration.Notifications]]'' notifications
* ''[[#Configuration.Notifications|Configuration.Notifications]]'' notifications
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Configuration",
  "required": true,
   "properties": {
   "properties": {
     "notifications": {
     "notifications": {
Line 10,253: Line 11,143:
       "required": true
       "required": true
     }
     }
   }
   },
  "required": true,
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,261: Line 11,153:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''boolean'' Player
* ''boolean'' application
* ''boolean'' Playlist
* ''boolean'' audiolibrary
* ''boolean'' GUI
* ''boolean'' gui
* ''boolean'' System
* ''boolean'' input
* ''boolean'' VideoLibrary
* ''boolean'' other
* ''boolean'' AudioLibrary
* ''boolean'' player
* ''boolean'' Application
* ''boolean'' playlist
* ''boolean'' Input
* ''boolean'' pvr
* ''boolean'' PVR
* ''boolean'' system
* ''boolean'' Other
* ''boolean'' videolibrary
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": false,
  "id": "Configuration.Notifications",
   "properties": {
   "properties": {
     "Player": {
     "application": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "Playlist": {
     "audiolibrary": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "GUI": {
     "gui": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "System": {
     "input": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "VideoLibrary": {
     "other": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "AudioLibrary": {
     "player": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "Application": {
     "playlist": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "Input": {
     "pvr": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "PVR": {
     "system": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "Other": {
     "videolibrary": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     }
     }
   },
   },
   "additionalProperties": false
   "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,326: Line 11,219:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''string'' path]
* [''string'' thumbnail]
* ''string'' title
* ''string'' title
* ''[[#Favourite.Type|Favourite.Type]]'' type
* ''[[#Favourite.Type|Favourite.Type]]'' type
* [''string'' path]
* [''string'' window]
* [''string'' window]
* [''string'' windowparameter]
* [''string'' windowparameter]
* [''string'' thumbnail]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": false,
  "id": "Favourite.Details.Favourite",
   "properties": {
   "properties": {
     "title": {
     "path": {
       "type": "string",
      "default": "",
       "required": true
      "type": "string"
    },
    "thumbnail": {
      "default": "",
       "type": "string"
    },
    "title": {
       "required": true,
      "type": "string"
     },
     },
     "type": {
     "type": {
       "$ref": "Favourite.Type",
       "$ref": "Favourite.Type",
       "required": true
       "required": true
    },
    "path": {
      "type": "string"
     },
     },
     "window": {
     "window": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "windowparameter": {
     "windowparameter": {
       "type": "string"
       "default": "",
    },
    "thumbnail": {
       "type": "string"
       "type": "string"
     }
     }
   },
   },
   "additionalProperties": false
   "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,364: Line 11,262:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Favourite.Fields.Favourite",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "window",
       "window",
       "windowparameter",
       "windowparameter",
       "thumbnail",
       "thumbnail",
       "path"
       "path"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 10,381: Line 11,280:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "media",
   "enum": [
   "enums": [
     "media",
     "media",
     "window",
     "window",
Line 10,390: Line 11,289:
     "androidapp",
     "androidapp",
     "unknown"
     "unknown"
   ]
   ],
  "id": "Favourite.Type",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,397: Line 11,298:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "video",
   "enum": [
   "enums": [
     "video",
     "video",
     "music",
     "music",
Line 10,406: Line 11,307:
     "files",
     "files",
     "programs"
     "programs"
   ]
   ],
  "id": "Files.Media",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,413: Line 11,316:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "currentwindow",
   "enum": [
   "enums": [
     "currentwindow",
     "currentwindow",
     "currentcontrol",
     "currentcontrol",
Line 10,422: Line 11,325:
     "fullscreen",
     "fullscreen",
     "stereoscopicmode"
     "stereoscopicmode"
   ]
   ],
  "id": "GUI.Property.Name",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,430: Line 11,335:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''object'' currentcontrol]
* [''object'' currentwindow]
* [''object'' currentwindow]
* [''object'' currentcontrol]
* [''boolean'' fullscreen]
* [''object'' skin]
* [''object'' skin]
* [''boolean'' fullscreen]
* [''[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]'' stereoscopicmode]
* [''[[#GUI.Stereoscopy.Mode|GUI.Stereoscopy.Mode]]'' stereoscopicmode]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "GUI.Property.Value",
   "properties": {
   "properties": {
    "currentcontrol": {
      "properties": {
        "label": {
          "required": true,
          "type": "string"
        }
      },
      "type": "object"
    },
     "currentwindow": {
     "currentwindow": {
      "type": "object",
       "properties": {
       "properties": {
         "id": {
         "id": {
           "type": "integer",
           "required": true,
           "required": true
           "type": "integer"
         },
         },
         "label": {
         "label": {
           "type": "string",
           "required": true,
           "required": true
           "type": "string"
         }
         }
       }
       },
      "type": "object"
     },
     },
     "currentcontrol": {
     "fullscreen": {
       "type": "object",
       "default": false,
       "properties": {
       "type": "boolean"
        "label": {
          "type": "string",
          "required": true
        }
      }
     },
     },
     "skin": {
     "skin": {
      "type": "object",
       "properties": {
       "properties": {
         "id": {
         "id": {
           "type": "string",
           "minLength": 1,
           "required": true,
           "required": true,
           "minLength": 1
           "type": "string"
         },
         },
         "name": {
         "name": {
          "default": "",
           "type": "string"
           "type": "string"
         }
         }
       }
       },
    },
       "type": "object"
    "fullscreen": {
       "type": "boolean"
     },
     },
     "stereoscopicmode": {
     "stereoscopicmode": {
       "$ref": "GUI.Stereoscopy.Mode"
       "$ref": "GUI.Stereoscopy.Mode"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,489: Line 11,397:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' label
* ''string'' mode
* ''string'' mode
* ''string'' label
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "GUI.Stereoscopy.Mode",
   "properties": {
   "properties": {
    "label": {
      "required": true,
      "type": "string"
    },
     "mode": {
     "mode": {
       "type": "string",
       "enums": [
      "required": true,
      "enum": [
         "off",
         "off",
         "split_vertical",
         "split_vertical",
Line 10,509: Line 11,419:
         "anaglyph_yellow_blue",
         "anaglyph_yellow_blue",
         "monoscopic"
         "monoscopic"
       ]
       ],
    },
      "required": true,
    "label": {
       "type": "string"
       "type": "string",
      "required": true
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,521: Line 11,430:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "addon",
   "enums": [
   "enums": [
     "addon",
     "addon",
Line 10,653: Line 11,563:
   ],
   ],
   "id": "GUI.Window",
   "id": "GUI.Window",
   "type": "string",
   "type": "string"
  "default": "home"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,661: Line 11,570:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "increment",
   "enum": [
   "enums": [
     "increment",
     "increment",
     "decrement"
     "decrement"
   ]
   ],
  "id": "Global.IncrementDecrement",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,673: Line 11,584:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "",
   "minLength": 1
  "id": "Global.String.NotEmpty",
   "minLength": 1,
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,685: Line 11,598:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''integer'' hours
* ''integer'' hours
* ''integer'' milliseconds
* ''integer'' minutes
* ''integer'' minutes
* ''integer'' seconds
* ''integer'' seconds
* ''integer'' milliseconds
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": false,
  "description": "A duration.",
  "id": "Global.Time",
   "properties": {
   "properties": {
     "hours": {
     "hours": {
       "type": "integer",
       "minimum": 0,
       "required": true,
       "required": true,
      "type": "integer"
    },
    "milliseconds": {
      "maximum": 999,
       "minimum": 0,
       "minimum": 0,
       "maximum": 23
       "required": true,
      "type": "integer"
     },
     },
     "minutes": {
     "minutes": {
       "type": "integer",
       "maximum": 59,
      "minimum": 0,
       "required": true,
       "required": true,
       "minimum": 0,
       "type": "integer"
      "maximum": 59
     },
     },
     "seconds": {
     "seconds": {
       "type": "integer",
       "maximum": 59,
      "required": true,
       "minimum": 0,
       "minimum": 0,
      "maximum": 59
    },
    "milliseconds": {
      "type": "integer",
       "required": true,
       "required": true,
       "minimum": 0,
       "type": "integer"
      "maximum": 999
     }
     }
   },
   },
   "additionalProperties": false
   "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,724: Line 11,638:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": null,
  "id": "Global.Toggle",
   "type": [
   "type": [
     {
     {
       "type": "boolean",
       "type": "boolean"
      "required": true
     },
     },
     {
     {
       "type": "string",
       "enums": [
      "enum": [
         "toggle"
         "toggle"
       ],
       ],
       "required": true
       "type": "string"
     }
     }
   ]
   ]
Line 10,744: Line 11,658:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "monday",
   "enum": [
   "enums": [
     "monday",
     "monday",
     "tuesday",
     "tuesday",
Line 10,755: Line 11,669:
     "saturday",
     "saturday",
     "sunday"
     "sunday"
   ]
   ],
  "id": "Global.Weekday",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 10,762: Line 11,678:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "analogfastforward",
   "enums": [
   "enums": [
     "analogfastforward",
     "analogfastforward",
Line 10,800: Line 11,717:
     "cursorright",
     "cursorright",
     "cyclesubtitle",
     "cyclesubtitle",
    "cycletonemapmethod",
     "decreasepar",
     "decreasepar",
     "decreaserating",
     "decreaserating",
Line 10,823: Line 11,741:
     "green",
     "green",
     "guiprofile",
     "guiprofile",
    "hdrtoggle",
     "highlight",
     "highlight",
     "increasepar",
     "increasepar",
Line 10,880: Line 11,799:
     "play",
     "play",
     "playerdebug",
     "playerdebug",
    "playerdebugvideo",
     "playerprocessinfo",
     "playerprocessinfo",
     "playerprogramselect",
     "playerprogramselect",
Line 10,977: Line 11,897:
   ],
   ],
   "id": "Input.Action",
   "id": "Input.Action",
   "type": "string",
   "type": "string"
  "default": "left"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
=== Item ===
=== Item ===
==== Item.CustomProperties ====
'''Type:''' ''object''
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "additionalProperties": {
    "$ref": "Global.String.NotEmpty",
    "default": ""
  },
  "id": "Item.CustomProperties",
  "type": "object"
}
</syntaxhighlight>}}
==== Item.Details.Base ====
==== Item.Details.Base ====
'''Type:''' ''object''
'''Type:''' ''object''
Line 10,989: Line 11,921:
* ''string'' label
* ''string'' label
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Item.Details.Base",
   "properties": {
   "properties": {
     "label": {
     "label": {
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,003: Line 11,936:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "Item.Fields.Base",
  "uniqueItems": true,
   "items": {
   "items": {
     "type": "string"
     "type": "string"
   }
   },
  "type": "array",
  "uniqueItems": true
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,019: Line 11,953:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' genreid
* ''[[#Library.Id|Library.Id]]'' genreid
* [''[[#Array.Integer|Array.Integer]]'' sourceid]
* [''string'' thumbnail]
* [''string'' title]
* [''string'' title]
* [''string'' thumbnail]
* [''[[#Array.Integer|Array.Integer]]'' sourceid]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "Library.Details.Genre",
   "properties": {
   "properties": {
     "genreid": {
     "genreid": {
Line 11,031: Line 11,966:
       "required": true
       "required": true
     },
     },
     "title": {
     "sourceid": {
       "type": "string"
       "$ref": "Array.Integer",
      "description": "The ids of sources with songs of the genre"
     },
     },
     "thumbnail": {
     "thumbnail": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "sourceid": {
     "title": {
       "$ref": "Array.Integer",
       "default": "",
       "description": "The ids of sources with songs of the genre"
       "type": "string"
     }
     }
   }
   }
Line 11,049: Line 11,986:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' sourceid
* ''string'' file
* ''string'' file
* [''[[#Array.String|Array.String]]'' paths]
* [''[[#Array.String|Array.String]]'' paths]
* ''[[#Library.Id|Library.Id]]'' sourceid
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "Library.Details.Source",
   "properties": {
   "properties": {
    "sourceid": {
      "$ref": "Library.Id",
      "required": true
    },
     "file": {
     "file": {
      "type": "string",
       "description": "The url encoded multipath string combining all paths of the source ",
       "description": "The url encoded multipath string combining all paths of the source ",
       "required": true
       "required": true,
      "type": "string"
     },
     },
     "paths": {
     "paths": {
       "$ref": "Array.String",
       "$ref": "Array.String",
       "description": "The individual paths of the media source"
       "description": "The individual paths of the media source"
    },
    "sourceid": {
      "$ref": "Library.Id",
      "required": true
     }
     }
   }
   }
Line 11,081: Line 12,019:
* [''string'' title]
* [''string'' title]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "Library.Details.Tag",
   "properties": {
   "properties": {
     "tagid": {
     "tagid": {
Line 11,090: Line 12,029:
     },
     },
     "title": {
     "title": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     }
Line 11,098: Line 12,038:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Library.Fields.Genre",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title",
       "title",
       "thumbnail",
       "thumbnail",
       "sourceid"
       "sourceid"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 11,114: Line 12,055:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Library.Fields.Source",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "file",
       "file",
       "paths"
       "paths"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 11,129: Line 12,071:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Library.Fields.Tag",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title"
       "title"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 11,143: Line 12,086:
'''Type:''' ''integer''
'''Type:''' ''integer''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "integer",
   "default": -1,
   "default": -1,
   "minimum": 1
  "id": "Library.Id",
   "minimum": 1,
  "type": "integer"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,154: Line 12,098:
'''Type:''' ''integer''
'''Type:''' ''integer''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "integer",
   "default": -1,
   "default": -1,
   "minimum": 0
  "id": "List.Amount",
   "minimum": 0,
  "type": "integer"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,164: Line 12,109:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "List.Fields.All",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title",
       "title",
       "artist",
       "artist",
Line 11,240: Line 12,185:
       "locked",
       "locked",
       "channelnumber",
       "channelnumber",
      "subchannelnumber",
       "starttime",
       "starttime",
       "endtime",
       "endtime",
Line 11,253: Line 12,199:
       "displaylyricist",
       "displaylyricist",
       "userrating",
       "userrating",
      "votes",
       "sortartist",
       "sortartist",
       "musicbrainzreleasegroupid",
       "musicbrainzreleasegroupid",
Line 11,266: Line 12,211:
       "bitrate",
       "bitrate",
       "samplerate",
       "samplerate",
       "channels"
       "channels",
     ]
      "albumstatus",
      "datemodified",
      "datenew",
      "customproperties",
      "albumduration"
     ],
    "type": "string"
   }
   }
}
}
Line 11,274: Line 12,225:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "List.Fields.Files",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title",
       "title",
       "artist",
       "artist",
Line 11,360: Line 12,311:
       "bitrate",
       "bitrate",
       "samplerate",
       "samplerate",
       "channels"
       "channels",
     ]
      "datemodified",
      "datenew",
      "customproperties",
      "albumduration"
     ],
    "type": "string"
   }
   }
}
}
Line 11,368: Line 12,324:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "List.Filter.Albums",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "and": {
         "and": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Albums"
             "$ref": "List.Filter.Albums"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "or": {
         "or": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Albums"
             "$ref": "List.Filter.Albums"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
Line 11,406: Line 12,363:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "List.Filter.Artists",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "and": {
         "and": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Artists"
             "$ref": "List.Filter.Artists"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "or": {
         "or": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Artists"
             "$ref": "List.Filter.Artists"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
Line 11,444: Line 12,402:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "List.Filter.Episodes",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "and": {
         "and": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Episodes"
             "$ref": "List.Filter.Episodes"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "or": {
         "or": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Episodes"
             "$ref": "List.Filter.Episodes"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
Line 11,482: Line 12,441:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "genre",
   "enums": [
   "enums": [
     "genre",
     "genre",
Line 11,494: Line 12,454:
     "albumartist",
     "albumartist",
     "year",
     "year",
    "originalyear",
    "albumduration",
     "review",
     "review",
     "themes",
     "themes",
Line 11,506: Line 12,468:
     "lastplayed",
     "lastplayed",
     "path",
     "path",
    "albumstatus",
    "dateadded",
    "datemodified",
    "datenew",
     "playlist",
     "playlist",
     "virtualfolder"
     "virtualfolder"
   ],
   ],
   "id": "List.Filter.Fields.Albums",
   "id": "List.Filter.Fields.Albums",
   "type": "string",
   "type": "string"
  "default": "genre"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,517: Line 12,482:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "artist",
   "enums": [
   "enums": [
     "artist",
     "artist",
Line 11,536: Line 12,502:
     "role",
     "role",
     "path",
     "path",
    "dateadded",
    "datemodified",
    "datenew",
     "playlist",
     "playlist",
     "virtualfolder"
     "virtualfolder"
   ],
   ],
   "id": "List.Filter.Fields.Artists",
   "id": "List.Filter.Fields.Artists",
   "type": "string",
   "type": "string"
  "default": "artist"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,547: Line 12,515:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "title",
   "enums": [
   "enums": [
     "title",
     "title",
Line 11,588: Line 12,557:
   ],
   ],
   "id": "List.Filter.Fields.Episodes",
   "id": "List.Filter.Fields.Episodes",
   "type": "string",
   "type": "string"
  "default": "title"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,595: Line 12,563:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "title",
   "enums": [
   "enums": [
     "title",
     "title",
Line 11,638: Line 12,607:
   ],
   ],
   "id": "List.Filter.Fields.Movies",
   "id": "List.Filter.Fields.Movies",
   "type": "string",
   "type": "string"
  "default": "title"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,645: Line 12,613:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "title",
   "enums": [
   "enums": [
     "title",
     "title",
Line 11,678: Line 12,647:
   ],
   ],
   "id": "List.Filter.Fields.MusicVideos",
   "id": "List.Filter.Fields.MusicVideos",
   "type": "string",
   "type": "string"
  "default": "title"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,685: Line 12,653:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "genre",
   "enums": [
   "enums": [
     "genre",
     "genre",
Line 11,696: Line 12,665:
     "title",
     "title",
     "year",
     "year",
    "originalyear",
     "time",
     "time",
     "tracknumber",
     "tracknumber",
Line 11,710: Line 12,680:
     "bitrate",
     "bitrate",
     "channels",
     "channels",
    "dateadded",
    "datemodified",
    "datenew",
     "playlist",
     "playlist",
     "virtualfolder"
     "virtualfolder"
   ],
   ],
   "id": "List.Filter.Fields.Songs",
   "id": "List.Filter.Fields.Songs",
   "type": "string",
   "type": "string"
  "default": "genre"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,721: Line 12,693:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "title",
   "enums": [
   "enums": [
     "title",
     "title",
Line 11,749: Line 12,722:
   ],
   ],
   "id": "List.Filter.Fields.TVShows",
   "id": "List.Filter.Fields.TVShows",
   "type": "string",
   "type": "string"
  "default": "title"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,756: Line 12,728:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "textureid",
   "enums": [
   "enums": [
     "textureid",
     "textureid",
Line 11,770: Line 12,743:
   ],
   ],
   "id": "List.Filter.Fields.Textures",
   "id": "List.Filter.Fields.Textures",
   "type": "string",
   "type": "string"
  "default": "textureid"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,777: Line 12,749:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "List.Filter.Movies",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "and": {
         "and": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Movies"
             "$ref": "List.Filter.Movies"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "or": {
         "or": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Movies"
             "$ref": "List.Filter.Movies"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
Line 11,815: Line 12,788:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "List.Filter.MusicVideos",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "and": {
         "and": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.MusicVideos"
             "$ref": "List.Filter.MusicVideos"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "or": {
         "or": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.MusicVideos"
             "$ref": "List.Filter.MusicVideos"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
Line 11,853: Line 12,827:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": "contains",
   "enums": [
   "enums": [
     "contains",
     "contains",
Line 11,873: Line 12,848:
   ],
   ],
   "id": "List.Filter.Operators",
   "id": "List.Filter.Operators",
   "type": "string",
   "type": "string"
  "default": "contains"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,885: Line 12,859:
* ''mixed: string|array'' value
* ''mixed: string|array'' value
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "List.Filter.Rule",
   "properties": {
   "properties": {
     "operator": {
     "operator": {
Line 11,894: Line 12,868:
     },
     },
     "value": {
     "value": {
      "required": true,
       "type": [
       "type": [
         {
         {
           "type": "string",
           "type": "string"
          "required": true
         },
         },
         {
         {
          "type": "array",
           "items": {
           "items": {
             "type": "string"
             "type": "string"
           },
           },
           "required": true
           "type": "array"
         }
         }
       ],
       ]
      "required": true
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 11,919: Line 12,892:
* ''[[#List.Filter.Fields.Albums|List.Filter.Fields.Albums]]'' field
* ''[[#List.Filter.Fields.Albums|List.Filter.Fields.Albums]]'' field
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Filter.Rule",
   "extends": "List.Filter.Rule",
  "id": "List.Filter.Rule.Albums",
   "properties": {
   "properties": {
     "field": {
     "field": {
Line 11,937: Line 12,911:
* ''[[#List.Filter.Fields.Artists|List.Filter.Fields.Artists]]'' field
* ''[[#List.Filter.Fields.Artists|List.Filter.Fields.Artists]]'' field
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Filter.Rule",
   "extends": "List.Filter.Rule",
  "id": "List.Filter.Rule.Artists",
   "properties": {
   "properties": {
     "field": {
     "field": {
Line 11,955: Line 12,930:
* ''[[#List.Filter.Fields.Episodes|List.Filter.Fields.Episodes]]'' field
* ''[[#List.Filter.Fields.Episodes|List.Filter.Fields.Episodes]]'' field
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Filter.Rule",
   "extends": "List.Filter.Rule",
  "id": "List.Filter.Rule.Episodes",
   "properties": {
   "properties": {
     "field": {
     "field": {
Line 11,973: Line 12,949:
* ''[[#List.Filter.Fields.Movies|List.Filter.Fields.Movies]]'' field
* ''[[#List.Filter.Fields.Movies|List.Filter.Fields.Movies]]'' field
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Filter.Rule",
   "extends": "List.Filter.Rule",
  "id": "List.Filter.Rule.Movies",
   "properties": {
   "properties": {
     "field": {
     "field": {
Line 11,991: Line 12,968:
* ''[[#List.Filter.Fields.MusicVideos|List.Filter.Fields.MusicVideos]]'' field
* ''[[#List.Filter.Fields.MusicVideos|List.Filter.Fields.MusicVideos]]'' field
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Filter.Rule",
   "extends": "List.Filter.Rule",
  "id": "List.Filter.Rule.MusicVideos",
   "properties": {
   "properties": {
     "field": {
     "field": {
Line 12,009: Line 12,987:
* ''[[#List.Filter.Fields.Songs|List.Filter.Fields.Songs]]'' field
* ''[[#List.Filter.Fields.Songs|List.Filter.Fields.Songs]]'' field
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Filter.Rule",
   "extends": "List.Filter.Rule",
  "id": "List.Filter.Rule.Songs",
   "properties": {
   "properties": {
     "field": {
     "field": {
Line 12,027: Line 13,006:
* ''[[#List.Filter.Fields.TVShows|List.Filter.Fields.TVShows]]'' field
* ''[[#List.Filter.Fields.TVShows|List.Filter.Fields.TVShows]]'' field
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Filter.Rule",
   "extends": "List.Filter.Rule",
  "id": "List.Filter.Rule.TVShows",
   "properties": {
   "properties": {
     "field": {
     "field": {
Line 12,045: Line 13,025:
* ''[[#List.Filter.Fields.Textures|List.Filter.Fields.Textures]]'' field
* ''[[#List.Filter.Fields.Textures|List.Filter.Fields.Textures]]'' field
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Filter.Rule",
   "extends": "List.Filter.Rule",
  "id": "List.Filter.Rule.Textures",
   "properties": {
   "properties": {
     "field": {
     "field": {
Line 12,059: Line 13,040:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "List.Filter.Songs",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "and": {
         "and": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Songs"
             "$ref": "List.Filter.Songs"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "or": {
         "or": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Songs"
             "$ref": "List.Filter.Songs"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
Line 12,097: Line 13,079:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "List.Filter.TVShows",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "and": {
         "and": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.TVShows"
             "$ref": "List.Filter.TVShows"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "or": {
         "or": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.TVShows"
             "$ref": "List.Filter.TVShows"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
Line 12,135: Line 13,118:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "List.Filter.Textures",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "and": {
         "and": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Textures"
             "$ref": "List.Filter.Textures"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "properties": {
       "properties": {
         "or": {
         "or": {
          "type": "array",
           "items": {
           "items": {
             "$ref": "List.Filter.Textures"
             "$ref": "List.Filter.Textures"
           },
           },
           "minItems": 1,
           "minItems": 1,
           "required": true
           "required": true,
          "type": "array"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
Line 12,176: Line 13,160:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''string'' channel]
* [''string'' channel]
* [''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype]
* [''integer'' channelnumber]
* [''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype = tv]
* [''string'' endtime]
* [''boolean'' hidden]
* [''boolean'' hidden]
* [''boolean'' locked]
* [''boolean'' locked]
* [''integer'' channelnumber]
* [''string'' starttime]
* [''string'' starttime]
* [''string'' endtime]
* [''integer'' subchannelnumber]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Item.Base",
   "extends": "List.Item.Base",
  "id": "List.Item.All",
   "properties": {
   "properties": {
     "channel": {
     "channel": {
      "default": "",
       "type": "string"
       "type": "string"
    },
    "channelnumber": {
      "default": 0,
      "type": "integer"
     },
     },
     "channeltype": {
     "channeltype": {
       "$ref": "PVR.Channel.Type"
       "$ref": "PVR.Channel.Type",
      "default": "tv"
    },
    "endtime": {
      "default": "",
      "type": "string"
     },
     },
     "hidden": {
     "hidden": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "locked": {
     "locked": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
    },
    "channelnumber": {
      "type": "integer"
     },
     },
     "starttime": {
     "starttime": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "endtime": {
     "subchannelnumber": {
       "type": "string"
      "default": 0,
       "type": "integer"
     }
     }
   }
   }
Line 12,217: Line 13,214:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Library.Id|Library.Id]]'' id]
* [''string'' album]
* [''string'' type]
* [''[[#Array.String|Array.String]]'' albumartist]
* [''[[#Array.String|Array.String]]'' albumartist]
* [''string'' album]
* [''[[#Array.Integer|Array.Integer]]'' albumartistid]
* [''integer'' track]
* [''[[#Library.Id|Library.Id]]'' albumid = -1]
* [''integer'' duration]
* [''string'' albumlabel]
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' albumreleasetype = album]
* [''string'' albumstatus]
* [''integer'' bitrate]
* [''integer'' bpm]
* [''[[#Video.Cast|Video.Cast]]'' cast]
* [''integer'' channels]
* [''string'' comment]
* [''string'' comment]
* [''string'' lyrics]
* [''boolean'' compilation]
* [''string'' musicbrainztrackid]
* [''[[#Audio.Contributors|Audio.Contributors]]'' contributors]
* [''[[#Array.String|Array.String]]'' musicbrainzartistid]
* [''string'' trailer]
* [''string'' tagline]
* [''string'' plotoutline]
* [''string'' originaltitle]
* [''[[#Array.String|Array.String]]'' writer]
* [''[[#Array.String|Array.String]]'' studio]
* [''string'' mpaa]
* [''[[#Video.Cast|Video.Cast]]'' cast]
* [''[[#Array.String|Array.String]]'' country]
* [''[[#Array.String|Array.String]]'' country]
* [''string'' imdbnumber]
* [''[[#Item.CustomProperties|Item.CustomProperties]]'' customproperties]
* [''string'' description]
* [''integer'' disc]
* [''string'' disctitle]
* [''string'' displaycomposer]
* [''string'' displayconductor]
* [''string'' displaylyricist]
* [''string'' displayorchestra]
* [''integer'' duration]
* [''string'' dynpath]
* [''integer'' episode]
* [''string'' episodeguide]
* [''string'' firstaired]
* [''[[#Library.Id|Library.Id]]'' id = -1]
* [''string'' imdbnumber]
* [''boolean'' isboxset]
* [''string'' lyrics]
* [''string'' mediapath]
* [''[[#Array.String|Array.String]]'' mood]
* [''string'' mpaa]
* [''[[#Array.String|Array.String]]'' musicbrainzartistid]
* [''string'' musicbrainztrackid]
* [''string'' originaldate]
* [''string'' originaltitle]
* [''string'' plotoutline]
* [''string'' premiered]
* [''string'' premiered]
* [''string'' productioncode]
* [''string'' productioncode]
* [''string'' releasedate]
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' releasetype = album]
* [''integer'' samplerate]
* [''integer'' season]
* [''string'' set]
* [''string'' set]
* [''[[#Library.Id|Library.Id]]'' setid = -1]
* [''[[#Array.String|Array.String]]'' showlink]
* [''[[#Array.String|Array.String]]'' showlink]
* [''integer'' top250]
* [''string'' votes]
* [''string'' firstaired]
* [''integer'' season]
* [''integer'' episode]
* [''string'' showtitle]
* [''string'' showtitle]
* [''[[#Library.Id|Library.Id]]'' albumid]
* [''string'' sorttitle]
* [''[[#Library.Id|Library.Id]]'' setid]
* [''integer'' specialsortepisode]
* [''[[#Library.Id|Library.Id]]'' tvshowid]
* [''integer'' specialsortseason]
* [''integer'' watchedepisodes]
* [''[[#Array.String|Array.String]]'' studio]
* [''integer'' disc]
* [''[[#Array.String|Array.String]]'' style]
* [''[[#Array.String|Array.String]]'' tag]
* [''[[#Array.String|Array.String]]'' tag]
* [''[[#Array.Integer|Array.Integer]]'' albumartistid]
* [''string'' tagline]
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
* [''string'' episodeguide]
* [''string'' sorttitle]
* [''string'' description]
* [''[[#Array.String|Array.String]]'' theme]
* [''[[#Array.String|Array.String]]'' theme]
* [''[[#Array.String|Array.String]]'' mood]
* [''integer'' top250]
* [''[[#Array.String|Array.String]]'' style]
* [''string'' albumlabel]
* [''integer'' specialsortseason]
* [''integer'' specialsortepisode]
* [''boolean'' compilation]
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' releasetype]
* [''[[#Audio.Album.ReleaseType|Audio.Album.ReleaseType]]'' albumreleasetype]
* [''[[#Audio.Contributors|Audio.Contributors]]'' contributors]
* [''string'' displaycomposer]
* [''string'' displayconductor]
* [''string'' displayorchestra]
* [''string'' displaylyricist]
* [''string'' mediapath]
* [''string'' dynpath]
* [''boolean'' isboxset]
* [''integer'' totaldiscs]
* [''integer'' totaldiscs]
* [''string'' disctitle]
* [''integer'' track]
* [''string'' releasedate]
* [''string'' trailer]
* [''string'' originaldate]
* [''[[#Library.Id|Library.Id]]'' tvshowid = -1]
* [''integer'' bpm]
* [''string'' type = unknown]
* [''integer'' bitrate]
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
* [''integer'' samplerate]
* [''string'' votes]
* [''integer'' channels]
* [''integer'' watchedepisodes]
* [''[[#Array.String|Array.String]]'' writer]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": [
   "extends": [
Line 12,290: Line 13,289:
     "Audio.Details.Media"
     "Audio.Details.Media"
   ],
   ],
  "id": "List.Item.Base",
   "properties": {
   "properties": {
     "id": {
     "album": {
       "$ref": "Library.Id"
      "default": "",
      "type": "string"
    },
    "albumartist": {
       "$ref": "Array.String"
     },
     },
     "type": {
     "albumartistid": {
       "type": "string",
       "$ref": "Array.Integer"
       "enum": [
    },
        "unknown",
    "albumid": {
        "movie",
       "$ref": "Library.Id",
        "episode",
      "default": -1
        "musicvideo",
    },
        "song",
    "albumlabel": {
        "picture",
      "default": "",
        "channel"
      "type": "string"
      ]
     },
     },
     "albumartist": {
     "albumreleasetype": {
       "$ref": "Array.String"
       "$ref": "Audio.Album.ReleaseType",
      "default": "album"
     },
     },
     "album": {
     "albumstatus": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "track": {
     "bitrate": {
      "default": 0,
      "type": "integer"
    },
    "bpm": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "duration": {
     "cast": {
      "$ref": "Video.Cast"
    },
    "channels": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "comment": {
     "comment": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "lyrics": {
     "compilation": {
       "type": "string"
      "default": false,
       "type": "boolean"
     },
     },
     "musicbrainztrackid": {
     "contributors": {
       "type": "string"
       "$ref": "Audio.Contributors"
     },
     },
     "musicbrainzartistid": {
     "country": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "trailer": {
     "customproperties": {
      "$ref": "Item.CustomProperties"
    },
    "description": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "tagline": {
     "disc": {
      "default": 0,
      "type": "integer"
    },
    "disctitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "plotoutline": {
     "displaycomposer": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "originaltitle": {
     "displayconductor": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "writer": {
     "displaylyricist": {
       "$ref": "Array.String"
       "default": "",
      "type": "string"
     },
     },
     "studio": {
     "displayorchestra": {
       "$ref": "Array.String"
       "default": "",
    },
    "mpaa": {
       "type": "string"
       "type": "string"
     },
     },
     "cast": {
     "duration": {
       "$ref": "Video.Cast"
       "default": 0,
      "type": "integer"
    },
    "dynpath": {
      "default": "",
      "description": "An experimental property for debug purposes, often same as mediapath but when different gives the actual file playing that should also be in file property",
      "type": "string"
    },
    "episode": {
      "default": 0,
      "type": "integer"
    },
    "episodeguide": {
      "default": "",
      "type": "string"
    },
    "firstaired": {
      "default": "",
      "type": "string"
     },
     },
     "country": {
     "id": {
       "$ref": "Array.String"
       "$ref": "Library.Id",
      "default": -1
     },
     },
     "imdbnumber": {
     "imdbnumber": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "premiered": {
     "isboxset": {
      "default": false,
      "type": "boolean"
    },
    "lyrics": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "productioncode": {
     "mediapath": {
      "default": "",
      "description": "Media source path that identifies the item",
       "type": "string"
       "type": "string"
     },
     },
     "set": {
     "mood": {
      "$ref": "Array.String"
    },
    "mpaa": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "showlink": {
     "musicbrainzartistid": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "top250": {
     "musicbrainztrackid": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "votes": {
     "originaldate": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "firstaired": {
     "originaltitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "season": {
     "plotoutline": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "episode": {
     "premiered": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "showtitle": {
     "productioncode": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "albumid": {
     "releasedate": {
       "$ref": "Library.Id"
       "default": "",
      "type": "string"
     },
     },
     "setid": {
     "releasetype": {
       "$ref": "Library.Id"
       "$ref": "Audio.Album.ReleaseType",
    },
       "default": "album"
    "tvshowid": {
       "$ref": "Library.Id"
     },
     },
     "watchedepisodes": {
     "samplerate": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "disc": {
     "season": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "tag": {
     "set": {
       "$ref": "Array.String"
       "default": "",
      "type": "string"
     },
     },
     "albumartistid": {
     "setid": {
       "$ref": "Array.Integer"
       "$ref": "Library.Id",
      "default": -1
     },
     },
     "uniqueid": {
     "showlink": {
       "$ref": "Media.UniqueID"
       "$ref": "Array.String"
     },
     },
     "episodeguide": {
     "showtitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "sorttitle": {
     "sorttitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "description": {
     "specialsortepisode": {
       "type": "string"
      "default": 0,
      "type": "integer"
    },
    "specialsortseason": {
      "default": 0,
       "type": "integer"
     },
     },
     "theme": {
     "studio": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "mood": {
     "style": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "style": {
     "tag": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "albumlabel": {
     "tagline": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "specialsortseason": {
     "theme": {
      "$ref": "Array.String"
    },
    "top250": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "specialsortepisode": {
     "totaldiscs": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "compilation": {
     "track": {
       "type": "boolean"
      "default": 0,
       "type": "integer"
     },
     },
     "releasetype": {
     "trailer": {
       "$ref": "Audio.Album.ReleaseType"
       "default": "",
      "type": "string"
     },
     },
     "albumreleasetype": {
     "tvshowid": {
       "$ref": "Audio.Album.ReleaseType"
       "$ref": "Library.Id",
      "default": -1
     },
     },
     "contributors": {
     "type": {
       "$ref": "Audio.Contributors"
       "default": "unknown",
    },
      "enums": [
    "displaycomposer": {
        "unknown",
        "movie",
        "episode",
        "musicvideo",
        "song",
        "picture",
        "channel"
      ],
       "type": "string"
       "type": "string"
     },
     },
     "displayconductor": {
     "uniqueid": {
       "type": "string"
       "$ref": "Media.UniqueID"
     },
     },
     "displayorchestra": {
     "votes": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "displaylyricist": {
     "watchedepisodes": {
       "type": "string"
       "default": 0,
    },
    "mediapath": {
      "type": "string",
      "description": "Media source path that identifies the item"
    },
    "dynpath": {
      "type": "string",
      "description": "An experimental property for debug purposes, often same as mediapath but when different gives the actual file playing that should also be in file property"
    },
    "isboxset": {
      "type": "boolean"
    },
    "totaldiscs": {
       "type": "integer"
       "type": "integer"
     },
     },
     "disctitle": {
     "writer": {
       "type": "string"
       "$ref": "Array.String"
    },
    "releasedate": {
      "type": "string"
    },
    "originaldate": {
      "type": "string"
    },
    "bpm": {
      "type": "integer"
    },
    "bitrate": {
      "type": "integer"
    },
    "samplerate": {
      "type": "integer"
    },
    "channels": {
      "type": "integer"
     }
     }
   }
   }
Line 12,510: Line 13,569:
* ''string'' file
* ''string'' file
* ''string'' filetype
* ''string'' filetype
* [''integer'' size]
* [''string'' lastmodified]
* [''string'' lastmodified]
* [''string'' mimetype]
* [''string'' mimetype]
* [''integer'' size]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "List.Item.Base",
   "extends": "List.Item.Base",
  "id": "List.Item.File",
   "properties": {
   "properties": {
     "file": {
     "file": {
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     "filetype": {
     "filetype": {
       "type": "string",
       "enums": [
      "enum": [
         "file",
         "file",
         "directory"
         "directory"
       ],
       ],
       "required": true
       "required": true,
    },
       "type": "string"
    "size": {
       "type": "integer",
      "description": "Size of the file in bytes"
     },
     },
     "lastmodified": {
     "lastmodified": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "mimetype": {
     "mimetype": {
      "default": "",
       "type": "string"
       "type": "string"
    },
    "size": {
      "default": 0,
      "description": "Size of the file in bytes",
      "type": "integer"
     }
     }
   }
   }
Line 12,546: Line 13,609:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "List.Items.Sources",
   "items": {
   "items": {
     "extends": "Item.Details.Base",
     "extends": "Item.Details.Base",
     "properties": {
     "properties": {
       "file": {
       "file": {
         "type": "string",
         "required": true,
         "required": true
         "type": "string"
       }
       }
     }
     }
   }
   },
  "type": "array"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 12,565: Line 13,629:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#List.Amount|List.Amount]]'' end = -1]
* [''integer'' start]
* [''integer'' start]
* [''[[#List.Amount|List.Amount]]'' end]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": false,
  "id": "List.Limits",
   "properties": {
   "properties": {
    "start": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Index of the first item to return"
    },
     "end": {
     "end": {
       "$ref": "List.Amount",
       "$ref": "List.Amount",
      "default": -1,
       "description": "Index of the last item to return"
       "description": "Index of the last item to return"
    },
    "start": {
      "default": 0,
      "description": "Index of the first item to return",
      "minimum": 0,
      "type": "integer"
     }
     }
   },
   },
   "additionalProperties": false
   "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 12,591: Line 13,657:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#List.Amount|List.Amount]]'' end = -1]
* [''integer'' start]
* [''integer'' start]
* [''[[#List.Amount|List.Amount]]'' end]
* ''integer'' total
* ''integer'' total
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": false,
  "id": "List.LimitsReturned",
   "properties": {
   "properties": {
    "end": {
      "$ref": "List.Amount",
      "default": -1
    },
     "start": {
     "start": {
       "type": "integer",
       "default": 0,
       "minimum": 0,
       "minimum": 0,
       "default": 0
       "type": "integer"
    },
    "end": {
      "$ref": "List.Amount"
     },
     },
     "total": {
     "total": {
      "type": "integer",
       "minimum": 0,
       "minimum": 0,
       "required": true
       "required": true,
      "type": "integer"
     }
     }
   },
   },
   "additionalProperties": false
   "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 12,621: Line 13,689:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''boolean'' ignorearticle]
* [''string'' method = none]
* [''string'' method = none]
* [''string'' order = ascending]
* [''string'' order = ascending]
* [''boolean'' ignorearticle]
* [''boolean'' useartistsortname]
* [''boolean'' useartistsortname]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "List.Sort",
   "properties": {
   "properties": {
    "ignorearticle": {
      "default": false,
      "type": "boolean"
    },
     "method": {
     "method": {
      "type": "string",
       "default": "none",
       "default": "none",
       "enum": [
       "enums": [
         "none",
         "none",
         "label",
         "label",
Line 12,675: Line 13,746:
         "originaldate",
         "originaldate",
         "bpm"
         "bpm"
       ]
       ],
      "type": "string"
     },
     },
     "order": {
     "order": {
      "type": "string",
       "default": "ascending",
       "default": "ascending",
       "enum": [
       "enums": [
         "ascending",
         "ascending",
         "descending"
         "descending"
       ]
       ],
    },
       "type": "string"
    "ignorearticle": {
       "type": "boolean",
      "default": false
     },
     },
     "useartistsortname": {
     "useartistsortname": {
       "type": "boolean",
       "default": false,
       "default": false
       "type": "boolean"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 12,702: Line 13,771:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' thumb]
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' poster]
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' banner]
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' banner]
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' fanart]
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' fanart]
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' poster]
* [''[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' thumb]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": {
    "$ref": "Global.String.NotEmpty",
    "default": ""
  },
  "id": "Media.Artwork",
   "properties": {
   "properties": {
     "thumb": {
     "banner": {
       "$ref": "Global.String.NotEmpty"
       "$ref": "Global.String.NotEmpty",
      "default": ""
    },
    "fanart": {
      "$ref": "Global.String.NotEmpty",
      "default": ""
     },
     },
     "poster": {
     "poster": {
       "$ref": "Global.String.NotEmpty"
       "$ref": "Global.String.NotEmpty",
      "default": ""
     },
     },
     "banner": {
     "thumb": {
       "$ref": "Global.String.NotEmpty"
       "$ref": "Global.String.NotEmpty",
    },
       "default": ""
    "fanart": {
       "$ref": "Global.String.NotEmpty"
     }
     }
   },
   },
   "additionalProperties": {
   "type": "object"
    "$ref": "Global.String.NotEmpty"
  }
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 12,734: Line 13,809:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''mixed: [[#Global.String.NotEmpty|Global.String.NotEmpty]]'' thumb]
* [''mixed: null|[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' banner]
* [''mixed: [[#Global.String.NotEmpty|Global.String.NotEmpty]]'' poster]
* [''mixed: null|[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' fanart]
* [''mixed: [[#Global.String.NotEmpty|Global.String.NotEmpty]]'' banner]
* [''mixed: null|[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' poster]
* [''mixed: [[#Global.String.NotEmpty|Global.String.NotEmpty]]'' fanart]
* [''mixed: null|[[#Global.String.NotEmpty|Global.String.NotEmpty]]'' thumb]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": {
    "default": null,
    "type": [
      {
        "type": "null"
      },
      {
        "$ref": "Global.String.NotEmpty"
      }
    ]
  },
  "id": "Media.Artwork.Set",
   "properties": {
   "properties": {
     "thumb": {
     "banner": {
      "default": "",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Global.String.NotEmpty",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Global.String.NotEmpty"
         }
         }
       ],
       ]
      "default": ""
     },
     },
     "poster": {
     "fanart": {
      "default": "",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Global.String.NotEmpty",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Global.String.NotEmpty"
         }
         }
       ],
       ]
      "default": ""
     },
     },
     "banner": {
     "poster": {
      "default": "",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Global.String.NotEmpty",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Global.String.NotEmpty"
         }
         }
       ],
       ]
      "default": ""
     },
     },
     "fanart": {
     "thumb": {
      "default": "",
       "type": [
       "type": [
        "null",
         {
         {
           "$ref": "Global.String.NotEmpty",
          "type": "null"
          "required": true
        },
        {
           "$ref": "Global.String.NotEmpty"
         }
         }
       ],
       ]
      "default": ""
     }
     }
   },
   },
   "additionalProperties": {
   "type": "object"
    "type": [
      "null",
      {
        "$ref": "Global.String.NotEmpty",
        "required": true
      }
    ]
  }
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 12,803: Line 13,885:
* [''string'' thumbnail]
* [''string'' thumbnail]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "Media.Details.Base",
   "properties": {
   "properties": {
     "fanart": {
     "fanart": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "thumbnail": {
     "thumbnail": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     }
Line 12,819: Line 13,904:
'''Type:''' ''object''
'''Type:''' ''object''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "object",
   "additionalProperties": {
   "additionalProperties": {
     "$ref": "Global.String.NotEmpty"
     "$ref": "Global.String.NotEmpty",
   }
    "default": ""
   },
  "id": "Media.UniqueID",
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 12,830: Line 13,917:
'''Type:''' ''object''
'''Type:''' ''object''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "object",
   "additionalProperties": {
   "additionalProperties": {
    "default": null,
     "type": [
     "type": [
      "null",
       {
       {
         "$ref": "Global.String.NotEmpty",
        "type": "null"
        "required": true
      },
      {
         "$ref": "Global.String.NotEmpty"
       }
       }
     ]
     ]
   }
   },
  "id": "Media.UniqueID.Set",
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 12,848: Line 13,938:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "Notifications.Item",
   "type": [
   "type": [
     {
     {
      "type": "object",
       "description": "An unknown item does not have any additional information.",
       "description": "An unknown item does not have any additional information.",
       "properties": {
       "properties": {
Line 12,859: Line 13,949:
           "required": true
           "required": true
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "description": "An item known to the database has an identification.",
       "description": "An item known to the database has an identification.",
       "properties": {
       "properties": {
        "id": {
          "$ref": "Library.Id",
          "required": true
        },
         "type": {
         "type": {
           "$ref": "Notifications.Item.Type",
           "$ref": "Notifications.Item.Type",
          "required": true
        },
        "id": {
          "$ref": "Library.Id",
           "required": true
           "required": true
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "description": "A movie item has a title and may have a release year.",
       "description": "A movie item has a title and may have a release year.",
       "properties": {
       "properties": {
        "title": {
          "required": true,
          "type": "string"
        },
         "type": {
         "type": {
           "$ref": "Notifications.Item.Type",
           "$ref": "Notifications.Item.Type",
          "required": true
        },
        "title": {
          "type": "string",
           "required": true
           "required": true
         },
         },
         "year": {
         "year": {
          "default": 0,
           "type": "integer"
           "type": "integer"
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "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.",
       "description": "A tv episode has a title and may have an episode number, season number and the title of the show it belongs to.",
       "properties": {
       "properties": {
        "type": {
          "$ref": "Notifications.Item.Type",
          "required": true
        },
        "title": {
          "type": "string",
          "required": true
        },
         "episode": {
         "episode": {
          "default": 0,
           "type": "integer"
           "type": "integer"
         },
         },
         "season": {
         "season": {
          "default": 0,
           "type": "integer"
           "type": "integer"
         },
         },
         "showtitle": {
         "showtitle": {
          "default": "",
           "type": "string"
           "type": "string"
        },
        "title": {
          "required": true,
          "type": "string"
        },
        "type": {
          "$ref": "Notifications.Item.Type",
          "required": true
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "description": "A music video has a title and may have an album and an artist.",
       "description": "A music video has a title and may have an album and an artist.",
       "properties": {
       "properties": {
        "type": {
          "$ref": "Notifications.Item.Type",
          "required": true
        },
        "title": {
          "type": "string",
          "required": true
        },
         "album": {
         "album": {
          "default": "",
           "type": "string"
           "type": "string"
         },
         },
         "artist": {
         "artist": {
          "default": "",
          "type": "string"
        },
        "title": {
          "required": true,
           "type": "string"
           "type": "string"
        },
        "type": {
          "$ref": "Notifications.Item.Type",
          "required": true
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "description": "A song has a title and may have an album, an artist and a track number.",
       "description": "A song has a title and may have an album, an artist and a track number.",
       "properties": {
       "properties": {
        "type": {
          "$ref": "Notifications.Item.Type",
          "required": true
        },
        "title": {
          "type": "string",
          "required": true
        },
         "album": {
         "album": {
          "default": "",
           "type": "string"
           "type": "string"
         },
         },
         "artist": {
         "artist": {
          "default": "",
          "type": "string"
        },
        "title": {
          "required": true,
           "type": "string"
           "type": "string"
         },
         },
         "track": {
         "track": {
          "default": 0,
           "type": "integer"
           "type": "integer"
        },
        "type": {
          "$ref": "Notifications.Item.Type",
          "required": true
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "description": "A picture has a file path.",
       "description": "A picture has a file path.",
       "properties": {
       "properties": {
        "file": {
          "required": true,
          "type": "string"
        },
         "type": {
         "type": {
           "$ref": "Notifications.Item.Type",
           "$ref": "Notifications.Item.Type",
          "required": true
        },
        "file": {
          "type": "string",
           "required": true
           "required": true
         }
         }
       }
       },
      "type": "object"
     },
     },
     {
     {
      "type": "object",
       "description": "A PVR channel is either a radio or tv channel and has a title.",
       "description": "A PVR channel is either a radio or tv channel and has a title.",
       "properties": {
       "properties": {
         "type": {
         "channeltype": {
           "$ref": "Notifications.Item.Type",
           "$ref": "PVR.Channel.Type",
           "required": true
           "required": true
         },
         },
Line 12,985: Line 14,084:
         },
         },
         "title": {
         "title": {
           "type": "string",
           "required": true,
           "required": true
           "type": "string"
         },
         },
         "channeltype": {
         "type": {
           "$ref": "PVR.Channel.Type",
           "$ref": "Notifications.Item.Type",
           "required": true
           "required": true
         }
         }
       }
       },
      "type": "object"
     }
     }
   ]
   ]
Line 13,000: Line 14,100:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "unknown",
   "enum": [
   "enums": [
     "unknown",
     "unknown",
     "movie",
     "movie",
Line 13,011: Line 14,111:
     "picture",
     "picture",
     "channel"
     "channel"
   ]
   ],
  "id": "Notifications.Item.Type",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,018: Line 14,120:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": null,
  "id": "Optional.Boolean",
   "type": [
   "type": [
     "null",
     {
     "boolean"
      "type": "null"
   ],
    },
  "default": null
     {
      "type": "boolean"
    }
   ]
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,030: Line 14,137:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": null,
  "id": "Optional.Integer",
   "type": [
   "type": [
     "null",
     {
     "integer"
      "type": "null"
   ],
    },
  "default": null
     {
      "type": "integer"
    }
   ]
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,042: Line 14,154:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": null,
  "id": "Optional.Number",
   "type": [
   "type": [
     "null",
     {
     "number"
      "type": "null"
   ],
    },
  "default": null
     {
      "type": "number"
    }
   ]
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,054: Line 14,171:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": null,
  "id": "Optional.String",
   "type": [
   "type": [
     "null",
     {
     "string"
      "type": "null"
   ],
    },
  "default": null
     {
      "type": "string"
    }
   ]
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,067: Line 14,189:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "tv",
   "enum": [
   "enums": [
     "tv",
     "tv",
     "radio"
     "radio"
   ]
   ],
  "id": "PVR.Channel.Type",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,079: Line 14,203:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": null,
  "id": "PVR.ChannelGroup.Id",
   "type": [
   "type": [
     {
     {
       "$ref": "Library.Id",
       "$ref": "Library.Id"
      "required": true
     },
     },
     {
     {
       "type": "string",
       "enums": [
      "enum": [
         "alltv",
         "alltv",
         "allradio"
         "allradio"
       ],
       ],
       "required": true
       "type": "string"
     }
     }
   ]
   ]
Line 13,103: Line 14,227:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' broadcastid
* ''[[#Library.Id|Library.Id]]'' broadcastid
* [''string'' title]
* [''string'' cast]
* [''string'' plot]
* [''[[#Library.Id|Library.Id]]'' clientid = -1]
* [''string'' plotoutline]
* [''string'' director]
* [''string'' starttime]
* [''string'' endtime]
* [''string'' endtime]
* [''integer'' runtime]
* [''integer'' progress]
* [''number'' progresspercentage]
* [''string'' genre]
* [''string'' episodename]
* [''string'' episodename]
* [''integer'' episodenum]
* [''integer'' episodenum]
* [''integer'' episodepart]
* [''integer'' episodepart]
* [''string'' firstaired]
* [''string'' firstaired]
* [''string'' genre]
* [''boolean'' hasrecording]
* [''boolean'' hasreminder]
* [''boolean'' hastimer]
* [''boolean'' hastimer]
* [''boolean'' hastimerrule]
* [''integer'' imdbnumber]
* [''boolean'' isactive]
* [''boolean'' isactive]
* [''boolean'' isplayable]
* [''boolean'' isseries]
* [''string'' originaltitle]
* [''integer'' parentalrating]
* [''integer'' parentalrating]
* [''string'' plot]
* [''string'' plotoutline]
* [''integer'' progress]
* [''number'' progresspercentage]
* [''integer'' rating]
* [''string'' recording]
* [''integer'' runtime]
* [''string'' starttime]
* [''string'' thumbnail]
* [''string'' title]
* [''boolean'' wasactive]
* [''boolean'' wasactive]
* [''string'' thumbnail]
* [''integer'' rating]
* [''string'' originaltitle]
* [''string'' cast]
* [''string'' director]
* [''string'' writer]
* [''string'' writer]
* [''integer'' year]
* [''integer'' year]
* [''integer'' imdbnumber]
* [''boolean'' hastimerrule]
* [''boolean'' hasrecording]
* [''string'' recording]
* [''boolean'' isseries]
* [''boolean'' isplayable]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "PVR.Details.Broadcast",
   "properties": {
   "properties": {
     "broadcastid": {
     "broadcastid": {
Line 13,142: Line 14,269:
       "required": true
       "required": true
     },
     },
     "title": {
     "cast": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "plot": {
     "clientid": {
       "type": "string"
       "$ref": "Library.Id",
      "default": -1
     },
     },
     "plotoutline": {
     "director": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "starttime": {
     "endtime": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "endtime": {
     "episodename": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "runtime": {
     "episodenum": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "progress": {
     "episodepart": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "progresspercentage": {
     "firstaired": {
       "type": "number"
      "default": "",
       "type": "string"
     },
     },
     "genre": {
     "genre": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "episodename": {
     "hasrecording": {
       "type": "string"
      "default": false,
       "type": "boolean"
     },
     },
     "episodenum": {
     "hasreminder": {
       "type": "integer"
       "default": false,
    },
       "type": "boolean"
    "episodepart": {
      "type": "integer"
    },
    "firstaired": {
       "type": "string"
     },
     },
     "hastimer": {
     "hastimer": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "isactive": {
     "hastimerrule": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "parentalrating": {
     "imdbnumber": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "wasactive": {
     "isactive": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "thumbnail": {
     "isplayable": {
       "type": "string"
      "default": false,
      "description": "Deprecated - Use GetBroadcastIsPlayable instead",
       "type": "boolean"
     },
     },
     "rating": {
     "isseries": {
       "type": "integer"
      "default": false,
       "type": "boolean"
     },
     },
     "originaltitle": {
     "originaltitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "cast": {
     "parentalrating": {
       "type": "string"
      "default": 0,
       "type": "integer"
     },
     },
     "director": {
     "plot": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "writer": {
     "plotoutline": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "year": {
     "progress": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "imdbnumber": {
     "progresspercentage": {
      "default": 0.0,
      "type": "number"
    },
    "rating": {
      "default": 0,
       "type": "integer"
       "type": "integer"
    },
    "hastimerrule": {
      "type": "boolean"
    },
    "hasrecording": {
      "type": "boolean"
     },
     },
     "recording": {
     "recording": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "isseries": {
     "runtime": {
       "type": "boolean"
      "default": 0,
       "type": "integer"
     },
     },
     "isplayable": {
     "starttime": {
      "default": "",
      "type": "string"
    },
    "thumbnail": {
      "default": "",
      "type": "string"
    },
    "title": {
      "default": "",
      "type": "string"
    },
    "wasactive": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
    },
    "writer": {
      "default": "",
      "type": "string"
    },
    "year": {
      "default": 0,
      "type": "integer"
     }
     }
   }
   }
Line 13,240: Line 14,406:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastnext]
* [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastnow]
* [''string'' channel]
* ''[[#Library.Id|Library.Id]]'' channelid
* ''[[#Library.Id|Library.Id]]'' channelid
* [''string'' channel]
* [''integer'' channelnumber]
* [''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype]
* [''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype = tv]
* [''[[#Library.Id|Library.Id]]'' clientid = -1]
* [''boolean'' hasarchive]
* [''boolean'' hidden]
* [''boolean'' hidden]
* [''string'' icon]
* [''boolean'' isrecording]
* [''string'' lastplayed]
* [''boolean'' locked]
* [''boolean'' locked]
* [''integer'' subchannelnumber]
* [''string'' thumbnail]
* [''string'' thumbnail]
* [''string'' lastplayed]
* [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastnow]
* [''[[#PVR.Details.Broadcast|PVR.Details.Broadcast]]'' broadcastnext]
* ''integer'' uniqueid
* ''integer'' uniqueid
* [''string'' icon]
* [''integer'' channelnumber]
* [''integer'' subchannelnumber]
* [''boolean'' isrecording]
* [''boolean'' hasarchive]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "PVR.Details.Channel",
   "properties": {
   "properties": {
    "broadcastnext": {
      "$ref": "PVR.Details.Broadcast"
    },
    "broadcastnow": {
      "$ref": "PVR.Details.Broadcast"
    },
    "channel": {
      "default": "",
      "type": "string"
    },
     "channelid": {
     "channelid": {
       "$ref": "Library.Id",
       "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     "channel": {
     "channelnumber": {
       "type": "string"
      "default": 0,
       "type": "integer"
     },
     },
     "channeltype": {
     "channeltype": {
       "$ref": "PVR.Channel.Type"
       "$ref": "PVR.Channel.Type",
      "default": "tv"
    },
    "clientid": {
      "$ref": "Library.Id",
      "default": -1
     },
     },
     "hidden": {
     "hasarchive": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "locked": {
     "hidden": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "thumbnail": {
     "icon": {
      "default": "",
       "type": "string"
       "type": "string"
    },
    "isrecording": {
      "default": false,
      "type": "boolean"
     },
     },
     "lastplayed": {
     "lastplayed": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "broadcastnow": {
     "locked": {
       "$ref": "PVR.Details.Broadcast"
       "default": false,
      "type": "boolean"
     },
     },
     "broadcastnext": {
     "subchannelnumber": {
       "$ref": "PVR.Details.Broadcast"
       "default": 0,
      "type": "integer"
     },
     },
     "uniqueid": {
     "thumbnail": {
       "type": "integer",
       "default": "",
      "required": true
    },
    "icon": {
       "type": "string"
       "type": "string"
     },
     },
     "channelnumber": {
     "uniqueid": {
      "required": true,
       "type": "integer"
       "type": "integer"
    },
    "subchannelnumber": {
      "type": "integer"
    },
    "isrecording": {
      "type": "boolean"
    },
    "hasarchive": {
      "type": "boolean"
     }
     }
   }
   }
Line 13,318: Line 14,501:
* ''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype
* ''[[#PVR.Channel.Type|PVR.Channel.Type]]'' channeltype
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "PVR.Details.ChannelGroup",
   "properties": {
   "properties": {
     "channelgroupid": {
     "channelgroupid": {
Line 13,338: Line 14,522:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''array'' channels]
* ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits
* ''[[#List.LimitsReturned|List.LimitsReturned]]'' limits
* [''array'' channels]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "PVR.Details.ChannelGroup",
   "extends": "PVR.Details.ChannelGroup",
  "id": "PVR.Details.ChannelGroup.Extended",
   "properties": {
   "properties": {
    "channels": {
      "items": {
        "$ref": "PVR.Details.Channel"
      },
      "type": "array"
    },
     "limits": {
     "limits": {
       "$ref": "List.LimitsReturned",
       "$ref": "List.LimitsReturned",
       "required": true
       "required": true
    },
    "channels": {
      "type": "array",
      "items": {
        "$ref": "PVR.Details.Channel"
      }
     }
     }
   }
   }
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
==== PVR.Details.Recording ====
==== PVR.Details.Client ====
'''Extends:'''
'''Extends:'''
* ''[[#Item.Details.Base|Item.Details.Base]]''
* ''[[#Item.Details.Base|Item.Details.Base]]''
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' recordingid
* [''string'' addonid]
* [''string'' title]
* ''[[#Library.Id|Library.Id]]'' clientid
* [''string'' plot]
* [''boolean'' supportschannelgroups]
* [''string'' plotoutline]
* [''boolean'' supportschannelscan]
* [''string'' genre]
* [''boolean'' supportsepg]
* [''integer'' playcount]
* [''boolean'' supportsradio]
* [''[[#Video.Resume|Video.Resume]]'' resume]
* [''boolean'' supportsrecordings]
* [''string'' channel]
* [''boolean'' supportstimers]
* [''string'' starttime]
* [''boolean'' supportstv]
* [''string'' endtime]
* [''integer'' runtime]
* [''integer'' lifetime]
* [''string'' icon]
* [''[[#Media.Artwork|Media.Artwork]]'' art]
* [''string'' streamurl]
* [''string'' file]
* [''string'' directory]
* [''boolean'' radio]
* [''boolean'' isdeleted]
* [''integer'' epgeventid]
* [''integer'' channeluid]
* [''integer'' season]
* [''integer'' episode]
* [''string'' showtitle]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "PVR.Details.Client",
   "properties": {
   "properties": {
     "recordingid": {
     "addonid": {
      "default": "",
      "type": "string"
    },
    "clientid": {
       "$ref": "Library.Id",
       "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     "title": {
     "supportschannelgroups": {
       "type": "string"
      "default": false,
       "type": "boolean"
     },
     },
     "plot": {
     "supportschannelscan": {
       "type": "string"
      "default": false,
       "type": "boolean"
     },
     },
     "plotoutline": {
     "supportsepg": {
       "type": "string"
      "default": false,
      "type": "boolean"
    },
    "supportsradio": {
      "default": false,
       "type": "boolean"
     },
     },
     "genre": {
     "supportsrecordings": {
       "type": "string"
      "default": false,
       "type": "boolean"
     },
     },
     "playcount": {
     "supportstimers": {
       "type": "integer"
      "default": false,
       "type": "boolean"
     },
     },
     "resume": {
     "supportstv": {
       "$ref": "Video.Resume"
      "default": false,
      "type": "boolean"
    }
  }
}
</syntaxhighlight>}}
==== PVR.Details.Recording ====
'''Extends:'''
* ''[[#Item.Details.Base|Item.Details.Base]]''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Media.Artwork|Media.Artwork]]'' art]
* [''string'' channel]
* [''integer'' channeluid]
* [''[[#Library.Id|Library.Id]]'' clientid = -1]
* [''string'' directory]
* [''string'' endtime]
* [''integer'' epgeventid]
* [''integer'' episode]
* [''string'' file]
* [''string'' genre]
* [''string'' icon]
* [''boolean'' isdeleted]
* [''integer'' lifetime]
* [''integer'' playcount]
* [''string'' plot]
* [''string'' plotoutline]
* [''boolean'' radio]
* ''[[#Library.Id|Library.Id]]'' recordingid
* [''[[#Video.Resume|Video.Resume]]'' resume]
* [''integer'' runtime]
* [''integer'' season]
* [''string'' showtitle]
* [''string'' starttime]
* [''string'' streamurl]
* [''string'' title]
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "extends": "Item.Details.Base",
  "id": "PVR.Details.Recording",
  "properties": {
    "art": {
       "$ref": "Media.Artwork"
     },
     },
     "channel": {
     "channel": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "starttime": {
     "channeluid": {
      "default": 0,
      "type": "integer"
    },
    "clientid": {
      "$ref": "Library.Id",
      "default": -1
    },
    "directory": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "endtime": {
     "endtime": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "runtime": {
     "epgeventid": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "lifetime": {
     "episode": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "icon": {
     "file": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "art": {
     "genre": {
       "$ref": "Media.Artwork"
       "default": "",
      "type": "string"
     },
     },
     "streamurl": {
     "icon": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "file": {
     "isdeleted": {
      "default": false,
      "type": "boolean"
    },
    "lifetime": {
      "default": 0,
      "type": "integer"
    },
    "playcount": {
      "default": 0,
      "type": "integer"
    },
    "plot": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "directory": {
     "plotoutline": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "radio": {
     "radio": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "isdeleted": {
     "recordingid": {
       "type": "boolean"
       "$ref": "Library.Id",
      "required": true
     },
     },
     "epgeventid": {
     "resume": {
       "type": "integer"
       "$ref": "Video.Resume"
     },
     },
     "channeluid": {
     "runtime": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "season": {
     "season": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "episode": {
     "showtitle": {
       "type": "integer"
      "default": "",
      "type": "string"
    },
    "starttime": {
      "default": "",
      "type": "string"
    },
    "streamurl": {
      "default": "",
       "type": "string"
     },
     },
     "showtitle": {
     "title": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     }
Line 13,473: Line 14,744:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' timerid
* [''[[#Library.Id|Library.Id]]'' broadcastid = -1]
* [''string'' title]
* [''[[#Library.Id|Library.Id]]'' channelid = -1]
* [''string'' summary]
* [''[[#Library.Id|Library.Id]]'' clientid = -1]
* [''[[#Library.Id|Library.Id]]'' channelid]
* [''string'' directory]
* [''boolean'' endanytime]
* [''integer'' endmargin]
* [''string'' endtime]
* [''string'' epgsearchstring]
* [''integer'' epguid]
* [''string'' file]
* [''string'' firstday]
* [''boolean'' fulltextepgsearch]
* [''boolean'' ismanual]
* [''boolean'' isradio]
* [''boolean'' isradio]
* [''boolean'' isreadonly]
* [''boolean'' isreminder]
* [''boolean'' istimerrule]
* [''boolean'' istimerrule]
* [''boolean'' ismanual]
* [''string'' starttime]
* [''string'' endtime]
* [''integer'' runtime]
* [''integer'' lifetime]
* [''integer'' lifetime]
* [''string'' firstday]
* [''integer'' maxrecordings]
* [''array'' weekdays]
* [''integer'' preventduplicateepisodes]
* [''integer'' priority]
* [''integer'' priority]
* [''integer'' recordinggroup]
* [''integer'' runtime]
* [''boolean'' startanytime]
* [''integer'' startmargin]
* [''integer'' startmargin]
* [''integer'' endmargin]
* [''string'' starttime]
* [''[[#PVR.TimerState|PVR.TimerState]]'' state]
* [''[[#PVR.TimerState|PVR.TimerState]]'' state = unknown]
* [''string'' file]
* [''string'' summary]
* [''string'' directory]
* ''[[#Library.Id|Library.Id]]'' timerid
* [''integer'' preventduplicateepisodes]
* [''string'' title]
* [''boolean'' startanytime]
* [''array'' weekdays]
* [''boolean'' endanytime]
* [''string'' epgsearchstring]
* [''boolean'' fulltextepgsearch]
* [''integer'' recordinggroup]
* [''integer'' maxrecordings]
* [''integer'' epguid]
* [''boolean'' isreadonly]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "PVR.Details.Timer",
   "properties": {
   "properties": {
     "timerid": {
     "broadcastid": {
      "$ref": "Library.Id",
      "default": -1
    },
    "channelid": {
       "$ref": "Library.Id",
       "$ref": "Library.Id",
       "required": true
       "default": -1
     },
     },
     "title": {
     "clientid": {
       "type": "string"
       "$ref": "Library.Id",
      "default": -1
     },
     },
     "summary": {
     "directory": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "channelid": {
     "endanytime": {
       "$ref": "Library.Id"
       "default": false,
    },
    "isradio": {
       "type": "boolean"
       "type": "boolean"
     },
     },
     "istimerrule": {
     "endmargin": {
       "type": "boolean"
      "default": 0,
       "type": "integer"
     },
     },
     "ismanual": {
     "endtime": {
       "type": "boolean"
       "default": "",
    },
    "starttime": {
       "type": "string"
       "type": "string"
     },
     },
     "endtime": {
     "epgsearchstring": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "runtime": {
     "epguid": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "lifetime": {
     "file": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "firstday": {
     "firstday": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "weekdays": {
     "fulltextepgsearch": {
       "type": "array",
       "default": false,
       "items": {
       "type": "boolean"
        "$ref": "Global.Weekday"
      },
      "uniqueItems": true
     },
     },
     "priority": {
     "ismanual": {
      "default": false,
      "type": "boolean"
    },
    "isradio": {
      "default": false,
      "type": "boolean"
    },
    "isreadonly": {
      "default": false,
      "type": "boolean"
    },
    "isreminder": {
      "default": false,
      "type": "boolean"
    },
    "istimerrule": {
      "default": false,
      "type": "boolean"
    },
    "lifetime": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "startmargin": {
     "maxrecordings": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "endmargin": {
     "preventduplicateepisodes": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "state": {
     "priority": {
       "$ref": "PVR.TimerState"
       "default": 0,
      "type": "integer"
     },
     },
     "file": {
     "recordinggroup": {
       "type": "string"
      "default": 0,
       "type": "integer"
     },
     },
     "directory": {
     "runtime": {
       "type": "string"
       "default": 0,
    },
    "preventduplicateepisodes": {
       "type": "integer"
       "type": "integer"
     },
     },
     "startanytime": {
     "startanytime": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "endanytime": {
     "startmargin": {
       "type": "boolean"
      "default": 0,
       "type": "integer"
     },
     },
     "epgsearchstring": {
     "starttime": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "fulltextepgsearch": {
     "state": {
       "type": "boolean"
       "$ref": "PVR.TimerState",
      "default": "unknown"
     },
     },
     "recordinggroup": {
     "summary": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "maxrecordings": {
     "timerid": {
       "type": "integer"
       "$ref": "Library.Id",
      "required": true
     },
     },
     "epguid": {
     "title": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "isreadonly": {
     "weekdays": {
       "type": "boolean"
      "items": {
        "$ref": "Global.Weekday"
      },
       "type": "array",
      "uniqueItems": true
     }
     }
   }
   }
Line 13,601: Line 14,914:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "PVR.Fields.Broadcast",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title",
       "title",
       "plot",
       "plot",
Line 13,636: Line 14,949:
       "recording",
       "recording",
       "isseries",
       "isseries",
       "isplayable"
       "isplayable",
     ]
      "clientid",
      "hasreminder"
     ],
    "type": "string"
   }
   }
}
}
Line 13,644: Line 14,960:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "PVR.Fields.Channel",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "thumbnail",
       "thumbnail",
       "channeltype",
       "channeltype",
Line 13,663: Line 14,979:
       "subchannelnumber",
       "subchannelnumber",
       "isrecording",
       "isrecording",
       "hasarchive"
       "hasarchive",
     ]
      "clientid"
    ],
     "type": "string"
  }
}
</syntaxhighlight>}}
==== PVR.Fields.Client ====
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "extends": "Item.Fields.Base",
  "id": "PVR.Fields.Client",
  "items": {
    "enums": [
      "addonid",
      "supportstv",
      "supportsradio",
      "supportsepg",
      "supportsrecordings",
      "supportstimers",
      "supportschannelgroups",
      "supportschannelscan"
    ],
    "type": "string"
   }
   }
}
}
Line 13,671: Line 15,011:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "PVR.Fields.Recording",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title",
       "title",
       "plot",
       "plot",
Line 13,699: Line 15,039:
       "season",
       "season",
       "episode",
       "episode",
       "showtitle"
       "showtitle",
     ]
      "clientid"
     ],
    "type": "string"
   }
   }
}
}
Line 13,707: Line 15,049:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "PVR.Fields.Timer",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title",
       "title",
       "summary",
       "summary",
Line 13,739: Line 15,081:
       "maxrecordings",
       "maxrecordings",
       "epguid",
       "epguid",
       "isreadonly"
       "isreadonly",
     ]
      "isreminder",
      "clientid",
      "broadcastid"
     ],
    "type": "string"
   }
   }
}
}
Line 13,747: Line 15,093:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "available",
   "enum": [
   "enums": [
     "available",
     "available",
     "recording",
     "recording",
     "scanning"
     "scanning"
   ]
   ],
  "id": "PVR.Property.Name",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,766: Line 15,114:
* [''boolean'' scanning]
* [''boolean'' scanning]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "PVR.Property.Value",
   "properties": {
   "properties": {
     "available": {
     "available": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "recording": {
     "recording": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "scanning": {
     "scanning": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,785: Line 15,137:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "unknown",
   "enum": [
   "enums": [
     "unknown",
     "unknown",
     "new",
     "new",
Line 13,800: Line 15,152:
     "error",
     "error",
     "disabled"
     "disabled"
   ]
   ],
  "id": "PVR.TimerState",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,809: Line 15,163:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''integer'' index
* ''string'' name
* ''string'' language
* ''string'' codec
* ''integer'' bitrate
* ''integer'' bitrate
* ''integer'' channels
* ''integer'' channels
* ''string'' codec
* ''integer'' index
* ''boolean'' isdefault
* ''boolean'' isdefault
* ''boolean'' isimpaired
* ''boolean'' isoriginal
* ''boolean'' isoriginal
* ''boolean'' isimpaired
* ''string'' language
* ''string'' name
* ''integer'' samplerate
* ''integer'' samplerate
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Player.Audio.Stream",
   "properties": {
   "properties": {
     "index": {
     "bitrate": {
       "type": "integer",
       "required": true,
       "minimum": 0,
       "type": "integer"
      "required": true
     },
     },
     "name": {
     "channels": {
      "type": "string",
       "required": true,
       "required": true
       "type": "integer"
    },
    "language": {
       "type": "string",
      "required": true
     },
     },
     "codec": {
     "codec": {
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     "bitrate": {
     "index": {
       "type": "integer",
       "minimum": 0,
       "required": true
       "required": true,
    },
       "type": "integer"
    "channels": {
       "type": "integer",
      "required": true
     },
     },
     "isdefault": {
     "isdefault": {
      "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
    },
    "isoriginal": {
       "type": "boolean",
      "required": true
     },
     },
     "isimpaired": {
     "isimpaired": {
       "type": "boolean",
      "required": true,
       "required": true
       "type": "boolean"
    },
    "isoriginal": {
       "required": true,
      "type": "boolean"
    },
    "language": {
      "required": true,
      "type": "string"
    },
    "name": {
      "required": true,
      "type": "string"
     },
     },
     "samplerate": {
     "samplerate": {
       "type": "integer",
       "required": true,
       "required": true
       "type": "integer"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,873: Line 15,228:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' zoom]
* [''mixed: string|[[#Optional.Boolean|Optional.Boolean]]'' nonlinearstretch]
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' pixelratio]
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' pixelratio]
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' verticalshift]
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' verticalshift]
* [''mixed: string|[[#Optional.Boolean|Optional.Boolean]]'' nonlinearstretch]
* [''mixed: string|[[#Optional.Number|Optional.Number]]'' zoom]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Player.CustomViewMode",
  "required": true,
   "properties": {
   "properties": {
     "zoom": {
     "nonlinearstretch": {
      "default": null,
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "increase",
             "increase",
             "decrease"
             "decrease"
           ],
           ],
           "required": true
           "type": "string"
         },
         },
         {
         {
           "$ref": "Optional.Number",
           "$ref": "Optional.Boolean",
          "minimum": 0.5,
           "description": "Flag to enable nonlinear stretch"
          "maximum": 2.0,
           "description": "Zoom where 1.0 means 100%",
          "required": true
         }
         }
       ]
       ]
     },
     },
     "pixelratio": {
     "pixelratio": {
      "default": null,
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "increase",
             "increase",
             "decrease"
             "decrease"
           ],
           ],
           "required": true
           "type": "string"
         },
         },
         {
         {
           "$ref": "Optional.Number",
           "$ref": "Optional.Number",
          "minimum": 0.5,
           "description": "Pixel aspect ratio where 1.0 means square pixel"
          "maximum": 2.0,
           "description": "Pixel aspect ratio where 1.0 means square pixel",
          "required": true
         }
         }
       ]
       ]
     },
     },
     "verticalshift": {
     "verticalshift": {
      "default": null,
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "increase",
             "increase",
             "decrease"
             "decrease"
           ],
           ],
           "required": true
           "type": "string"
         },
         },
         {
         {
           "$ref": "Optional.Number",
           "$ref": "Optional.Number",
          "minimum": -2.0,
           "description": "Vertical shift 1.0 means shift to bottom"
          "maximum": 2.0,
           "description": "Vertical shift 1.0 means shift to bottom",
          "required": true
         }
         }
       ]
       ]
     },
     },
     "nonlinearstretch": {
     "zoom": {
      "default": null,
       "type": [
       "type": [
         {
         {
           "type": "string",
           "enums": [
          "enum": [
             "increase",
             "increase",
             "decrease"
             "decrease"
           ],
           ],
           "required": true
           "type": "string"
         },
         },
         {
         {
           "$ref": "Optional.Boolean",
           "$ref": "Optional.Number",
           "description": "Flag to enable nonlinear stretch",
           "description": "Zoom where 1.0 means 100%"
          "required": true
         }
         }
       ]
       ]
     }
     }
   }
   },
  "required": true,
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,963: Line 15,309:
'''Type:''' ''integer''
'''Type:''' ''integer''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "integer",
   "default": -1,
  "id": "Player.Id",
  "maximum": 2,
   "minimum": 0,
   "minimum": 0,
   "maximum": 2,
   "type": "integer"
  "default": -1
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 13,979: Line 15,326:
* ''[[#Player.Notifications.Player|Player.Notifications.Player]]'' player
* ''[[#Player.Notifications.Player|Player.Notifications.Player]]'' player
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Player.Notifications.Data",
   "properties": {
   "properties": {
     "item": {
     "item": {
Line 13,991: Line 15,338:
       "required": true
       "required": true
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,002: Line 15,350:
* [''integer'' speed]
* [''integer'' speed]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Player.Notifications.Player",
   "properties": {
   "properties": {
     "playerid": {
     "playerid": {
Line 14,011: Line 15,359:
     },
     },
     "speed": {
     "speed": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,021: Line 15,371:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Global.Time|Global.Time]]'' seekoffset]
* [''[[#Global.Time|Global.Time]]'' time]
* [''[[#Global.Time|Global.Time]]'' time]
* [''[[#Global.Time|Global.Time]]'' seekoffset]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Player.Notifications.Player",
   "extends": "Player.Notifications.Player",
  "id": "Player.Notifications.Player.Seek",
   "properties": {
   "properties": {
    "seekoffset": {
      "$ref": "Global.Time",
      "description": "A duration."
    },
     "time": {
     "time": {
       "$ref": "Global.Time"
       "$ref": "Global.Time",
    },
       "description": "A duration."
    "seekoffset": {
       "$ref": "Global.Time"
     }
     }
   }
   }
Line 14,040: Line 15,393:
'''Type:''' ''number''
'''Type:''' ''number''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "number",
   "default": 0.0,
  "id": "Player.Position.Percentage",
  "maximum": 100.0,
   "minimum": 0.0,
   "minimum": 0.0,
   "maximum": 100.0
   "type": "number"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,053: Line 15,408:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''integer'' hours]
* [''integer'' hours]
* [''integer'' milliseconds]
* [''integer'' minutes]
* [''integer'' minutes]
* [''integer'' seconds]
* [''integer'' seconds]
* [''integer'' milliseconds]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "object",
   "additionalProperties": false,
   "additionalProperties": false,
  "description": "A position in duration.",
  "id": "Player.Position.Time",
   "properties": {
   "properties": {
     "hours": {
     "hours": {
       "type": "integer",
       "default": 0,
       "minimum": 0,
       "minimum": 0,
       "maximum": 23,
       "type": "integer"
      "default": 0
     },
     },
     "minutes": {
     "milliseconds": {
       "type": "integer",
       "default": 0,
      "maximum": 999,
       "minimum": 0,
       "minimum": 0,
       "maximum": 59,
      "type": "integer"
       "default": 0
    },
    "minutes": {
      "default": 0,
       "maximum": 59,
       "minimum": 0,
      "type": "integer"
     },
     },
     "seconds": {
     "seconds": {
       "type": "integer",
       "default": 0,
      "minimum": 0,
       "maximum": 59,
       "maximum": 59,
      "default": 0
    },
    "milliseconds": {
      "type": "integer",
       "minimum": 0,
       "minimum": 0,
       "maximum": 999,
       "type": "integer"
      "default": 0
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,092: Line 15,448:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "type",
   "enum": [
   "enums": [
     "type",
     "type",
     "partymode",
     "partymode",
Line 14,120: Line 15,476:
     "live",
     "live",
     "currentvideostream",
     "currentvideostream",
     "videostreams"
     "videostreams",
   ]
    "cachepercentage"
   ],
  "id": "Player.Property.Name",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,129: Line 15,488:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Player.Type|Player.Type]]'' type]
* [''array'' audiostreams]
* [''boolean'' partymode]
* [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' cachepercentage]
* [''integer'' speed]
* [''[[#Global.Time|Global.Time]]'' time]
* [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' percentage]
* [''[[#Global.Time|Global.Time]]'' totaltime]
* [''[[#Playlist.Id|Playlist.Id]]'' playlistid]
* [''[[#Playlist.Position|Playlist.Position]]'' position]
* [''[[#Player.Repeat|Player.Repeat]]'' repeat]
* [''boolean'' shuffled]
* [''boolean'' canseek]
* [''boolean'' canchangespeed]
* [''boolean'' canchangespeed]
* [''boolean'' canmove]
* [''boolean'' canmove]
* [''boolean'' canzoom]
* [''boolean'' canrepeat]
* [''boolean'' canrotate]
* [''boolean'' canrotate]
* [''boolean'' canseek]
* [''boolean'' canshuffle]
* [''boolean'' canshuffle]
* [''boolean'' canrepeat]
* [''boolean'' canzoom]
* [''[[#Player.Audio.Stream|Player.Audio.Stream]]'' currentaudiostream]
* [''[[#Player.Audio.Stream|Player.Audio.Stream]]'' currentaudiostream]
* [''array'' audiostreams]
* [''[[#Player.Subtitle|Player.Subtitle]]'' currentsubtitle]
* [''[[#Player.Video.Stream|Player.Video.Stream]]'' currentvideostream]
* [''[[#Player.Video.Stream|Player.Video.Stream]]'' currentvideostream]
* [''array'' videostreams]
* [''boolean'' live]
* [''boolean'' partymode]
* [''[[#Player.Position.Percentage|Player.Position.Percentage]]'' percentage]
* [''[[#Playlist.Id|Playlist.Id]]'' playlistid = -1]
* [''[[#Playlist.Position|Playlist.Position]]'' position = -1]
* [''[[#Player.Repeat|Player.Repeat]]'' repeat = off]
* [''boolean'' shuffled]
* [''integer'' speed]
* [''boolean'' subtitleenabled]
* [''boolean'' subtitleenabled]
* [''[[#Player.Subtitle|Player.Subtitle]]'' currentsubtitle]
* [''array'' subtitles]
* [''array'' subtitles]
* [''boolean'' live]
* [''[[#Global.Time|Global.Time]]'' time]
* [''[[#Global.Time|Global.Time]]'' totaltime]
* [''[[#Player.Type|Player.Type]]'' type = video]
* [''array'' videostreams]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Player.Property.Value",
   "properties": {
   "properties": {
     "type": {
     "audiostreams": {
       "$ref": "Player.Type"
       "items": {
    },
        "$ref": "Player.Audio.Stream"
    "partymode": {
       },
      "type": "boolean"
       "type": "array"
    },
    "speed": {
      "type": "integer"
    },
    "time": {
      "$ref": "Global.Time"
    },
    "percentage": {
      "$ref": "Player.Position.Percentage"
    },
    "totaltime": {
      "$ref": "Global.Time"
    },
    "playlistid": {
       "$ref": "Playlist.Id"
    },
    "position": {
       "$ref": "Playlist.Position"
     },
     },
     "repeat": {
     "cachepercentage": {
       "$ref": "Player.Repeat"
       "$ref": "Player.Position.Percentage",
    },
       "default": 0.0
    "shuffled": {
       "type": "boolean"
    },
    "canseek": {
      "type": "boolean"
     },
     },
     "canchangespeed": {
     "canchangespeed": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "canmove": {
     "canmove": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "canzoom": {
     "canrepeat": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "canrotate": {
     "canrotate": {
      "default": false,
      "type": "boolean"
    },
    "canseek": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "canshuffle": {
     "canshuffle": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "canrepeat": {
     "canzoom": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
Line 14,213: Line 15,560:
       "$ref": "Player.Audio.Stream"
       "$ref": "Player.Audio.Stream"
     },
     },
     "audiostreams": {
     "currentsubtitle": {
       "type": "array",
       "$ref": "Player.Subtitle"
      "items": {
        "$ref": "Player.Audio.Stream"
      }
     },
     },
     "currentvideostream": {
     "currentvideostream": {
       "$ref": "Player.Video.Stream"
       "$ref": "Player.Video.Stream"
     },
     },
     "videostreams": {
     "live": {
       "type": "array",
      "default": false,
       "items": {
       "type": "boolean"
        "$ref": "Player.Video.Stream"
    },
       }
    "partymode": {
      "default": false,
       "type": "boolean"
    },
    "percentage": {
      "$ref": "Player.Position.Percentage",
       "default": 0.0
    },
    "playlistid": {
      "$ref": "Playlist.Id",
      "default": -1
    },
    "position": {
      "$ref": "Playlist.Position",
      "default": -1
    },
    "repeat": {
      "$ref": "Player.Repeat",
      "default": "off"
    },
    "shuffled": {
      "default": false,
      "type": "boolean"
    },
    "speed": {
      "default": 0,
      "type": "integer"
     },
     },
     "subtitleenabled": {
     "subtitleenabled": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
    },
    "currentsubtitle": {
      "$ref": "Player.Subtitle"
     },
     },
     "subtitles": {
     "subtitles": {
      "type": "array",
       "items": {
       "items": {
         "$ref": "Player.Subtitle"
         "$ref": "Player.Subtitle"
       }
       },
      "type": "array"
    },
    "time": {
      "$ref": "Global.Time",
      "description": "A duration."
    },
    "totaltime": {
      "$ref": "Global.Time",
      "description": "A duration."
    },
    "type": {
      "$ref": "Player.Type",
      "default": "video"
     },
     },
     "live": {
     "videostreams": {
       "type": "boolean"
      "items": {
        "$ref": "Player.Video.Stream"
      },
       "type": "array"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,249: Line 15,633:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "off",
   "enum": [
   "enums": [
     "off",
     "off",
     "one",
     "one",
     "all"
     "all"
   ]
   ],
  "id": "Player.Repeat",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,266: Line 15,652:
* [''integer'' speed]
* [''integer'' speed]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Player.Speed",
  "required": true,
   "properties": {
   "properties": {
     "speed": {
     "speed": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     }
     }
   }
   },
  "required": true,
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,283: Line 15,671:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''integer'' index
* ''integer'' index
* ''string'' name
* ''boolean'' isdefault
* ''string'' language
* ''boolean'' isdefault
* ''boolean'' isforced
* ''boolean'' isforced
* ''boolean'' isimpaired
* ''boolean'' isimpaired
* ''string'' language
* ''string'' name
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Player.Subtitle",
   "properties": {
   "properties": {
     "index": {
     "index": {
      "type": "integer",
       "minimum": 0,
       "minimum": 0,
       "required": true
       "required": true,
    },
       "type": "integer"
    "name": {
       "type": "string",
      "required": true
    },
    "language": {
      "type": "string",
      "required": true
     },
     },
     "isdefault": {
     "isdefault": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "isforced": {
     "isforced": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "isimpaired": {
     "isimpaired": {
       "type": "boolean",
      "required": true,
       "required": true
       "type": "boolean"
    },
    "language": {
      "required": true,
      "type": "string"
    },
    "name": {
       "required": true,
      "type": "string"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,324: Line 15,713:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "video",
   "enum": [
   "enums": [
     "video",
     "video",
     "audio",
     "audio",
     "picture"
     "picture"
   ]
   ],
  "id": "Player.Type",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,339: Line 15,730:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' codec
* ''integer'' height
* ''integer'' index
* ''integer'' index
* ''string'' language
* ''string'' name
* ''string'' name
* ''string'' language
* ''string'' codec
* ''integer'' width
* ''integer'' width
* ''integer'' height
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Player.Video.Stream",
   "properties": {
   "properties": {
    "codec": {
      "required": true,
      "type": "string"
    },
    "height": {
      "required": true,
      "type": "integer"
    },
     "index": {
     "index": {
      "type": "integer",
       "minimum": 0,
       "minimum": 0,
       "required": true
       "required": true,
    },
       "type": "integer"
    "name": {
       "type": "string",
      "required": true
     },
     },
     "language": {
     "language": {
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     "codec": {
     "name": {
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     "width": {
     "width": {
      "type": "integer",
       "required": true,
       "required": true
       "type": "integer"
    },
    "height": {
       "type": "integer",
      "required": true
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,381: Line 15,773:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "normal",
   "enum": [
   "enums": [
     "normal",
     "normal",
     "zoom",
     "zoom",
Line 14,394: Line 15,786:
     "zoom120width",
     "zoom120width",
     "zoom110width"
     "zoom110width"
   ]
   ],
  "id": "Player.ViewMode",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,401: Line 15,795:
'''Type:''' ''integer''
'''Type:''' ''integer''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "integer",
   "default": -1,
  "id": "Playlist.Id",
  "maximum": 2,
   "minimum": 0,
   "minimum": 0,
   "maximum": 2,
   "type": "integer"
  "default": -1
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,412: Line 15,807:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "Playlist.Item",
   "type": [
   "type": [
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "file": {
         "file": {
          "type": "string",
           "description": "Path to a file (not a directory) to be added to the playlist",
           "description": "Path to a file (not a directory) to be added to the playlist",
           "required": true
           "required": true,
          "type": "string"
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     },
     },
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "directory": {
         "directory": {
          "type": "string",
           "required": true,
           "required": true
           "type": "string"
        },
        "recursive": {
           "type": "boolean",
          "default": false
         },
         },
         "media": {
         "media": {
           "$ref": "Files.Media",
           "$ref": "Files.Media",
           "default": "files"
           "default": "files"
        },
        "recursive": {
          "default": false,
          "type": "boolean"
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     },
     },
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "movieid": {
         "movieid": {
Line 14,452: Line 15,848:
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     },
     },
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "episodeid": {
         "episodeid": {
Line 14,462: Line 15,858:
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     },
     },
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "musicvideoid": {
         "musicvideoid": {
Line 14,472: Line 15,868:
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     },
     },
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "artistid": {
         "artistid": {
Line 14,482: Line 15,878:
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     },
     },
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "albumid": {
         "albumid": {
Line 14,492: Line 15,888:
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     },
     },
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "songid": {
         "songid": {
Line 14,502: Line 15,898:
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     },
     },
     {
     {
       "type": "object",
       "additionalProperties": false,
       "properties": {
       "properties": {
         "genreid": {
         "genreid": {
           "$ref": "Library.Id",
           "$ref": "Library.Id",
          "required": true,
           "description": "Identification of a genre from the AudioLibrary",
           "description": "Identification of a genre from the AudioLibrary"
          "required": true
         }
         }
       },
       },
       "additionalProperties": false
       "type": "object"
     }
     }
   ]
   ]
Line 14,521: Line 15,917:
'''Type:''' ''integer''
'''Type:''' ''integer''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "integer",
   "default": -1,
  "id": "Playlist.Position",
   "minimum": 0,
   "minimum": 0,
   "default": -1
   "type": "integer"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,531: Line 15,928:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "type",
   "enum": [
   "enums": [
     "type",
     "type",
     "size"
     "size"
   ]
   ],
  "id": "Playlist.Property.Name",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,545: Line 15,944:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Playlist.Type|Playlist.Type]]'' type]
* [''integer'' size]
* [''integer'' size]
* [''[[#Playlist.Type|Playlist.Type]]'' type = unknown]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Playlist.Property.Value",
   "properties": {
   "properties": {
    "size": {
      "default": 0,
      "minimum": 0,
      "type": "integer"
    },
     "type": {
     "type": {
       "$ref": "Playlist.Type"
       "$ref": "Playlist.Type",
    },
       "default": "unknown"
    "size": {
       "type": "integer",
      "minimum": 0
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,565: Line 15,967:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "unknown",
   "enum": [
   "enums": [
     "unknown",
     "unknown",
     "video",
     "video",
Line 14,574: Line 15,976:
     "picture",
     "picture",
     "mixed"
     "mixed"
   ]
   ],
  "id": "Playlist.Type",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,583: Line 15,987:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''integer'' lockmode]
* [''string'' thumbnail]
* [''string'' thumbnail]
* [''integer'' lockmode]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Details.Base",
   "extends": "Item.Details.Base",
  "id": "Profiles.Details.Profile",
   "properties": {
   "properties": {
    "lockmode": {
      "default": 0,
      "type": "integer"
    },
     "thumbnail": {
     "thumbnail": {
      "default": "",
       "type": "string"
       "type": "string"
    },
    "lockmode": {
      "type": "integer"
     }
     }
   }
   }
Line 14,602: Line 16,009:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Profiles.Fields.Profile",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "thumbnail",
       "thumbnail",
       "lockmode"
       "lockmode"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 14,619: Line 16,027:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''string'' encryption = md5]
* ''string'' value
* ''string'' value
* [''string'' encryption = md5]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Profiles.Password",
   "properties": {
   "properties": {
    "value": {
      "type": "string",
      "required": true,
      "description": "Password"
    },
     "encryption": {
     "encryption": {
       "type": "string",
       "default": "md5",
       "description": "Password Encryption",
       "description": "Password Encryption",
       "default": "md5",
       "enums": [
      "enum": [
         "none",
         "none",
         "md5"
         "md5"
       ]
       ],
      "type": "string"
    },
    "value": {
      "description": "Password",
      "required": true,
      "type": "string"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,649: Line 16,058:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''string'' help]
* ''string'' id
* ''string'' id
* ''string'' label
* ''string'' label
* [''string'' help]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Setting.Details.Base",
   "properties": {
   "properties": {
     "id": {
     "help": {
       "type": "string",
      "default": "",
       "type": "string"
    },
    "id": {
      "minLength": 1,
       "required": true,
       "required": true,
       "minLength": 1
       "type": "string"
     },
     },
     "label": {
     "label": {
      "type": "string",
       "required": true,
       "required": true
    },
    "help": {
       "type": "string"
       "type": "string"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,679: Line 16,090:
* [''array'' groups]
* [''array'' groups]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.Base",
   "extends": "Setting.Details.Base",
  "id": "Setting.Details.Category",
   "properties": {
   "properties": {
     "groups": {
     "groups": {
      "type": "array",
       "items": {
       "items": {
         "$ref": "Setting.Details.Group"
         "$ref": "Setting.Details.Group"
       },
       },
       "minItems": 1,
       "minItems": 1,
      "type": "array",
       "uniqueItems": true
       "uniqueItems": true
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,698: Line 16,110:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "Setting.Details.Control",
   "type": [
   "type": [
     {
     {
       "$ref": "Setting.Details.ControlCheckmark",
       "$ref": "Setting.Details.ControlCheckmark"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.ControlSpinner",
       "$ref": "Setting.Details.ControlSpinner"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.ControlEdit",
       "$ref": "Setting.Details.ControlEdit"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.ControlButton",
       "$ref": "Setting.Details.ControlButton"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.ControlList",
       "$ref": "Setting.Details.ControlList"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.ControlSlider",
       "$ref": "Setting.Details.ControlSlider"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.ControlRange",
       "$ref": "Setting.Details.ControlRange"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.ControlLabel",
       "$ref": "Setting.Details.ControlLabel"
      "required": true
     }
     }
   ]
   ]
Line 14,741: Line 16,146:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''boolean'' delayed
* ''string'' format
* ''string'' type
* ''string'' type
* ''string'' format
* ''boolean'' delayed
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Setting.Details.ControlBase",
   "properties": {
   "properties": {
     "type": {
     "delayed": {
       "type": "string",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "format": {
     "format": {
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     "delayed": {
     "type": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "string"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 14,771: Line 16,177:
* ''string'' type
* ''string'' type
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlHeading",
   "extends": "Setting.Details.ControlHeading",
  "id": "Setting.Details.ControlButton",
   "properties": {
   "properties": {
     "type": {
     "type": {
       "type": "string",
       "enums": [
        "button"
      ],
       "required": true,
       "required": true,
       "enum": [
       "type": "string"
        "button"
      ]
     }
     }
   }
   }
Line 14,790: Line 16,197:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' format
* ''string'' type
* ''string'' type
* ''string'' format
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlBase",
   "extends": "Setting.Details.ControlBase",
  "id": "Setting.Details.ControlCheckmark",
   "properties": {
   "properties": {
    "format": {
      "enums": [
        "boolean"
      ],
      "required": true,
      "type": "string"
    },
     "type": {
     "type": {
       "type": "string",
       "enums": [
      "required": true,
      "enum": [
         "toggle"
         "toggle"
       ]
       ],
    },
    "format": {
      "type": "string",
       "required": true,
       "required": true,
       "enum": [
       "type": "string"
        "boolean"
      ]
     }
     }
   }
   }
Line 14,819: Line 16,227:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''boolean'' hidden
* ''string'' type
* ''string'' type
* ''boolean'' hidden
* ''boolean'' verifynewvalue
* ''boolean'' verifynewvalue
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlHeading",
   "extends": "Setting.Details.ControlHeading",
  "id": "Setting.Details.ControlEdit",
   "properties": {
   "properties": {
    "hidden": {
      "required": true,
      "type": "boolean"
    },
     "type": {
     "type": {
       "type": "string",
       "enums": [
        "edit"
      ],
       "required": true,
       "required": true,
       "enum": [
       "type": "string"
        "edit"
      ]
     },
     },
     "hidden": {
     "verifynewvalue": {
      "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
    },
    "verifynewvalue": {
       "type": "boolean",
      "required": true
     }
     }
   }
   }
Line 14,852: Line 16,261:
* [''string'' heading]
* [''string'' heading]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlBase",
   "extends": "Setting.Details.ControlBase",
  "id": "Setting.Details.ControlHeading",
   "properties": {
   "properties": {
     "heading": {
     "heading": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     }
Line 14,867: Line 16,278:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' format
* ''string'' type
* ''string'' type
* ''string'' format
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlBase",
   "extends": "Setting.Details.ControlBase",
  "id": "Setting.Details.ControlLabel",
   "properties": {
   "properties": {
    "format": {
      "enums": [
        "string"
      ],
      "required": true,
      "type": "string"
    },
     "type": {
     "type": {
       "type": "string",
       "enums": [
      "required": true,
      "enum": [
         "label"
         "label"
       ]
       ],
    },
    "format": {
      "type": "string",
       "required": true,
       "required": true,
       "enum": [
       "type": "string"
        "string"
      ]
     }
     }
   }
   }
Line 14,896: Line 16,308:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''boolean'' multiselect
* ''string'' type
* ''string'' type
* ''boolean'' multiselect
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlHeading",
   "extends": "Setting.Details.ControlHeading",
  "id": "Setting.Details.ControlList",
   "properties": {
   "properties": {
    "multiselect": {
      "required": true,
      "type": "boolean"
    },
     "type": {
     "type": {
       "type": "string",
       "enums": [
        "list"
      ],
       "required": true,
       "required": true,
      "enum": [
       "type": "string"
        "list"
      ]
    },
    "multiselect": {
       "type": "boolean",
      "required": true
     }
     }
   }
   }
Line 14,922: Line 16,335:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' type
* ''string'' formatlabel
* ''string'' formatlabel
* ''string'' formatvalue
* ''string'' formatvalue
* ''string'' type
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlBase",
   "extends": "Setting.Details.ControlBase",
  "id": "Setting.Details.ControlRange",
   "properties": {
   "properties": {
     "type": {
     "formatlabel": {
      "type": "string",
       "required": true,
       "required": true,
       "enum": [
       "type": "string"
        "range"
      ]
     },
     },
     "formatlabel": {
     "formatvalue": {
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     "formatvalue": {
     "type": {
       "type": "string",
       "enums": [
       "required": true
        "range"
      ],
       "required": true,
      "type": "string"
     }
     }
   }
   }
Line 14,953: Line 16,367:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' type
* ''string'' formatlabel
* ''string'' formatlabel
* ''boolean'' popup
* ''boolean'' popup
* ''string'' type
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlHeading",
   "extends": "Setting.Details.ControlHeading",
  "id": "Setting.Details.ControlSlider",
   "properties": {
   "properties": {
     "type": {
     "formatlabel": {
      "type": "string",
       "required": true,
       "required": true,
       "enum": [
       "type": "string"
        "slider"
      ]
     },
     },
     "formatlabel": {
     "popup": {
       "type": "string",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "popup": {
     "type": {
       "type": "boolean",
       "enums": [
       "required": true
        "slider"
      ],
       "required": true,
      "type": "string"
     }
     }
   }
   }
Line 14,984: Line 16,399:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' type
* [''string'' formatlabel]
* [''string'' formatlabel]
* [''string'' minimumlabel]
* [''string'' minimumlabel]
* ''string'' type
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.ControlBase",
   "extends": "Setting.Details.ControlBase",
  "id": "Setting.Details.ControlSpinner",
   "properties": {
   "properties": {
    "type": {
      "type": "string",
      "required": true,
      "enum": [
        "spinner"
      ]
    },
     "formatlabel": {
     "formatlabel": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "minimumlabel": {
     "minimumlabel": {
      "default": "",
      "type": "string"
    },
    "type": {
      "enums": [
        "spinner"
      ],
      "required": true,
       "type": "string"
       "type": "string"
     }
     }
Line 15,016: Line 16,434:
* [''array'' settings]
* [''array'' settings]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": false,
  "id": "Setting.Details.Group",
   "properties": {
   "properties": {
     "id": {
     "id": {
       "type": "string",
       "minLength": 1,
       "required": true,
       "required": true,
       "minLength": 1
       "type": "string"
     },
     },
     "settings": {
     "settings": {
      "type": "array",
       "items": {
       "items": {
         "$ref": "Setting.Details.Setting"
         "$ref": "Setting.Details.Setting"
       },
       },
       "minItems": 1,
       "minItems": 1,
      "type": "array",
       "uniqueItems": true
       "uniqueItems": true
     }
     }
   },
   },
   "additionalProperties": false
   "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,044: Line 16,463:
* [''array'' categories]
* [''array'' categories]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.Base",
   "extends": "Setting.Details.Base",
  "id": "Setting.Details.Section",
   "properties": {
   "properties": {
     "categories": {
     "categories": {
      "type": "array",
       "items": {
       "items": {
         "$ref": "Setting.Details.Category"
         "$ref": "Setting.Details.Category"
       },
       },
       "minItems": 1,
       "minItems": 1,
      "type": "array",
       "uniqueItems": true
       "uniqueItems": true
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,063: Line 16,483:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "id": "Setting.Details.Setting",
   "type": [
   "type": [
     {
     {
       "$ref": "Setting.Details.SettingBool",
       "$ref": "Setting.Details.SettingBool"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingInt",
       "$ref": "Setting.Details.SettingInt"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingNumber",
       "$ref": "Setting.Details.SettingNumber"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingString",
       "$ref": "Setting.Details.SettingString"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingAction",
       "$ref": "Setting.Details.SettingAction"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingList",
       "$ref": "Setting.Details.SettingList"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingPath",
       "$ref": "Setting.Details.SettingPath"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingAddon",
       "$ref": "Setting.Details.SettingAddon"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingDate",
       "$ref": "Setting.Details.SettingDate"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Details.SettingTime",
       "$ref": "Setting.Details.SettingTime"
      "required": true
     }
     }
   ]
   ]
Line 15,116: Line 16,527:
* ''string'' data
* ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingBase",
   "extends": "Setting.Details.SettingBase",
  "id": "Setting.Details.SettingAction",
   "properties": {
   "properties": {
     "data": {
     "data": {
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,135: Line 16,547:
* ''[[#Addon.Types|Addon.Types]]'' addontype
* ''[[#Addon.Types|Addon.Types]]'' addontype
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingString",
   "extends": "Setting.Details.SettingString",
  "id": "Setting.Details.SettingAddon",
   "properties": {
   "properties": {
     "addontype": {
     "addontype": {
Line 15,143: Line 16,557:
       "required": true
       "required": true
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,152: Line 16,565:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Setting.Type|Setting.Type]]'' type
* [''[[#Setting.Details.Control|Setting.Details.Control]]'' control]
* ''boolean'' enabled
* ''boolean'' enabled
* ''[[#Setting.Level|Setting.Level]]'' level
* ''[[#Setting.Level|Setting.Level]]'' level
* [''string'' parent]
* [''string'' parent]
* [''[[#Setting.Details.Control|Setting.Details.Control]]'' control]
* ''[[#Setting.Type|Setting.Type]]'' type
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.Base",
   "extends": "Setting.Details.Base",
  "id": "Setting.Details.SettingBase",
   "properties": {
   "properties": {
     "type": {
     "control": {
       "$ref": "Setting.Type",
       "$ref": "Setting.Details.Control"
      "required": true
     },
     },
     "enabled": {
     "enabled": {
       "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "level": {
     "level": {
Line 15,175: Line 16,589:
     },
     },
     "parent": {
     "parent": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "control": {
     "type": {
       "$ref": "Setting.Details.Control"
       "$ref": "Setting.Type",
      "required": true
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,189: Line 16,604:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''boolean'' default
* ''boolean'' value
* ''boolean'' value
* ''boolean'' default
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingBase",
   "extends": "Setting.Details.SettingBase",
  "id": "Setting.Details.SettingBool",
   "properties": {
   "properties": {
    "default": {
      "required": true,
      "type": "boolean"
    },
     "value": {
     "value": {
      "type": "boolean",
       "required": true,
       "required": true
       "type": "boolean"
    },
    "default": {
       "type": "boolean",
      "required": true
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,211: Line 16,627:
'''Extends:'''
'''Extends:'''
* ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]''
* ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingString",
   "extends": "Setting.Details.SettingString",
   "additionalProperties": false
   "id": "Setting.Details.SettingDate"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,222: Line 16,639:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''integer'' value
* ''integer'' default
* ''integer'' default
* [''integer'' maximum]
* [''integer'' minimum]
* [''integer'' minimum]
* [''array'' options]
* [''integer'' step]
* [''integer'' step]
* [''integer'' maximum]
* ''integer'' value
* [''array'' options]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingBase",
   "extends": "Setting.Details.SettingBase",
  "id": "Setting.Details.SettingInt",
   "properties": {
   "properties": {
    "value": {
      "type": "integer",
      "required": true
    },
     "default": {
     "default": {
      "type": "integer",
       "required": true,
       "required": true
    },
    "minimum": {
       "type": "integer"
       "type": "integer"
     },
     },
     "step": {
     "maximum": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "maximum": {
     "minimum": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "options": {
     "options": {
      "type": "array",
       "items": {
       "items": {
        "type": "object",
         "properties": {
         "properties": {
           "label": {
           "label": {
             "type": "string",
             "required": true,
             "required": true
             "type": "string"
           },
           },
           "value": {
           "value": {
             "type": "integer",
             "required": true,
             "required": true
             "type": "integer"
           }
           }
         }
         },
       }
        "type": "object"
       },
      "type": "array"
    },
    "step": {
      "default": 0,
      "type": "integer"
    },
    "value": {
      "required": true,
      "type": "integer"
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,275: Line 16,696:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Setting.Value.List|Setting.Value.List]]'' value
* ''[[#Setting.Value.List|Setting.Value.List]]'' default
* ''[[#Setting.Value.List|Setting.Value.List]]'' default
* ''[[#Setting.Type|Setting.Type]]'' elementtype
* ''[[#Setting.Details.Setting|Setting.Details.Setting]]'' definition
* ''[[#Setting.Details.Setting|Setting.Details.Setting]]'' definition
* ''string'' delimiter
* ''string'' delimiter
* [''integer'' minimumItems]
* ''[[#Setting.Type|Setting.Type]]'' elementtype
* [''integer'' maximumItems]
* [''integer'' maximumitems]
* [''integer'' minimumitems]
* ''[[#Setting.Value.List|Setting.Value.List]]'' value
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingBase",
   "extends": "Setting.Details.SettingBase",
  "id": "Setting.Details.SettingList",
   "properties": {
   "properties": {
    "value": {
      "$ref": "Setting.Value.List",
      "required": true
    },
     "default": {
     "default": {
       "$ref": "Setting.Value.List",
       "$ref": "Setting.Value.List",
      "required": true
    },
    "elementtype": {
      "$ref": "Setting.Type",
       "required": true
       "required": true
     },
     },
Line 15,304: Line 16,719:
     },
     },
     "delimiter": {
     "delimiter": {
       "type": "string",
      "required": true,
       "type": "string"
    },
    "elementtype": {
      "$ref": "Setting.Type",
       "required": true
       "required": true
     },
     },
     "minimumItems": {
     "maximumitems": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "maximumItems": {
     "minimumitems": {
      "default": 0,
       "type": "integer"
       "type": "integer"
    },
    "value": {
      "$ref": "Setting.Value.List",
      "required": true
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,322: Line 16,746:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''number'' value
* ''number'' default
* ''number'' default
* ''number'' maximum
* ''number'' minimum
* ''number'' minimum
* ''number'' step
* ''number'' step
* ''number'' maximum
* ''number'' value
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingBase",
   "extends": "Setting.Details.SettingBase",
  "id": "Setting.Details.SettingNumber",
   "properties": {
   "properties": {
    "value": {
      "type": "number",
      "required": true
    },
     "default": {
     "default": {
       "type": "number",
      "required": true,
       "required": true
       "type": "number"
    },
    "maximum": {
       "required": true,
      "type": "number"
     },
     },
     "minimum": {
     "minimum": {
       "type": "number",
       "required": true,
       "required": true
       "type": "number"
     },
     },
     "step": {
     "step": {
       "type": "number",
       "required": true,
       "required": true
       "type": "number"
     },
     },
     "maximum": {
     "value": {
       "type": "number",
       "required": true,
       "required": true
       "type": "number"
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,361: Line 16,786:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''array'' sources]
* ''boolean'' writable
* ''boolean'' writable
* [''array'' sources]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingString",
   "extends": "Setting.Details.SettingString",
  "id": "Setting.Details.SettingPath",
   "properties": {
   "properties": {
    "writable": {
      "type": "boolean",
      "required": true
    },
     "sources": {
     "sources": {
      "type": "array",
       "items": {
       "items": {
         "type": "string"
         "type": "string"
       }
       },
      "type": "array"
    },
    "writable": {
      "required": true,
      "type": "boolean"
     }
     }
   },
   }
  "additionalProperties": false
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,387: Line 16,813:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''string'' value
* ''boolean'' allowempty
* ''string'' default
* ''string'' default
* ''boolean'' allowempty
* [''array'' options]
* [''array'' options]
* ''string'' value
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Setting.Details.SettingBase",
   "extends": "Setting.Details.SettingBase",
  "id": "Setting.Details.SettingString",
   "properties": {
   "properties": {
     "value": {
     "allowempty": {
       "type": "string",
       "required": true,
       "required": true
       "type": "boolean"
     },
     },
     "default": {
     "default": {
      "type": "string",
       "required": true,
       "required": true
       "type": "string"
    },
    "allowempty": {
       "type": "boolean",
      "required": true
     },
     },
     "options": {
     "options": {
      "type": "array",
       "items": {
       "items": {
        "type": "object",
         "properties": {
         "properties": {
           "label": {
           "label": {
             "type": "string",
             "required": true,
             "required": true
             "type": "string"
           },
           },
           "value": {
           "value": {
             "type": "string",
             "required": true,
             "required": true
             "type": "string"
           }
           }
         }
         },
       }
        "type": "object"
       },
      "type": "array"
    },
    "value": {
      "required": true,
      "type": "string"
     }
     }
   }
   }
Line 15,430: Line 16,857:
'''Extends:'''
'''Extends:'''
* ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]''
* ''[[#Setting.Details.SettingString|Setting.Details.SettingString]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "additionalProperties": false,
   "extends": "Setting.Details.SettingString",
   "extends": "Setting.Details.SettingString",
   "additionalProperties": false
   "id": "Setting.Details.SettingTime"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,439: Line 16,867:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "basic",
   "enum": [
   "enums": [
     "basic",
     "basic",
     "standard",
     "standard",
     "advanced",
     "advanced",
     "expert"
     "expert"
   ]
   ],
  "id": "Setting.Level",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,453: Line 16,883:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "boolean",
   "enum": [
   "enums": [
     "boolean",
     "boolean",
     "integer",
     "integer",
Line 15,467: Line 16,897:
     "date",
     "date",
     "time"
     "time"
   ]
   ],
  "id": "Setting.Type",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,473: Line 16,905:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": null,
  "id": "Setting.Value",
   "type": [
   "type": [
     {
     {
       "type": "boolean",
       "type": "boolean"
      "required": true
     },
     },
     {
     {
       "type": "integer",
       "type": "integer"
      "required": true
     },
     },
     {
     {
       "type": "number",
       "type": "number"
      "required": true
     },
     },
     {
     {
       "type": "string",
       "type": "string"
      "required": true
     }
     }
   ]
   ]
Line 15,498: Line 16,928:
'''Type:''' ''mixed''
'''Type:''' ''mixed''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "default": null,
  "id": "Setting.Value.Extended",
   "type": [
   "type": [
     {
     {
       "type": "boolean",
       "type": "boolean"
      "required": true
     },
     },
     {
     {
       "type": "integer",
       "type": "integer"
      "required": true
     },
     },
     {
     {
       "type": "number",
       "type": "number"
      "required": true
     },
     },
     {
     {
       "type": "string",
       "type": "string"
      "required": true
     },
     },
     {
     {
       "$ref": "Setting.Value.List",
       "$ref": "Setting.Value.List"
      "required": true
     }
     }
   ]
   ]
Line 15,527: Line 16,954:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "Setting.Value.List",
   "items": {
   "items": {
     "$ref": "Setting.Value"
     "$ref": "Setting.Value"
   }
   },
  "type": "array"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,539: Line 16,967:
'''Type:''' ''string''
'''Type:''' ''string''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "string",
   "default": "canshutdown",
   "enum": [
   "enums": [
     "canshutdown",
     "canshutdown",
     "cansuspend",
     "cansuspend",
     "canhibernate",
     "canhibernate",
     "canreboot"
     "canreboot"
   ]
   ],
  "id": "System.Property.Name",
  "type": "string"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,555: Line 16,985:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''boolean'' canhibernate]
* [''boolean'' canreboot]
* [''boolean'' canshutdown]
* [''boolean'' canshutdown]
* [''boolean'' cansuspend]
* [''boolean'' cansuspend]
* [''boolean'' canhibernate]
* [''boolean'' canreboot]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "System.Property.Value",
   "properties": {
   "properties": {
     "canshutdown": {
     "canhibernate": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "cansuspend": {
     "canreboot": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "canhibernate": {
     "canshutdown": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     },
     },
     "canreboot": {
     "cansuspend": {
      "default": false,
       "type": "boolean"
       "type": "boolean"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,585: Line 17,020:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''integer'' height]
* [''string'' lastused]
* [''integer'' size]
* [''integer'' size]
* [''integer'' usecount]
* [''integer'' width]
* [''integer'' width]
* [''integer'' height]
* [''integer'' usecount]
* [''string'' lastused]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Textures.Details.Size",
   "properties": {
   "properties": {
     "size": {
     "height": {
       "type": "integer",
       "default": 0,
       "description": "Size of the texture (1 == largest)"
       "description": "Height of texture",
      "type": "integer"
     },
     },
     "width": {
     "lastused": {
       "type": "integer",
       "default": "",
       "description": "Width of texture"
       "description": "Date of last use",
      "type": "string"
     },
     },
     "height": {
     "size": {
       "type": "integer",
       "default": 0,
       "description": "Height of texture"
       "description": "Size of the texture (1 == largest)",
      "type": "integer"
     },
     },
     "usecount": {
     "usecount": {
       "type": "integer",
       "default": 0,
       "description": "Number of uses"
       "description": "Number of uses",
      "type": "integer"
     },
     },
     "lastused": {
     "width": {
       "type": "string",
       "default": 0,
       "description": "Date of last use"
      "description": "Width of texture",
       "type": "integer"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,623: Line 17,064:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' textureid
* [''string'' url]
* [''string'' cachedurl]
* [''string'' cachedurl]
* [''string'' imagehash]
* [''string'' lasthashcheck]
* [''string'' lasthashcheck]
* [''string'' imagehash]
* [''array'' sizes]
* [''array'' sizes]
* [''[[#Library.Id|Library.Id]]'' textureid = -1]
* [''string'' url]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Textures.Details.Texture",
   "properties": {
   "properties": {
    "textureid": {
      "$ref": "Library.Id",
      "required": "true"
    },
    "url": {
      "type": "string",
      "description": "Original source URL"
    },
     "cachedurl": {
     "cachedurl": {
       "type": "string",
       "default": "",
       "description": "Cached URL on disk"
       "description": "Cached URL on disk",
    },
       "type": "string"
    "lasthashcheck": {
       "type": "string",
      "description": "Last time source was checked for changes"
     },
     },
     "imagehash": {
     "imagehash": {
       "type": "string",
       "default": "",
       "description": "Hash of image"
       "description": "Hash of image",
      "type": "string"
    },
    "lasthashcheck": {
      "default": "",
      "description": "Last time source was checked for changes",
      "type": "string"
     },
     },
     "sizes": {
     "sizes": {
      "type": "array",
       "items": {
       "items": {
         "$ref": "Textures.Details.Size"
         "$ref": "Textures.Details.Size"
       }
       },
      "type": "array"
    },
    "textureid": {
      "$ref": "Library.Id",
      "default": -1
    },
    "url": {
      "default": "",
      "description": "Original source URL",
      "type": "string"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,666: Line 17,112:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Textures.Fields.Texture",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "url",
       "url",
       "cachedurl",
       "cachedurl",
Line 15,677: Line 17,123:
       "imagehash",
       "imagehash",
       "sizes"
       "sizes"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 15,685: Line 17,132:
'''Type:''' ''array''
'''Type:''' ''array''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "array",
   "id": "Video.Cast",
   "items": {
   "items": {
     "type": "object",
     "additionalProperties": false,
     "properties": {
     "properties": {
       "name": {
       "name": {
         "type": "string",
        "required": true,
         "required": true
         "type": "string"
      },
      "order": {
         "required": true,
        "type": "integer"
       },
       },
       "role": {
       "role": {
        "type": "string",
         "required": true,
         "required": true
         "type": "string"
      },
      "order": {
         "type": "integer",
        "required": true
       },
       },
       "thumbnail": {
       "thumbnail": {
        "default": "",
         "type": "string"
         "type": "string"
       }
       }
     },
     },
     "additionalProperties": false
     "type": "object"
   }
   },
  "type": "array"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 15,716: Line 17,165:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Media.Artwork|Media.Artwork]]'' art]
* [''integer'' playcount]
* [''integer'' playcount]
* [''[[#Media.Artwork|Media.Artwork]]'' art]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Media.Details.Base",
   "extends": "Media.Details.Base",
  "id": "Video.Details.Base",
   "properties": {
   "properties": {
    "art": {
      "$ref": "Media.Artwork"
    },
     "playcount": {
     "playcount": {
      "default": 0,
       "type": "integer"
       "type": "integer"
    },
    "art": {
      "$ref": "Media.Artwork"
     }
     }
   }
   }
Line 15,737: Line 17,188:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Video.Cast|Video.Cast]]'' cast]
* [''integer'' episode]
* ''[[#Library.Id|Library.Id]]'' episodeid
* ''[[#Library.Id|Library.Id]]'' episodeid
* [''string'' votes]
* [''number'' rating]
* [''[[#Array.String|Array.String]]'' writer]
* [''string'' firstaired]
* [''string'' firstaired]
* [''string'' originaltitle]
* [''string'' productioncode]
* [''string'' productioncode]
* [''number'' rating]
* [''any'' ratings]
* [''integer'' season]
* [''integer'' season]
* [''integer'' episode]
* [''[[#Library.Id|Library.Id]]'' seasonid = -1]
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
* [''string'' originaltitle]
* [''string'' showtitle]
* [''string'' showtitle]
* [''[[#Video.Cast|Video.Cast]]'' cast]
* [''integer'' specialsortepisode]
* [''[[#Library.Id|Library.Id]]'' tvshowid]
* [''integer'' specialsortseason]
* [''integer'' specialsortseason]
* [''integer'' specialsortepisode]
* [''[[#Library.Id|Library.Id]]'' tvshowid = -1]
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
* [''integer'' userrating]
* [''integer'' userrating]
* [''[[#Library.Id|Library.Id]]'' seasonid]
* [''string'' votes]
* [''Video.Ratings'' ratings]
* [''[[#Array.String|Array.String]]'' writer]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.File",
   "extends": "Video.Details.File",
  "id": "Video.Details.Episode",
   "properties": {
   "properties": {
    "cast": {
      "$ref": "Video.Cast"
    },
    "episode": {
      "default": 0,
      "type": "integer"
    },
     "episodeid": {
     "episodeid": {
       "$ref": "Library.Id",
       "$ref": "Library.Id",
       "required": true
       "required": true
     },
     },
     "votes": {
     "firstaired": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "rating": {
     "originaltitle": {
       "type": "number"
      "default": "",
       "type": "string"
     },
     },
     "writer": {
     "productioncode": {
       "$ref": "Array.String"
       "default": "",
      "type": "string"
     },
     },
     "firstaired": {
     "rating": {
       "type": "string"
      "default": 0.0,
       "type": "number"
     },
     },
     "productioncode": {
     "ratings": {
       "type": "string"
      "default": null,
       "type": "any"
     },
     },
     "season": {
     "season": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "episode": {
     "seasonid": {
      "type": "integer"
       "$ref": "Library.Id",
    },
       "default": -1
    "uniqueid": {
       "$ref": "Media.UniqueID"
    },
    "originaltitle": {
       "type": "string"
     },
     },
     "showtitle": {
     "showtitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "cast": {
     "specialsortepisode": {
       "$ref": "Video.Cast"
       "default": 0,
    },
       "type": "integer"
    "tvshowid": {
       "$ref": "Library.Id"
     },
     },
     "specialsortseason": {
     "specialsortseason": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "specialsortepisode": {
     "tvshowid": {
       "type": "integer"
       "$ref": "Library.Id",
      "default": -1
    },
    "uniqueid": {
      "$ref": "Media.UniqueID"
     },
     },
     "userrating": {
     "userrating": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "seasonid": {
     "votes": {
       "$ref": "Library.Id"
       "default": "",
      "type": "string"
     },
     },
     "ratings": {
     "writer": {
       "type": "Video.Ratings"
       "$ref": "Array.String"
     }
     }
   }
   }
Line 15,823: Line 17,289:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''[[#Array.String|Array.String]]'' director]
* [''[[#Video.Resume|Video.Resume]]'' resume]
* [''integer'' runtime]
* [''integer'' runtime]
* [''[[#Array.String|Array.String]]'' director]
* [''[[#Video.Streams|Video.Streams]]'' streamdetails]
* [''[[#Video.Streams|Video.Streams]]'' streamdetails]
* [''[[#Video.Resume|Video.Resume]]'' resume]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.Item",
   "extends": "Video.Details.Item",
  "id": "Video.Details.File",
   "properties": {
   "properties": {
    "runtime": {
      "type": "integer",
      "description": "Runtime in seconds"
    },
     "director": {
     "director": {
       "$ref": "Array.String"
       "$ref": "Array.String"
    },
    "resume": {
      "$ref": "Video.Resume"
    },
    "runtime": {
      "default": 0,
      "description": "Runtime in seconds",
      "type": "integer"
     },
     },
     "streamdetails": {
     "streamdetails": {
       "$ref": "Video.Streams"
       "$ref": "Video.Streams"
    },
    "resume": {
      "$ref": "Video.Resume"
     }
     }
   }
   }
Line 15,853: Line 17,321:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''string'' dateadded]
* [''string'' file]
* [''string'' file]
* [''string'' lastplayed]
* [''string'' plot]
* [''string'' plot]
* [''string'' lastplayed]
* [''string'' dateadded]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.Media",
   "extends": "Video.Details.Media",
  "id": "Video.Details.Item",
   "properties": {
   "properties": {
     "file": {
     "dateadded": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "plot": {
     "file": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "lastplayed": {
     "lastplayed": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "dateadded": {
     "plot": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     }
Line 15,884: Line 17,357:
* [''string'' title]
* [''string'' title]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.Base",
   "extends": "Video.Details.Base",
  "id": "Video.Details.Media",
   "properties": {
   "properties": {
     "title": {
     "title": {
      "default": "",
       "type": "string"
       "type": "string"
     }
     }
Line 15,899: Line 17,374:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' movieid
* [''[[#Array.String|Array.String]]'' genre]
* [''integer'' year]
* [''number'' rating]
* [''string'' trailer]
* [''string'' tagline]
* [''string'' plotoutline]
* [''string'' originaltitle]
* [''string'' sorttitle]
* [''[[#Array.String|Array.String]]'' writer]
* [''[[#Array.String|Array.String]]'' studio]
* [''string'' mpaa]
* [''[[#Video.Cast|Video.Cast]]'' cast]
* [''[[#Video.Cast|Video.Cast]]'' cast]
* [''[[#Array.String|Array.String]]'' country]
* [''[[#Array.String|Array.String]]'' country]
* [''[[#Array.String|Array.String]]'' genre]
* [''string'' imdbnumber]
* [''string'' imdbnumber]
* ''[[#Library.Id|Library.Id]]'' movieid
* [''string'' mpaa]
* [''string'' originaltitle]
* [''string'' plotoutline]
* [''string'' premiered]
* [''number'' rating]
* [''any'' ratings]
* [''string'' set]
* [''string'' set]
* [''[[#Library.Id|Library.Id]]'' setid = -1]
* [''[[#Array.String|Array.String]]'' showlink]
* [''[[#Array.String|Array.String]]'' showlink]
* [''string'' sorttitle]
* [''[[#Array.String|Array.String]]'' studio]
* [''[[#Array.String|Array.String]]'' tag]
* [''string'' tagline]
* [''integer'' top250]
* [''integer'' top250]
* [''string'' trailer]
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
* [''integer'' userrating]
* [''string'' votes]
* [''string'' votes]
* [''[[#Library.Id|Library.Id]]'' setid]
* [''[[#Array.String|Array.String]]'' writer]
* [''[[#Array.String|Array.String]]'' tag]
* [''integer'' year]
* [''integer'' userrating]
* [''Video.Ratings'' ratings]
* [''string'' premiered]
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.File",
   "extends": "Video.Details.File",
  "id": "Video.Details.Movie",
   "properties": {
   "properties": {
     "movieid": {
     "cast": {
       "$ref": "Library.Id",
       "$ref": "Video.Cast"
       "required": true
    },
    "country": {
       "$ref": "Array.String"
     },
     },
     "genre": {
     "genre": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "year": {
     "imdbnumber": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "rating": {
     "movieid": {
       "type": "number"
       "$ref": "Library.Id",
      "required": true
     },
     },
     "trailer": {
     "mpaa": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "tagline": {
     "originaltitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "plotoutline": {
     "plotoutline": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "originaltitle": {
     "premiered": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "sorttitle": {
     "rating": {
       "type": "string"
      "default": 0.0,
       "type": "number"
     },
     },
     "writer": {
     "ratings": {
       "$ref": "Array.String"
       "default": null,
      "type": "any"
     },
     },
     "studio": {
     "set": {
       "$ref": "Array.String"
       "default": "",
    },
    "mpaa": {
       "type": "string"
       "type": "string"
     },
     },
     "cast": {
     "setid": {
       "$ref": "Video.Cast"
       "$ref": "Library.Id",
      "default": -1
     },
     },
     "country": {
     "showlink": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "imdbnumber": {
     "sorttitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "set": {
     "studio": {
       "type": "string"
       "$ref": "Array.String"
     },
     },
     "showlink": {
     "tag": {
       "$ref": "Array.String"
       "$ref": "Array.String"
    },
    "tagline": {
      "default": "",
      "type": "string"
     },
     },
     "top250": {
     "top250": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "votes": {
     "trailer": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "setid": {
     "uniqueid": {
       "$ref": "Library.Id"
       "$ref": "Media.UniqueID"
    },
    "tag": {
      "$ref": "Array.String"
     },
     },
     "userrating": {
     "userrating": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "ratings": {
     "votes": {
       "type": "Video.Ratings"
      "default": "",
       "type": "string"
     },
     },
     "premiered": {
     "writer": {
       "type": "string"
       "$ref": "Array.String"
     },
     },
     "uniqueid": {
     "year": {
       "$ref": "Media.UniqueID"
       "default": 0,
      "type": "integer"
     }
     }
   }
   }
Line 16,013: Line 17,505:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''string'' plot]
* ''[[#Library.Id|Library.Id]]'' setid
* ''[[#Library.Id|Library.Id]]'' setid
* [''string'' plot]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.Media",
   "extends": "Video.Details.Media",
  "id": "Video.Details.MovieSet",
   "properties": {
   "properties": {
    "plot": {
      "default": "",
      "type": "string"
    },
     "setid": {
     "setid": {
       "$ref": "Library.Id",
       "$ref": "Library.Id",
       "required": true
       "required": true
    },
    "plot": {
      "type": "string"
     }
     }
   }
   }
Line 16,038: Line 17,532:
* [''array'' movies]
* [''array'' movies]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.MovieSet",
   "extends": "Video.Details.MovieSet",
  "id": "Video.Details.MovieSet.Extended",
   "properties": {
   "properties": {
     "limits": {
     "limits": {
Line 16,047: Line 17,542:
     },
     },
     "movies": {
     "movies": {
      "type": "array",
       "items": {
       "items": {
         "$ref": "Video.Details.Movie"
         "$ref": "Video.Details.Movie"
       }
       },
      "type": "array"
     }
     }
   }
   }
Line 16,060: Line 17,555:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' musicvideoid
* [''[[#Array.String|Array.String]]'' studio]
* [''integer'' year]
* [''string'' album]
* [''string'' album]
* [''[[#Array.String|Array.String]]'' artist]
* [''[[#Array.String|Array.String]]'' artist]
* [''[[#Array.String|Array.String]]'' genre]
* [''[[#Array.String|Array.String]]'' genre]
* ''[[#Library.Id|Library.Id]]'' musicvideoid
* [''string'' premiered]
* [''number'' rating]
* [''[[#Array.String|Array.String]]'' studio]
* [''[[#Array.String|Array.String]]'' tag]
* [''integer'' track]
* [''integer'' track]
* [''[[#Array.String|Array.String]]'' tag]
* [''number'' rating]
* [''integer'' userrating]
* [''integer'' userrating]
* [''string'' premiered]
* [''integer'' year]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.File",
   "extends": "Video.Details.File",
  "id": "Video.Details.MusicVideo",
   "properties": {
   "properties": {
     "musicvideoid": {
     "album": {
       "$ref": "Library.Id",
       "default": "",
       "required": true
       "type": "string"
     },
     },
     "studio": {
     "artist": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "year": {
     "genre": {
       "type": "integer"
       "$ref": "Array.String"
    },
    "musicvideoid": {
      "$ref": "Library.Id",
      "required": true
     },
     },
     "album": {
     "premiered": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "artist": {
     "rating": {
      "default": 0.0,
      "type": "number"
    },
    "studio": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "genre": {
     "tag": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "track": {
     "track": {
      "default": 0,
       "type": "integer"
       "type": "integer"
    },
    "tag": {
      "$ref": "Array.String"
    },
    "rating": {
      "type": "number"
     },
     },
     "userrating": {
     "userrating": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "premiered": {
     "year": {
       "type": "string"
      "default": 0,
       "type": "integer"
     }
     }
   }
   }
Line 16,118: Line 17,620:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''integer'' episode]
* ''integer'' season
* ''[[#Library.Id|Library.Id]]'' seasonid
* ''[[#Library.Id|Library.Id]]'' seasonid
* ''integer'' season
* [''string'' showtitle]
* [''string'' showtitle]
* [''integer'' episode]
* [''string'' title]
* [''[[#Library.Id|Library.Id]]'' tvshowid = -1]
* [''integer'' userrating]
* [''integer'' watchedepisodes]
* [''integer'' watchedepisodes]
* [''[[#Library.Id|Library.Id]]'' tvshowid]
* [''integer'' userrating]
* [''string'' title]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.Base",
   "extends": "Video.Details.Base",
  "id": "Video.Details.Season",
   "properties": {
   "properties": {
    "episode": {
      "default": 0,
      "type": "integer"
    },
    "season": {
      "required": true,
      "type": "integer"
    },
     "seasonid": {
     "seasonid": {
       "$ref": "Library.Id",
       "$ref": "Library.Id",
      "required": true
    },
    "season": {
      "type": "integer",
       "required": true
       "required": true
     },
     },
     "showtitle": {
     "showtitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "episode": {
     "title": {
       "type": "integer"
       "default": "",
    },
       "type": "string"
    "watchedepisodes": {
       "type": "integer"
     },
     },
     "tvshowid": {
     "tvshowid": {
       "$ref": "Library.Id"
       "$ref": "Library.Id",
      "default": -1
     },
     },
     "userrating": {
     "userrating": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "title": {
     "watchedepisodes": {
       "type": "string"
      "default": 0,
       "type": "integer"
     }
     }
   }
   }
Line 16,165: Line 17,674:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* ''[[#Library.Id|Library.Id]]'' tvshowid
* [''[[#Video.Cast|Video.Cast]]'' cast]
* [''integer'' episode]
* [''string'' episodeguide]
* [''[[#Array.String|Array.String]]'' genre]
* [''[[#Array.String|Array.String]]'' genre]
* [''integer'' year]
* [''string'' imdbnumber]
* [''number'' rating]
* [''string'' mpaa]
* [''string'' originaltitle]
* [''string'' originaltitle]
* [''string'' sorttitle]
* [''[[#Array.String|Array.String]]'' studio]
* [''string'' mpaa]
* [''[[#Video.Cast|Video.Cast]]'' cast]
* [''integer'' episode]
* [''integer'' watchedepisodes]
* [''string'' imdbnumber]
* [''string'' premiered]
* [''string'' premiered]
* [''string'' votes]
* [''number'' rating]
* [''string'' episodeguide]
* [''any'' ratings]
* [''integer'' runtime]
* [''integer'' season]
* [''integer'' season]
* [''string'' sorttitle]
* [''string'' status]
* [''[[#Array.String|Array.String]]'' studio]
* [''[[#Array.String|Array.String]]'' tag]
* [''[[#Array.String|Array.String]]'' tag]
* ''[[#Library.Id|Library.Id]]'' tvshowid
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
* [''integer'' userrating]
* [''integer'' userrating]
* [''Video.Ratings'' ratings]
* [''string'' votes]
* [''integer'' runtime]
* [''integer'' watchedepisodes]
* [''string'' status]
* [''integer'' year]
* [''[[#Media.UniqueID|Media.UniqueID]]'' uniqueid]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Video.Details.Item",
   "extends": "Video.Details.Item",
  "id": "Video.Details.TVShow",
   "properties": {
   "properties": {
     "tvshowid": {
     "cast": {
       "$ref": "Library.Id",
       "$ref": "Video.Cast"
       "required": true
    },
    "episode": {
      "default": 0,
      "type": "integer"
    },
    "episodeguide": {
      "default": "",
       "type": "string"
     },
     },
     "genre": {
     "genre": {
       "$ref": "Array.String"
       "$ref": "Array.String"
     },
     },
     "year": {
     "imdbnumber": {
       "type": "integer"
      "default": "",
       "type": "string"
     },
     },
     "rating": {
     "mpaa": {
       "type": "number"
      "default": "",
       "type": "string"
     },
     },
     "originaltitle": {
     "originaltitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "sorttitle": {
     "premiered": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "studio": {
     "rating": {
       "$ref": "Array.String"
       "default": 0.0,
      "type": "number"
     },
     },
     "mpaa": {
     "ratings": {
       "type": "string"
      "default": null,
       "type": "any"
     },
     },
     "cast": {
     "runtime": {
       "$ref": "Video.Cast"
       "default": 0,
    },
      "description": "Runtime in seconds",
    "episode": {
       "type": "integer"
       "type": "integer"
     },
     },
     "watchedepisodes": {
     "season": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "imdbnumber": {
     "sorttitle": {
      "default": "",
       "type": "string"
       "type": "string"
     },
     },
     "premiered": {
     "status": {
      "default": "",
      "description": "Returns 'returning series', 'in production', 'planned', 'cancelled' or 'ended'",
       "type": "string"
       "type": "string"
     },
     },
     "votes": {
     "studio": {
       "type": "string"
       "$ref": "Array.String"
     },
     },
     "episodeguide": {
     "tag": {
       "type": "string"
       "$ref": "Array.String"
     },
     },
     "season": {
     "tvshowid": {
       "type": "integer"
       "$ref": "Library.Id",
      "required": true
     },
     },
     "tag": {
     "uniqueid": {
       "$ref": "Array.String"
       "$ref": "Media.UniqueID"
     },
     },
     "userrating": {
     "userrating": {
      "default": 0,
       "type": "integer"
       "type": "integer"
     },
     },
     "ratings": {
     "votes": {
       "type": "Video.Ratings"
      "default": "",
       "type": "string"
     },
     },
     "runtime": {
     "watchedepisodes": {
       "type": "integer",
       "default": 0,
       "description": "Runtime in seconds"
       "type": "integer"
     },
     },
     "status": {
     "year": {
       "type": "string",
       "default": 0,
       "description": "Returns 'returning series', 'in production', 'planned', 'cancelled' or 'ended'"
       "type": "integer"
    },
    "uniqueid": {
      "$ref": "Media.UniqueID"
     }
     }
   }
   }
Line 16,267: Line 17,793:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Video.Fields.Episode",
   "items": {
   "items": {
    "type": "string",
     "description": "Requesting the cast, ratings, streamdetails, uniqueid and/or tag field will result in increased response times",
     "description": "Requesting the cast, ratings, streamdetails, uniqueid and/or tag field will result in increased response times",
     "enum": [
     "enums": [
       "title",
       "title",
       "plot",
       "plot",
Line 16,304: Line 17,830:
       "seasonid",
       "seasonid",
       "ratings"
       "ratings"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 16,311: Line 17,838:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Video.Fields.Movie",
   "items": {
   "items": {
    "type": "string",
     "description": "Requesting the cast, ratings, showlink, streamdetails, uniqueid and/or tag field will result in increased response times",
     "description": "Requesting the cast, ratings, showlink, streamdetails, uniqueid and/or tag field will result in increased response times",
     "enum": [
     "enums": [
       "title",
       "title",
       "genre",
       "genre",
Line 16,355: Line 17,882:
       "premiered",
       "premiered",
       "uniqueid"
       "uniqueid"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 16,362: Line 17,890:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Video.Fields.MovieSet",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "title",
       "title",
       "playcount",
       "playcount",
Line 16,374: Line 17,902:
       "art",
       "art",
       "plot"
       "plot"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 16,381: Line 17,910:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Video.Fields.MusicVideo",
   "items": {
   "items": {
    "type": "string",
     "description": "Requesting the streamdetails and/or tag field will result in increased response times",
     "description": "Requesting the streamdetails and/or tag field will result in increased response times",
     "enum": [
     "enums": [
       "title",
       "title",
       "playcount",
       "playcount",
Line 16,411: Line 17,940:
       "userrating",
       "userrating",
       "premiered"
       "premiered"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 16,418: Line 17,948:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Video.Fields.Season",
   "items": {
   "items": {
     "type": "string",
     "enums": [
    "enum": [
       "season",
       "season",
       "showtitle",
       "showtitle",
Line 16,435: Line 17,965:
       "userrating",
       "userrating",
       "title"
       "title"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 16,442: Line 17,973:
'''Extends:'''
'''Extends:'''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
* ''[[#Item.Fields.Base|Item.Fields.Base]]''
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "extends": "Item.Fields.Base",
   "extends": "Item.Fields.Base",
  "id": "Video.Fields.TVShow",
   "items": {
   "items": {
    "type": "string",
     "description": "Requesting the cast, ratings, uniqueid and/or tag field will result in increased response times",
     "description": "Requesting the cast, ratings, uniqueid and/or tag field will result in increased response times",
     "enum": [
     "enums": [
       "title",
       "title",
       "genre",
       "genre",
Line 16,478: Line 18,009:
       "runtime",
       "runtime",
       "uniqueid"
       "uniqueid"
     ]
     ],
    "type": "string"
   }
   }
}
}
Line 16,487: Line 18,019:
'''Properties:'''
'''Properties:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''boolean'' default]
* ''number'' rating
* ''number'' rating
* [''integer'' votes]
* [''integer'' votes]
* [''boolean'' default]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "id": "Video.Rating",
   "properties": {
   "properties": {
    "default": {
      "default": false,
      "type": "boolean"
    },
     "rating": {
     "rating": {
       "type": "number",
       "required": true,
       "required": true
       "type": "number"
     },
     },
     "votes": {
     "votes": {
      "default": 0,
       "type": "integer"
       "type": "integer"
    },
    "default": {
      "type": "boolean"
     }
     }
   }
   },
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,511: Line 18,046:
'''Type:''' ''object''
'''Type:''' ''object''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "object",
   "additionalProperties": {
   "additionalProperties": {
     "$ref": "Video.Rating"
     "$ref": "Video.Rating"
   }
   },
  "id": "Video.Ratings",
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,522: Line 18,058:
'''Type:''' ''object''
'''Type:''' ''object''
<br />
<br />
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "object",
   "additionalProperties": {
   "additionalProperties": {
    "default": null,
     "type": [
     "type": [
      "null",
       {
       {
         "$ref": "Video.Rating",
         "type": "null"
         "required": true
      },
      {
         "$ref": "Video.Rating"
       }
       }
     ]
     ]
   }
   },
  "id": "Video.Ratings.Set",
  "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,544: Line 18,083:
* [''number'' total]
* [''number'' total]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": false,
  "id": "Video.Resume",
   "properties": {
   "properties": {
     "position": {
     "position": {
       "type": "number",
       "default": 0.0,
       "minimum": 0.0
       "minimum": 0.0,
      "type": "number"
     },
     },
     "total": {
     "total": {
       "type": "number",
       "default": 0.0,
       "minimum": 0.0
       "minimum": 0.0,
      "type": "number"
     }
     }
   },
   },
   "additionalProperties": false
   "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,566: Line 18,108:
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
* [''array'' audio]
* [''array'' audio]
* [''array'' subtitle]
* [''array'' video]
* [''array'' video]
* [''array'' subtitle]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
   "type": "object",
   "additionalProperties": false,
  "id": "Video.Streams",
   "properties": {
   "properties": {
     "audio": {
     "audio": {
      "type": "array",
      "minItems": 1,
       "items": {
       "items": {
         "type": "object",
         "additionalProperties": false,
         "properties": {
         "properties": {
          "channels": {
            "default": 0,
            "type": "integer"
          },
           "codec": {
           "codec": {
            "default": "",
             "type": "string"
             "type": "string"
           },
           },
           "language": {
           "language": {
            "default": "",
            "type": "string"
          }
        },
        "type": "object"
      },
      "minItems": 1,
      "type": "array"
    },
    "subtitle": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "language": {
            "default": "",
             "type": "string"
             "type": "string"
          },
          "channels": {
            "type": "integer"
           }
           }
         },
         },
         "additionalProperties": false
         "type": "object"
       }
       },
      "minItems": 1,
      "type": "array"
     },
     },
     "video": {
     "video": {
      "type": "array",
      "minItems": 1,
       "items": {
       "items": {
         "type": "object",
         "additionalProperties": false,
         "properties": {
         "properties": {
          "aspect": {
            "default": 0.0,
            "type": "number"
          },
           "codec": {
           "codec": {
            "default": "",
             "type": "string"
             "type": "string"
           },
           },
           "aspect": {
           "duration": {
             "type": "number"
             "default": 0,
          },
          "width": {
             "type": "integer"
             "type": "integer"
           },
           },
           "height": {
           "height": {
            "default": 0,
             "type": "integer"
             "type": "integer"
           },
           },
           "duration": {
           "width": {
            "default": 0,
             "type": "integer"
             "type": "integer"
           }
           }
         },
         },
         "additionalProperties": false
         "type": "object"
      }
       },
    },
    "subtitle": {
       "type": "array",
       "minItems": 1,
       "minItems": 1,
       "items": {
       "type": "array"
        "type": "object",
        "properties": {
          "language": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
     }
     }
   },
   },
   "additionalProperties": false
   "type": "object"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,642: Line 18,194:
# ''string'' sender
# ''string'' sender
# ''object'' data:
# ''object'' data:
#* ''boolean'' muted
#* ''integer'' volume
#* ''integer'' volume
#* ''boolean'' muted
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The volume of the application has changed.",
   "description": "The volume of the application has changed.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
        "muted": {
          "required": true,
          "type": "boolean"
        },
         "volume": {
         "volume": {
           "type": "integer",
           "maximum": 100,
           "minimum": 0,
           "minimum": 0,
          "maximum": 100,
           "required": true,
           "required": true
           "type": "integer"
        },
        "muted": {
           "type": "boolean",
          "required": true
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,684: Line 18,236:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The audio library has been cleaned.",
   "description": "The audio library has been cleaned.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,710: Line 18,262:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "An audio library clean operation has started.",
   "description": "An audio library clean operation has started.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,735: Line 18,287:
# ''string'' sender
# ''string'' sender
# [''object'' data]:
# [''object'' data]:
#* [''integer'' failcount = 0]
#* [''string'' file = ""]
#* [''string'' file = ""]
#* [''integer'' failcount = 0]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "An audio library export has finished.",
   "description": "An audio library export has finished.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": false,
       "properties": {
       "properties": {
         "file": {
         "failcount": {
           "type": "string",
           "default": 0,
          "minimum": 0,
           "required": false,
           "required": false,
           "default": ""
           "type": "integer"
         },
         },
         "failcount": {
         "file": {
           "type": "integer",
           "default": "",
          "minimum": 0,
           "required": false,
           "required": false,
           "default": 0
           "type": "string"
         }
         }
       }
       },
      "required": false,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,777: Line 18,329:
# ''object'' data:
# ''object'' data:
#* ''[[#Library.Id|Library.Id]]'' id
#* ''[[#Library.Id|Library.Id]]'' id
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
#* ''[[#Notifications.Library.Audio.Type|Notifications.Library.Audio.Type]]'' type
#* ''[[#Notifications.Library.Audio.Type|Notifications.Library.Audio.Type]]'' type
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "An audio item has been removed.",
   "description": "An audio item has been removed.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
         "id": {
         "id": {
           "$ref": "Library.Id",
           "$ref": "Library.Id",
           "required": true
           "required": true
        },
        "transaction": {
          "$ref": "Optional.Boolean",
          "description": "True if the removal is being performed within a transaction."
         },
         },
         "type": {
         "type": {
           "$ref": "Notifications.Library.Audio.Type",
           "$ref": "Notifications.Library.Audio.Type",
           "required": true
           "required": true
        },
        "transaction": {
          "$ref": "Optional.Boolean",
          "description": "True if the removal is being performed within a transaction."
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,820: Line 18,372:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Scanning the audio library has been finished.",
   "description": "Scanning the audio library has been finished.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,846: Line 18,398:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "An audio library scan has started.",
   "description": "An audio library scan has started.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,871: Line 18,423:
# ''string'' sender
# ''string'' sender
# ''object'' data:
# ''object'' data:
#* ''[[#Optional.Boolean|Optional.Boolean]]'' added
#* ''[[#Library.Id|Library.Id]]'' id
#* ''[[#Library.Id|Library.Id]]'' id
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
#* ''string'' type
#* ''string'' type
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
#* ''[[#Optional.Boolean|Optional.Boolean]]'' added
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "An audio item has been updated.",
   "description": "An audio item has been updated.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
        "added": {
          "$ref": "Optional.Boolean",
          "description": "True if the update is for a newly added item."
        },
         "id": {
         "id": {
           "$ref": "Library.Id",
           "$ref": "Library.Id",
           "required": true
           "required": true
        },
        "transaction": {
          "$ref": "Optional.Boolean",
          "description": "True if the update is being performed within a transaction."
         },
         },
         "type": {
         "type": {
          "type": "string",
          "id": "Notifications.Library.Audio.Type",
           "enum": [
           "enum": [
             "song"
             "song"
           ],
           ],
           "required": true
           "id": "Notifications.Library.Audio.Type",
        },
           "required": true,
        "transaction": {
           "type": "string"
          "$ref": "Optional.Boolean",
          "description": "True if the update is being performed within a transaction."
        },
        "added": {
           "$ref": "Optional.Boolean",
           "description": "True if the update is for a newly added item."
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,925: Line 18,477:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Energy saving/DPMS has been activated.",
   "description": "Energy saving/DPMS has been activated.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,951: Line 18,503:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Energy saving/DPMS has been deactivated.",
   "description": "Energy saving/DPMS has been deactivated.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 16,977: Line 18,529:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The screensaver has been activated.",
   "description": "The screensaver has been activated.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,004: Line 18,556:
#* ''boolean'' shuttingdown
#* ''boolean'' shuttingdown
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The screensaver has been deactivated.",
   "description": "The screensaver has been deactivated.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
         "shuttingdown": {
         "shuttingdown": {
           "type": "boolean",
           "required": true,
           "required": true
           "type": "boolean"
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,037: Line 18,589:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The user has provided the requested input.",
   "description": "The user has provided the requested input.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,062: Line 18,614:
# ''string'' sender
# ''string'' sender
# ''object'' data:
# ''object'' data:
#* ''string'' title
#* ''string'' type
#* ''string'' type
#* ''string'' value
#* ''string'' value
#* ''string'' title
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The user is requested to provide some information.",
   "description": "The user is requested to provide some information.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
        "title": {
          "type": "string"
        },
         "type": {
         "type": {
          "type": "string",
           "enum": [
           "enum": [
             "keyboard",
             "keyboard",
Line 17,093: Line 18,644:
             "seconds"
             "seconds"
           ],
           ],
           "required": true
           "required": true,
          "type": "string"
         },
         },
         "value": {
         "value": {
          "type": "string",
           "required": true,
           "required": true
        },
        "title": {
           "type": "string"
           "type": "string"
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,116: Line 18,668:
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Audio- or videostream has changed. If there is no ID available extra information will be provided.",
   "description": "Audio- or videostream has changed. If there is no ID available extra information will be provided.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "$ref": "Player.Notifications.Data",
       "name": "data",
       "name": "data",
      "$ref": "Player.Notifications.Data",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,142: Line 18,694:
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Playback of a media item has been started and first frame is available. If there is no ID available extra information will be provided.",
   "description": "Playback of a media item has been started and first frame is available. If there is no ID available extra information will be provided.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "$ref": "Player.Notifications.Data",
       "name": "data",
       "name": "data",
      "$ref": "Player.Notifications.Data",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,168: Line 18,720:
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Playback of a media item has been paused. If there is no ID available extra information will be provided.",
   "description": "Playback of a media item has been paused. If there is no ID available extra information will be provided.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "$ref": "Player.Notifications.Data",
       "name": "data",
       "name": "data",
      "$ref": "Player.Notifications.Data",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,194: Line 18,746:
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "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.",
   "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.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "$ref": "Player.Notifications.Data",
       "name": "data",
       "name": "data",
      "$ref": "Player.Notifications.Data",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,219: Line 18,771:
# ''string'' sender
# ''string'' sender
# ''object'' data:
# ''object'' data:
#* ''[[#Player.Notifications.Player|Player.Notifications.Player]]'' player
#* ''[[#Player.Property.Value|Player.Property.Value]]'' property
#* ''[[#Player.Property.Value|Player.Property.Value]]'' property
#* ''[[#Player.Notifications.Player|Player.Notifications.Player]]'' player
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "A property of the playing items has changed.",
   "description": "A property of the playing items has changed.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
        "property": {
          "$ref": "Player.Property.Value"
        },
         "player": {
         "player": {
           "$ref": "Player.Notifications.Player",
           "$ref": "Player.Notifications.Player",
           "required": true
           "required": true
        },
        "property": {
          "$ref": "Player.Property.Value"
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,257: Line 18,809:
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Playback of a media item has been resumed. If there is no ID available extra information will be provided.",
   "description": "Playback of a media item has been resumed. If there is no ID available extra information will be provided.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "$ref": "Player.Notifications.Data",
       "name": "data",
       "name": "data",
      "$ref": "Player.Notifications.Data",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,285: Line 18,837:
#* ''[[#Player.Notifications.Player.Seek|Player.Notifications.Player.Seek]]'' player
#* ''[[#Player.Notifications.Player.Seek|Player.Notifications.Player.Seek]]'' player
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The playback position has been changed. If there is no ID available extra information will be provided.",
   "description": "The playback position has been changed. If there is no ID available extra information will be provided.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
         "item": {
         "item": {
Line 17,307: Line 18,856:
           "required": true
           "required": true
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,320: Line 18,872:
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
# ''[[#Player.Notifications.Data|Player.Notifications.Data]]'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.",
   "description": "Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
      "$ref": "Player.Notifications.Data",
       "name": "data",
       "name": "data",
      "$ref": "Player.Notifications.Data",
       "required": true
       "required": true
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,345: Line 18,897:
# ''string'' sender
# ''string'' sender
# ''object'' data:
# ''object'' data:
#* ''boolean'' end
#* ''[[#Notifications.Item|Notifications.Item]]'' item
#* ''[[#Notifications.Item|Notifications.Item]]'' item
#* ''boolean'' end
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Playback of a media item has been stopped. If there is no ID available extra information will be provided.",
   "description": "Playback of a media item has been stopped. If there is no ID available extra information will be provided.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
        "end": {
          "description": "Whether the player has reached the end of the playable item(s) or not",
          "required": true,
          "type": "boolean"
        },
         "item": {
         "item": {
           "$ref": "Notifications.Item"
           "$ref": "Notifications.Item"
        },
        "end": {
          "type": "boolean",
          "required": true,
          "description": "Whether the player has reached the end of the playable item(s) or not"
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,384: Line 18,936:
# ''string'' sender
# ''string'' sender
# ''object'' data:
# ''object'' data:
#* ''[[#Notifications.Item|Notifications.Item]]'' item
#* ''[[#Playlist.Id|Playlist.Id]]'' playlistid
#* ''[[#Playlist.Id|Playlist.Id]]'' playlistid
#* ''[[#Notifications.Item|Notifications.Item]]'' item
#* ''[[#Playlist.Position|Playlist.Position]]'' position
#* ''[[#Playlist.Position|Playlist.Position]]'' position
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "A playlist item has been added.",
   "description": "A playlist item has been added.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
        "item": {
          "$ref": "Notifications.Item"
        },
         "playlistid": {
         "playlistid": {
           "$ref": "Playlist.Id",
           "$ref": "Playlist.Id",
           "required": true
           "required": true
        },
        "item": {
          "$ref": "Notifications.Item"
         },
         },
         "position": {
         "position": {
           "$ref": "Playlist.Position"
           "$ref": "Playlist.Position"
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,427: Line 18,979:
#* ''[[#Playlist.Id|Playlist.Id]]'' playlistid
#* ''[[#Playlist.Id|Playlist.Id]]'' playlistid
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "A playlist item has been cleared.",
   "description": "A playlist item has been cleared.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
         "playlistid": {
         "playlistid": {
Line 17,446: Line 18,995:
           "required": true
           "required": true
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,461: Line 19,013:
#* ''[[#Playlist.Position|Playlist.Position]]'' position
#* ''[[#Playlist.Position|Playlist.Position]]'' position
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "A playlist item has been removed.",
   "description": "A playlist item has been removed.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
         "playlistid": {
         "playlistid": {
Line 17,483: Line 19,032:
           "$ref": "Playlist.Position"
           "$ref": "Playlist.Position"
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,497: Line 19,049:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The system is on low battery.",
   "description": "The system is on low battery.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,524: Line 19,076:
#* ''integer'' exitcode
#* ''integer'' exitcode
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Kodi will be closed.",
   "description": "Kodi will be closed.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
         "exitcode": {
         "exitcode": {
          "type": "integer",
           "minimum": 0,
           "minimum": 0,
           "required": true
           "required": true,
          "type": "integer"
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,557: Line 19,109:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The system will be restarted.",
   "description": "The system will be restarted.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,583: Line 19,135:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The system will be suspended.",
   "description": "The system will be suspended.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,609: Line 19,161:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The system woke up from suspension.",
   "description": "The system woke up from suspension.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,636: Line 19,188:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The video library has been cleaned.",
   "description": "The video library has been cleaned.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,662: Line 19,214:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "A video library clean operation has started.",
   "description": "A video library clean operation has started.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,687: Line 19,239:
# ''string'' sender
# ''string'' sender
# [''object'' data]:
# [''object'' data]:
#* [''integer'' failcount = 0]
#* [''string'' file = ""]
#* [''string'' file = ""]
#* [''string'' root = ""]
#* [''string'' root = ""]
#* [''integer'' failcount = 0]
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "A video library export has finished.",
   "description": "A video library export has finished.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": false,
       "properties": {
       "properties": {
        "failcount": {
          "default": 0,
          "minimum": 0,
          "required": false,
          "type": "integer"
        },
         "file": {
         "file": {
           "type": "string",
           "default": "",
           "required": false,
           "required": false,
           "default": ""
           "type": "string"
         },
         },
         "root": {
         "root": {
           "type": "string",
           "default": "",
           "required": false,
           "required": false,
          "default": ""
           "type": "string"
        },
        "failcount": {
           "type": "integer",
          "minimum": 0,
          "required": false,
          "default": 0
         }
         }
       }
       },
      "required": false,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,735: Line 19,287:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "The video library has been refreshed and a home screen reload might be necessary.",
   "description": "The video library has been refreshed and a home screen reload might be necessary.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "required": true,
       "required": true
       "type": "null"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,761: Line 19,313:
# ''object'' data:
# ''object'' data:
#* ''[[#Library.Id|Library.Id]]'' id
#* ''[[#Library.Id|Library.Id]]'' id
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
#* ''[[#Notifications.Library.Video.Type|Notifications.Library.Video.Type]]'' type
#* ''[[#Notifications.Library.Video.Type|Notifications.Library.Video.Type]]'' type
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "A video item has been removed.",
   "description": "A video item has been removed.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
       "required": true,
       "required": true
       "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
      "type": "object",
      "required": true,
       "properties": {
       "properties": {
         "id": {
         "id": {
           "$ref": "Library.Id",
           "$ref": "Library.Id",
           "required": true
           "required": true
        },
        "transaction": {
          "$ref": "Optional.Boolean",
          "description": "True if the removal is being performed within a transaction."
         },
         },
         "type": {
         "type": {
           "$ref": "Notifications.Library.Video.Type",
           "$ref": "Notifications.Library.Video.Type",
           "required": true
           "required": true
        },
        "transaction": {
          "$ref": "Optional.Boolean",
          "description": "True if the removal is being performed within a transaction."
         }
         }
       }
       },
      "required": true,
      "type": "object"
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Line 17,804: Line 19,356:
# ''string'' data
# ''string'' data
</div>
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
{
  "type": "notification",
   "description": "Scanning the video library has been finished.",
   "description": "Scanning the video library has been finished.",
   "params": [
   "params": [
     {
     {
       "name": "sender",
       "name": "sender",
       "type": "string",
      "required": true,
       "required": true
       "type": "string"
    },
    {
      "name": "data",
       "required": true,
      "type": "null"
    }
  ],
  "returns": null,
  "type": "notification"
}
</syntaxhighlight>}}
==== VideoLibrary.OnScanStarted ====
A video library scan has started.<br />
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''string'' sender
# ''string'' data
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "A video library scan has started.",
  "params": [
    {
      "name": "sender",
      "required": true,
      "type": "string"
    },
    {
      "name": "data",
      "required": true,
      "type": "null"
    }
  ],
  "returns": null,
  "type": "notification"
}
</syntaxhighlight>}}
==== VideoLibrary.OnUpdate ====
A video item has been updated.<br />
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''string'' sender
# ''object'' data:
#* ''[[#Optional.Boolean|Optional.Boolean]]'' added
#* ''[[#Library.Id|Library.Id]]'' id
#* ''integer'' playcount = -1
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
#* ''string'' type
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight lang="json">
{
  "description": "A video item has been updated.",
  "params": [
    {
      "name": "sender",
      "required": true,
      "type": "string"
     },
     },
     {
     {
       "name": "data",
       "name": "data",
       "type": "null",
       "properties": {
      "required": true
        "added": {
    }
          "$ref": "Optional.Boolean",
  ],
          "description": "True if the update is for a newly added item."
  "returns": null
        },
}
        "id": {
</syntaxhighlight>}}
          "$ref": "Library.Id",
==== VideoLibrary.OnScanStarted ====
          "required": true
A video library scan has started.<br />
        },
'''Parameters:'''
        "playcount": {
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
          "default": -1,
# ''string'' sender
          "minimum": 0,
# ''string'' data
          "type": "integer"
</div>
        },
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
        "transaction": {
{
          "$ref": "Optional.Boolean",
  "type": "notification",
          "description": "True if the update is being performed within a transaction."
  "description": "A video library scan has started.",
        },
  "params": [
        "type": {
    {
          "enum": [
      "name": "sender",
            "movie",
      "type": "string",
            "tvshow",
      "required": true
            "episode",
    },
            "musicvideo"
    {
          ],
      "name": "data",
          "id": "Notifications.Library.Video.Type",
      "type": "null",
          "required": true,
      "required": true
          "type": "string"
    }
        }
  ],
       },
  "returns": null
}
</syntaxhighlight>}}
==== VideoLibrary.OnUpdate ====
A video item has been updated.<br />
'''Parameters:'''
<div style="margin-left: 20px; width: 60%; padding: 0px 5px 0px 5px; border-width: 1px; border-style: solid; border-color: #AAAAAA">
# ''string'' sender
# ''object'' data:
#* ''[[#Library.Id|Library.Id]]'' id
#* ''string'' type
#* ''integer'' playcount = -1
#* ''[[#Optional.Boolean|Optional.Boolean]]'' transaction
#* ''[[#Optional.Boolean|Optional.Boolean]]'' added
</div>
{{hidden|style = width: 60%;|headerstyle = background: #cccccc;|contentstyle = text-align: left; border: 0px solid #AAAAAA;|JSON Schema Description|<syntaxhighlight enclose="div">
{
  "type": "notification",
  "description": "A video item has been updated.",
  "params": [
    {
      "name": "sender",
      "type": "string",
      "required": true
    },
    {
      "name": "data",
       "type": "object",
       "required": true,
       "required": true,
       "properties": {
       "type": "object"
        "id": {
          "$ref": "Library.Id",
          "required": true
        },
        "type": {
          "type": "string",
          "id": "Notifications.Library.Video.Type",
          "enum": [
            "movie",
            "tvshow",
            "episode",
            "musicvideo"
          ],
          "required": true
        },
        "playcount": {
          "type": "integer",
          "minimum": 0,
          "default": -1
        },
        "transaction": {
          "$ref": "Optional.Boolean",
          "description": "True if the update is being performed within a transaction."
        },
        "added": {
          "$ref": "Optional.Boolean",
          "description": "True if the update is for a newly added item."
        }
      }
     }
     }
   ],
   ],
   "returns": null
   "returns": null,
  "type": "notification"
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
== See also ==
* [[JSON-RPC API]]
* [[JSON-RPC API/v4|JSON-RPC API v4 (Eden)]]
* [[JSON-RPC API/v6|JSON-RPC API v6 (Frodo - Jarvis)]]
* [[JSON-RPC API/v8|JSON-RPC API v8 (Krypton)]]
* [[JSON-RPC API/v10|JSON-RPC API v10 (Leia)]]


== External links ==
== External links ==
Line 17,922: Line 19,467:
* [http://tools.ietf.org/html/draft-zyp-json-schema-03 A JSON Media Type for Describing the Structure and Meaning of JSON Documents (Draft 03)]
* [http://tools.ietf.org/html/draft-zyp-json-schema-03 A JSON Media Type for Describing the Structure and Meaning of JSON Documents (Draft 03)]


[[Category:Development]]
{{updated|19}}
[[Category:JSON-RPC]]

Latest revision as of 22:30, 1 June 2021

JSON-RPC Pages
Main JSON-RPC Page
- v8 (Krypton)
- v10 (Leia)
- v12 (Matrix)
- v13 (Nexus)
- v14 (Omega)
Examples
All JSON-RPC Pages
Home icon grey.png   ▶ Development ▶ JSON-RPC API ▶ v12

Version 12 is the stable version of Kodi's JSON-RPC API and is published with the release of v19 (Matrix). This document has been updated to version 12.3.0. Recent changes are announced on the forum

It comes with support for WebSockets as an alternative transport for third party clients. Using WebSockets will allow webinterfaces (which are currently restricted to the HTTP transport only) to get access to a bidirectional transport with Kodi's JSON-RPC API and can therefore also profit from additional features like notifications.


JSON-RPC 2.0 compatibility

Version Method calls Notifications
(server-side)
Notifications
(client-side)
Parameters
by-name
Parameters
by-position
Batch requests
Version 6 Yes Yes Yes Yes Yes Yes

Documentation (JSON Schema)

Supported features of JSON Schema

Schema IETF Draft 03
type Yes
properties Yes
patternProperties No
additionalProperties Yes
items Yes
additionalItems Yes
required Yes
dependencies No
minimum Yes
maximum Yes
Schema IETF Draft 03
exclusiveMinimum Yes
exclusiveMaximum Yes
minItems Yes
maxItems Yes
uniqueItems Yes
pattern No
minLength Yes
maxLength Yes
enum Yes
default Yes
Schema IETF Draft 03
title No
description Yes
format No
divisibleBy Yes
disallow No
extends Yes
id Yes
$ref Yes
$schema No
Hyper Schema No

Error message

If Kodi detects a bad or missing parameter in a JSON-RPC request it returns an error object. The JSON schema description of that error object is

{
  "type": "object",
  "properties": {
    "code": { "type": "integer", "required": true },
    "message": { "type": "string", "required": true },
    "data": { "type": "object",
      "properties": {
        "method": { "type": "string", "required": true },
        "stack": { "type": "object", "id": "Error.Stack",
          "properties": {
            "name": { "type": "string", "required": true },
            "type": { "type": "string", "required": true },
            "message": { "type": "string", "required": true },
            "property": { "$ref": "Error.Stack" }
          }
        }
      }
    }
  }
}

Namespaces

The Kodi JSON-RPC API is split up into namespaces, which contain methods that can be called. These namespaces are:

Namespace Description
Addons List, enable and execute addons.
Application Application information and control.
AudioLibrary Audio Library information.
Favourites Favourites GetFavourites and AddFavourite.
Files Shares information & filesystem listings.
GUI Window properties and activation.
Input Allows limited navigation within Kodi.
JSONRPC A variety of standard JSONRPC calls.
PVR Live TV control.
Player Manages all available players.
Playlist Playlist modification.
Profiles Support for Profiles operations to Kodi.
Settings Allows manipulation of Kodi settings.
System System controls and information.
Textures Supplies GetTextures and RemoveTexture. Textures are images.
VideoLibrary Video Library information.
XBMC Dumping ground for very Kodi specific operations.

Methods

Addons

Addons.ExecuteAddon

Executes the given addon with the given parameters (if possible)
Permissions:

  • ExecuteAddon

Parameters:

  1. string addonid
  2. [mixed: object|array|string params = ""]
  3. [boolean wait = False]

Returns:

Type: string

Addons.GetAddonDetails

Gets the details of a specific addon
Permissions:

  • ReadData

Parameters:

  1. string addonid
  2. [Addon.Fields properties]

Returns:

Type: object
Properties:

  1. Addon.Details addon
  2. List.LimitsReturned limits

Addons.GetAddons

Gets all available addons
Permissions:

  • ReadData

Parameters:

  1. [Addon.Types type = unknown]
  2. [Addon.Content content = unknown] (Content provided by the addon. Only considered for plugins and scripts.)
  3. [mixed: boolean|string enabled = all]
  4. [Addon.Fields properties]
  5. [List.Limits limits]
  6. [mixed: boolean|string installed = True]

Returns:

Type: object
Properties:

  1. [array[ Addon.Details ] addons]
  2. List.LimitsReturned limits

Addons.SetAddonEnabled

Enables/Disables a specific addon
Permissions:

  • ManageAddon

Parameters:

  1. string addonid
  2. Global.Toggle enabled

Returns:

Type: string

Application

Application.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. array[ Application.Property.Name ] properties

Returns:

Type: Application.Property.Value

Application.Quit

Quit application
Permissions:

  • ControlPower

Returns:

Type: string

Application.SetMute

Toggle mute/unmute
Permissions:

  • ControlPlayback

Parameters:

  1. Global.Toggle mute

Returns:

Type: boolean (Mute state)

Application.SetVolume

Set the current volume
Permissions:

  • ControlPlayback

Parameters:

  1. mixed: integer|Global.IncrementDecrement volume

Returns:

Type: integer

AudioLibrary

AudioLibrary.Clean

Cleans the audio library from non-existent items
Permissions:

  • RemoveData

Parameters:

  1. [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)

Returns:

Type: string

AudioLibrary.Export

Exports all items from the audio library
Permissions:

  • WriteFile

Parameters:

  1. [mixed: object|object options]

Returns:

Type: string

AudioLibrary.GetAlbumDetails

Retrieve details about a specific album
Permissions:

  • ReadData

Parameters:

  1. Library.Id albumid
  2. [Audio.Fields.Album properties]

Returns:

Type: object
Properties:

  1. [Audio.Details.Album albumdetails]

AudioLibrary.GetAlbums

Retrieve all albums from specified artist (and role) or that has songs of the specified genre
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Album properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|object|object|List.Filter.Albums filter]
  5. [boolean includesingles = False]
  6. [boolean allroles = False] (Whether or not to include all roles when filtering by artist, rather than the default of excluding other contributions. When true it overrides any role filter value.)

Returns:

Type: object
Properties:

  1. [array[ Audio.Details.Album ] albums]
  2. List.LimitsReturned limits

AudioLibrary.GetArtistDetails

Retrieve details about a specific artist
Permissions:

  • ReadData

Parameters:

  1. Library.Id artistid
  2. [Audio.Fields.Artist properties]

Returns:

Type: object
Properties:

  1. [Audio.Details.Artist artistdetails]

AudioLibrary.GetArtists

Retrieve all artists. For backward compatibility by default this implicitly does not include those that only contribute other roles, however absolutely all artists can be returned using allroles=true
Permissions:

  • ReadData

Parameters:

  1. [Optional.Boolean albumartistsonly = None] (Whether or not to only include album artists rather than the artists of only individual songs as well. If the parameter is not passed or is passed as null the GUI setting will be used)
  2. [Audio.Fields.Artist properties]
  3. [List.Limits limits]
  4. [List.Sort sort]
  5. [mixed: object|object|object|object|object|object|object|object|object|object|object|object|object|object|object|List.Filter.Artists filter]
  6. [boolean allroles = False] (Whether or not to include all artists irrespective of the role they contributed. When true it overrides any role filter value.)

Returns:

Type: object
Properties:

  1. [array[ Audio.Details.Artist ] artists]
  2. List.LimitsReturned limits

AudioLibrary.GetAvailableArt

Retrieve all potential art URLs for a media item by art type
Permissions:

  • ReadData

Parameters:

  1. mixed: object|object item
  2. [string arttype = ""]

Returns:

Type: object
Properties:

  1. array availableart

AudioLibrary.GetAvailableArtTypes

Retrieve a list of potential art types for a media item
Permissions:

  • ReadData

Parameters:

  1. mixed: object|object item

Returns:

Type: object
Properties:

  1. array availablearttypes

AudioLibrary.GetGenres

Retrieve all genres
Permissions:

  • ReadData

Parameters:

  1. [Library.Fields.Genre properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. array[ Library.Details.Genre ] genres
  2. List.LimitsReturned limits

AudioLibrary.GetProperties

Retrieves the values of the music library properties
Permissions:

  • ReadData

Parameters:

  1. array[ Audio.Property.Name ] properties

Returns:

Type: Audio.Property.Value

AudioLibrary.GetRecentlyAddedAlbums

Retrieve recently added albums
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Album properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. [array[ Audio.Details.Album ] albums]
  2. List.LimitsReturned limits

AudioLibrary.GetRecentlyAddedSongs

Retrieve recently added songs
Permissions:

  • ReadData

Parameters:

  1. [List.Amount albumlimit = -1] (The amount of recently added albums from which to return the songs)
  2. [Audio.Fields.Song properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Audio.Details.Song ] songs]

AudioLibrary.GetRecentlyPlayedAlbums

Retrieve recently played albums
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Album properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. [array[ Audio.Details.Album ] albums]
  2. List.LimitsReturned limits

AudioLibrary.GetRecentlyPlayedSongs

Retrieve recently played songs
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Song properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Audio.Details.Song ] songs]

AudioLibrary.GetRoles

Retrieve all contributor roles
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Role properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. array[ Audio.Details.Role ] roles

AudioLibrary.GetSongDetails

Retrieve details about a specific song
Permissions:

  • ReadData

Parameters:

  1. Library.Id songid
  2. [Audio.Fields.Song properties]

Returns:

Type: object
Properties:

  1. [Audio.Details.Song songdetails]

AudioLibrary.GetSongs

Retrieve all songs from specified album, artist or genre
Permissions:

  • ReadData

Parameters:

  1. [Audio.Fields.Song properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|object|object|object|object|List.Filter.Songs filter]
  5. [boolean includesingles = True] (Only songs from albums are returned when false, but overridden when singlesonly parameter is true)
  6. [boolean allroles = False] (Whether or not to include all roles when filtering by artist, rather than default of excluding other contributors. When true it overrides any role filter value.)
  7. [boolean singlesonly = False] (Only singles are returned when true, and overrides includesingles parameter)

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Audio.Details.Song ] songs]

AudioLibrary.GetSources

Get all music sources, including unique ID
Permissions:

  • ReadData

Parameters:

  1. [Library.Fields.Source properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. array[ Library.Details.Source ] sources

AudioLibrary.Scan

Scans the audio sources for new library items
Permissions:

  • UpdateData

Parameters:

  1. [string directory = ""]
  2. [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)

Returns:

Type: string

AudioLibrary.SetAlbumDetails

Update the given album with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id albumid
  2. [Optional.String title = None]
  3. [mixed: null|Array.String artist = None]
  4. [Optional.String description = None]
  5. [mixed: null|Array.String genre = None]
  6. [mixed: null|Array.String theme = None]
  7. [mixed: null|Array.String mood = None]
  8. [mixed: null|Array.String style = None]
  9. [Optional.String type = None]
  10. [Optional.String albumlabel = None]
  11. [Optional.Number rating = None]
  12. [Optional.Integer year = None]
  13. [Optional.Integer userrating = None]
  14. [Optional.Integer votes = None]
  15. [Optional.String musicbrainzalbumid = None]
  16. [Optional.String musicbrainzreleasegroupid = None]
  17. [Optional.String sortartist = None]
  18. [Optional.String displayartist = None]
  19. [mixed: null|Array.String musicbrainzalbumartistid = None]
  20. [mixed: null|Media.Artwork.Set art = None]
  21. [Optional.Boolean isboxset = None]
  22. [Optional.String releasedate = None]
  23. [Optional.String originaldate = None]

Returns:

Type: string

AudioLibrary.SetArtistDetails

Update the given artist with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id artistid
  2. [Optional.String artist = None]
  3. [mixed: null|Array.String instrument = None]
  4. [mixed: null|Array.String style = None]
  5. [mixed: null|Array.String mood = None]
  6. [Optional.String born = None]
  7. [Optional.String formed = None]
  8. [Optional.String description = None]
  9. [mixed: null|Array.String genre = None]
  10. [Optional.String died = None]
  11. [Optional.String disbanded = None]
  12. [mixed: null|Array.String yearsactive = None]
  13. [Optional.String musicbrainzartistid = None]
  14. [Optional.String sortname = None]
  15. [Optional.String type = None]
  16. [Optional.String gender = None]
  17. [Optional.String disambiguation = None]
  18. [mixed: null|Media.Artwork.Set art = None]

Returns:

Type: string

AudioLibrary.SetSongDetails

Update the given song with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id songid
  2. [Optional.String title = None]
  3. [mixed: null|Array.String artist = None]
  4. [mixed: null|Array.String genre = None]
  5. [Optional.Integer year = None]
  6. [Optional.Number rating = None]
  7. [Optional.Integer track = None]
  8. [Optional.Integer disc = None]
  9. [Optional.Integer duration = None]
  10. [Optional.String comment = None]
  11. [Optional.String musicbrainztrackid = None]
  12. [Optional.String musicbrainzartistid = None]
  13. [Optional.Integer playcount = None]
  14. [Optional.String lastplayed = None]
  15. [Optional.Integer userrating = None]
  16. [Optional.Integer votes = None]
  17. [Optional.String displayartist = None]
  18. [Optional.String sortartist = None]
  19. [Optional.String mood = None]
  20. [mixed: null|Media.Artwork.Set art = None]
  21. [Optional.String disctitle = None]
  22. [Optional.String releasedate = None]
  23. [Optional.String originaldate = None]
  24. [Optional.Integer bpm = None]

Returns:

Type: string

Favourites

Favourites.AddFavourite

Add a favourite with the given details
Permissions:

  • UpdateData

Parameters:

  1. string title
  2. Favourite.Type type
  3. [Optional.String path = None] (Required for media, script and androidapp favourites types)
  4. [Optional.String window = None] (Required for window favourite type)
  5. [Optional.String windowparameter = None]
  6. [Optional.String thumbnail = None]

Returns:

Type: string

Favourites.GetFavourites

Retrieve all favourites
Permissions:

  • ReadData

Parameters:

  1. [mixed: null|Favourite.Type type = None]
  2. [Favourite.Fields.Favourite properties]

Returns:

Type: object
Properties:

  1. [array[ Favourite.Details.Favourite ] favourites]
  2. List.LimitsReturned limits

Files

Files.Download

Downloads the given file
Permissions:

  • ReadData

Parameters:

  1. string path

Returns:

Type: any

Files.GetDirectory

Get the directories and files in the given directory
Permissions:

  • ReadData

Parameters:

  1. string directory
  2. [Files.Media media = files]
  3. [List.Fields.Files properties]
  4. [List.Sort sort]
  5. [List.Limits limits] (Limits are applied after getting the directory content thus retrieval is not faster when they are applied.)

Returns:

Type: object
Properties:

  1. array[ List.Item.File ] files
  2. List.LimitsReturned limits

Files.GetFileDetails

Get details for a specific file
Permissions:

  • ReadData

Parameters:

  1. string file (Full path to the file)
  2. [Files.Media media = files]
  3. [List.Fields.Files properties]

Returns:

Type: object
Properties:

  1. List.Item.File filedetails

Files.GetSources

Get the sources of the media windows
Permissions:

  • ReadData

Parameters:

  1. Files.Media media
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. List.Items.Sources sources

Files.PrepareDownload

Provides a way to download a given file (e.g. providing an URL to the real file location)
Permissions:

  • ReadData

Parameters:

  1. string path

Returns:

Type: object
Properties:

  1. any details (Transport specific details on how/from where to download the given file)
  2. string mode (Direct mode allows using Files.Download whereas redirect mode requires the usage of a different protocol)
  3. string protocol

Files.SetFileDetails

Update the given specific file with the given details
Permissions:

  • UpdateData

Parameters:

  1. string file (Full path to the file)
  2. Files.Media media (File type to update correct database. Currently only "video" is supported.)
  3. [Optional.Integer playcount = None]
  4. [Optional.String lastplayed = None] (Setting a valid lastplayed without a playcount will force playcount to 1.)
  5. [mixed: null|Video.Resume resume = None]

Returns:

Type: string

GUI

GUI.ActivateWindow

Activates the given window
Permissions:

  • ControlGUI

Parameters:

  1. GUI.Window window
  2. [array[string] parameters]

Returns:

Type: string

GUI.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. array[ GUI.Property.Name ] properties

Returns:

Type: GUI.Property.Value

GUI.GetStereoscopicModes

Returns the supported stereoscopic modes of the GUI
Permissions:

  • ReadData

Returns:

Type: object
Properties:

  1. [array[ GUI.Stereoscopy.Mode ] stereoscopicmodes]

GUI.SetFullscreen

Toggle fullscreen/GUI
Permissions:

  • ControlGUI

Parameters:

  1. Global.Toggle fullscreen

Returns:

Type: boolean (Fullscreen state)

GUI.SetStereoscopicMode

Sets the stereoscopic mode of the GUI to the given mode
Permissions:

  • ControlGUI

Parameters:

  1. string mode

Returns:

Type: string

GUI.ShowNotification

Shows a GUI notification
Permissions:

  • ControlGUI

Parameters:

  1. string title
  2. string message
  3. [mixed: string|string image = ""]
  4. [integer displaytime = 5000] (The time in milliseconds the notification will be visible)

Returns:

Type: string

Input

Input.Back

Goes back in GUI
Permissions:

  • Navigate

Returns:

Type: string

Input.ButtonEvent

Send a button press event
Permissions:

  • Navigate

Parameters:

  1. string button (Button name)
  2. string keymap (Keymap name (KB, XG, R1, or R2))
  3. [integer holdtime = 0] (Number of milliseconds to simulate button hold.)

Returns:

Type: string

Input.ContextMenu

Shows the context menu
Permissions:

  • Navigate

Returns:

Type: string

Input.Down

Navigate down in GUI
Permissions:

  • Navigate

Returns:

Type: string

Input.ExecuteAction

Execute a specific action
Permissions:

  • Navigate

Parameters:

  1. Input.Action action

Returns:

Type: string

Input.Home

Goes to home window in GUI
Permissions:

  • Navigate

Returns:

Type: string

Input.Info

Shows the information dialog
Permissions:

  • Navigate

Returns:

Type: string

Input.Left

Navigate left in GUI
Permissions:

  • Navigate

Returns:

Type: string

Input.Right

Navigate right in GUI
Permissions:

  • Navigate

Returns:

Type: string

Input.Select

Select current item in GUI
Permissions:

  • Navigate

Returns:

Type: string

Input.SendText

Send a generic (unicode) text
Permissions:

  • Navigate

Parameters:

  1. string text (Unicode text)
  2. [boolean done = True] (Whether this is the whole input or not (closes an open input dialog if true).)

Returns:

Type: string

Input.ShowCodec

Show codec information of the playing item
Permissions:

  • Navigate

Returns:

Type: string

Input.ShowOSD

Show the on-screen display for the current player
Permissions:

  • Navigate

Returns:

Type: string

Input.ShowPlayerProcessInfo

Show player process information of the playing item, like video decoder, pixel format, pvr signal strength, ...
Permissions:

  • Navigate

Returns:

Type: string

Input.Up

Navigate up in GUI
Permissions:

  • Navigate

Returns:

Type: string

JSONRPC

JSONRPC.GetConfiguration

Get client-specific configurations
Permissions:

  • ReadData

Returns:

Type: Configuration

JSONRPC.Introspect

Enumerates all actions and descriptions
Permissions:

  • ReadData

Parameters:

  1. [boolean getdescriptions = True]
  2. [boolean getmetadata = False]
  3. [boolean filterbytransport = True]
  4. [object filter]

Returns:

Type: object

JSONRPC.NotifyAll

Notify all other connected clients
Permissions:

  • ReadData

Parameters:

  1. string sender
  2. string message
  3. [any data = None]

Returns:

Type: any

JSONRPC.Permission

Retrieve the clients permissions
Permissions:

  • ReadData

Returns:

Type: object
Properties:

  1. boolean controlgui
  2. boolean controlnotify
  3. boolean controlplayback
  4. boolean controlpower
  5. boolean controlpvr
  6. boolean controlsystem
  7. boolean executeaddon
  8. boolean manageaddon
  9. boolean navigate
  10. boolean readdata
  11. boolean removedata
  12. boolean updatedata
  13. boolean writefile

JSONRPC.Ping

Ping responder
Permissions:

  • ReadData

Returns:

Type: string

JSONRPC.SetConfiguration

Change the client-specific configuration
Permissions:

  • ControlNotify

Parameters:

  1. [object notifications]

Returns:

Type: Configuration

JSONRPC.Version

Retrieve the JSON-RPC protocol version.
Permissions:

  • ReadData

Returns:

Type: object
Properties:

  1. object version

PVR

PVR.AddTimer

Adds a timer to record the given show one times or a timer rule to record all showings of the given show or adds a reminder timer or reminder timer rule
Permissions:

  • ControlPVR

Parameters:

  1. Library.Id broadcastid (the broadcast id of the item to record)
  2. [boolean timerrule = False] (controls whether to create a timer rule or a onetime timer)
  3. [boolean reminder = False] (controls whether to create a reminder timer or a recording timer)

Returns:

Type: string

PVR.DeleteTimer

Deletes a onetime timer or a timer rule
Permissions:

  • ControlPVR

Parameters:

  1. Library.Id timerid (the id of the onetime timer or timer rule to delete)

Returns:

Type: string

PVR.GetBroadcastDetails

Retrieves the details of a specific broadcast
Permissions:

  • ReadData

Parameters:

  1. Library.Id broadcastid
  2. [PVR.Fields.Broadcast properties]

Returns:

Type: object
Properties:

  1. [PVR.Details.Broadcast broadcastdetails]

PVR.GetBroadcastIsPlayable

Retrieves whether or not a broadcast is playable
Permissions:

  • ReadData

Parameters:

  1. Library.Id broadcastid (the id of the broadcast to to check for playability)

Returns:

Type: boolean

PVR.GetBroadcasts

Retrieves the program of a specific channel
Permissions:

  • ReadData

Parameters:

  1. Library.Id channelid
  2. [PVR.Fields.Broadcast properties]
  3. [List.Limits limits]

Returns:

Type: object
Properties:

  1. array[ PVR.Details.Broadcast ] broadcasts
  2. List.LimitsReturned limits

PVR.GetChannelDetails

Retrieves the details of a specific channel
Permissions:

  • ReadData

Parameters:

  1. Library.Id channelid
  2. [PVR.Fields.Channel properties]

Returns:

Type: object
Properties:

  1. [PVR.Details.Channel channeldetails]

PVR.GetChannelGroupDetails

Retrieves the details of a specific channel group
Permissions:

  • ReadData

Parameters:

  1. PVR.ChannelGroup.Id channelgroupid
  2. [object channels]

Returns:

Type: object
Properties:

  1. [PVR.Details.ChannelGroup.Extended channelgroupdetails]

PVR.GetChannelGroups

Retrieves the channel groups for the specified type
Permissions:

  • ReadData

Parameters:

  1. PVR.Channel.Type channeltype
  2. [List.Limits limits]

Returns:

Type: object
Properties:

  1. array[ PVR.Details.ChannelGroup ] channelgroups
  2. List.LimitsReturned limits

PVR.GetChannels

Retrieves the channel list
Permissions:

  • ReadData

Parameters:

  1. PVR.ChannelGroup.Id channelgroupid
  2. [PVR.Fields.Channel properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. array[ PVR.Details.Channel ] channels
  2. List.LimitsReturned limits

PVR.GetClients

Retrieves the enabled PVR clients and their capabilities
Permissions:

  • ReadData

Parameters:

  1. [List.Limits limits]

Returns:

Type: object
Properties:

  1. array[ PVR.Details.Client ] clients
  2. List.LimitsReturned limits

PVR.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. array[ PVR.Property.Name ] properties

Returns:

Type: PVR.Property.Value

PVR.GetRecordingDetails

Retrieves the details of a specific recording
Permissions:

  • ReadData

Parameters:

  1. Library.Id recordingid
  2. [PVR.Fields.Recording properties]

Returns:

Type: object
Properties:

  1. [PVR.Details.Recording recordingdetails]

PVR.GetRecordings

Retrieves the recordings
Permissions:

  • ReadData

Parameters:

  1. [PVR.Fields.Recording properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. array[ PVR.Details.Recording ] recordings

PVR.GetTimerDetails

Retrieves the details of a specific timer
Permissions:

  • ReadData

Parameters:

  1. Library.Id timerid
  2. [PVR.Fields.Timer properties]

Returns:

Type: object
Properties:

  1. [PVR.Details.Timer timerdetails]

PVR.GetTimers

Retrieves the timers
Permissions:

  • ReadData

Parameters:

  1. [PVR.Fields.Timer properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. array[ PVR.Details.Timer ] timers

PVR.Record

Toggle recording of a channel
Permissions:

  • ControlPVR

Parameters:

  1. [Global.Toggle record = toggle]
  2. [mixed: string|Library.Id channel = current]

Returns:

Type: string

PVR.Scan

Starts a channel scan
Permissions:

  • ControlPVR

Parameters:

  1. [Library.Id clientid = -1] (Specify a PVR client id to avoid UI dialog, optional in kodi 19, required in kodi 20)

Returns:

Type: string

PVR.ToggleTimer

Creates or deletes a onetime timer or timer rule for a given show. If it exists, it will be deleted. If it does not exist, it will be created
Permissions:

  • ControlPVR

Parameters:

  1. Library.Id broadcastid (the broadcast id of the item to toggle a onetime timer or time rule for)
  2. [boolean timerrule = False] (controls whether to create / delete a timer rule or a onetime timer)

Returns:

Type: string

Player

Player.AddSubtitle

Add subtitle to the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. string subtitle (Local path or remote URL to the subtitle file to load)

Returns:

Type: string

Player.GetActivePlayers

Returns all active players
Permissions:

  • ReadData

Returns:

Type: array

Player.GetItem

Retrieves the currently played item
Permissions:

  • ReadData

Parameters:

  1. Player.Id playerid
  2. [List.Fields.All properties]

Returns:

Type: object
Properties:

  1. List.Item.All item

Player.GetPlayers

Get a list of available players
Permissions:

  • ReadData

Parameters:

  1. [string media = all]

Returns:

Type: array

Player.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. Player.Id playerid
  2. array[ Player.Property.Name ] properties

Returns:

Type: Player.Property.Value

Player.GetViewMode

Get view mode of video player
Permissions:

  • ReadData

Returns:

Type: object
Properties:

  1. boolean nonlinearstretch
  2. number pixelratio
  3. number verticalshift
  4. Player.ViewMode viewmode
  5. number zoom

Player.GoTo

Go to previous/next/specific item in the playlist
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|Playlist.Position to

Returns:

Type: string

Player.Move

If picture is zoomed move viewport left/right/up/down otherwise skip previous/next
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. string direction

Returns:

Type: string

Player.Open

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.
Permissions:

  • ControlPlayback

Parameters:

  1. [mixed: object|Playlist.Item|object|object|object|object|object item]
  2. [object options]

Returns:

Type: string

Player.PlayPause

Pauses or unpause playback and returns the new state
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. [Global.Toggle play = toggle]

Returns:

Type: Player.Speed

Player.Rotate

Rotates current picture
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. [string value = clockwise]

Returns:

Type: string

Player.Seek

Seek through the playing item
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: object|object|object|object value

Returns:

Type: object
Properties:

  1. [Player.Position.Percentage percentage]
  2. [Global.Time time] (A duration.)
  3. [Global.Time totaltime] (A duration.)

Player.SetAudioStream

Set the audio stream played by the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|integer stream

Returns:

Type: string

Player.SetPartymode

Turn partymode on or off
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. Global.Toggle partymode

Returns:

Type: string

Player.SetRepeat

Set the repeat mode of the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: Player.Repeat|string repeat

Returns:

Type: string

Player.SetShuffle

Shuffle/Unshuffle items in the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. Global.Toggle shuffle

Returns:

Type: string

Player.SetSpeed

Set the speed of the current playback
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: integer|Global.IncrementDecrement speed

Returns:

Type: Player.Speed

Player.SetSubtitle

Set the subtitle displayed by the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|integer subtitle
  3. [boolean enable = False] (Whether to enable subtitles to be displayed after setting the new subtitle)

Returns:

Type: string

Player.SetVideoStream

Set the video stream played by the player
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|integer stream

Returns:

Type: string

Player.SetViewMode

Set view mode of video player
Permissions:

  • ControlPlayback

Parameters:

  1. mixed: Player.CustomViewMode|Player.ViewMode viewmode

Returns:

Type: string

Player.Stop

Stops playback
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid

Returns:

Type: string

Player.Zoom

Zoom current picture
Permissions:

  • ControlPlayback

Parameters:

  1. Player.Id playerid
  2. mixed: string|integer zoom

Returns:

Type: string

Playlist

Playlist.Add

Add item(s) to playlist
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. mixed: Playlist.Item|array item

Returns:

Type: string

Playlist.Clear

Clear playlist
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid

Returns:

Type: string

Playlist.GetItems

Get all items from playlist
Permissions:

  • ReadData

Parameters:

  1. Playlist.Id playlistid
  2. [List.Fields.All properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. array[ List.Item.All ] items
  2. List.LimitsReturned limits

Playlist.GetPlaylists

Returns all existing playlists
Permissions:

  • ReadData

Returns:

Type: array

Playlist.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. Playlist.Id playlistid
  2. array[ Playlist.Property.Name ] properties

Returns:

Type: Playlist.Property.Value

Playlist.Insert

Insert item(s) into playlist. Does not work for picture playlists (aka slideshows).
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. Playlist.Position position
  3. mixed: Playlist.Item|array item

Returns:

Type: string

Playlist.Remove

Remove item from playlist. Does not work for picture playlists (aka slideshows).
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. Playlist.Position position

Returns:

Type: string

Playlist.Swap

Swap items in the playlist. Does not work for picture playlists (aka slideshows).
Permissions:

  • ControlPlayback

Parameters:

  1. Playlist.Id playlistid
  2. Playlist.Position position1
  3. Playlist.Position position2

Returns:

Type: string

Profiles

Profiles.GetCurrentProfile

Retrieve the current profile
Permissions:

  • ReadData

Parameters:

  1. [Profiles.Fields.Profile properties]

Returns:

Type: Profiles.Details.Profile

Profiles.GetProfiles

Retrieve all profiles
Permissions:

  • ReadData

Parameters:

  1. [Profiles.Fields.Profile properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. array[ Profiles.Details.Profile ] profiles

Profiles.LoadProfile

Load the specified profile
Permissions:

  • Navigate

Parameters:

  1. string profile (Profile name)
  2. [boolean prompt = False] (Prompt for password)
  3. [Profiles.Password password]

Returns:

Type: string

Settings

Settings.GetCategories

Retrieves all setting categories
Permissions:

  • ReadData

Parameters:

  1. [Setting.Level level = standard]
  2. [string section = ""]
  3. [string properties]

Returns:

Type: object
Properties:

  1. [array[ Setting.Details.Category ] categories]

Settings.GetSections

Retrieves all setting sections
Permissions:

  • ReadData

Parameters:

  1. [Setting.Level level = standard]
  2. [Setting.Level properties]

Returns:

Type: object
Properties:

  1. [array[ Setting.Details.Section ] sections]

Settings.GetSettingValue

Retrieves the value of a setting
Permissions:

  • ReadData

Parameters:

  1. string setting

Returns:

Type: object
Properties:

  1. Setting.Value.Extended value

Settings.GetSettings

Retrieves all settings
Permissions:

  • ReadData

Parameters:

  1. [Setting.Level level = standard]
  2. [mixed: object filter]

Returns:

Type: object
Properties:

  1. [array[ Setting.Details.Setting ] settings]

Settings.ResetSettingValue

Resets the value of a setting
Permissions:

  • ReadData

Parameters:

  1. string setting

Returns:

Type: string

Settings.SetSettingValue

Changes the value of a setting
Permissions:

  • ReadData

Parameters:

  1. string setting
  2. Setting.Value.Extended value

Returns:

Type: boolean

System

System.EjectOpticalDrive

Ejects or closes the optical disc drive (if available)
Permissions:

  • ControlSystem

Returns:

Type: string

System.GetProperties

Retrieves the values of the given properties
Permissions:

  • ReadData

Parameters:

  1. array[ System.Property.Name ] properties

Returns:

Type: System.Property.Value

System.Hibernate

Puts the system running Kodi into hibernate mode
Permissions:

  • ControlPower

Returns:

Type: string

System.Reboot

Reboots the system running Kodi
Permissions:

  • ControlPower

Returns:

Type: string

System.Shutdown

Shuts the system running Kodi down
Permissions:

  • ControlPower

Returns:

Type: string

System.Suspend

Suspends the system running Kodi
Permissions:

  • ControlPower

Returns:

Type: string

Textures

Textures.GetTextures

Retrieve all textures
Permissions:

  • ReadData

Parameters:

  1. [Textures.Fields.Texture properties]
  2. [List.Filter.Textures filter]

Returns:

Type: object
Properties:

  1. array[ Textures.Details.Texture ] textures

Textures.RemoveTexture

Remove the specified texture
Permissions:

  • RemoveData

Parameters:

  1. Library.Id textureid (Texture database identifier)

Returns:

Type: string

VideoLibrary

VideoLibrary.Clean

Cleans the video library for non-existent items
Permissions:

  • RemoveData

Parameters:

  1. [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)
  2. [string content = video] (Content type to clean for)
  3. [string directory = ""] (Path to the directory to clean up; performs a global cleanup if not specified)

Returns:

Type: string

VideoLibrary.Export

Exports all items from the video library
Permissions:

  • WriteFile

Parameters:

  1. [mixed: object|object options]

Returns:

Type: string

VideoLibrary.GetAvailableArt

Retrieve all potential art URLs for a media item by art type
Permissions:

  • ReadData

Parameters:

  1. mixed: object|object|object|object|object|object item
  2. [string arttype = ""]

Returns:

Type: object
Properties:

  1. array availableart

VideoLibrary.GetAvailableArtTypes

Retrieve a list of potential art types for a media item
Permissions:

  • ReadData

Parameters:

  1. mixed: object|object|object|object|object|object item

Returns:

Type: object
Properties:

  1. array availablearttypes

VideoLibrary.GetEpisodeDetails

Retrieve details about a specific tv show episode
Permissions:

  • ReadData

Parameters:

  1. Library.Id episodeid
  2. [Video.Fields.Episode properties]

Returns:

Type: object
Properties:

  1. [Video.Details.Episode episodedetails]

VideoLibrary.GetEpisodes

Retrieve all tv show episodes
Permissions:

  • ReadData

Parameters:

  1. [Library.Id tvshowid = -1]
  2. [integer season = -1]
  3. [Video.Fields.Episode properties]
  4. [List.Limits limits]
  5. [List.Sort sort]
  6. [mixed: object|object|object|object|object|List.Filter.Episodes filter]

Returns:

Type: object
Properties:

  1. [array[ Video.Details.Episode ] episodes]
  2. List.LimitsReturned limits

VideoLibrary.GetGenres

Retrieve all genres
Permissions:

  • ReadData

Parameters:

  1. string type
  2. [Library.Fields.Genre properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. array[ Library.Details.Genre ] genres
  2. List.LimitsReturned limits

VideoLibrary.GetInProgressTVShows

Retrieve all in progress tvshows
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.TVShow properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Video.Details.TVShow ] tvshows]

VideoLibrary.GetMovieDetails

Retrieve details about a specific movie
Permissions:

  • ReadData

Parameters:

  1. Library.Id movieid
  2. [Video.Fields.Movie properties]

Returns:

Type: object
Properties:

  1. [Video.Details.Movie moviedetails]

VideoLibrary.GetMovieSetDetails

Retrieve details about a specific movie set
Permissions:

  • ReadData

Parameters:

  1. Library.Id setid
  2. [Video.Fields.MovieSet properties]
  3. [object movies]

Returns:

Type: object
Properties:

  1. [Video.Details.MovieSet.Extended setdetails]

VideoLibrary.GetMovieSets

Retrieve all movie sets
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.MovieSet properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Video.Details.MovieSet ] sets]

VideoLibrary.GetMovies

Retrieve all movies
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.Movie properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|object|object|object|object|List.Filter.Movies filter]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Video.Details.Movie ] movies]

VideoLibrary.GetMusicVideoDetails

Retrieve details about a specific music video
Permissions:

  • ReadData

Parameters:

  1. Library.Id musicvideoid
  2. [Video.Fields.MusicVideo properties]

Returns:

Type: object
Properties:

  1. [Video.Details.MusicVideo musicvideodetails]

VideoLibrary.GetMusicVideos

Retrieve all music videos
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.MusicVideo properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|object|List.Filter.MusicVideos filter]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Video.Details.MusicVideo ] musicvideos]

VideoLibrary.GetRecentlyAddedEpisodes

Retrieve all recently added tv episodes
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.Episode properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. [array[ Video.Details.Episode ] episodes]
  2. List.LimitsReturned limits

VideoLibrary.GetRecentlyAddedMovies

Retrieve all recently added movies
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.Movie properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Video.Details.Movie ] movies]

VideoLibrary.GetRecentlyAddedMusicVideos

Retrieve all recently added music videos
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.MusicVideo properties]
  2. [List.Limits limits]
  3. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Video.Details.MusicVideo ] musicvideos]

VideoLibrary.GetSeasonDetails

Retrieve details about a specific tv show season
Permissions:

  • ReadData

Parameters:

  1. Library.Id seasonid
  2. [Video.Fields.Season properties]

Returns:

Type: object
Properties:

  1. [Video.Details.Season seasondetails]

VideoLibrary.GetSeasons

Retrieve all tv seasons
Permissions:

  • ReadData

Parameters:

  1. [Library.Id tvshowid = -1]
  2. [Video.Fields.Season properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Video.Details.Season ] seasons]

VideoLibrary.GetTVShowDetails

Retrieve details about a specific tv show
Permissions:

  • ReadData

Parameters:

  1. Library.Id tvshowid
  2. [Video.Fields.TVShow properties]

Returns:

Type: object
Properties:

  1. [Video.Details.TVShow tvshowdetails]

VideoLibrary.GetTVShows

Retrieve all tv shows
Permissions:

  • ReadData

Parameters:

  1. [Video.Fields.TVShow properties]
  2. [List.Limits limits]
  3. [List.Sort sort]
  4. [mixed: object|object|object|object|object|object|List.Filter.TVShows filter]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. [array[ Video.Details.TVShow ] tvshows]

VideoLibrary.GetTags

Retrieve all tags
Permissions:

  • ReadData

Parameters:

  1. string type
  2. [Library.Fields.Tag properties]
  3. [List.Limits limits]
  4. [List.Sort sort]

Returns:

Type: object
Properties:

  1. List.LimitsReturned limits
  2. array[ Library.Details.Tag ] tags

VideoLibrary.RefreshEpisode

Refresh the given episode in the library
Permissions:

  • UpdateData

Parameters:

  1. Library.Id episodeid
  2. [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
  3. [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)

Returns:

Type: string

VideoLibrary.RefreshMovie

Refresh the given movie in the library
Permissions:

  • UpdateData

Parameters:

  1. Library.Id movieid
  2. [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
  3. [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)

Returns:

Type: string

VideoLibrary.RefreshMusicVideo

Refresh the given music video in the library
Permissions:

  • UpdateData

Parameters:

  1. Library.Id musicvideoid
  2. [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
  3. [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)

Returns:

Type: string

VideoLibrary.RefreshTVShow

Refresh the given tv show in the library
Permissions:

  • UpdateData

Parameters:

  1. Library.Id tvshowid
  2. [boolean ignorenfo = False] (Whether or not to ignore a local NFO if present.)
  3. [boolean refreshepisodes = False] (Whether or not to refresh all episodes belonging to the TV show.)
  4. [string title = ""] (Title to use for searching (instead of determining it from the item's filename/path).)

Returns:

Type: string

VideoLibrary.RemoveEpisode

Removes the given episode from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id episodeid

Returns:

Type: string

VideoLibrary.RemoveMovie

Removes the given movie from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id movieid

Returns:

Type: string

VideoLibrary.RemoveMusicVideo

Removes the given music video from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id musicvideoid

Returns:

Type: string

VideoLibrary.RemoveTVShow

Removes the given tv show from the library
Permissions:

  • RemoveData

Parameters:

  1. Library.Id tvshowid

Returns:

Type: string

VideoLibrary.Scan

Scans the video sources for new library items
Permissions:

  • UpdateData

Parameters:

  1. [string directory = ""]
  2. [boolean showdialogs = True] (Whether or not to show the progress bar or any other GUI dialog)

Returns:

Type: string

VideoLibrary.SetEpisodeDetails

Update the given episode with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id episodeid
  2. [Optional.String title = None]
  3. [Optional.Integer playcount = None]
  4. [Optional.Integer runtime = None] (Runtime in seconds)
  5. [mixed: null|Array.String director = None]
  6. [Optional.String plot = None]
  7. [Optional.Number rating = None]
  8. [Optional.String votes = None]
  9. [Optional.String lastplayed = None]
  10. [mixed: null|Array.String writer = None]
  11. [Optional.String firstaired = None]
  12. [Optional.String productioncode = None]
  13. [Optional.Integer season = None]
  14. [Optional.Integer episode = None]
  15. [Optional.String originaltitle = None]
  16. [Optional.String thumbnail = None]
  17. [Optional.String fanart = None]
  18. [mixed: null|Media.Artwork.Set art = None]
  19. [mixed: null|Video.Resume resume = None]
  20. [Optional.Integer userrating = None]
  21. [Video.Ratings.Set ratings]
  22. [Optional.String dateadded = None]
  23. [mixed: null|Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

VideoLibrary.SetMovieDetails

Update the given movie with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id movieid
  2. [Optional.String title = None]
  3. [Optional.Integer playcount = None]
  4. [Optional.Integer runtime = None] (Runtime in seconds)
  5. [mixed: null|Array.String director = None]
  6. [mixed: null|Array.String studio = None]
  7. [Optional.Integer year = None] (linked with premiered. Overridden by premiered parameter)
  8. [Optional.String plot = None]
  9. [mixed: null|Array.String genre = None]
  10. [Optional.Number rating = None]
  11. [Optional.String mpaa = None]
  12. [Optional.String imdbnumber = None]
  13. [Optional.String votes = None]
  14. [Optional.String lastplayed = None]
  15. [Optional.String originaltitle = None]
  16. [Optional.String trailer = None]
  17. [Optional.String tagline = None]
  18. [Optional.String plotoutline = None]
  19. [mixed: null|Array.String writer = None]
  20. [mixed: null|Array.String country = None]
  21. [Optional.Integer top250 = None]
  22. [Optional.String sorttitle = None]
  23. [Optional.String set = None]
  24. [mixed: null|Array.String showlink = None]
  25. [Optional.String thumbnail = None]
  26. [Optional.String fanart = None]
  27. [mixed: null|Array.String tag = None]
  28. [mixed: null|Media.Artwork.Set art = None]
  29. [mixed: null|Video.Resume resume = None]
  30. [Optional.Integer userrating = None]
  31. [Video.Ratings.Set ratings]
  32. [Optional.String dateadded = None]
  33. [Optional.String premiered = None] (linked with year. Overrides year)
  34. [mixed: null|Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

VideoLibrary.SetMovieSetDetails

Update the given movie set with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id setid
  2. [Optional.String title = None]
  3. [mixed: null|Media.Artwork.Set art = None]
  4. [Optional.String plot = None]

Returns:

Type: string

VideoLibrary.SetMusicVideoDetails

Update the given music video with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id musicvideoid
  2. [Optional.String title = None]
  3. [Optional.Integer playcount = None]
  4. [Optional.Integer runtime = None] (Runtime in seconds)
  5. [mixed: null|Array.String director = None]
  6. [mixed: null|Array.String studio = None]
  7. [Optional.Integer year = None] (linked with premiered. Overridden by premiered parameter)
  8. [Optional.String plot = None]
  9. [Optional.String album = None]
  10. [mixed: null|Array.String artist = None]
  11. [mixed: null|Array.String genre = None]
  12. [Optional.Integer track = None]
  13. [Optional.String lastplayed = None]
  14. [Optional.String thumbnail = None]
  15. [Optional.String fanart = None]
  16. [mixed: null|Array.String tag = None]
  17. [mixed: null|Media.Artwork.Set art = None]
  18. [mixed: null|Video.Resume resume = None]
  19. [Optional.Number rating = None]
  20. [Optional.Integer userrating = None]
  21. [Optional.String dateadded = None]
  22. [Optional.String premiered = None] (linked with year. Overrides year)

Returns:

Type: string

VideoLibrary.SetSeasonDetails

Update the given season with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id seasonid
  2. [mixed: null|Media.Artwork.Set art = None]
  3. [Optional.Integer userrating = None]
  4. [Optional.String title = None]

Returns:

Type: string

VideoLibrary.SetTVShowDetails

Update the given tvshow with the given details
Permissions:

  • UpdateData

Parameters:

  1. Library.Id tvshowid
  2. [Optional.String title = None]
  3. [Optional.Integer playcount = None]
  4. [mixed: null|Array.String studio = None]
  5. [Optional.String plot = None]
  6. [mixed: null|Array.String genre = None]
  7. [Optional.Number rating = None]
  8. [Optional.String mpaa = None]
  9. [Optional.String imdbnumber = None]
  10. [Optional.String premiered = None]
  11. [Optional.String votes = None]
  12. [Optional.String lastplayed = None]
  13. [Optional.String originaltitle = None]
  14. [Optional.String sorttitle = None]
  15. [Optional.String episodeguide = None]
  16. [Optional.String thumbnail = None]
  17. [Optional.String fanart = None]
  18. [mixed: null|Array.String tag = None]
  19. [mixed: null|Media.Artwork.Set art = None]
  20. [Optional.Integer userrating = None]
  21. [Video.Ratings.Set ratings]
  22. [Optional.String dateadded = None]
  23. [Optional.Integer runtime = None] (Runtime in seconds)
  24. [Optional.String status = None] (Valid values: 'returning series', 'in production', 'planned', 'cancelled', 'ended')
  25. [mixed: null|Media.UniqueID.Set uniqueid = None]

Returns:

Type: string

XBMC

XBMC.GetInfoBooleans

Retrieve info booleans about Kodi and the system
Permissions:

  • ReadData

Parameters:

  1. array[string] booleans

Returns:

Type: object (Object containing key-value pairs of the retrieved info booleans)

XBMC.GetInfoLabels

Retrieve info labels about Kodi and the system
Permissions:

  • ReadData

Parameters:

  1. array[string] labels (See http://kodi.wiki/view/InfoLabels for a list of possible info labels)

Returns:

Type: object (Object containing key-value pairs of the retrieved info labels)

Global Types

Addon

Addon.Content

Type: string

Addon.Details

Extends:

Properties:

  • string addonid
  • [string author]
  • [mixed: boolean|string broken]
  • [array dependencies]
  • [mixed: boolean|string deprecated]
  • [string description]
  • [string disclaimer]
  • [boolean enabled]
  • [array extrainfo]
  • [string fanart]
  • [boolean installed]
  • [string name]
  • [string path]
  • [integer rating]
  • [string summary]
  • [string thumbnail]
  • Addon.Types type
  • [string version]

Addon.Fields

Extends:

Addon.Types

Type: string

Application

Application.Property.Name

Type: string

Application.Property.Value

Type: object
Properties:

  • [string language]
  • [boolean muted]
  • [string name]
  • [Array.String sorttokens]
  • [object version]
  • [integer volume]

Array

Array.Integer

Type: array

Array.String

Type: array

Audio

Audio.Album.ReleaseType

Type: string

Audio.Artist.Roles

Type: array

Audio.Contributors

Type: array

Audio.Details.Album

Extends:

Properties:

Audio.Details.Artist

Extends:

Properties:

Audio.Details.Base

Extends:

Properties:

Audio.Details.Genres

Type: array

Audio.Details.Media

Extends:

Properties:

  • [Array.String artist]
  • [Array.Integer artistid]
  • [string displayartist]
  • [Array.String musicbrainzalbumartistid]
  • [string originaldate]
  • [number rating]
  • [string releasedate]
  • [string sortartist]
  • [string title]
  • [integer userrating]
  • [integer votes]
  • [integer year]

Audio.Details.Role

Extends:

Properties:

Audio.Details.Song

Extends:

Properties:

  • [string album]
  • [Array.String albumartist]
  • [Array.Integer albumartistid]
  • [Library.Id albumid = -1]
  • [Audio.Album.ReleaseType albumreleasetype = album]
  • [any bitrate]
  • [any bpm]
  • [any channels]
  • [string comment]
  • [Audio.Contributors contributors]
  • [integer disc]
  • [string disctitle]
  • [string displaycomposer]
  • [string displayconductor]
  • [string displaylyricist]
  • [string displayorchestra]
  • [integer duration]
  • [string file]
  • [Array.Integer genreid]
  • [string lastplayed]
  • [string lyrics]
  • [string mood]
  • [Array.String musicbrainzartistid]
  • [string musicbrainztrackid]
  • [integer playcount]
  • [any samplerate]
  • Library.Id songid
  • [Array.Integer sourceid]
  • [integer track]

Audio.Fields.Album

Extends:

Audio.Fields.Artist

Extends:

Audio.Fields.Role

Extends:

Audio.Fields.Song

Extends:

Audio.Property.Name

Type: string

Audio.Property.Value

Type: object
Properties:

  • [string albumslastadded]
  • [string albumsmodified]
  • [string artistlinksupdated]
  • [string artistslastadded]
  • [string artistsmodified]
  • [string genreslastadded]
  • [string librarylastcleaned]
  • [string librarylastupdated]
  • [Library.Id missingartistid = -1]
  • [string songslastadded]
  • [string songsmodified]

Configuration

Configuration

Type: object
Properties:

Configuration.Notifications

Type: object
Properties:

  • boolean application
  • boolean audiolibrary
  • boolean gui
  • boolean input
  • boolean other
  • boolean player
  • boolean playlist
  • boolean pvr
  • boolean system
  • boolean videolibrary

Favourite

Favourite.Details.Favourite

Type: object
Properties:

  • [string path]
  • [string thumbnail]
  • string title
  • Favourite.Type type
  • [string window]
  • [string windowparameter]

Favourite.Fields.Favourite

Extends:

Favourite.Type

Type: string

Files

Files.Media

Type: string

GUI

GUI.Property.Name

Type: string

GUI.Property.Value

Type: object
Properties:

  • [object currentcontrol]
  • [object currentwindow]
  • [boolean fullscreen]
  • [object skin]
  • [GUI.Stereoscopy.Mode stereoscopicmode]

GUI.Stereoscopy.Mode

Type: object
Properties:

  • string label
  • string mode

GUI.Window

Type: string

Global

Global.IncrementDecrement

Type: string

Global.String.NotEmpty

Type: string

Global.Time

Type: object
Properties:

  • integer hours
  • integer milliseconds
  • integer minutes
  • integer seconds

Global.Toggle

Type: mixed

Global.Weekday

Type: string

Input

Input.Action

Type: string

Item

Item.CustomProperties

Type: object

Item.Details.Base

Type: object
Properties:

  • string label

Item.Fields.Base

Type: array

Library

Library.Details.Genre

Extends:

Properties:

Library.Details.Source

Extends:

Properties:

Library.Details.Tag

Extends:

Properties:

Library.Fields.Genre

Extends:

Library.Fields.Source

Extends:

Library.Fields.Tag

Extends:

Library.Id

Type: integer

List

List.Amount

Type: integer

List.Fields.All

Extends:

List.Fields.Files

Extends:

List.Filter.Albums

Type: mixed

List.Filter.Artists

Type: mixed

List.Filter.Episodes

Type: mixed

List.Filter.Fields.Albums

Type: string

List.Filter.Fields.Artists

Type: string

List.Filter.Fields.Episodes

Type: string

List.Filter.Fields.Movies

Type: string

List.Filter.Fields.MusicVideos

Type: string

List.Filter.Fields.Songs

Type: string

List.Filter.Fields.TVShows

Type: string

List.Filter.Fields.Textures

Type: string

List.Filter.Movies

Type: mixed

List.Filter.MusicVideos

Type: mixed

List.Filter.Operators

Type: string

List.Filter.Rule

Type: object
Properties:

List.Filter.Rule.Albums

Extends:

Properties:

List.Filter.Rule.Artists

Extends:

Properties:

List.Filter.Rule.Episodes

Extends:

Properties:

List.Filter.Rule.Movies

Extends:

Properties:

List.Filter.Rule.MusicVideos

Extends:

Properties:

List.Filter.Rule.Songs

Extends:

Properties:

List.Filter.Rule.TVShows

Extends:

Properties:

List.Filter.Rule.Textures

Extends:

Properties:

List.Filter.Songs

Type: mixed

List.Filter.TVShows

Type: mixed

List.Filter.Textures

Type: mixed

List.Item.All

Extends:

Properties:

  • [string channel]
  • [integer channelnumber]
  • [PVR.Channel.Type channeltype = tv]
  • [string endtime]
  • [boolean hidden]
  • [boolean locked]
  • [string starttime]
  • [integer subchannelnumber]

List.Item.Base

Extends:

Properties:

  • [string album]
  • [Array.String albumartist]
  • [Array.Integer albumartistid]
  • [Library.Id albumid = -1]
  • [string albumlabel]
  • [Audio.Album.ReleaseType albumreleasetype = album]
  • [string albumstatus]
  • [integer bitrate]
  • [integer bpm]
  • [Video.Cast cast]
  • [integer channels]
  • [string comment]
  • [boolean compilation]
  • [Audio.Contributors contributors]
  • [Array.String country]
  • [Item.CustomProperties customproperties]
  • [string description]
  • [integer disc]
  • [string disctitle]
  • [string displaycomposer]
  • [string displayconductor]
  • [string displaylyricist]
  • [string displayorchestra]
  • [integer duration]
  • [string dynpath]
  • [integer episode]
  • [string episodeguide]
  • [string firstaired]
  • [Library.Id id = -1]
  • [string imdbnumber]
  • [boolean isboxset]
  • [string lyrics]
  • [string mediapath]
  • [Array.String mood]
  • [string mpaa]
  • [Array.String musicbrainzartistid]
  • [string musicbrainztrackid]
  • [string originaldate]
  • [string originaltitle]
  • [string plotoutline]
  • [string premiered]
  • [string productioncode]
  • [string releasedate]
  • [Audio.Album.ReleaseType releasetype = album]
  • [integer samplerate]
  • [integer season]
  • [string set]
  • [Library.Id setid = -1]
  • [Array.String showlink]
  • [string showtitle]
  • [string sorttitle]
  • [integer specialsortepisode]
  • [integer specialsortseason]
  • [Array.String studio]
  • [Array.String style]
  • [Array.String tag]
  • [string tagline]
  • [Array.String theme]
  • [integer top250]
  • [integer totaldiscs]
  • [integer track]
  • [string trailer]
  • [Library.Id tvshowid = -1]
  • [string type = unknown]
  • [Media.UniqueID uniqueid]
  • [string votes]
  • [integer watchedepisodes]
  • [Array.String writer]

List.Item.File

Extends:

Properties:

  • string file
  • string filetype
  • [string lastmodified]
  • [string mimetype]
  • [integer size]

List.Items.Sources

Type: array

List.Limits

Type: object
Properties:

List.LimitsReturned

Type: object
Properties:

List.Sort

Type: object
Properties:

  • [boolean ignorearticle]
  • [string method = none]
  • [string order = ascending]
  • [boolean useartistsortname]

Media

Media.Artwork

Type: object
Properties:

Media.Artwork.Set

Type: object
Properties:

Media.Details.Base

Extends:

Properties:

  • [string fanart]
  • [string thumbnail]

Media.UniqueID

Type: object

Media.UniqueID.Set

Type: object

Notifications

Notifications.Item

Type: mixed

Notifications.Item.Type

Type: string

Optional

Optional.Boolean

Type: mixed

Optional.Integer

Type: mixed

Optional.Number

Type: mixed

Optional.String

Type: mixed

PVR

PVR.Channel.Type

Type: string

PVR.ChannelGroup.Id

Type: mixed

PVR.Details.Broadcast

Extends:

Properties:

  • Library.Id broadcastid
  • [string cast]
  • [Library.Id clientid = -1]
  • [string director]
  • [string endtime]
  • [string episodename]
  • [integer episodenum]
  • [integer episodepart]
  • [string firstaired]
  • [string genre]
  • [boolean hasrecording]
  • [boolean hasreminder]
  • [boolean hastimer]
  • [boolean hastimerrule]
  • [integer imdbnumber]
  • [boolean isactive]
  • [boolean isplayable]
  • [boolean isseries]
  • [string originaltitle]
  • [integer parentalrating]
  • [string plot]
  • [string plotoutline]
  • [integer progress]
  • [number progresspercentage]
  • [integer rating]
  • [string recording]
  • [integer runtime]
  • [string starttime]
  • [string thumbnail]
  • [string title]
  • [boolean wasactive]
  • [string writer]
  • [integer year]

PVR.Details.Channel

Extends:

Properties:

PVR.Details.ChannelGroup

Extends:

Properties:

PVR.Details.ChannelGroup.Extended

Extends:

Properties:

PVR.Details.Client

Extends:

Properties:

  • [string addonid]
  • Library.Id clientid
  • [boolean supportschannelgroups]
  • [boolean supportschannelscan]
  • [boolean supportsepg]
  • [boolean supportsradio]
  • [boolean supportsrecordings]
  • [boolean supportstimers]
  • [boolean supportstv]

PVR.Details.Recording

Extends:

Properties:

  • [Media.Artwork art]
  • [string channel]
  • [integer channeluid]
  • [Library.Id clientid = -1]
  • [string directory]
  • [string endtime]
  • [integer epgeventid]
  • [integer episode]
  • [string file]
  • [string genre]
  • [string icon]
  • [boolean isdeleted]
  • [integer lifetime]
  • [integer playcount]
  • [string plot]
  • [string plotoutline]
  • [boolean radio]
  • Library.Id recordingid
  • [Video.Resume resume]
  • [integer runtime]
  • [integer season]
  • [string showtitle]
  • [string starttime]
  • [string streamurl]
  • [string title]

PVR.Details.Timer

Extends:

Properties:

  • [Library.Id broadcastid = -1]
  • [Library.Id channelid = -1]
  • [Library.Id clientid = -1]
  • [string directory]
  • [boolean endanytime]
  • [integer endmargin]
  • [string endtime]
  • [string epgsearchstring]
  • [integer epguid]
  • [string file]
  • [string firstday]
  • [boolean fulltextepgsearch]
  • [boolean ismanual]
  • [boolean isradio]
  • [boolean isreadonly]
  • [boolean isreminder]
  • [boolean istimerrule]
  • [integer lifetime]
  • [integer maxrecordings]
  • [integer preventduplicateepisodes]
  • [integer priority]
  • [integer recordinggroup]
  • [integer runtime]
  • [boolean startanytime]
  • [integer startmargin]
  • [string starttime]
  • [PVR.TimerState state = unknown]
  • [string summary]
  • Library.Id timerid
  • [string title]
  • [array weekdays]

PVR.Fields.Broadcast

Extends:

PVR.Fields.Channel

Extends:

PVR.Fields.Client

Extends:

PVR.Fields.Recording

Extends:

PVR.Fields.Timer

Extends:

PVR.Property.Name

Type: string

PVR.Property.Value

Type: object
Properties:

  • [boolean available]
  • [boolean recording]
  • [boolean scanning]

PVR.TimerState

Type: string

Player

Player.Audio.Stream

Type: object
Properties:

  • integer bitrate
  • integer channels
  • string codec
  • integer index
  • boolean isdefault
  • boolean isimpaired
  • boolean isoriginal
  • string language
  • string name
  • integer samplerate

Player.CustomViewMode

Type: object
Properties:

Player.Id

Type: integer

Player.Notifications.Data

Type: object
Properties:

Player.Notifications.Player

Type: object
Properties:

Player.Notifications.Player.Seek

Extends:

Properties:

Player.Position.Percentage

Type: number

Player.Position.Time

Type: object
Properties:

  • [integer hours]
  • [integer milliseconds]
  • [integer minutes]
  • [integer seconds]

Player.Property.Name

Type: string

Player.Property.Value

Type: object
Properties:

Player.Repeat

Type: string

Player.Speed

Type: object
Properties:

  • [integer speed]

Player.Subtitle

Type: object
Properties:

  • integer index
  • boolean isdefault
  • boolean isforced
  • boolean isimpaired
  • string language
  • string name

Player.Type

Type: string

Player.Video.Stream

Type: object
Properties:

  • string codec
  • integer height
  • integer index
  • string language
  • string name
  • integer width

Player.ViewMode

Type: string

Playlist

Playlist.Id

Type: integer

Playlist.Item

Type: mixed

Playlist.Position

Type: integer

Playlist.Property.Name

Type: string

Playlist.Property.Value

Type: object
Properties:

Playlist.Type

Type: string

Profiles

Profiles.Details.Profile

Extends:

Properties:

  • [integer lockmode]
  • [string thumbnail]

Profiles.Fields.Profile

Extends:

Profiles.Password

Type: object
Properties:

  • [string encryption = md5]
  • string value

Setting

Setting.Details.Base

Type: object
Properties:

  • [string help]
  • string id
  • string label

Setting.Details.Category

Extends:

Properties:

  • [array groups]

Setting.Details.Control

Type: mixed

Setting.Details.ControlBase

Type: object
Properties:

  • boolean delayed
  • string format
  • string type

Setting.Details.ControlButton

Extends:

Properties:

  • string type

Setting.Details.ControlCheckmark

Extends:

Properties:

  • string format
  • string type

Setting.Details.ControlEdit

Extends:

Properties:

  • boolean hidden
  • string type
  • boolean verifynewvalue

Setting.Details.ControlHeading

Extends:

Properties:

  • [string heading]

Setting.Details.ControlLabel

Extends:

Properties:

  • string format
  • string type

Setting.Details.ControlList

Extends:

Properties:

  • boolean multiselect
  • string type

Setting.Details.ControlRange

Extends:

Properties:

  • string formatlabel
  • string formatvalue
  • string type

Setting.Details.ControlSlider

Extends:

Properties:

  • string formatlabel
  • boolean popup
  • string type

Setting.Details.ControlSpinner

Extends:

Properties:

  • [string formatlabel]
  • [string minimumlabel]
  • string type

Setting.Details.Group

Type: object
Properties:

  • string id
  • [array settings]

Setting.Details.Section

Extends:

Properties:

  • [array categories]

Setting.Details.Setting

Type: mixed

Setting.Details.SettingAction

Extends:

Properties:

  • string data

Setting.Details.SettingAddon

Extends:

Properties:

Setting.Details.SettingBase

Extends:

Properties:

Setting.Details.SettingBool

Extends:

Properties:

  • boolean default
  • boolean value

Setting.Details.SettingDate

Extends:

Setting.Details.SettingInt

Extends:

Properties:

  • integer default
  • [integer maximum]
  • [integer minimum]
  • [array options]
  • [integer step]
  • integer value

Setting.Details.SettingList

Extends:

Properties:

Setting.Details.SettingNumber

Extends:

Properties:

  • number default
  • number maximum
  • number minimum
  • number step
  • number value

Setting.Details.SettingPath

Extends:

Properties:

  • [array sources]
  • boolean writable

Setting.Details.SettingString

Extends:

Properties:

  • boolean allowempty
  • string default
  • [array options]
  • string value

Setting.Details.SettingTime

Extends:

Setting.Level

Type: string

Setting.Type

Type: string

Setting.Value

Type: mixed

Setting.Value.Extended

Type: mixed

Setting.Value.List

Type: array

System

System.Property.Name

Type: string

System.Property.Value

Type: object
Properties:

  • [boolean canhibernate]
  • [boolean canreboot]
  • [boolean canshutdown]
  • [boolean cansuspend]

Textures

Textures.Details.Size

Type: object
Properties:

  • [integer height]
  • [string lastused]
  • [integer size]
  • [integer usecount]
  • [integer width]

Textures.Details.Texture

Type: object
Properties:

  • [string cachedurl]
  • [string imagehash]
  • [string lasthashcheck]
  • [array sizes]
  • [Library.Id textureid = -1]
  • [string url]

Textures.Fields.Texture

Extends:

Video

Video.Cast

Type: array

Video.Details.Base

Extends:

Properties:

Video.Details.Episode

Extends:

Properties:

  • [Video.Cast cast]
  • [integer episode]
  • Library.Id episodeid
  • [string firstaired]
  • [string originaltitle]
  • [string productioncode]
  • [number rating]
  • [any ratings]
  • [integer season]
  • [Library.Id seasonid = -1]
  • [string showtitle]
  • [integer specialsortepisode]
  • [integer specialsortseason]
  • [Library.Id tvshowid = -1]
  • [Media.UniqueID uniqueid]
  • [integer userrating]
  • [string votes]
  • [Array.String writer]

Video.Details.File

Extends:

Properties:

Video.Details.Item

Extends:

Properties:

  • [string dateadded]
  • [string file]
  • [string lastplayed]
  • [string plot]

Video.Details.Media

Extends:

Properties:

  • [string title]

Video.Details.Movie

Extends:

Properties:

Video.Details.MovieSet

Extends:

Properties:

Video.Details.MovieSet.Extended

Extends:

Properties:

Video.Details.MusicVideo

Extends:

Properties:

Video.Details.Season

Extends:

Properties:

  • [integer episode]
  • integer season
  • Library.Id seasonid
  • [string showtitle]
  • [string title]
  • [Library.Id tvshowid = -1]
  • [integer userrating]
  • [integer watchedepisodes]

Video.Details.TVShow

Extends:

Properties:

  • [Video.Cast cast]
  • [integer episode]
  • [string episodeguide]
  • [Array.String genre]
  • [string imdbnumber]
  • [string mpaa]
  • [string originaltitle]
  • [string premiered]
  • [number rating]
  • [any ratings]
  • [integer runtime]
  • [integer season]
  • [string sorttitle]
  • [string status]
  • [Array.String studio]
  • [Array.String tag]
  • Library.Id tvshowid
  • [Media.UniqueID uniqueid]
  • [integer userrating]
  • [string votes]
  • [integer watchedepisodes]
  • [integer year]

Video.Fields.Episode

Extends:

Video.Fields.Movie

Extends:

Video.Fields.MovieSet

Extends:

Video.Fields.MusicVideo

Extends:

Video.Fields.Season

Extends:

Video.Fields.TVShow

Extends:

Video.Rating

Type: object
Properties:

  • [boolean default]
  • number rating
  • [integer votes]

Video.Ratings

Type: object

Video.Ratings.Set

Type: object

Video.Resume

Type: object
Properties:

  • [number position]
  • [number total]

Video.Streams

Type: object
Properties:

  • [array audio]
  • [array subtitle]
  • [array video]

Notifications

Application

Application.OnVolumeChanged

The volume of the application has changed.
Parameters:

  1. string sender
  2. object data:
    • boolean muted
    • integer volume

AudioLibrary

AudioLibrary.OnCleanFinished

The audio library has been cleaned.
Parameters:

  1. string sender
  2. string data

AudioLibrary.OnCleanStarted

An audio library clean operation has started.
Parameters:

  1. string sender
  2. string data

AudioLibrary.OnExport

An audio library export has finished.
Parameters:

  1. string sender
  2. [object data]:
    • [integer failcount = 0]
    • [string file = ""]

AudioLibrary.OnRemove

An audio item has been removed.
Parameters:

  1. string sender
  2. object data:

AudioLibrary.OnScanFinished

Scanning the audio library has been finished.
Parameters:

  1. string sender
  2. string data

AudioLibrary.OnScanStarted

An audio library scan has started.
Parameters:

  1. string sender
  2. string data

AudioLibrary.OnUpdate

An audio item has been updated.
Parameters:

  1. string sender
  2. object data:

GUI

GUI.OnDPMSActivated

Energy saving/DPMS has been activated.
Parameters:

  1. string sender
  2. string data

GUI.OnDPMSDeactivated

Energy saving/DPMS has been deactivated.
Parameters:

  1. string sender
  2. string data

GUI.OnScreensaverActivated

The screensaver has been activated.
Parameters:

  1. string sender
  2. string data

GUI.OnScreensaverDeactivated

The screensaver has been deactivated.
Parameters:

  1. string sender
  2. object data:
    • boolean shuttingdown

Input

Input.OnInputFinished

The user has provided the requested input.
Parameters:

  1. string sender
  2. string data

Input.OnInputRequested

The user is requested to provide some information.
Parameters:

  1. string sender
  2. object data:
    • string title
    • string type
    • string value

Player

Player.OnAVChange

Audio- or videostream has changed. If there is no ID available extra information will be provided.
Parameters:

  1. string sender
  2. Player.Notifications.Data data

Player.OnAVStart

Playback of a media item has been started and first frame is available. If there is no ID available extra information will be provided.
Parameters:

  1. string sender
  2. Player.Notifications.Data data

Player.OnPause

Playback of a media item has been paused. If there is no ID available extra information will be provided.
Parameters:

  1. string sender
  2. Player.Notifications.Data data

Player.OnPlay

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.
Parameters:

  1. string sender
  2. Player.Notifications.Data data

Player.OnPropertyChanged

A property of the playing items has changed.
Parameters:

  1. string sender
  2. object data:

Player.OnResume

Playback of a media item has been resumed. If there is no ID available extra information will be provided.
Parameters:

  1. string sender
  2. Player.Notifications.Data data

Player.OnSeek

The playback position has been changed. If there is no ID available extra information will be provided.
Parameters:

  1. string sender
  2. object data:

Player.OnSpeedChanged

Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.
Parameters:

  1. string sender
  2. Player.Notifications.Data data

Player.OnStop

Playback of a media item has been stopped. If there is no ID available extra information will be provided.
Parameters:

  1. string sender
  2. object data:

Playlist

Playlist.OnAdd

A playlist item has been added.
Parameters:

  1. string sender
  2. object data:

Playlist.OnClear

A playlist item has been cleared.
Parameters:

  1. string sender
  2. object data:

Playlist.OnRemove

A playlist item has been removed.
Parameters:

  1. string sender
  2. object data:

System

System.OnLowBattery

The system is on low battery.
Parameters:

  1. string sender
  2. string data

System.OnQuit

Kodi will be closed.
Parameters:

  1. string sender
  2. object data:
    • integer exitcode

System.OnRestart

The system will be restarted.
Parameters:

  1. string sender
  2. string data

System.OnSleep

The system will be suspended.
Parameters:

  1. string sender
  2. string data

System.OnWake

The system woke up from suspension.
Parameters:

  1. string sender
  2. string data

VideoLibrary

VideoLibrary.OnCleanFinished

The video library has been cleaned.
Parameters:

  1. string sender
  2. string data

VideoLibrary.OnCleanStarted

A video library clean operation has started.
Parameters:

  1. string sender
  2. string data

VideoLibrary.OnExport

A video library export has finished.
Parameters:

  1. string sender
  2. [object data]:
    • [integer failcount = 0]
    • [string file = ""]
    • [string root = ""]

VideoLibrary.OnRefresh

The video library has been refreshed and a home screen reload might be necessary.
Parameters:

  1. string sender
  2. string data

VideoLibrary.OnRemove

A video item has been removed.
Parameters:

  1. string sender
  2. object data:

VideoLibrary.OnScanFinished

Scanning the video library has been finished.
Parameters:

  1. string sender
  2. string data

VideoLibrary.OnScanStarted

A video library scan has started.
Parameters:

  1. string sender
  2. string data

VideoLibrary.OnUpdate

A video item has been updated.
Parameters:

  1. string sender
  2. object data:

External links