Julian Bouzas
b9ad90f68c
softdsp-endpoint: use the same number of channels in the converters as the sink/source node
2019-09-25 12:05:56 +02:00
Julian Bouzas
26fb89cb16
modules: move softdsp-endpoint inside module-pipewire
2019-09-25 10:25:49 +02:00
Julian Bouzas
5737b61c30
modules: remove simple-endpoint
2019-09-25 10:25:37 +02:00
George Kiagiadakis
50e52b9e84
modules: fix reading proxy-node out GVariants
...
GVariant is instructed to store a 64-bit unsigned integer (mode "t")
but we pass it a pointer to a pointer to read this value out,
which will crash in 32-bit architectures, as the pointer doesn't have
enough bits and g_variant_lookup therefore corrupts the stack.
2019-09-22 18:14:43 +03:00
George Kiagiadakis
9246eba803
monitor: fix usage of wp_properties_setf without a format string
2019-09-22 17:35:47 +03:00
George Kiagiadakis
94b1390d0e
proxy: destroy the pw_proxy in dispose()
...
Because the proxy_event_destroy() handler now takes a ref to the
WpProxy, which is an error to do in finalize()
2019-09-17 19:53:20 +03:00
George Kiagiadakis
375fa8a3dd
modules: replace the monitor code from module-pw-{alsa,bluez} with module-monitor
2019-09-17 16:35:14 +03:00
George Kiagiadakis
e3ac60c0c0
modules: implement a new module-monitor
...
This is a generic WpMonitor loader that sets up the WpMonitor
properties from the module arguments and applies some well-known
properties to the device & node objects
2019-09-17 16:35:14 +03:00
George Kiagiadakis
302e991b28
monitor: add a new WpMonitor class
...
This class wraps a SPA monitor and creates all
the devices and nodes as they are being discovered
2019-09-17 16:35:14 +03:00
George Kiagiadakis
10b117144a
lib: expose and install wpenums.h
2019-09-17 16:35:14 +03:00
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