George Kiagiadakis
892129bd08
lua: implement metadata:set()
2021-06-08 13:40:13 +03:00
George Kiagiadakis
77454243bc
lua: fix refcounting of metadata iterator
...
wplua_push* takes a full ref
2021-06-08 13:40:13 +03:00
Julian Bouzas
8ba6439dd4
m-default-nodes-api: free default nodes when disabling plugin
2021-06-07 11:33:21 -04:00
Julian Bouzas
464f1de641
m-default-nodes: free default nodes when disabling plugin
2021-06-07 11:33:21 -04:00
George Kiagiadakis
80fad18e3d
lua: remove hack around WpObjectInterest since we can _ref() it now
2021-06-07 18:01:49 +03:00
Wim Taymans
342c3a7ea2
si-adapter: handle autoconnect property
...
When the autoconnect property is not available or false, we must
simply configure the stream in its default channel map and leave it
unconnected.
Fixes pw-cat -p --target=0 ..
2021-06-07 10:29:25 +02:00
Wim Taymans
72d8778e3f
si-adapter: handle dont-remix streams
...
Don't-remix streams don't change their channel mapping based on
the device they connect to but are always configured with their
default channel mapping, just like devices.
This fixes the gnome-control-center channel test.
This patch also removes the 1 channel -> many patch because it is
not the right thing to do in this case and should be implemented
with some proper channel mapping patch later.
2021-06-07 09:56:54 +02:00
George Kiagiadakis
38f7483793
state: remove support for groups and propagate save errors
...
There is no real use for groups in our API. Just use the name of
the file as the default group and be done with it...
Storing multiple groups with this API is problematic because it
forces flushing the file to disk multiple times, one for each group,
and it's just more performant if we use a prefix in the keys
to implement some form of logical separation.
This commit also makes the GKeyFile a temporary object. As we
always load the file from the file system in _load()
and we always replace its contents with a new dictionary in _save(),
there is no point in keeping the keyfile's internal data structures
stored in memory.
Save errors are now also propagated to adhere to the programming
practices of GObject
2021-06-04 18:36:19 +03:00
Julian Bouzas
cde38daabf
pipewire-object: fix memory leaks when getting properties
2021-06-03 14:53:00 -04:00
Julian Bouzas
1f65012abf
m-default-profiles: finalize parent when plugin is destroyed
2021-06-03 14:53:00 -04:00
Julian Bouzas
f8cf723b19
si-adapter: take ownership of format argument
...
The wp_si_adapter_set_port_config API must take ownership of the param argument
as described by the documentation.
2021-06-03 14:53:00 -04:00
Julian Bouzas
3fbcf05c9b
pipewire-object: take ownership of param argument
...
The wp_pipewire_object_set_param API must take ownership of the param argument
as described by the documentation.
2021-06-03 14:53:00 -04:00
George Kiagiadakis
d84d897b59
modules: remove the old m-default-routes
2021-06-03 16:33:32 +03:00
Julian Bouzas
22dbdea894
m-device-activation: don't set device routes
...
This is already done by module-default-routes
2021-06-03 16:32:12 +03:00
George Kiagiadakis
a604ac4c0c
lua: don't crash if an iterator is NULL
...
simply behave as if the iterator is valid and has no items in it
2021-06-02 19:38:51 +03:00
George Kiagiadakis
9db0e741cd
lua: allow the Log api to debug boxed objects (useful for pods)
2021-06-02 19:38:51 +03:00
George Kiagiadakis
132de309cb
lua: fix PipewireObject api: s/set_params/set_param/ and cleanup
2021-06-02 19:38:51 +03:00
George Kiagiadakis
53fdc14d5d
lua: add WpState bindings
2021-06-02 19:38:51 +03:00
George Kiagiadakis
bf9d4c4ed7
m-si-standard-link: fix number of links check
...
self->node_links is a GPtrArray*
2021-05-27 17:01:00 +03:00
George Kiagiadakis
e567637d37
docs: convert lua api docs to pure rst
...
Not all the docs are there yet, this is WIP
2021-05-25 14:19:53 +03:00
Raghavendra
80e7b20a73
docs: Add Lua API documentation
2021-05-25 14:19:53 +03:00
Raghavendra
d692f06f0d
docs: api: Replace hotdoc specific commands with Doxygen specific commands
2021-05-25 14:19:53 +03:00
Julian Bouzas
bd90783398
m-si-standard-link: remove unused manage.lifetime configuration property
2021-05-24 11:07:59 -04:00
George Kiagiadakis
f0d33cb873
endpoint: remove wp_endpoint_create_link()
...
Not used and not useful with the current design.
May be reverted in the future, if necessary.
2021-05-21 19:57:31 +03:00
George Kiagiadakis
ac9e1e89c4
wp: remove WpSession and WpEndpointLink
...
We have ended up not using them, so let's not carry them
in the ABI of 0.4
We can always revert that, but let's first decide how
these objects should be used
2021-05-21 19:57:31 +03:00
Julian Bouzas
5756d8899d
m-default-nodes: check if node is valid before returning bound id
2021-05-20 11:18:19 -04:00
Julian Bouzas
7bc59afd81
m-default-routes: log error message when failed to get current routes
2021-05-20 10:51:49 -04:00
Julian Bouzas
2218b5613e
m-default-profile: log error message when failed to get current profile
2021-05-20 10:51:49 -04:00
Julian Bouzas
fc41af5c98
m-mixer-api: make sure the enum param iterator is valid
...
Some audio nodes such as null-audio-sink nodes don't support Props or Route enum
params.
2021-05-19 18:26:17 -04:00
Julian Bouzas
e14bb5fa2f
modules: steal the format_task before returning it
...
Fixes possible race condition when setting adapter ports format in the callback
of a previous adapter ports format call.
2021-05-19 07:42:18 -04:00
Julian Bouzas
dc693ee0d0
m-device-activation: use sync API to enum available profiles
2021-05-18 10:00:56 -04:00
Julian Bouzas
e1917239f3
m-default-routes: use sync API to enum available routes
2021-05-18 10:00:24 -04:00
Julian Bouzas
c3338458e5
m-default-profile: use sync API to enum available profiles
2021-05-18 09:59:18 -04:00
Julian Bouzas
58db9e1fad
global-proxy: destroy the global when proxy is destroyed
2021-05-12 14:04:34 -04:00
Julian Bouzas
419af5a228
spa-pod: respect the SPA size for long and int APIs
...
Fixes some issues for 32bit architectures
2021-05-12 11:53:31 -04:00
Julian Bouzas
e1faf3f095
si-standard-link: configure the format in WpSiAdapters before linking
2021-05-12 10:37:18 -04:00
Julian Bouzas
9cf1f94045
modules: implement WpSiAdapter in si-audio-adapter and si-audio-endpoint
2021-05-12 10:37:15 -04:00
Julian Bouzas
05aba22c5a
si-audio-adapter: remove unneeded 'preferred.n.channels' property
2021-05-12 10:36:24 -04:00
Julian Bouzas
47ae4f28a3
si-standard-link: make sure create_links creates at least 1 link
2021-05-11 10:56:50 -04:00
Julian Bouzas
888667d784
modules: remove role and priority properties from si-audio-adapter and si-node
2021-05-11 10:56:50 -04:00
Julian Bouzas
d68636f9b3
si-interfaces: rename WpSiPortInfo to WpSiLinkable
2021-05-11 10:56:44 -04:00
Julian Bouzas
3f60716f30
modules: remove 'monitor' port context from si-audio-adapter and si-node
2021-05-10 15:19:25 -04:00
George Kiagiadakis
fc5aa7db1f
lua: rename Plugin() to Plugin.find()
...
Plugin() is confusing because it's not a constructor, it just finds
an existing instance of a plugin object. All other camel-case
functions are constructors in the current lua API.
2021-05-07 11:53:47 +03:00
George Kiagiadakis
a93dbf0845
wp: remove WpSessionBin
...
This is no longer used and likely not very useful now that we have
a simpler design.
We can re-add it in the future if necessary, but let's keep it out
of the 0.4 release.
2021-05-06 16:04:39 +03:00
George Kiagiadakis
257d5cba47
wp: rename debug.{h,c} to log.{h,c}
...
Also rename the intermediate lua api table WpDebug -> WpLog
Keeps things more consistent with the function names (wp_log*),
with the lua api (Log.*) and with pipewire using log.{h,c} as well.
After all, these functions are for logging...
2021-05-06 15:50:07 +03:00
George Kiagiadakis
a555d72cff
m-ipc: cleanup server using g_clear_pointer() for consistency and safety
2021-05-06 13:33:48 +03:00
George Kiagiadakis
5efb46a3e2
meson: make wpipc optional and disabled by default
...
This is only intended to be used with specific embedded
applications. There is no good reason to use it on
a standard desktop environment.
2021-05-06 12:00:56 +03:00
Julian Bouzas
207268e189
modules: add ipc module
...
Handles SUSPEND and RESUME wpipc requests in order to set metadata that will
eventually unlink or re-link endpoints.
2021-05-04 19:52:09 -04:00
George Kiagiadakis
07a8b5035e
m-mixer-api: track monitorVolumes and allow modifying them
...
This only applies to non-device nodes, because monitorVolumes
are not exposed on device Routes
2021-04-26 17:35:32 +03:00
George Kiagiadakis
c2834ea344
lua: remove the ability to specify spa_libs in the lua config
...
This is not useful, we can do this on the pipewire-style config files
2021-04-22 17:44:17 +03:00