initial commit

This commit is contained in:
Xanazf 2024-09-28 02:35:19 +03:00
commit 6844038616
294 changed files with 37788 additions and 0 deletions

View file

@ -0,0 +1,90 @@
{
"name": "Pipewire",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Contains links to all pipewire objects.",
"details": "",
"flags": [
"singleton"
],
"properties": {
"nodes": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
}
},
"details": "All pipewire nodes.\n",
"flags": [
"readonly"
]
},
"defaultAudioSource": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The default audio source or `null`.\n",
"flags": [
"readonly"
]
},
"defaultAudioSink": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The default audio sink or `null`.\n",
"flags": [
"readonly"
]
},
"linkGroups": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkGroup"
}
},
"details": "All pipewire link groups.\n",
"flags": [
"readonly"
]
},
"links": {
"type": {
"type": "local",
"module": "Quickshell",
"name": "ObjectModel",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLink"
}
},
"details": "All pipewire links.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -0,0 +1,164 @@
{
"name": "PwAudioChannel",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Audio channel of a pipewire node.",
"details": "See {{< qmltypelink type=\"local\" module=\"Quickshell.Services.Pipewire\" name=\"PwNodeAudio\" mtype=\"prop\" mname=\"channels\" >}}.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": "Print a human readable representation of the given channel,\nincluding aux and custom channel ranges.\n",
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwAudioChannel"
}
}
]
}
],
"signals": {},
"variants": {
"Unknown": {
"details": null
},
"FrontLeftWide": {
"details": null
},
"TopSideLeft": {
"details": null
},
"FrontRightWide": {
"details": null
},
"FrontLeft": {
"details": null
},
"TopFrontCenter": {
"details": null
},
"LowFrequencyEffects2": {
"details": null
},
"TopRearLeft": {
"details": null
},
"BottomRightCenter": {
"details": null
},
"RearLeft": {
"details": null
},
"AuxRangeStart": {
"details": "The start of the aux channel range.\n\nValues between AuxRangeStart and AuxRangeEnd are valid.\n"
},
"LowFrequencyEffectsLeft": {
"details": null
},
"RearCenter": {
"details": null
},
"Mono": {
"details": null
},
"CustomRangeStart": {
"details": "The end of the custom channel range.\n\nValues starting at CustomRangeStart are valid.\n"
},
"SideLeft": {
"details": null
},
"TopSideRight": {
"details": null
},
"TopFrontRight": {
"details": null
},
"TopCenter": {
"details": null
},
"FrontRightCenter": {
"details": null
},
"TopRearCenter": {
"details": null
},
"FrontLeftCenter": {
"details": null
},
"TopFrontLeft": {
"details": null
},
"BottomLeftCenter": {
"details": null
},
"TopFrontRightCenter": {
"details": null
},
"LowFrequencyEffectsRight": {
"details": null
},
"SideRight": {
"details": null
},
"FrontCenter": {
"details": null
},
"RearRightCenter": {
"details": null
},
"TopFrontLeftCenter": {
"details": null
},
"AuxRangeEnd": {
"details": "The end of the aux channel range.\n\nValues between AuxRangeStart and AuxRangeEnd are valid.\n"
},
"TopRearRight": {
"details": null
},
"FrontLeftHigh": {
"details": null
},
"NA": {
"details": null
},
"LowFrequencyEffects": {
"details": null
},
"BottomCenter": {
"details": null
},
"FrontRightHigh": {
"details": null
},
"FrontCenterHigh": {
"details": null
},
"FrontRight": {
"details": null
},
"RearRight": {
"details": null
},
"RearLeftCenter": {
"details": null
}
}
}

View file

@ -0,0 +1,64 @@
{
"name": "PwLink",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A connection between pipewire nodes.",
"details": "Note that there is one link per *channel* of a connection between nodes.\nYou usually want {{< qmltypelink type=\"local\" module=\"Quickshell.Services.Pipewire\" name=\"PwLinkGroup\" mtype=\"\" mname=\"\" >}}.\n",
"flags": [
"uncreatable"
],
"properties": {
"target": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node that is *receiving* information. (the sink)\n",
"flags": [
"readonly"
]
},
"state": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkState"
},
"details": "The current state of the link.\n\n{{< callout type=\"warning\" >}}\n This property is invalid unless the node is [bound](../pwobjecttracker).\n\n{{< /callout >}}",
"flags": [
"readonly"
]
},
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "The pipewire object id of the link.\n\nMainly useful for debugging. you can inspect the link directly\nwith `pw-cli i <id>`.\n",
"flags": [
"readonly"
]
},
"source": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node that is *sending* information. (the source)\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -0,0 +1,53 @@
{
"name": "PwLinkGroup",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A group of connections between pipewire nodes.",
"details": "A group of connections between pipewire nodes, one per source->target pair.\n",
"flags": [
"uncreatable"
],
"properties": {
"state": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkState"
},
"details": "The current state of the link group.\n\n{{< callout type=\"warning\" >}}\n This property is invalid unless the node is [bound](../pwobjecttracker).\n\n{{< /callout >}}",
"flags": [
"readonly"
]
},
"target": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node that is *receiving* information. (the sink)\n",
"flags": [
"readonly"
]
},
"source": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node that is *sending* information. (the source)\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -0,0 +1,62 @@
{
"name": "PwLinkState",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "State of a pipewire link.",
"details": "See {{< qmltypelink type=\"local\" module=\"Quickshell.Services.Pipewire\" name=\"PwLink\" mtype=\"prop\" mname=\"state\" >}}.\n",
"flags": [
"enum"
],
"properties": {},
"functions": [
{
"ret": {
"type": "qt",
"module": "qml",
"name": "string"
},
"name": "toString",
"id": "toString",
"details": null,
"params": [
{
"name": "value",
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkState"
}
}
]
}
],
"signals": {},
"variants": {
"Unlinked": {
"details": null
},
"Paused": {
"details": null
},
"Error": {
"details": null
},
"Allocating": {
"details": null
},
"Init": {
"details": null
},
"Negotiating": {
"details": null
},
"Active": {
"details": null
}
}
}

View file

@ -0,0 +1,108 @@
{
"name": "PwNode",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "A node in the pipewire connection graph.",
"details": "",
"flags": [
"uncreatable"
],
"properties": {
"isSink": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If `true`, then the node accepts audio input from other nodes,\nif `false` the node outputs audio to other nodes.\n",
"flags": [
"readonly"
]
},
"nickname": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The node's nickname, corrosponding to the object's `node.nickname` property.\n\nMay be empty. Generally but not always more human readable than {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"description\" >}}.\n",
"flags": [
"readonly"
]
},
"id": {
"type": {
"type": "qt",
"module": "qml",
"name": "int"
},
"details": "The pipewire object id of the node.\n\nMainly useful for debugging. you can inspect the node directly\nwith `pw-cli i <id>`.\n",
"flags": [
"readonly"
]
},
"isStream": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If `true` then the node is likely to be a program, if false it is liekly to be hardware.\n",
"flags": [
"readonly"
]
},
"name": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The node's name, corrosponding to the object's `node.name` property.\n",
"flags": [
"readonly"
]
},
"properties": {
"type": {
"type": "unknown",
"module": "",
"name": ""
},
"details": "The property set present on the node, as an object containing key-value pairs.\nYou can inspect this directly with `pw-cli i <id>`.\n\nA few properties of note, which may or may not be present:\n- `application.name` - A suggested human readable name for the node.\n- `application.icon-name` - The name of an icon recommended to display for the node.\n- `media.name` - A description of the currently playing media.\n (more likely to be present than `media.title` and `media.artist`)\n- `media.title` - The title of the currently playing media.\n- `media.artist` - The artist of the currently playing media.\n\n{{< callout type=\"warning\" >}}\n This property is invalid unless the node is [bound](../pwobjecttracker).\n\n{{< /callout >}}",
"flags": [
"readonly"
]
},
"description": {
"type": {
"type": "qt",
"module": "qml",
"name": "string"
},
"details": "The node's description, corrosponding to the object's `node.description` property.\n\nMay be empty. Generally more human readable than {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"name\" >}}.\n",
"flags": [
"readonly"
]
},
"audio": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNodeAudio"
},
"details": "Extra information present only if the node sends or receives audio.\n",
"flags": [
"readonly"
]
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -0,0 +1,65 @@
{
"name": "PwNodeAudio",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Audio specific properties of pipewire nodes.",
"details": "Extra properties of a {{< qmltypelink type=\"local\" module=\"Quickshell.Services.Pipewire\" name=\"PwNode\" mtype=\"\" mname=\"\" >}} if the node is an audio node.\n\nSee {{< qmltypelink type=\"local\" module=\"Quickshell.Services.Pipewire\" name=\"PwNode\" mtype=\"prop\" mname=\"audio\" >}}.\n",
"flags": [
"uncreatable"
],
"properties": {
"channels": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwAudioChannel"
}
},
"details": "The audio channels present on the node.\n\n{{< callout type=\"warning\" >}}\n This property is invalid unless the node is [bound](../pwobjecttracker).\n\n{{< /callout >}}",
"flags": [
"readonly"
]
},
"volumes": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml",
"name": "real"
}
},
"details": "The volumes of each audio channel individually. Each entry corrosponds to\nthe volume of the channel at the same index in {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"channels\" >}}. {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"volumes\" >}} and {{< qmltypelink type=\"\" module=\"\" name=\"\" mtype=\"prop\" mname=\"channels\" >}}\nwill always be the same length.\n\n{{< callout type=\"warning\" >}}\n This property is invalid unless the node is [bound](../pwobjecttracker).\n\n{{< /callout >}}"
},
"muted": {
"type": {
"type": "qt",
"module": "qml",
"name": "bool"
},
"details": "If the node is currently muted. Setting this property changes the mute state.\n\n{{< callout type=\"warning\" >}}\n This property is invalid unless the node is [bound](../pwobjecttracker).\n\n{{< /callout >}}"
},
"volume": {
"type": {
"type": "qt",
"module": "qml",
"name": "real"
},
"details": "The average volume over all channels of the node.\nSetting this property modifies the volume of all channels proportionately.\n\n{{< callout type=\"warning\" >}}\n This property is invalid unless the node is [bound](../pwobjecttracker).\n\n{{< /callout >}}"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -0,0 +1,41 @@
{
"name": "PwNodeLinkTracker",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Tracks all link connections to a given node.",
"details": "",
"properties": {
"linkGroups": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwLinkGroup"
}
},
"details": "Link groups connected to the given node.\n\nIf the node is a sink, links which target the node will be tracked.\nIf the node is a source, links which source the node will be tracked.\n",
"flags": [
"readonly"
]
},
"node": {
"type": {
"type": "local",
"module": "Quickshell.Services.Pipewire",
"name": "PwNode"
},
"details": "The node to track connections to.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -0,0 +1,30 @@
{
"name": "PwObjectTracker",
"module": "Quickshell.Services.Pipewire",
"type": "class",
"super": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
},
"description": "Binds pipewire objects.",
"details": "If the object list of at least one PwObjectTracker contains a given pipewire object,\nit will become *bound* and you will be able to interact with bound-only properties.\n",
"properties": {
"objects": {
"type": {
"type": "qt",
"module": "qml",
"name": "list",
"of": {
"type": "qt",
"module": "qml.QtQml",
"name": "QtObject"
}
},
"details": "The list of objects to bind.\n"
}
},
"functions": [],
"signals": {},
"variants": {}
}

View file

@ -0,0 +1,5 @@
{
"name": "Quickshell.Services.Pipewire",
"description": "Pipewire API",
"details": ""
}