Julian Bouzas
862e253607
m-lua-scripting: add get_n_streams endpoint API
2021-03-01 13:14:57 -05:00
Julian Bouzas
2052eb2b1f
m-lua-scripting: add lookup session API
...
Also improves session API to accept object interests.
2021-03-01 13:14:57 -05:00
George Kiagiadakis
5b4fe3cd85
lua/pod: don't crash on parsing objects with unknown keys, just ignore them
2021-03-01 17:57:32 +02:00
George Kiagiadakis
51e24c58b5
m-lua-scripting/pod: retrieve Ids in Array & Choice as strings, if possible
...
When an Array or Choice that contains Spa:Id appears as a value for an object
field, it is possible to retrieve the Id type from that object field type.
2021-02-23 13:56:38 +02:00
George Kiagiadakis
5302700c6d
m-lua-scripting/pod: s/id_type/object_id/ as commented on !125
2021-02-23 12:47:24 +02:00
Julian Bouzas
bd65f9578d
m-lua-scripting: add support for choices when creating object pods
2021-02-23 10:41:46 +00:00
Julian Bouzas
0694889245
m-lua-scripting: refactor array and choice pod constructors to accept Id names
2021-02-23 10:41:46 +00:00
Julian Bouzas
910ff838e4
m-lua-scripting: allow constructing pod Ids with the Id name
2021-02-23 10:41:46 +00:00
Julian Bouzas
cd2e648b3c
m-lua-scripting: set id_type field when parsing pod objects
2021-02-23 10:41:46 +00:00
Julian Bouzas
2465088c5a
m-lua-scripting: set pod_type and value_type fieds when parsing non-primitive pods
2021-02-23 10:41:46 +00:00
Julian Bouzas
8fa6116786
m-lua-scripting: start indices from 1 when parsing pods
...
For consistency with LUA
2021-02-23 10:41:46 +00:00
George Kiagiadakis
d6ea7ffe76
lua/api: fix client update_permissions()
...
* the type checks were wrong, it was requiring the key to be string
and the value integer
* add the ability to use "any" or "all" for a key, saving us the trouble
of passing -1 from lua (int64) into a uint32 (ugh!)
* use a GArray instead of manual malloc/realloc
* allocate the array as late as possible, to minimize the risk of leaking
its memory if we hit luaL_error()
2021-02-18 16:41:42 +02:00
George Kiagiadakis
e2d6e5b992
lua: enable loading scripts with a shebang
...
* skip the shebang before loading the file in the interpreter,
as # is not a valid lua comment
* allow loading scripts with a relative path in interactive mode
2021-02-18 13:47:34 +02:00
George Kiagiadakis
6c85b8958d
lua/api: log using a debug category unique for the calling script file
...
filename: foo.lua -> category: script/foo
2021-02-18 12:52:39 +02:00
George Kiagiadakis
cb8a8936aa
lua/api: ensure the function name in the debug output is non-null
...
NULL crashes the journald writer
2021-02-18 12:24:01 +02:00
Raghavendra
c791ed3a62
m-lua-scripting: add WpPipewireObject api
2021-02-16 20:15:13 +05:30
George Kiagiadakis
dacf19d9c7
wplua: improve gvariant <-> lua conversion functions
...
* Add more generic lua -> gvariant conversion
* Cleanup the gvariant -> lua function and rename it
2021-02-15 14:43:18 +02:00
George Kiagiadakis
41a4c89a41
lua/config: load split config files in alphanumeric order
2021-02-13 11:55:00 +02:00
George Kiagiadakis
807103e9df
lua/api: add wp_object_interest_matches() binding
2021-02-13 11:55:00 +02:00
Julian Bouzas
b1e1e5ced0
scripts: add portal access script
...
Includes a plugin to handle the portal permission store dbus interface
2021-02-12 14:28:45 -05:00
Julian Bouzas
fdc8053d9f
scripts: add flatpak access lua script
...
Replaces old module-client-permissions module
2021-02-12 14:28:38 -05:00
Julian Bouzas
cbe90a5c75
wplua: handle more GVariant cases
2021-02-12 14:28:38 -05:00
Julian Bouzas
f693e1a4c7
m-lua-scripting: add WpClient LUA api
2021-02-12 14:28:32 -05:00
George Kiagiadakis
a0fb8872a2
lua/pod: optimize push_primitive_values()
2021-02-05 20:15:32 +02:00
George Kiagiadakis
e916ff6b76
lua/pod: simplify spa_pod_object_new()
2021-02-05 19:49:25 +02:00
George Kiagiadakis
38039bdfe1
lua/pod: optimize lookups in primitive_lua_type and fix some mistakes
...
Use the numeric values of the spa types instead of their string representation
2021-02-05 19:33:55 +02:00
George Kiagiadakis
2ca3564b67
lua/pod: lookup the object type and values table only once when constructing objects
2021-02-05 19:23:09 +02:00
George Kiagiadakis
33e546d79b
lua/pod: convert Id object fields to strings, if possible
2021-02-05 18:58:02 +02:00
Julian Bouzas
dc2ad1f25d
rename all foo_iterate APIs to foo_new_iterator
...
Avoids confusion with LUA iterate API
2021-02-05 11:33:23 -05:00
George Kiagiadakis
d0113e54cb
m-lua-scripting/pod: push pod constructors using luaL_newlib instead of manually
2021-02-05 12:11:15 +02:00
George Kiagiadakis
55f186ccec
modules: remove m-node-suspension
2021-02-05 12:05:54 +02:00
George Kiagiadakis
148a33187e
m-lua-scripting/api: fix om:lookup() to return nil when no object was found
2021-02-05 12:03:41 +02:00
George Kiagiadakis
d94b0a2f0c
scripts: add suspend-node.lua to replace m-node-suspension
...
... plus the necessary API for it to work
2021-02-05 12:03:07 +02:00
George Kiagiadakis
ce66025846
node: change send_command() to take a string
...
Use the spa type system to locate the enumeration value that corresponds
to that string and send that
2021-02-05 11:05:26 +02:00
Julian Bouzas
81163a52c0
m-lua-scripting: add WpSpaPod api
2021-02-05 08:47:27 +00:00
George Kiagiadakis
651b4b7377
m-lua-scripting/api: add wp_object_manager_iterate_filtered()
2021-02-04 17:31:25 +02:00
George Kiagiadakis
096a9b4c15
proxy: add a method to query the interface type
2021-02-04 16:51:25 +02:00
George Kiagiadakis
e0f1c8710f
daemon: add a mode to execute lua scripts from the command line
...
This can be useful for quick testing of scripts, or to build small
utilities that do something in pipewire utilizing our lua API
2021-02-04 16:44:56 +02:00
George Kiagiadakis
02142b899b
m-lua-scripting/api: add WpCore bindings
2021-02-04 13:52:24 +02:00
George Kiagiadakis
fb5706eacc
m-lua-scripting/api: fix access to core in session_item_new()
2021-02-03 18:02:03 +02:00
George Kiagiadakis
03b17bcb5f
m-lua-scripting/api: add WpImplSession bindings
2021-02-03 17:16:51 +02:00
George Kiagiadakis
f7c0f9cfc6
m-lua-scripting: pass component arguments to scripts
2021-02-03 17:16:51 +02:00
George Kiagiadakis
460ff6591d
wplua: allow exchanging arguments and results with scripts
2021-02-03 17:16:51 +02:00
George Kiagiadakis
ef9b6ef982
m-lua-scripting: use wplua_table_to_asv() instead of custom function
2021-02-03 17:16:51 +02:00
George Kiagiadakis
ddf7eb1ecb
m-lua-scripting: fixes
2021-02-03 17:16:51 +02:00
George Kiagiadakis
fc526af744
m-lua-scripting: allow queuing-in scripts without the plugin being activated
...
This allows us to load the scripts from the config file without
WpCore being connected yet. We can later activate the lua-scripting
plugin at the right moment to start processing the scripts.
2021-02-03 17:16:51 +02:00
George Kiagiadakis
2d2668100c
m-lua-scripting: refactor as a WpComponentLoader
...
also, add support for loading lua config files, denoted by the
"config/lua" component type
2021-02-03 17:16:51 +02:00
George Kiagiadakis
0d072874a1
lib: introduce WpComponentLoader and remove WpModule
...
The component loader is a more generic and extensible mechanism
of loading components; modules are one type of component...
The idea is to make scripts and config files also be components,
loaded by plugins that inherit WpComponentLoader
2021-02-03 17:16:51 +02:00
George Kiagiadakis
f61e292959
plugin: inherit from WpObject
...
* use the activate/deactivate system from WpObject,
which allows async activation and error reporting
* drop 'module' property, use 'core' from WpObject
2021-02-03 17:16:51 +02:00
George Kiagiadakis
596990d718
modules: remove modules that are obsoleted by the lua scripts
...
+ their configuration
+ their unit tests
2021-01-30 12:58:26 +02:00