64 lines
1.9 KiB
Text
64 lines
1.9 KiB
Text
project = 'lua-libpulse-glib'
|
|
title = 'lua-libpulse-glib'
|
|
description = "Lua bindings for PulseAudio's libpulse, using the GLib Main Loop."
|
|
|
|
full_description = [[
|
|
While libpulse provides different event loop implementations, these bindings focus on the GLib comaptibility only.
|
|
Therefore, all asynchronous functions need to be executed inside a running GLib Main Loop.
|
|
For now, this loop has to run on GLib's default main context. Custom loop contexts are currently not supported.
|
|
|
|
The majority of the API is callback-based asynchronous. Callbacks always receive any potential errors as their
|
|
first parameter, usually just the error message as string, or `nil` when there was no error. Additional parameters
|
|
may either be just a boolean, for operations that don't return data, or the actual queried data.
|
|
|
|
All numeric indices (such as sink or source indices) are adjusted to be 1-based in typical Lua fashion.
|
|
This means that when comparing the output of calls like @{Context:get_sinks} to the output of tools like `pactl`,
|
|
indices will be off by one.
|
|
|
|
local lgi = require("lgi")
|
|
local pulseaudio = require("lua_libpulse_glib")
|
|
local ppretty = require("pl.pretty")
|
|
|
|
local pa = pulseaudio.new()
|
|
local ctx = pa:context()
|
|
|
|
local loop = lgi.GLib.MainLoop.new()
|
|
|
|
ctx:connect(nil, function(state)
|
|
if state == 4 then
|
|
print("Connection is ready")
|
|
|
|
ctx:get_sinks(function(sinks)
|
|
ppretty.dump(sinks)
|
|
loop:quit()
|
|
end)
|
|
end
|
|
end)
|
|
|
|
loop:run()
|
|
]]
|
|
|
|
template = true
|
|
|
|
format = 'discount'
|
|
|
|
pretty = 'lua'
|
|
-- prettify_files = 'show'
|
|
backtick_references = false
|
|
wrap = true
|
|
no_space_before_args = true
|
|
|
|
custom_tags = {
|
|
{
|
|
"async",
|
|
hidden = true,
|
|
},
|
|
{
|
|
"repository",
|
|
hidden = true,
|
|
},
|
|
{
|
|
"package",
|
|
hidden = true,
|
|
}
|
|
}
|