1{ 2 "Player.OnPlay": { 3 "type": "notification", 4 "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.", 5 "params": [ 6 { "name": "sender", "type": "string", "required": true }, 7 { "name": "data", "$ref": "Player.Notifications.Data", "required": true } 8 ], 9 "returns": null 10 }, 11 "Player.OnResume": { 12 "type": "notification", 13 "description": "Playback of a media item has been resumed. If there is no ID available extra information will be provided.", 14 "params": [ 15 { 16 "name": "sender", 17 "type": "string", 18 "required": true 19 }, 20 { 21 "name": "data", 22 "$ref": "Player.Notifications.Data", 23 "required": true 24 } 25 ], 26 "returns": null 27 }, 28 "Player.OnAVStart": { 29 "type": "notification", 30 "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.", 31 "params": [ 32 { 33 "name": "sender", 34 "type": "string", 35 "required": true 36 }, 37 { 38 "name": "data", 39 "$ref": "Player.Notifications.Data", 40 "required": true 41 } 42 ], 43 "returns": null 44 }, 45 "Player.OnAVChange": { 46 "type": "notification", 47 "description": "Audio- or videostream has changed. If there is no ID available extra information will be provided.", 48 "params": [ 49 { 50 "name": "sender", 51 "type": "string", 52 "required": true 53 }, 54 { 55 "name": "data", 56 "$ref": "Player.Notifications.Data", 57 "required": true 58 } 59 ], 60 "returns": null 61 }, 62 "Player.OnPause": { 63 "type": "notification", 64 "description": "Playback of a media item has been paused. If there is no ID available extra information will be provided.", 65 "params": [ 66 { "name": "sender", "type": "string", "required": true }, 67 { "name": "data", "$ref": "Player.Notifications.Data", "required": true } 68 ], 69 "returns": null 70 }, 71 "Player.OnStop": { 72 "type": "notification", 73 "description": "Playback of a media item has been stopped. If there is no ID available extra information will be provided.", 74 "params": [ 75 { "name": "sender", "type": "string", "required": true }, 76 { "name": "data", "type": "object", "required": true, 77 "properties": { 78 "item": { "$ref": "Notifications.Item" }, 79 "end": { "type": "boolean", "required": true, "description": "Whether the player has reached the end of the playable item(s) or not" } 80 } 81 } 82 ], 83 "returns": null 84 }, 85 "Player.OnSpeedChanged": { 86 "type": "notification", 87 "description": "Speed of the playback of a media item has been changed. If there is no ID available extra information will be provided.", 88 "params": [ 89 { "name": "sender", "type": "string", "required": true }, 90 { "name": "data", "$ref": "Player.Notifications.Data", "required": true } 91 ], 92 "returns": null 93 }, 94 "Player.OnSeek": { 95 "type": "notification", 96 "description": "The playback position has been changed. If there is no ID available extra information will be provided.", 97 "params": [ 98 { "name": "sender", "type": "string", "required": true }, 99 { "name": "data", "type": "object", "required": true, 100 "properties": { 101 "item": { "$ref": "Notifications.Item" }, 102 "player": { "$ref": "Player.Notifications.Player.Seek", "required": true } 103 } 104 } 105 ], 106 "returns": null 107 }, 108 "Player.OnPropertyChanged": { 109 "type": "notification", 110 "description": "A property of the playing items has changed.", 111 "params": [ 112 { "name": "sender", "type": "string", "required": true }, 113 { "name": "data", "type": "object", "required": true, 114 "properties": { 115 "property": { "$ref": "Player.Property.Value" }, 116 "player": { "$ref": "Player.Notifications.Player", "required": true } 117 } 118 } 119 ], 120 "returns": null 121 }, 122 "Playlist.OnAdd": { 123 "type": "notification", 124 "description": "A playlist item has been added.", 125 "params": [ 126 { "name": "sender", "type": "string", "required": true }, 127 { "name": "data", "type": "object", "required": true, 128 "properties": { 129 "playlistid": { "$ref": "Playlist.Id", "required": true }, 130 "item": { "$ref": "Notifications.Item" }, 131 "position": { "$ref": "Playlist.Position" } 132 } 133 } 134 ], 135 "returns": null 136 }, 137 "Playlist.OnRemove": { 138 "type": "notification", 139 "description": "A playlist item has been removed.", 140 "params": [ 141 { "name": "sender", "type": "string", "required": true }, 142 { "name": "data", "type": "object", "required": true, 143 "properties": { 144 "playlistid": { "$ref": "Playlist.Id", "required": true }, 145 "position": { "$ref": "Playlist.Position" } 146 } 147 } 148 ], 149 "returns": null 150 }, 151 "Playlist.OnClear": { 152 "type": "notification", 153 "description": "A playlist item has been cleared.", 154 "params": [ 155 { "name": "sender", "type": "string", "required": true }, 156 { "name": "data", "type": "object", "required": true, 157 "properties": { 158 "playlistid": { "$ref": "Playlist.Id", "required": true } 159 } 160 } 161 ], 162 "returns": null 163 }, 164 "AudioLibrary.OnUpdate": { 165 "type": "notification", 166 "description": "An audio item has been updated.", 167 "params": [ 168 { "name": "sender", "type": "string", "required": true }, 169 { "name": "data", "type": "object", "required": true, 170 "properties": { 171 "id": { "$ref": "Library.Id", "required": true }, 172 "type": { "type": "string", "id": "Notifications.Library.Audio.Type", "enum": [ "song" ], "required": true }, 173 "transaction": { "$ref": "Optional.Boolean", "description": "True if the update is being performed within a transaction." }, 174 "added": { "$ref": "Optional.Boolean", "description": "True if the update is for a newly added item." } 175 } 176 } 177 ], 178 "returns": null 179 }, 180 "AudioLibrary.OnRemove": { 181 "type": "notification", 182 "description": "An audio item has been removed.", 183 "params": [ 184 { "name": "sender", "type": "string", "required": true }, 185 { "name": "data", "type": "object", "required": true, 186 "properties": { 187 "id": { "$ref": "Library.Id", "required": true }, 188 "type": { "$ref": "Notifications.Library.Audio.Type", "required": true }, 189 "transaction": { "$ref": "Optional.Boolean", "description": "True if the removal is being performed within a transaction." } 190 } 191 } 192 ], 193 "returns": null 194 }, 195 "AudioLibrary.OnScanStarted": { 196 "type": "notification", 197 "description": "An audio library scan has started.", 198 "params": [ 199 { "name": "sender", "type": "string", "required": true }, 200 { "name": "data", "type": "null", "required": true } 201 ], 202 "returns": null 203 }, 204 "AudioLibrary.OnScanFinished": { 205 "type": "notification", 206 "description": "Scanning the audio library has been finished.", 207 "params": [ 208 { "name": "sender", "type": "string", "required": true }, 209 { "name": "data", "type": "null", "required": true } 210 ], 211 "returns": null 212 }, 213 "AudioLibrary.OnCleanStarted": { 214 "type": "notification", 215 "description": "An audio library clean operation has started.", 216 "params": [ 217 { "name": "sender", "type": "string", "required": true }, 218 { "name": "data", "type": "null", "required": true } 219 ], 220 "returns": null 221 }, 222 "AudioLibrary.OnCleanFinished": { 223 "type": "notification", 224 "description": "The audio library has been cleaned.", 225 "params": [ 226 { "name": "sender", "type": "string", "required": true }, 227 { "name": "data", "type": "null", "required": true } 228 ], 229 "returns": null 230 }, 231 "AudioLibrary.OnExport": { 232 "type": "notification", 233 "description": "An audio library export has finished.", 234 "params": [ 235 { "name": "sender", "type": "string", "required": true }, 236 { "name": "data", "type": "object", "required": false, 237 "properties": { 238 "file": { "type": "string", "required": false, "default": "" }, 239 "failcount": { "type": "integer", "minimum": 0, "required": false, "default": 0 } 240 } 241 } 242 ], 243 "returns": null 244 }, 245 "VideoLibrary.OnUpdate": { 246 "type": "notification", 247 "description": "A video item has been updated.", 248 "params": [ 249 { "name": "sender", "type": "string", "required": true }, 250 { "name": "data", "type": "object", "required": true, 251 "properties": { 252 "id": { "$ref": "Library.Id", "required": true }, 253 "type": { "type": "string", "id": "Notifications.Library.Video.Type", "enum": [ "movie", "tvshow", "episode", "musicvideo" ], "required": true }, 254 "playcount": { "type": "integer", "minimum": 0, "default": -1 }, 255 "transaction": { "$ref": "Optional.Boolean", "description": "True if the update is being performed within a transaction." }, 256 "added": { "$ref": "Optional.Boolean", "description": "True if the update is for a newly added item." } 257 } 258 } 259 ], 260 "returns": null 261 }, 262 "VideoLibrary.OnExport": { 263 "type": "notification", 264 "description": "A video library export has finished.", 265 "params": [ 266 { "name": "sender", "type": "string", "required": true }, 267 { "name": "data", "type": "object", "required": false, 268 "properties": { 269 "file": { "type": "string", "required": false, "default": "" }, 270 "root": { "type": "string", "required": false, "default": "" }, 271 "failcount": { "type": "integer", "minimum": 0, "required": false, "default": 0 } 272 } 273 } 274 ], 275 "returns": null 276 }, 277 "VideoLibrary.OnRemove": { 278 "type": "notification", 279 "description": "A video item has been removed.", 280 "params": [ 281 { "name": "sender", "type": "string", "required": true }, 282 { "name": "data", "type": "object", "required": true, 283 "properties": { 284 "id": { "$ref": "Library.Id", "required": true }, 285 "type": { "$ref": "Notifications.Library.Video.Type", "required": true }, 286 "transaction": { "$ref": "Optional.Boolean", "description": "True if the removal is being performed within a transaction." } 287 } 288 } 289 ], 290 "returns": null 291 }, 292 "VideoLibrary.OnScanStarted": { 293 "type": "notification", 294 "description": "A video library scan has started.", 295 "params": [ 296 { "name": "sender", "type": "string", "required": true }, 297 { "name": "data", "type": "null", "required": true } 298 ], 299 "returns": null 300 }, 301 "VideoLibrary.OnScanFinished": { 302 "type": "notification", 303 "description": "Scanning the video library has been finished.", 304 "params": [ 305 { "name": "sender", "type": "string", "required": true }, 306 { "name": "data", "type": "null", "required": true } 307 ], 308 "returns": null 309 }, 310 "VideoLibrary.OnCleanStarted": { 311 "type": "notification", 312 "description": "A video library clean operation has started.", 313 "params": [ 314 { "name": "sender", "type": "string", "required": true }, 315 { "name": "data", "type": "null", "required": true } 316 ], 317 "returns": null 318 }, 319 "VideoLibrary.OnCleanFinished": { 320 "type": "notification", 321 "description": "The video library has been cleaned.", 322 "params": [ 323 { "name": "sender", "type": "string", "required": true }, 324 { "name": "data", "type": "null", "required": true } 325 ], 326 "returns": null 327 }, 328 "VideoLibrary.OnRefresh": { 329 "type": "notification", 330 "description": "The video library has been refreshed and a home screen reload might be necessary.", 331 "params": [ 332 { "name": "sender", "type": "string", "required": true }, 333 { "name": "data", "type": "null", "required": true } 334 ], 335 "returns": null 336 }, 337 "System.OnQuit": { 338 "type": "notification", 339 "description": "Kodi will be closed.", 340 "params": [ 341 { "name": "sender", "type": "string", "required": true }, 342 { "name": "data", "type": "object", "required": true, 343 "properties": { 344 "exitcode": { "type": "integer", "minimum": 0, "required": true } 345 } 346 } 347 ], 348 "returns": null 349 }, 350 "System.OnRestart": { 351 "type": "notification", 352 "description": "The system will be restarted.", 353 "params": [ 354 { "name": "sender", "type": "string", "required": true }, 355 { "name": "data", "type": "null", "required": true } 356 ], 357 "returns": null 358 }, 359 "System.OnSleep": { 360 "type": "notification", 361 "description": "The system will be suspended.", 362 "params": [ 363 { "name": "sender", "type": "string", "required": true }, 364 { "name": "data", "type": "null", "required": true } 365 ], 366 "returns": null 367 }, 368 "System.OnWake": { 369 "type": "notification", 370 "description": "The system woke up from suspension.", 371 "params": [ 372 { "name": "sender", "type": "string", "required": true }, 373 { "name": "data", "type": "null", "required": true } 374 ], 375 "returns": null 376 }, 377 "System.OnLowBattery": { 378 "type": "notification", 379 "description": "The system is on low battery.", 380 "params": [ 381 { "name": "sender", "type": "string", "required": true }, 382 { "name": "data", "type": "null", "required": true } 383 ], 384 "returns": null 385 }, 386 "Application.OnVolumeChanged": { 387 "type": "notification", 388 "description": "The volume of the application has changed.", 389 "params": [ 390 { "name": "sender", "type": "string", "required": true }, 391 { "name": "data", "type": "object", "required": true, 392 "properties": { 393 "volume": { "type": "integer", "minimum": 0, "maximum": 100, "required": true }, 394 "muted": { "type": "boolean", "required": true } 395 } 396 } 397 ], 398 "returns": null 399 }, 400 "Input.OnInputRequested": { 401 "type": "notification", 402 "description": "The user is requested to provide some information.", 403 "params": [ 404 { "name": "sender", "type": "string", "required": true }, 405 { "name": "data", "type": "object", "required": true, 406 "properties": { 407 "type": { "type": "string", "enum": [ "keyboard", "time", "date", "ip", "password", "numericpassword", "number", "seconds" ], "required": true }, 408 "value": { "type": "string", "required": true }, 409 "title": { "type": "string" } 410 } 411 } 412 ], 413 "returns": null 414 }, 415 "Input.OnInputFinished": { 416 "type": "notification", 417 "description": "The user has provided the requested input.", 418 "params": [ 419 { "name": "sender", "type": "string", "required": true }, 420 { "name": "data", "type": "null", "required": true } 421 ], 422 "returns": null 423 }, 424 "GUI.OnScreensaverActivated": { 425 "type": "notification", 426 "description": "The screensaver has been activated.", 427 "params": [ 428 { "name": "sender", "type": "string", "required": true }, 429 { "name": "data", "type": "null", "required": true } 430 ], 431 "returns": null 432 }, 433 "GUI.OnScreensaverDeactivated": { 434 "type": "notification", 435 "description": "The screensaver has been deactivated.", 436 "params": [ 437 { "name": "sender", "type": "string", "required": true }, 438 { "name": "data", "type": "object", "required": true, 439 "properties": { 440 "shuttingdown": { "type": "boolean", "required": true } 441 } 442 } 443 ], 444 "returns": null 445 }, 446 "GUI.OnDPMSActivated": { 447 "type": "notification", 448 "description": "Energy saving/DPMS has been activated.", 449 "params": [ 450 { "name": "sender", "type": "string", "required": true }, 451 { "name": "data", "type": "null", "required": true } 452 ], 453 "returns": null 454 }, 455 "GUI.OnDPMSDeactivated": { 456 "type": "notification", 457 "description": "Energy saving/DPMS has been deactivated.", 458 "params": [ 459 { "name": "sender", "type": "string", "required": true }, 460 { "name": "data", "type": "null", "required": true } 461 ], 462 "returns": null 463 } 464} 465