George Kiagiadakis
0c6ef834b2
lib: properties: add wp_properties_copy_keys
...
A method to copy specific keys from one properties set to another
2019-09-17 16:35:14 +03:00
George Kiagiadakis
cc3f01b248
daemon config: add config command to load pipewire modules
2019-09-17 16:35:14 +03:00
George Kiagiadakis
d5acbdd87c
daemon config: add the ability to register spa libraries from the config file
2019-09-17 16:35:14 +03:00
George Kiagiadakis
340b52fbee
proxy: fix crash that happens when a client exits very quickly after starting
...
This is very easy to reproduce when the pipewire-alsa integration
is installed and you do 'arecord -l'; the alsa plugin connects and
disconnects again before the proxy is ready.
In this case we have to skip remote-global-added and we also have
to be careful with the references: the global-removed callback is
called earlier, so the core's reference to the proxy is gone and
the GTask is the only thing holding a reference to the proxy.
When we unref the GTask, the proxy is also unrefed, so we have
to keep an additional reference in order to avoid crashing
when accessing the hash table below.
2019-09-17 16:19:13 +03:00
Julian Bouzas
ac53b1165b
test: move wireplumber tests into a 'wp' subfolder
2019-09-09 08:52:36 -04:00
George Kiagiadakis
371e4cf9f3
core: allow passing properties to the pw_core and pw_remote constructors
2019-09-07 18:21:17 +03:00
George Kiagiadakis
a63f2bb99b
lib/wp: merge both WpRemote & WpRemotePipewire in WpCore
...
In practice we always create a remote and connect to pipewire.
Any other scenario is invalid, therefore, it is not justified
to be confused with so many classes for such small functionality.
This simplifies a lot the modules code.
Also, this commit exposes the pw_core and pw_remote objects
out of WpCore. This is in practice useful when dealing with low-level
pw and spa factories, which are used in the monitors. Let's not
add API wrappers for everything... Bindings will never use this
functionality anyway, since it depends on low level pipewire C API.
2019-09-07 17:55:46 +03:00
George Kiagiadakis
84b752e304
simple-endpoint: use WpProperties instead of parsing the spa_dict from the info structure
2019-09-07 11:30:08 +03:00
George Kiagiadakis
bf9cecd129
Merge branch 'master' into proxy-refactoring
2019-09-07 11:22:50 +03:00
George Kiagiadakis
95665a3496
mixer: search for "Alsa/Sink" instead of "Audio/Sink" now
...
Since the alsa endpoints class was renamed...
2019-09-05 15:26:29 +03:00
Julian Bouzas
fd8414aad1
bluez: handle all bluetooth profiles
2019-09-02 09:56:42 -04:00
George Kiagiadakis
72e13919a4
bluez: warn if the SPA bluez plugin is not installed instead of asserting
2019-08-29 21:23:20 +03:00
George Kiagiadakis
3d46253dd6
proxy: hide the bind() API and fix attaching the listener in wrap mode
...
In case the proxy was created with wp_proxy_new_wrap(), the event
listener was not attached on the pw_proxy
2019-08-29 21:21:51 +03:00
George Kiagiadakis
ac7086d156
modules: port to new WpProxy API
2019-08-29 21:21:33 +03:00
George Kiagiadakis
ff59fc06db
lib: properties: add update() and copy_from_dict() API
2019-08-29 19:41:04 +03:00
Julian Bouzas
770fe8c703
simple-policy: handle bluez endpoints
2019-08-28 14:19:22 -04:00
Julian Bouzas
ad8491df44
modules: destroy all alsa/bluez nodes when an alsa/bluez device is removed
2019-08-28 14:19:22 -04:00
Julian Bouzas
c473cecbed
bluez: cleaned module and set media class to Bluez/<direction>/<profile>
2019-08-28 14:19:16 -04:00
Julian Bouzas
23cc1edc28
alsa-udev: cleaned module and set media class to Alsa/<direction>
2019-08-28 11:10:11 -04:00
George Kiagiadakis
7608ae37b5
lib: implement WpProxyClient
2019-08-27 18:28:58 +03:00
George Kiagiadakis
789194b5c3
Merge remote-tracking branch 'origin/master' into proxy-refactoring
2019-08-27 18:10:41 +03:00
George Kiagiadakis
a5e867172d
tests: proxy: add unit test for WpProxyNode and enum_params in particular
2019-08-27 17:40:28 +03:00
George Kiagiadakis
31a7537110
tests: proxy: improvements in the fixture and basic test
...
* move the watchdogs in the fixture setup
* use a new GMainContext on each fixture to avoid test dependencies
* test wp_proxy_sync
2019-08-27 17:40:28 +03:00
George Kiagiadakis
e5a05dcc2b
proxy-*: improve proxy subclasses
...
* add proxy sync method
* add wrapers for enum/set/subscribe_params
* move the info structure handling to the subclasses
* expose info->props as WpProperties
2019-08-27 17:40:28 +03:00
Julian Bouzas
dcbf823a5a
endpoint: add direction property and remove it from subclasses
2019-08-27 10:05:59 -04:00
Julian Bouzas
9a6e520721
bluez: create bluetooth endpoints
2019-08-26 11:31:38 -04:00
Julian Bouzas
5ff06a97f7
simple-endpoint: add direction property
2019-08-26 11:25:53 -04:00
Julian Bouzas
de97be850a
adapter: do not use hardcoded format
2019-08-26 10:31:44 -04:00
George Kiagiadakis
2e28c9aea1
tests: add unit test for WpProxy
...
This also adds a "test server" helper, which is used to
start a local pipewire server in the same process, for testing
functionality that requires a server.
2019-08-25 12:45:24 +03:00
George Kiagiadakis
bdce3b4de5
proxy: refactor the proxy class to hide pipewire API and make things easier
2019-08-25 12:44:47 +03:00
George Kiagiadakis
199241894e
meson: temporarily disable building modules due to API changes being in progress
2019-08-24 16:19:12 +03:00
George Kiagiadakis
8cf8b0b886
tests: add unit test skeleton and a test for WpProperties
2019-08-24 16:19:12 +03:00
George Kiagiadakis
2031809d60
lib: add new WpProperties object to wrap pw_properties & spa_dict
2019-08-24 16:19:12 +03:00
Julian Bouzas
6786b13fdc
bluez: add new module to monitor bluetooth devices
2019-08-19 10:42:03 -04:00
Julian Bouzas
aa07ec09e4
remote-pipewire: add find_factory API
2019-08-19 10:41:33 -04:00
George Kiagiadakis
d4f882d731
Update for the pw_global "parent" concept removal
2019-08-19 15:24:00 +03:00
Julian Bouzas
fbf8de84fa
modules: replace dsp class with stream, adapter and convert classes
2019-08-15 14:35:59 -04:00
Julian Bouzas
8d58243fa6
module-pw-alsa-udev: start the alsa monitor and create the alsa nodes
2019-08-13 14:26:38 -04:00
Julian Bouzas
f5a51c6a81
remote-pipepwire: add module_load, load_spa_handle, add_spa_lib and export APIs
2019-08-13 14:26:38 -04:00
Julian Bouzas
759aa450af
remove remote-endpoints and use the new pipewire API
2019-08-13 14:26:38 -04:00
Julian Bouzas
7d4c9fa6e2
simple-policy: select the client's target name endpoint
2019-08-13 14:26:38 -04:00
Julian Bouzas
d49ed2b3f4
simple-endpoint: add target property
2019-08-13 14:26:38 -04:00
Julian Bouzas
96d940e94e
softdsp-endpoint: always set name and check for alsa api when giving proper alsa name
2019-08-13 14:24:31 -04:00
George Kiagiadakis
0002722289
simple-policy: compare client creation times so that the "last one wins"
...
When two clients have the same role, the current policy should
favor the newest client.
2019-07-30 14:05:40 +03:00
George Kiagiadakis
b05ae5f09c
simple-policy: do not leak client endpoints when rescanning
2019-07-30 13:17:58 +03:00
George Kiagiadakis
ecfcbd7b6d
Merge branch 'error-handling' into 'master'
...
Error handling and fixes
See merge request gkiagia/wireplumber!21
2019-07-25 12:33:08 +03:00
George Kiagiadakis
baaccc92f7
proxy: fix the naming of variables that point to the instance and private structures
2019-07-25 12:27:40 +03:00
Julian Bouzas
c27c020a66
simple-endpoint-link: skip already output linked ports
2019-07-25 12:27:40 +03:00
George Kiagiadakis
4b6ea0de6e
modules: initialize some spa_pod_builders inline
2019-07-25 12:27:34 +03:00
Julian Bouzas
9f07ba229c
dsp: removed unneeded format property and always use the default format
2019-07-25 12:26:42 +03:00