docs: convert lua api docs to pure rst
Not all the docs are there yet, this is WIP
This commit is contained in:
@@ -18,13 +18,9 @@ extensions = [
|
|||||||
|
|
||||||
breathe_projects = {
|
breathe_projects = {
|
||||||
"WirePlumber": "@OUTDIR@/wp/xml",
|
"WirePlumber": "@OUTDIR@/wp/xml",
|
||||||
"WirePlumber_Lua" : "@OUTDIR@/lua/xml",
|
|
||||||
}
|
}
|
||||||
breathe_default_project = "WirePlumber"
|
breathe_default_project = "WirePlumber"
|
||||||
|
|
||||||
breathe_default_members = ('members', 'protected-members', 'undoc-members')
|
|
||||||
|
|
||||||
primary_domain = 'c'
|
|
||||||
breathe_domain_by_extension = {
|
breathe_domain_by_extension = {
|
||||||
"h" : "c",
|
"h" : "c",
|
||||||
"c" : "c",
|
"c" : "c",
|
||||||
@@ -47,3 +43,5 @@ html_static_path = ['@SRCDIR@/_static']
|
|||||||
html_css_files = ['custom.css']
|
html_css_files = ['custom.css']
|
||||||
|
|
||||||
graphviz_output_format = "svg"
|
graphviz_output_format = "svg"
|
||||||
|
|
||||||
|
pygments_style = "friendly"
|
||||||
|
@@ -52,28 +52,6 @@ endif
|
|||||||
# Build documentation
|
# Build documentation
|
||||||
|
|
||||||
if build_doc
|
if build_doc
|
||||||
doxy_lua_input = [
|
|
||||||
meson.source_root() / 'modules' / 'module-lua-scripting' / 'api.c',
|
|
||||||
meson.source_root() / 'modules' / 'module-lua-scripting' / 'pod.c',
|
|
||||||
]
|
|
||||||
|
|
||||||
doxy_lua_conf_data = configuration_data()
|
|
||||||
doxy_lua_conf_data.set('OUTPUT_DIR', meson.current_build_dir() / 'lua')
|
|
||||||
doxy_lua_conf_data.set('INPUT', ' \\\n '.join(doxy_lua_input))
|
|
||||||
doxyfile_lua = configure_file(
|
|
||||||
input: 'Doxyfile.in',
|
|
||||||
output: 'Doxyfile-lua',
|
|
||||||
configuration: doxy_lua_conf_data
|
|
||||||
)
|
|
||||||
|
|
||||||
doxyxml_lua_depfiles = doxy_lua_input
|
|
||||||
doxyxml_lua = custom_target('doxyxml_lua',
|
|
||||||
command: [doxygen_p, doxyfile_lua],
|
|
||||||
depend_files: doxyxml_lua_depfiles,
|
|
||||||
output: 'lua',
|
|
||||||
build_by_default: true,
|
|
||||||
)
|
|
||||||
|
|
||||||
sphinx_files = files(
|
sphinx_files = files(
|
||||||
'_static'/'custom.css',
|
'_static'/'custom.css',
|
||||||
meson.source_root()/'README.rst',
|
meson.source_root()/'README.rst',
|
||||||
@@ -102,10 +80,9 @@ if build_doc
|
|||||||
],
|
],
|
||||||
depend_files: [
|
depend_files: [
|
||||||
sphinx_conf, sphinx_files,
|
sphinx_conf, sphinx_files,
|
||||||
doxyfile_wp, doxyfile_lua,
|
doxyfile_wp, doxyxml_wp_depfiles,
|
||||||
doxyxml_wp_depfiles, doxyxml_lua_depfiles,
|
|
||||||
],
|
],
|
||||||
depends: [doxyxml_wp, doxyxml_lua],
|
depends: [doxyxml_wp],
|
||||||
output: 'html',
|
output: 'html',
|
||||||
install: true,
|
install: true,
|
||||||
install_dir: get_option('datadir') / 'doc' / 'wireplumber',
|
install_dir: get_option('datadir') / 'doc' / 'wireplumber',
|
||||||
|
@@ -7,18 +7,11 @@ Lua API Documentation
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
:caption: Contents:
|
:caption: Contents:
|
||||||
|
|
||||||
|
lua_api/lua_gobject.rst
|
||||||
lua_api/lua_core_api.rst
|
lua_api/lua_core_api.rst
|
||||||
lua_api/lua_client_api.rst
|
|
||||||
lua_api/lua_endpoint_api.rst
|
|
||||||
lua_api/lua_global_proxy_api.rst
|
|
||||||
lua_api/lua_metadata_api.rst
|
|
||||||
lua_api/lua_node_api.rst
|
|
||||||
lua_api/lua_object_api.rst
|
lua_api/lua_object_api.rst
|
||||||
lua_api/lua_object_interest_api.rst
|
|
||||||
lua_api/lua_object_manager_api.rst
|
lua_api/lua_object_manager_api.rst
|
||||||
lua_api/lua_pipewire_object_api.rst
|
lua_api/lua_object_interest_api.rst
|
||||||
lua_api/lua_proxy_api.rst
|
lua_api/lua_proxies_api.rst
|
||||||
lua_api/lua_session_bin_api.rst
|
|
||||||
lua_api/lua_session_item_api.rst
|
lua_api/lua_session_item_api.rst
|
||||||
lua_api/lua_source_api.rst
|
|
||||||
lua_api/lua_spa_device_api.rst
|
lua_api/lua_spa_device_api.rst
|
||||||
|
@@ -1,8 +0,0 @@
|
|||||||
.. _lua_client_api:
|
|
||||||
|
|
||||||
Lua Client Documentation
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: Client
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
@@ -1,8 +1,4 @@
|
|||||||
.. _lua_core_api:
|
.. _lua_core_api:
|
||||||
|
|
||||||
Lua Core Documentation
|
Core
|
||||||
----------------------
|
====
|
||||||
|
|
||||||
.. doxygenstruct:: Core
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
||||||
|
@@ -1,10 +0,0 @@
|
|||||||
.. _lua_endpoint_api:
|
|
||||||
|
|
||||||
Lua Endpoint Documentation
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: Endpoint
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
||||||
|
|
||||||
|
|
@@ -1,8 +0,0 @@
|
|||||||
.. _lua_global_proxy_api:
|
|
||||||
|
|
||||||
Lua Global Proxy Documentation
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: GlobalProxy
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
67
docs/rst/lua_api/lua_gobject.rst
Normal file
67
docs/rst/lua_api/lua_gobject.rst
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
.. _lua_gobject:
|
||||||
|
|
||||||
|
GObject Integration
|
||||||
|
===================
|
||||||
|
|
||||||
|
The Lua engine that powers WirePlumber's scripts provides direct integration
|
||||||
|
with `GObject`_. Most of the objects that you will deal with in the lua scripts
|
||||||
|
are wrapping GObjects. In order to work with the scripts, you will first need
|
||||||
|
to have a basic understanding of GObject's basic concepts, such as signals and
|
||||||
|
properties.
|
||||||
|
|
||||||
|
Properties
|
||||||
|
..........
|
||||||
|
|
||||||
|
All GObjects have the ability to have `properties`_.
|
||||||
|
In C we normally use `g_object_get`_ to retrieve them and `g_object_set`_
|
||||||
|
to set them.
|
||||||
|
|
||||||
|
In WirePlumber's lua engine, these properties are exposed as object members
|
||||||
|
of the Lua object.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
.. code-block:: lua
|
||||||
|
|
||||||
|
-- read the "bound-id" GObject property from the proxy
|
||||||
|
local proxy = function_that_returns_a_wp_proxy()
|
||||||
|
local proxy_id = proxy["bound-id"]
|
||||||
|
print("Bound ID: " .. proxy_id)
|
||||||
|
|
||||||
|
Writable properties can also be set in a similar fashion:
|
||||||
|
|
||||||
|
.. code-block:: lua
|
||||||
|
|
||||||
|
-- set the "scale" GObject property to the enum value "cubic"
|
||||||
|
local mixer = ...
|
||||||
|
mixer["scale"] = "cubic"
|
||||||
|
|
||||||
|
Signals
|
||||||
|
.......
|
||||||
|
|
||||||
|
GObjects also have a generic mechanism to deliver events to external callbacks.
|
||||||
|
These events are called `signals`_
|
||||||
|
|
||||||
|
All lua objects that wrap a GObject contain the following methods:
|
||||||
|
|
||||||
|
.. function:: connect(detailed_signal, callback)
|
||||||
|
|
||||||
|
Connects the signal to a callback. When the signal is emitted by the
|
||||||
|
underlying object, the callback will be executed.
|
||||||
|
|
||||||
|
:param detailed_signal: the signal name to listen to
|
||||||
|
(of the form "signal-name::detail")
|
||||||
|
:param callback: a lua function that will be called when the signal is emitted
|
||||||
|
|
||||||
|
.. function:: call(action_signal, ...)
|
||||||
|
|
||||||
|
Calls an action signal on this object.
|
||||||
|
|
||||||
|
:param action_signal: the signal name to call
|
||||||
|
:param ...: a list of arguments that will be passed to the signal
|
||||||
|
|
||||||
|
.. _GObject: https://developer.gnome.org/gobject/stable/
|
||||||
|
.. _properties: https://developer.gnome.org/gobject/stable/gobject-properties.html
|
||||||
|
.. _g_object_get: https://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html#g-object-get
|
||||||
|
.. _g_object_set: https://developer.gnome.org/gobject/stable/gobject-The-Base-Object-Type.html#g-object-set
|
||||||
|
.. _signals: https://developer.gnome.org/gobject/stable/signal.html
|
@@ -1,9 +0,0 @@
|
|||||||
.. _lua_metadata_api:
|
|
||||||
|
|
||||||
Lua Metadata Documentation
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: Metadata
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
||||||
|
|
@@ -1,10 +0,0 @@
|
|||||||
.. _lua_node_api:
|
|
||||||
|
|
||||||
Lua Node Documentation
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: Node
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
||||||
|
|
||||||
|
|
@@ -1,8 +1,4 @@
|
|||||||
.. _lua_object_api:
|
.. _lua_object_api:
|
||||||
|
|
||||||
Lua Object Documentation
|
WpObject
|
||||||
------------------------
|
========
|
||||||
|
|
||||||
.. doxygenstruct:: Object
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
||||||
|
@@ -1,8 +1,24 @@
|
|||||||
.. _lua_object_interest_api:
|
.. _lua_object_interest_api:
|
||||||
|
|
||||||
Lua Object Interest Documentation
|
Object Interest
|
||||||
---------------------------------
|
===============
|
||||||
|
|
||||||
.. doxygenstruct:: ObjectInterest
|
Constructors
|
||||||
:project: WirePlumber_Lua
|
~~~~~~~~~~~~
|
||||||
:members:
|
|
||||||
|
.. function:: Interest(decl)
|
||||||
|
|
||||||
|
:param table decl: an interest declaration
|
||||||
|
:returns: the interest
|
||||||
|
:rtype: ObjectInterest
|
||||||
|
|
||||||
|
Methods
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
.. function:: Interest.matches(self, obj)
|
||||||
|
|
||||||
|
:param self: the interest
|
||||||
|
:param obj: an object to check for a match
|
||||||
|
:type obj: GObject or table
|
||||||
|
:returns: whether the object matches the interest
|
||||||
|
:rtype: boolean
|
||||||
|
@@ -1,9 +1,55 @@
|
|||||||
.. _lua_object_manager_api:
|
.. _lua_object_manager_api:
|
||||||
|
|
||||||
Lua Object Manager Documentation
|
Object Manager
|
||||||
---------------------------------
|
==============
|
||||||
|
|
||||||
.. doxygenstruct:: ObjectManager
|
Constructors
|
||||||
:project: WirePlumber_Lua
|
~~~~~~~~~~~~
|
||||||
:members:
|
|
||||||
|
|
||||||
|
.. function:: ObjectManager(interest_list)
|
||||||
|
|
||||||
|
Constructs a new object manager.
|
||||||
|
|
||||||
|
Combines :c:func:`wp_object_manager_new` and
|
||||||
|
:c:func:`wp_object_manager_add_interest_full`
|
||||||
|
|
||||||
|
:param table interest_list: a list of `interests <lua_object_interest_api>`_
|
||||||
|
to objects
|
||||||
|
:returns: a new object manager
|
||||||
|
:rtype: ObjectManager
|
||||||
|
|
||||||
|
Methods
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
.. function:: ObjectManager.activate(self)
|
||||||
|
|
||||||
|
Activates the object manager.
|
||||||
|
Binds :c:func:`wp_core_install_object_manager`.
|
||||||
|
|
||||||
|
:param self: the object manager
|
||||||
|
|
||||||
|
.. function:: ObjectManager.get_n_objects(self)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_object_manager_get_n_objects`
|
||||||
|
|
||||||
|
:param self: the object manager
|
||||||
|
:returns: the number of objects managed by the object manager
|
||||||
|
:rtype: integer
|
||||||
|
|
||||||
|
.. function:: ObjectManager.iterate(self, interest)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_object_manager_new_filtered_iterator_full`
|
||||||
|
|
||||||
|
:param self: the object manager
|
||||||
|
:param ObjectInterest interest: an interest to filter objects, or nil
|
||||||
|
:returns: all the managed objects that match the interest
|
||||||
|
:rtype: Iterator; the iteration items are of type `GObject <lua_gobject>`_
|
||||||
|
|
||||||
|
.. function:: ObjectManager.lookup(self, interest)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_object_manager_lookup`
|
||||||
|
|
||||||
|
:param self: the object manager
|
||||||
|
:param ObjectInterest interest: the interest to use for the lookup, or nil
|
||||||
|
:returns: the first managed object that matches the interest
|
||||||
|
:rtype: `GObject <lua_gobject>`_
|
||||||
|
@@ -1,8 +0,0 @@
|
|||||||
.. _lua_pipewire_object_api:
|
|
||||||
|
|
||||||
Lua PipewireObject Documentation
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: PipewireObject
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
130
docs/rst/lua_api/lua_proxies_api.rst
Normal file
130
docs/rst/lua_api/lua_proxies_api.rst
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
.. _lua_proxies_api:
|
||||||
|
|
||||||
|
PipeWire Proxies
|
||||||
|
================
|
||||||
|
|
||||||
|
Proxy
|
||||||
|
.....
|
||||||
|
|
||||||
|
Lua objects that bind a :ref:`WpProxy <proxy_api>` contain the following methods:
|
||||||
|
|
||||||
|
.. function:: Proxy.get_interface_type(self)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_proxy_get_interface_type`
|
||||||
|
|
||||||
|
:param self: the proxy
|
||||||
|
:returns: the proxy type, the proxy type version
|
||||||
|
:rtype: string, integer
|
||||||
|
|
||||||
|
PipeWire Object
|
||||||
|
...............
|
||||||
|
|
||||||
|
Lua objects that bind a :ref:`WpPipewireObject <pipewire_object_api>`
|
||||||
|
contain the following methods:
|
||||||
|
|
||||||
|
.. function:: PipewireObject.iterate_params(self, param_name)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_pipewire_object_enum_params_sync`
|
||||||
|
|
||||||
|
:param self: the proxy
|
||||||
|
:param string param_name: the PipeWire param name to enumerate,
|
||||||
|
ex "Props", "Route"
|
||||||
|
:returns: the available parameters
|
||||||
|
:rtype: Iterator; the iteration items are `Spa Pod <lua_spa_pod>`_ objects
|
||||||
|
|
||||||
|
.. function:: PipewireObject.set_params(self, param_name, pod)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_pipewire_object_set_param`
|
||||||
|
|
||||||
|
:param self: the proxy
|
||||||
|
:param string param_name: The PipeWire param name to set, ex "Props", "Route"
|
||||||
|
:param Pod pod: A Spa Pod object containing the new params
|
||||||
|
|
||||||
|
Global Proxy
|
||||||
|
............
|
||||||
|
|
||||||
|
Lua objects that bind a :ref:`WpGlobalProxy <global_proxy_api>`
|
||||||
|
contain the following methods:
|
||||||
|
|
||||||
|
.. function:: GlobalProxy.request_destroy(self)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_global_proxy_request_destroy`
|
||||||
|
|
||||||
|
:param self: the proxy
|
||||||
|
|
||||||
|
PipeWire Node
|
||||||
|
.............
|
||||||
|
|
||||||
|
Lua objects that bind a :ref:`WpNode <node_api>` contain the following methods:
|
||||||
|
|
||||||
|
.. function:: Node.send_command(self, command)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_node_send_command`
|
||||||
|
|
||||||
|
:param self: the proxy
|
||||||
|
:param string command: the command to send to the node (ex "Suspend")
|
||||||
|
|
||||||
|
|
||||||
|
PipeWire Client
|
||||||
|
...............
|
||||||
|
|
||||||
|
Lua objects that bind a :ref:`WpClient <client_api>`
|
||||||
|
contain the following methods:
|
||||||
|
|
||||||
|
.. function:: Client.update_permissions(self, perms)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_client_update_permissions`
|
||||||
|
|
||||||
|
Takes a table where the keys are object identifiers and the values are
|
||||||
|
permission strings.
|
||||||
|
|
||||||
|
Valid object identifiers are:
|
||||||
|
|
||||||
|
- A number, meaning the bound ID of a proxy
|
||||||
|
- The string "any" or the string "all", which sets the default permissions
|
||||||
|
for this client
|
||||||
|
|
||||||
|
The permission strings have a chmod-like syntax (ex. "rwx" or "r-xm"), where:
|
||||||
|
|
||||||
|
- "r" means permission to read the object
|
||||||
|
- "w" means permission to write data to the object
|
||||||
|
- "x" means permission to call methods on the object
|
||||||
|
- "m" means permission to set metadata for the object
|
||||||
|
- "-" is ignored and can be used to make the string more readable when
|
||||||
|
a permission flag is omitted
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
.. code-block:: lua
|
||||||
|
|
||||||
|
client:update_permissions {
|
||||||
|
["all"] = "r-x",
|
||||||
|
[35] = "rwxm",
|
||||||
|
}
|
||||||
|
|
||||||
|
:param self: the proxy
|
||||||
|
:param table perms: the permissions to update for this client
|
||||||
|
|
||||||
|
PipeWire Metadata
|
||||||
|
.................
|
||||||
|
|
||||||
|
Lua objects that bind a :ref:`WpMetadata <metadata_api>`
|
||||||
|
contain the following methods:
|
||||||
|
|
||||||
|
.. function:: Metadata.iterate(self, subject)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_metadata_new_iterator`
|
||||||
|
|
||||||
|
:param self: the proxy
|
||||||
|
:param integer subject: the subject id
|
||||||
|
:returns: an iterator
|
||||||
|
|
||||||
|
.. function:: Metadata.find(self, subject, key)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_metadata_find`
|
||||||
|
|
||||||
|
:param self: the proxy
|
||||||
|
:param string subject: the subject id
|
||||||
|
:param string key: the metadata key to find
|
||||||
|
:returns: the value for this metadata key, the type of the value
|
||||||
|
:rtype: string, string
|
@@ -1,8 +0,0 @@
|
|||||||
.. _lua_proxy_api:
|
|
||||||
|
|
||||||
Lua Proxy Documentation
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: Proxy
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
@@ -1,8 +0,0 @@
|
|||||||
.. _lua_session_bin_api:
|
|
||||||
|
|
||||||
Lua Session Bin Documentation
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: SessionBin
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
@@ -1,9 +1,42 @@
|
|||||||
.. _lua_session_item_api:
|
.. _lua_session_item_api:
|
||||||
|
|
||||||
Lua Session Item Documentation
|
Session Item
|
||||||
------------------------------
|
============
|
||||||
|
|
||||||
.. doxygenstruct:: SessionItem
|
Lua objects that bind a :ref:`WpSessionItem <session_item_api>`
|
||||||
:project: WirePlumber_Lua
|
contain the following methods:
|
||||||
:members:
|
|
||||||
|
|
||||||
|
.. function:: SessionItem.get_associated_proxy(self, type)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_session_item_get_associated_proxy`
|
||||||
|
|
||||||
|
:param self: the session item
|
||||||
|
:param string type: the proxy type name
|
||||||
|
:returns: the proxy object or nil
|
||||||
|
|
||||||
|
.. function:: SessionItem.reset(self)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_session_item_reset`
|
||||||
|
|
||||||
|
:param self: the session item
|
||||||
|
|
||||||
|
.. function:: SessionItem.configure(self, properties)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_session_item_configure`
|
||||||
|
|
||||||
|
:param self: the session item
|
||||||
|
:param table properties: The configuration properties
|
||||||
|
:returns: true on success, false on failure
|
||||||
|
:rtype: boolean
|
||||||
|
|
||||||
|
.. function:: SessionItem.register(self)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_session_item_register`
|
||||||
|
|
||||||
|
:param self: the session item
|
||||||
|
|
||||||
|
.. function:: SessionItem.remove(self)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_session_item_remove`
|
||||||
|
|
||||||
|
:param self: the session item
|
||||||
|
@@ -1,8 +0,0 @@
|
|||||||
.. _lua_source_api:
|
|
||||||
|
|
||||||
Lua Source Documentation
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
.. doxygenstruct:: Source
|
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
@@ -1,10 +1,21 @@
|
|||||||
.. _lua_spa_device_api:
|
.. _lua_spa_device_api:
|
||||||
|
|
||||||
Lua Spa Device Documentation
|
Spa Device
|
||||||
----------------------------
|
==========
|
||||||
|
|
||||||
.. doxygenstruct:: SpaDevice
|
.. function:: SpaDevice.get_managed_object(self, id)
|
||||||
:project: WirePlumber_Lua
|
|
||||||
:members:
|
|
||||||
|
|
||||||
|
Binds :c:func:`wp_spa_device_get_managed_object`
|
||||||
|
|
||||||
|
:param self: the spa device
|
||||||
|
:param integer id: the object id
|
||||||
|
:returns: the managed object or nil
|
||||||
|
|
||||||
|
.. function:: SpaDevice.store_managed_object(self, id, object)
|
||||||
|
|
||||||
|
Binds :c:func:`wp_spa_device_store_managed_object`
|
||||||
|
|
||||||
|
:param self: the spa device
|
||||||
|
:param integer id: the object id
|
||||||
|
:param GObject object: a GObject to store or nil to remove the existing
|
||||||
|
stored object
|
||||||
|
@@ -1,18 +1,11 @@
|
|||||||
# you need to add here any files you add to the toc directory as well
|
# you need to add here any files you add to the toc directory as well
|
||||||
sphinx_files += files(
|
sphinx_files += files(
|
||||||
'lua_core_api.rst',
|
'lua_core_api.rst',
|
||||||
'lua_client_api.rst',
|
'lua_gobject.rst',
|
||||||
'lua_endpoint_api.rst',
|
|
||||||
'lua_global_proxy_api.rst',
|
|
||||||
'lua_metadata_api.rst',
|
|
||||||
'lua_node_api.rst',
|
|
||||||
'lua_object_api.rst',
|
'lua_object_api.rst',
|
||||||
'lua_object_interest_api.rst',
|
'lua_object_interest_api.rst',
|
||||||
'lua_object_manager_api.rst',
|
'lua_object_manager_api.rst',
|
||||||
'lua_pipewire_object_api.rst',
|
'lua_proxies_api.rst',
|
||||||
'lua_proxy_api.rst',
|
|
||||||
'lua_session_bin_api.rst',
|
|
||||||
'lua_session_item_api.rst',
|
'lua_session_item_api.rst',
|
||||||
'lua_source_api.rst',
|
|
||||||
'lua_spa_device_api.rst',
|
'lua_spa_device_api.rst',
|
||||||
)
|
)
|
||||||
|
@@ -5,9 +5,7 @@
|
|||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*/
|
*/
|
||||||
/*!
|
|
||||||
* @file api.c
|
|
||||||
*/
|
|
||||||
#include <wp/wp.h>
|
#include <wp/wp.h>
|
||||||
#include <pipewire/pipewire.h>
|
#include <pipewire/pipewire.h>
|
||||||
#include <wplua/wplua.h>
|
#include <wplua/wplua.h>
|
||||||
@@ -16,39 +14,6 @@
|
|||||||
|
|
||||||
void wp_lua_scripting_pod_init (lua_State *L);
|
void wp_lua_scripting_pod_init (lua_State *L);
|
||||||
|
|
||||||
/*!
|
|
||||||
* @struct Core
|
|
||||||
*
|
|
||||||
* @struct Client
|
|
||||||
*
|
|
||||||
* @struct Endpoint
|
|
||||||
*
|
|
||||||
* @struct GlobalProxy
|
|
||||||
*
|
|
||||||
* @struct Metadata
|
|
||||||
*
|
|
||||||
* @struct Node
|
|
||||||
*
|
|
||||||
* @struct Object
|
|
||||||
*
|
|
||||||
* @struct ObjectInterest
|
|
||||||
*
|
|
||||||
* @struct ObjectManager
|
|
||||||
*
|
|
||||||
* @struct PipewireObject
|
|
||||||
*
|
|
||||||
* @struct Proxy
|
|
||||||
*
|
|
||||||
* @struct SessionBin
|
|
||||||
*
|
|
||||||
* @struct SessionItem
|
|
||||||
*
|
|
||||||
* @struct Source
|
|
||||||
*
|
|
||||||
* @struct SpaDevice
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* helpers */
|
/* helpers */
|
||||||
|
|
||||||
static WpCore *
|
static WpCore *
|
||||||
@@ -97,13 +62,6 @@ static const luaL_Reg glib_methods[] = {
|
|||||||
|
|
||||||
/* GSource */
|
/* GSource */
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof SOurce
|
|
||||||
* @fn Source.destroy()
|
|
||||||
*
|
|
||||||
* @brief Destroys the source.
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
source_destroy (lua_State *L)
|
source_destroy (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -119,11 +77,6 @@ static const luaL_Reg source_methods[] = {
|
|||||||
|
|
||||||
/* WpCore */
|
/* WpCore */
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Core
|
|
||||||
* @fn Core.get_info()
|
|
||||||
* @returns A dictionary containing the core information
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
core_get_info (lua_State *L)
|
core_get_info (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -146,18 +99,6 @@ core_get_info (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Core
|
|
||||||
* @fn Core.idle_add()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Adds an idle callback to be called in the same GMainContext as the
|
|
||||||
* one used by this core. This is essentially the same as g_idle_add_full(),
|
|
||||||
* but it adds the created GSource on the GMainContext used by this core instead of the default context.
|
|
||||||
*
|
|
||||||
* @returns the source
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
core_idle_add (lua_State *L)
|
core_idle_add (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -169,21 +110,6 @@ core_idle_add (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Core
|
|
||||||
* @fn Core.timeout_add()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Adds a timeout callback to be called at regular intervals in the same
|
|
||||||
* GMainContext as the one used by this core. The function is called repeatedly
|
|
||||||
* until it returns FALSE, at which point the timeout is automatically destroyed
|
|
||||||
* and the function will not be called again. The first call to the function
|
|
||||||
* will be at the end of the first interval. This is essentially the same as
|
|
||||||
* g_timeout_add_full(), but it adds the created GSource used by this core instead of the default context.
|
|
||||||
*
|
|
||||||
* @returns the source
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
core_timeout_add (lua_State *L)
|
core_timeout_add (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -214,23 +140,6 @@ on_core_done (WpCore * core, GAsyncResult * res, GClosure * closure)
|
|||||||
g_closure_unref (closure);
|
g_closure_unref (closure);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Core
|
|
||||||
* @fn Core.sync()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Asks the PipeWire server to call the callback via an event.
|
|
||||||
* Since methods are handled in-order and events are delivered
|
|
||||||
* in-order, this can be used as a barrier to ensure all previous
|
|
||||||
* methods and the resulting events have been handled.
|
|
||||||
*
|
|
||||||
* In both success and error cases, callback is always called. Use
|
|
||||||
* `wp_core_sync_finish()` from within the callback to determine whether
|
|
||||||
* the operation completed successfully or if an error occurred.
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
core_sync (lua_State *L)
|
core_sync (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -249,16 +158,6 @@ core_disconnect (WpCore * core)
|
|||||||
return G_SOURCE_REMOVE;
|
return G_SOURCE_REMOVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Core
|
|
||||||
* @fn Core.quit()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Quits the core
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
core_quit (lua_State *L)
|
core_quit (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -395,16 +294,6 @@ object_activate_done (WpObject *o, GAsyncResult *res, gpointer data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Object
|
|
||||||
* @fn Object.activate()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Initiates the object activation
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
object_activate (lua_State *L)
|
object_activate (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -422,16 +311,6 @@ object_activate (lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Object
|
|
||||||
* @fn Object.deactivate()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Initiates the object deactivation
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
object_deactivate (lua_State *L)
|
object_deactivate (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -469,16 +348,6 @@ static const luaL_Reg object_methods[] = {
|
|||||||
|
|
||||||
/* WpProxy */
|
/* WpProxy */
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Proxy
|
|
||||||
* @fn Proxy.get_interface_type()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Retrieves the interface type
|
|
||||||
*
|
|
||||||
* @returns the interface
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
proxy_get_interface_type (lua_State *L)
|
proxy_get_interface_type (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -497,16 +366,6 @@ static const luaL_Reg proxy_methods[] = {
|
|||||||
|
|
||||||
/* WpGlobalProxy */
|
/* WpGlobalProxy */
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof GlobalProxy
|
|
||||||
* @fn GlobalProxy.request_destroy()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Requests the proxy destruction
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
global_proxy_request_destroy (lua_State *L)
|
global_proxy_request_destroy (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -740,16 +599,6 @@ object_interest_new (lua_State *L)
|
|||||||
return object_interest_new_index (L, 1, G_TYPE_INVALID);
|
return object_interest_new_index (L, 1, G_TYPE_INVALID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof ObjectInterest
|
|
||||||
* @fn ObjectInterest.matches()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Verifies the Object of Interest and pushes the matching result to lua
|
|
||||||
*
|
|
||||||
* @returns whether matched or not
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
object_interest_matches (lua_State *L)
|
object_interest_matches (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -823,16 +672,6 @@ object_manager_new (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof ObjectManager
|
|
||||||
* @fn ObjectManager.activate()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Activates the Object Manager
|
|
||||||
*
|
|
||||||
* @returns status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
object_manager_activate (lua_State *L)
|
object_manager_activate (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -849,16 +688,6 @@ object_manager_get_n_objects (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof ObjectManager
|
|
||||||
* @fn ObjectManager.iterate()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Iterates the Object Manager and provides the next iterator to lua
|
|
||||||
*
|
|
||||||
* @returns the iterator
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
object_manager_iterate (lua_State *L)
|
object_manager_iterate (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -871,16 +700,6 @@ object_manager_iterate (lua_State *L)
|
|||||||
return push_wpiterator (L, it);
|
return push_wpiterator (L, it);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof ObjectManager
|
|
||||||
* @fn ObjectManager.lookup()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Looksup the Object Manager for the object of interest
|
|
||||||
*
|
|
||||||
* @returns the object of interest or nil
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
object_manager_lookup (lua_State *L)
|
object_manager_lookup (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -906,16 +725,6 @@ static const luaL_Reg object_manager_methods[] = {
|
|||||||
|
|
||||||
/* WpMetadata */
|
/* WpMetadata */
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Metadata
|
|
||||||
* @fn Metadata.iterate()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Iterates the metadata and pushes the next iterator to lua
|
|
||||||
*
|
|
||||||
* @returns the iterator
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
metadata_iterate (lua_State *L)
|
metadata_iterate (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -925,16 +734,6 @@ metadata_iterate (lua_State *L)
|
|||||||
return push_metadata_wpiterator (L, it);
|
return push_metadata_wpiterator (L, it);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Metadata
|
|
||||||
* @fn Metadata.find()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Finds for the metadata and pushes the data to lua
|
|
||||||
*
|
|
||||||
* @returns the data
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
metadata_find (lua_State *L)
|
metadata_find (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -997,15 +796,6 @@ spa_device_new (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof SpaDevice
|
|
||||||
* @fn SpaDevice.get_managed_object()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Retrives the spa device managed object and pushes it to lua
|
|
||||||
* @returns the Spa Device Object
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
spa_device_get_managed_object (lua_State *L)
|
spa_device_get_managed_object (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1017,15 +807,6 @@ spa_device_get_managed_object (lua_State *L)
|
|||||||
return obj ? 1 : 0;
|
return obj ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof SpaDevice
|
|
||||||
* @fn SpaDevice.store_managed_object()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Stores the spa device managed object
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
spa_device_store_managed_object (lua_State *L)
|
spa_device_store_managed_object (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1063,15 +844,6 @@ node_new (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Node
|
|
||||||
* @fn Node.send_command()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Sends the node command
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
node_send_command (lua_State *L)
|
node_send_command (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1150,16 +922,6 @@ client_parse_permissions (const gchar * perms_str, guint32 *perms)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof Client
|
|
||||||
* @fn Client.update_permissions()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Updates the client permissions and pushes the result to lua
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
client_update_permissions (lua_State *L)
|
client_update_permissions (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1223,16 +985,6 @@ session_item_get_associated_proxy (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof SessionItem
|
|
||||||
* @fn SessionItem.reset()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Resets the Session Item
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
session_item_reset (lua_State *L)
|
session_item_reset (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1241,16 +993,6 @@ session_item_reset (lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof SessionItem
|
|
||||||
* @fn SessionItem.configure()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Configures the Session Item
|
|
||||||
*
|
|
||||||
* @returns the configured Session Item Properties
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
session_item_configure (lua_State *L)
|
session_item_configure (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1300,16 +1042,6 @@ session_item_configure (lua_State *L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof SessionItem
|
|
||||||
* @fn SessionItem.register()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Activates the Session Item
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
session_item_register (lua_State *L)
|
session_item_register (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1318,16 +1050,6 @@ session_item_register (lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof SessionItem
|
|
||||||
* @fn SessionItem.remove()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Deactivates the Session Item
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
session_item_remove (lua_State *L)
|
session_item_remove (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1347,16 +1069,6 @@ static const luaL_Reg session_item_methods[] = {
|
|||||||
|
|
||||||
/* WpPipewireObject */
|
/* WpPipewireObject */
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof PipewireObject
|
|
||||||
* @fn PipewireObject.set_params()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Sets the selected params on the Pipewire Object AKA Node
|
|
||||||
*
|
|
||||||
* @returns The status
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
pipewire_object_set_params (lua_State *L)
|
pipewire_object_set_params (lua_State *L)
|
||||||
{
|
{
|
||||||
@@ -1369,16 +1081,6 @@ pipewire_object_set_params (lua_State *L)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
|
||||||
* @memberof PipewireObject
|
|
||||||
* @fn PipewireObject.iterate_params()
|
|
||||||
*
|
|
||||||
* @param L: The Lua state
|
|
||||||
*
|
|
||||||
* @brief Iterates the params of the Pipewire Object AKA Node
|
|
||||||
*
|
|
||||||
* @returns the iterator
|
|
||||||
*/
|
|
||||||
static int
|
static int
|
||||||
pipewire_object_iterate_params (lua_State *L)
|
pipewire_object_iterate_params (lua_State *L)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user