Commit graph

829 commits

Author SHA1 Message Date
Julian Bouzas
bc17aaa397 plugin: add name property 2020-10-22 08:40:27 -04:00
Julian Bouzas
5e02c75574 wpctl: add set-profile option 2020-10-22 11:28:43 +00:00
George Kiagiadakis
268b7dd0a9 transition: stop and return error if cancelled by the GCancellable 2020-10-22 13:27:29 +03:00
Julian Bouzas
ffd43f397b device: set parent type to GObject in WpSpaDevice structure 2020-10-15 12:04:05 -04:00
Julian Bouzas
397a141150 m-endpoint-creation: add bluez5 endpoint creation for bluetooth devices 2020-10-05 11:35:24 -04:00
Julian Bouzas
7d35191091 m-config-endpoint: refactor and rename to endpoint-creation
Allows implementing device specific endpoint creation logic, which is currently
needed for bluetooth endpoints as they need to be created differenly.
2020-10-05 11:35:24 -04:00
Julian Bouzas
6a5a259fc7 modules: add bluez5 endpoint session item 2020-10-05 11:35:24 -04:00
Julian Bouzas
af196f4f5b modules: add fake stream session item 2020-10-05 11:35:24 -04:00
Julian Bouzas
236f6f8fc5 m-si-adapter: use the adapter's name as stream name 2020-10-05 11:35:24 -04:00
Julian Bouzas
b2438f2cef m-si-adapter: set the configured flag when configuration was successful 2020-10-05 11:35:24 -04:00
Julian Bouzas
c603409c60 m-config-policy: set the stream name to the media role propery by default 2020-10-05 11:35:24 -04:00
George Kiagiadakis
26800b80d6 gitlab-ci: really build with pipewire master
Apparently git cannot directly clone at an arbitrary commit,
it must be a branch or a tag
2020-09-01 11:12:30 +03:00
George Kiagiadakis
294ba3bda5 gitlab-ci: bump pipewire dependency to latest master
because otherwise the metadata unit test fails
2020-08-31 16:27:28 +03:00
George Kiagiadakis
fb8d4b1b1f metadata: remove WP_METADATA_FEATURES_STANDARD and fix copyright years 2020-08-31 16:22:11 +03:00
George Kiagiadakis
df258c3887 module-metadata: s/settings/plugin/ 2020-08-31 16:21:07 +03:00
George Kiagiadakis
40d2a186b6 tests: implement a WpMetadata unit test 2020-08-31 16:16:07 +03:00
George Kiagiadakis
3f160b552c metadata: improve implementation
* Implement the proxy properly with info caching, methods, etc
* Get rid of useless variables and includes
2020-08-31 16:14:47 +03:00
George Kiagiadakis
e68f8d4ae2 tests: fix permissions check failure with latest pipewire 2020-08-31 13:53:04 +03:00
George Kiagiadakis
3e65325519 metadata: fix more coding style issues 2020-07-31 17:46:09 +03:00
George Kiagiadakis
3ae506d223 modules: rename metadata module to just 'module-metadata' 2020-07-31 16:34:01 +03:00
raghu447
65b4562fa0 Implement PW_TYPE_INTERFACE_Metadata 2020-07-30 21:30:14 +05:30
George Kiagiadakis
a73e46e246 Makefile: set the default debug level to INFO, if not specified, for make run 2020-07-29 19:25:07 +03:00
George Kiagiadakis
71decc1734 main: allow entire blocks to be in comments without side-effects 2020-07-29 19:25:07 +03:00
Julian Bouzas
0913257d2e m-device-activation: assume last profile as the one with highest priority 2020-07-23 09:12:52 +00:00
Julian Bouzas
6550718823 m-device-activation: fix typo when parsing device profiles 2020-07-23 09:12:52 +00:00
David Runge
fbe1e5177b
Allow system cpptoml
meson.build:
When the 'wrap_mode' option is set to 'nodownload' use a system version
of cpptoml. This does not require using git and having a network
connection during build, which is important for Linux packaging
infrastructure.

subprojects/cpptoml.wrap:
Pin revision to last release tag (v0.1.1).

lib/wptoml/*.cpp:
Remove 'include/' prefix from all cpptoml related includes, at is not
required.

Closes #17
2020-07-22 20:25:58 +02:00
George Kiagiadakis
4eb853ca7a docs: mention that the test SPA plugins are required for unit tests
Related to #18
2020-07-20 12:20:53 +03:00
Julian Bouzas
86b80f4603 dbus-device-reservation: show error message when property request fails 2020-07-10 10:36:24 -04:00
Julian Bouzas
b0cab6c4e4 dbus-device-reservation: return if call_finish fails when requesting a property 2020-07-08 13:44:01 -04:00
George Kiagiadakis
280c0edfa6 config: improve {audio,video}testsrc.node config files
* add library.name to not require adding `add-spa-lib` in pipewire.conf
  or wireplumber.conf for this to work
* add a commented local=true; it can be useful to run those nodes
  locally for testing, sometimes
2020-07-02 17:07:25 +03:00
George Kiagiadakis
996699762c NEWS: release 0.3.0 2020-06-29 19:36:49 +03:00
George Kiagiadakis
e7d6ed4573 si-convert: watch links to the convert node instead of the node's state
there are underlying issues with the state management of the graph,
so it's not a very good idea to rely on it to activate / deactivate
our convert node depending on the links that exist

instead, track the links ourselves and create/destroy the corresponding
links to the target node accordingly; it's a more robust approach

it was also not entirely correct that we would previously configure
the convert node to be a driver (node.driver=true); maybe this caused
the underlying issues in the first place... we don't need it now
anyway, so it's gone
2020-06-29 18:58:34 +03:00
George Kiagiadakis
648b84c1c4 m-node-suspension: suspend only audio & video device nodes
Just like media-session does
JACK nodes should be left untouched
2020-06-29 15:52:09 +03:00
George Kiagiadakis
a3870581fb spa-device / m-monitor: fix pw_proxy leaks reported by pw_core
1. device export proxies must be destroyed manually since they are
   not associated with the WpRegistry
2. the monitors should not disconnect before all WpSpaDevice objects
   are destroyed; remove the manual disconnect call and let GObject
   ref counting do its job (the core will disconnect when its last ref
   count is dropped after the last monitor plugin is destroyed)
2020-06-29 13:05:44 +03:00
George Kiagiadakis
b59ff48156 si-convert: improve node properties for convert nodes
* do not copy the full alsa node properties set
* use a node description that makes the nodes look better in JACK
* use . instead of / as a separator for the node.name, like elsewhere
* add audio.convert spa lib association in the tests that use si-convert;
  previously it used to work because library.name was present in the
  properties copied from the adapter (and it so happens that the adapter
  lives in the audioconvert spa plugin as well ...)
2020-06-29 13:05:44 +03:00
George Kiagiadakis
3bd1a199ed m-monitor: improve node names for JACK
JACK uses : as a separator to distinguish the port name
from the node name, so it ends up doing wrong separations
if we have : in the node name
2020-06-29 13:05:44 +03:00
George Kiagiadakis
030fb7ba46 main: fix size of buffer in call to g_input_stream_read()
if there was a remainder in the buffer from a previous iteration,
make sure not to fill too much data and go past the end of the buffer
2020-06-29 13:05:44 +03:00
George Kiagiadakis
785d049f7a main: fix call to g_input_stream_read after reaching the end of the buffer
after consuming the whole buffer, cur & linestart need to
be reset to point back to the beginning of the local buffer
2020-06-29 13:05:44 +03:00
George Kiagiadakis
ac295b10e3 m-config-endpoint: deactivate gracefully even if not activated
This may happen if the plugins were loaded but not activated
due to some parse error in wireplumber.conf
2020-06-29 13:05:44 +03:00
George Kiagiadakis
826e5e3c46 si-convert: use the clock rate defined in pipewire.conf 2020-06-29 13:05:44 +03:00
George Kiagiadakis
046040a323 meson: bump version to 0.2.96 2020-06-29 13:05:44 +03:00
George Kiagiadakis
75aac84f40 NEWS: release 0.2.96 2020-06-19 12:51:27 +03:00
George Kiagiadakis
83c7655267 docs: update configuration.md 2020-06-19 12:09:09 +03:00
George Kiagiadakis
374977f954 m-monitor: reduce string copies and leaks in module_init 2020-06-19 10:30:12 +03:00
George Kiagiadakis
fa6c1a74cb docs: fix broken link 2020-06-19 10:29:07 +03:00
George Kiagiadakis
30affd6b55 m-config-endpoint: also remove monitors when a node disappears
previously, we would only remove the endpoint associated with
the node, but not the monitor endpoint...

to implement that, we now store the node's associated session items
in the node's qdata instead of a local hash table, so that we
can store an arbitrary ammount of session items per node
2020-06-18 19:29:35 +03:00
George Kiagiadakis
697226f306 session-bin: call parent's reset() in reset()
otherwise the parent never un-exports or de-activates itself
and we leak a bunch of stuff
2020-06-18 19:28:03 +03:00
George Kiagiadakis
879c7d2ab9 si-softdsp-endpoint: use the transition's source_object instead of data in callbacks
there is no need to add self in the transition's data,
it's already in source_object
2020-06-18 19:26:30 +03:00
George Kiagiadakis
3966e046ae docs: add manual test instructions 2020-06-18 19:21:21 +03:00
George Kiagiadakis
fb3d5bea5c si-monitor-endpoint: add "endpoint.monitor" property on monitor endpoints 2020-06-17 14:54:20 +03:00