= lua-libpulse-glib :idprefix: :idseparator: - ifdef::env-github,env-browser[] :toc: macro :toclevels: 1 endif::[] ifdef::env-github[] :branch: master :status: :outfilesuffix: .adoc :!toc-title: :caution-caption: :fire: :important-caption: :exclamation: :note-caption: :paperclip: :tip-caption: :bulb: :warning-caption: :warning: endif::[] :url-ci-github: https://github.com/sclu1034/lua-libpulse-glib/actions :url-ci-badge-github: https://img.shields.io/github/workflow/status/sclu1034/lua-libpulse-glib/Lint%20&%20Test?style=flat-square :url-license-badge: https://img.shields.io/badge/license-GPLv3-brightgreen?style=flat-square :url-luarocks-badge: https://img.shields.io/luarocks/v/sclu1034/lua-libpulse-glib?style=flat-square :url-luarocks-link: https://luarocks.org/modules/sclu1034/lua-libpulse-glib image:{url-license-badge}[License] ifdef::status[] image:{url-ci-badge-github}[Build Status (GitHub Actions), link={url-ci-github}] endif::[] image:{url-luarocks-badge}[LuaRocks Package, link={url-luarocks-link}] https://freedesktop.org/software/pulseaudio/doxygen/index.html[libpulse] bindings for use with a GLib MainLoop via https://github.com/lgi-devs/lgi/[LGI]. == Quick Start Install https://github.com/lgi-devs/lgi[lgi] and _lua_libpulse_glib_ from LuaRocks: [source,shell] ---- luarocks install lgi luarocks install lua-libpulse-glib ---- [source,lua] ---- 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() ---