Commit Graph

280 Commits

Author SHA1 Message Date
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
Julian Bouzas
efbefe9e0e simple-policy: fix bug when finding endpoints 2019-07-25 12:24:48 +03:00
Julian Bouzas
755f0bd862 modules: handle error if the endpoint proxies could not be created 2019-07-25 12:24:47 +03:00
Julian Bouzas
dbd763bc9c proxy: throw an error if the proxy is destroyed during async constructions 2019-07-25 12:24:47 +03:00
Julian Bouzas
3fc9582b6a dsp: use the new WpProxyLink API 2019-07-15 11:05:34 -04:00
George Kiagiadakis
eaaa9f7f35 simple-policy: remove the idle callback when the object finalizes
Avoids crashing if a rescan is scheduled but the policy module is
destroyed in the meantime
2019-07-12 19:43:07 +03:00
George Kiagiadakis
1ed004c3c1 policy: implement a basic policy based on role priorities
* Every client has a priority based on its role
* For playback, we allow only a single client to play at a time
* For capture, we allow all clients to capture simultaneously
* Every time the "selected" device changes (either because devices
  are discovered/removed or because the user changed the selection),
  the clients are re-linked to the new "selected" device.
* When a playback client quits and there are others waiting unlinked,
  the highest priority one is linked automatically.
* This also properly fixes re-linking the correct client(s) to the
  correct device(s) when wireplumber exits and restarts.
2019-07-12 19:28:27 +03:00
George Kiagiadakis
a22d353a1b config: allow nested blocks, in case a property has a dictionary value 2019-07-12 19:27:12 +03:00
George Kiagiadakis
1b28b620c1 Merge branch 'delay-unhandled-clients' into 'master'
Delay unhandled clients

See merge request gkiagia/wireplumber!20
2019-07-12 14:20:21 +00:00
Julian Bouzas
536df13709 simple-policy: delay unhandled enpoints if target is not found 2019-07-12 09:44:32 -04:00
Julian Bouzas
1a02bfef8a audio-client-module: added new module to load clients after softdsp endpoints are created 2019-07-12 09:44:15 -04:00