quickshell-web/modules_old/Quickshell.Services.Mpris/MprisPlayer.json
2024-09-28 02:35:19 +03:00

534 lines
18 KiB
JSON

{
"name": "MprisPlayer",
"module": "Quickshell.Services.Mpris",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A media player exposed over MPRIS.",
"details": "A media player exposed over MPRIS.\n\n{{< callout type=\"warning\" >}}\n Support for various functionality and general compliance to\nthe MPRIS specification varies wildly by player.\nAlways check the associated `canXyz` and `xyzSupported` properties if available.\n{{< /callout >}}\n\n{{< callout type=\"info\" >}}\n The TrackList and Playlist interfaces were not implemented as we could not\nfind any media players using them to test against.\n\n{{< /callout >}}",
"flags": [
"uncreatable"
],
"properties": {
"desktopEntry": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The name of the desktop entry for the media player, or an empty string if not provided.\n",
"flags": [
"readonly"
]
},
"maxRate": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": null,
"flags": [
"readonly"
]
},
"supportedUriSchemes": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": "Uri schemes supported by {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"func\" mname=\"openUri\" >}}.\n",
"flags": [
"readonly"
]
},
"fullscreen": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the player is currently shown in fullscreen.\n\nMay only be written to if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canSetFullscreen\" >}} is true.\n"
},
"canGoNext": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"identity": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The human readable name of the media player.\n",
"flags": [
"readonly"
]
},
"loopState": {
"type": {
"type": "local",
"module": "Quickshell.Services.Mpris",
"name": "MprisLoopState"
},
"details": "The loop state of the media player, or `None` if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"loopSupported\" >}} is false.\n\nMay only be written to if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canControl\" >}} and {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"loopSupported\" >}} are true.\n"
},
"canSetFullscreen": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canControl": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"positionSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"trackArtists": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": "The current track's artists, or an empty list if none were provided.\n",
"flags": [
"readonly"
]
},
"volumeSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canPause": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"metadata": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "Metadata of the current track.\n\nA map of common properties is available [here](https://www.freedesktop.org/wiki/Specifications/mpris-spec/metadata).\nDo not count on any of them actually being present.\n\nNote that the {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"trackTitle\" >}}, {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"trackAlbum\" >}}, {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"trackAlbumArtist\" >}}, {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"trackArtists\" >}} and {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"trackArtUrl\" >}}\nproperties have extra logic to guard against bad players sending weird metadata, and should\nbe used over grabbing the properties directly from the metadata.\n",
"flags": [
"readonly"
]
},
"trackAlbum": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The current track's album, or \"Unknown Album\" if none was provided.\n",
"flags": [
"readonly"
]
},
"trackArtUrl": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The current track's art url, or `\"\"` if none was provided.\n",
"flags": [
"readonly"
]
},
"supportedMimeTypes": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "string"
}
},
"details": "Mime types supported by {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"func\" mname=\"openUri\" >}}.\n",
"flags": [
"readonly"
]
},
"lengthSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"position": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The current position in the playing track, as seconds, with millisecond precision,\nor `0` if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"positionSupported\" >}} is false.\n\nMay only be written to if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canSeek\" >}} and {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"positionSupported\" >}} are true.\n\n{{< callout type=\"warning\" >}}\n To avoid excessive property updates wasting CPU while `position` is not\nactively monitored, `position` usually will not update reactively, unless a nonlinear\nchange in position occurs, however reading it will always return the current position.\n\nIf you want to actively monitor the position, the simplest way it to emit the {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"signal\" mname=\"positionChanged\" >}}\nsignal manually for the duration you are monitoring it, Using a {{< qmltypelink type=\"qt\" module=\"qml.QtQuick\" name=\"FrameAnimation\" mtype=\"\" mname=\"\" >}} if you need\nthe value to update smoothly, such as on a slider, or a {{< qmltypelink type=\"qt\" module=\"qml.QtQuick\" name=\"Timer\" mtype=\"\" mname=\"\" >}} if not, as shown below.\n\n```qml {filename=\"Using a FrameAnimation\"}\nFrameAnimation {\n // only emit the signal when the position is actually changing.\n running: player.playbackState == MprisPlaybackState.Playing\n // emit the positionChanged signal every frame.\n onTriggered: player.positionChanged()\n}\n```\n\n```qml {filename=\"Using a Timer\"}\nTimer {\n // only emit the signal when the position is actually changing.\n running: player.playbackState == MprisPlaybackState.Playing\n // Make sure the position updates at least once per second.\n interval: 1000\n repeat: true\n // emit the positionChanged signal every second.\n onTriggered: player.positionChanged()\n}\n```\n\n{{< /callout >}}"
},
"length": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The length of the playing track, as seconds, with millisecond precision,\nor the value of {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"position\" >}} if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"lengthSupported\" >}} is false.\n",
"flags": [
"readonly"
]
},
"playbackState": {
"type": {
"type": "local",
"module": "Quickshell.Services.Mpris",
"name": "MprisPlaybackState"
},
"details": "The playback state of the media player.\n\n- If {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canPlay\" >}} is false, you cannot assign the `Playing` state.\n- If {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canPause\" >}} is false, you cannot assign the `Paused` state.\n- If {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canControl\" >}} is false, you cannot assign the `Stopped` state.\n(or any of the others, though their repsective properties will also be false)\n"
},
"volume": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The volume of the playing track from 0.0 to 1.0, or 1.0 if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"volumeSupported\" >}} is false.\n\nMay only be written to if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canControl\" >}} and {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"volumeSupported\" >}} are true.\n"
},
"trackTitle": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The title of the current track, or \"Unknown Track\" if none was provided.\n",
"flags": [
"readonly"
]
},
"canPlay": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canRaise": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canGoPrevious": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canTogglePlaying": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"rate": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The speed the song is playing at, as a multiplier.\n\nOnly values between {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"minRate\" >}} and {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"maxRate\" >}} (inclusive) may be written to the property.\nAdditionally, It is recommended that you only write common values such as `0.25`, `0.5`, `1.0`, `2.0`\nto the property, as media players are free to ignore the value, and are more likely to\naccept common ones.\n"
},
"shuffle": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the play queue is currently being shuffled, or false if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"shuffleSupported\" >}} is false.\n\nMay only be written if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canControl\" >}} and {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"shuffleSupported\" >}} are true.\n"
},
"loopSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"shuffleSupported": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"trackAlbumArtist": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The current track's album artist, or \"Unknown Artist\" if none was provided.\n",
"flags": [
"readonly"
]
},
"canSeek": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"canQuit": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": null,
"flags": [
"readonly"
]
},
"minRate": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": null,
"flags": [
"readonly"
]
}
},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "next",
"id": "next",
"details": "Play the next song.\n\nMay only be called if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canGoNext\" >}} is true.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "openUri",
"id": "openUri",
"details": "Open the given URI in the media player.\n\nMany players will silently ignore this, especially if the uri\ndoes not match {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"supportedUriSchemes\" >}} and {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"supportedMimeTypes\" >}}.\n",
"params": [
{
"name": "uri",
"type": {
"type": "qt",
"module": "qml",
"name": "string"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "pause",
"id": "pause",
"details": "Equivalent to setting {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"playbackState\" >}} to `Paused`.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "play",
"id": "play",
"details": "Equivalent to setting {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"playbackState\" >}} to `Playing`.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "previous",
"id": "previous",
"details": "Play the previous song, or go back to the beginning of the current one.\n\nMay only be called if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canGoPrevious\" >}} is true.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "quit",
"id": "quit",
"details": "Quit the media player.\n\nMay only be called if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canQuit\" >}} is true.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "raise",
"id": "raise",
"details": "Bring the media player to the front of the window stack.\n\nMay only be called if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canRaise\" >}} is true.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "seek",
"id": "seek",
"details": "Change `position` by an offset.\n\nEven if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"positionSupported\" >}} is false and you cannot set `position`,\nthis function may work.\n\nMay only be called if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canSeek\" >}} is true.\n",
"params": [
{
"name": "offset",
"type": {
"type": "qt",
"module": "qml",
"name": "real"
}
}
]
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "stop",
"id": "stop",
"details": "Equivalent to setting {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"playbackState\" >}} to `Stopped`.\n",
"params": []
},
{
"ret": {
"type": "qt",
"module": "qml",
"name": "void"
},
"name": "togglePlaying",
"id": "togglePlaying",
"details": "Equivalent to calling {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"func\" mname=\"play\" >}} if not playing or {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"func\" mname=\"pause\" >}} if playing.\n\nMay only be called if {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canTogglePlaying\" >}} is true, which is equivalent to\n{{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"canPlay\" >}} or {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"func\" mname=\"canPause\" >}} depending on the current playback state.\n",
"params": []
}
],
"signals": {
"trackChanged": {
"name": "trackChanged",
"details": null,
"params": []
}
},
"variants": {}
}