George Kiagiadakis
c95ee22702
Revert "modules: si-adapter: set/unser WP_SI_FLAG_CONFIGURED when adapter is configured/reset"
...
This reverts commit 4e8ae293f5 .
2020-05-03 20:10:31 +03:00
Julian Bouzas
791e9170aa
si-interfaces: transfer full when returning from _get_stream_parent_endpoint
2020-05-03 19:54:31 +03:00
Julian Bouzas
4e8ae293f5
modules: si-adapter: set/unser WP_SI_FLAG_CONFIGURED when adapter is configured/reset
2020-05-03 19:54:31 +03:00
Julian Bouzas
19c91596c8
algorithms: make sure channels is always less or equal to SPA_AUDIO_MAX_CHANNELS
...
Needed when using audiotestsrc with an adapter
2020-05-03 19:54:31 +03:00
Julian Bouzas
63482108df
modules: add si-softdsp-audio-endpoint module
2020-05-03 19:54:31 +03:00
Julian Bouzas
2d186ed681
modules: add si-convert module
2020-05-03 19:54:31 +03:00
George Kiagiadakis
bccb160bc2
port some more deprecated object-manager calls
2020-05-03 19:49:21 +03:00
George Kiagiadakis
1c74a83a5c
tests: si-simple-node-endpoint: add export test
2020-04-23 17:25:57 +03:00
George Kiagiadakis
d61b7904f9
modules: fix small issues in the session items
2020-04-23 15:22:32 +03:00
George Kiagiadakis
74df1c425e
modules: implement si-simple-node-endpoint
...
This is a simpler endpoint implementation that does not require
any node setup. It should be good to use with test nodes (fakesrc/fakesink),
V4L2 nodes, and maybe others in the future.
2020-04-22 13:53:14 +03:00
Julian Bouzas
cfbcb5eca3
proxy: use WpSpaPod instead of struct spa_pod in public API
2020-04-21 16:11:05 -04:00
George Kiagiadakis
1dccdcf415
object-manager: replace GPtrArray API with WpIterator
...
+ add the useful _find_proxy() method
2020-04-21 13:21:03 +03:00
George Kiagiadakis
49b63b6045
session-item: refactor export to use a process similar to activate
...
+ expose the export transition in the session item class
+ make the export-related flags immutable
+ add an export error flag
+ update and improve documentation
2020-04-16 17:38:31 +03:00
George Kiagiadakis
441a778b2e
session-item: introduce a rollback() virtual method
...
+ replace calling execute_step(..., STEP_ERROR) with rollback
+ implement deactivate internally using rollback
This unifies deactivation steps, which are common between deactivate()
and calling execute_step() with WP_TRANSITION_STEP_ERROR at the
end of a failed activation transition.
2020-04-16 13:18:21 +03:00
George Kiagiadakis
6b51e5842c
tests: add session-item unit test
2020-04-16 11:55:23 +03:00
George Kiagiadakis
0e855d854a
modules: implement si-standard-link, the default WpSiLink implementation
2020-04-11 11:05:09 +03:00
George Kiagiadakis
f713cbee11
session-item: decouple reset from deactivate and export from activate
...
* It should be possible to activate/deactivate while an item
is exported (if the item supports it, but that's a subclass matter)
* It should be possible to deactivate without resetting configuration
2020-04-09 19:24:42 +03:00
George Kiagiadakis
1f1c690b42
properties: remove _copy_keys and add update/add methods similar to the ones in pw_properties
2020-03-31 16:11:08 +03:00
George Kiagiadakis
306f75d321
session-item: implement and use _get_associated_proxy() API
2020-03-31 16:11:08 +03:00
George Kiagiadakis
79a39e98c9
transition: call execute_step() with _STEP_ERROR in error conditions
...
This allows the implementation to rollback changes, cancel jobs, etc
2020-03-31 16:11:08 +03:00
George Kiagiadakis
405e8ba0d5
session-item / endpoint: implement exporting a WpSiEndpoint
...
* introduces API to export session items
* introduces small changes in the WpSiEndpoint & WpSiStream
interfaces to make it nicer to work with
* ports WpImplEndpoint to use PW_TYPE_INTERFACE_Endpoint
to export. Depends on:
https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/246
(was merged after 0.3.2)
2020-03-29 15:18:20 +03:00
George Kiagiadakis
865b6ba535
modules: softdsp-endpoint: disable exporting with WpImplEndpoint
2020-03-29 15:02:59 +03:00
George Kiagiadakis
7b20baa671
modules: drop module-session
2020-03-29 15:02:59 +03:00
George Kiagiadakis
0c455a0c11
si-adapter: port to use WpSiFactory
2020-03-29 15:02:59 +03:00
George Kiagiadakis
51f7897aa1
modules: implement the "adapter" session item, as a reference
2020-03-29 15:02:59 +03:00
Julian Bouzas
c2dfec2184
monitor: add dbus-reservation flag
2020-03-20 14:01:22 -04:00
Julian Bouzas
8887cce5b4
modules: add monitor reservation data API
2020-03-20 14:01:22 -04:00
Julian Bouzas
daa8091666
modules: add monitor dbus device reservation API with unit tests
2020-03-20 14:01:20 -04:00
Julian Bouzas
9c44900e68
config-policy: fix endpoint refcount issues
2020-03-17 12:06:21 -04:00
Julian Bouzas
91eb754b96
softdsp-endpoint: simplify and remove object_safe_new_finish function
2020-03-03 13:27:18 -05:00
Julian Bouzas
8646a3b003
modules: add WpVideoEndpoint sub-class to handle video
2020-03-03 13:27:15 -05:00
Julian Bouzas
60bdea1ed6
modules: add jack-device module
2020-03-03 11:14:13 -05:00
Julian Bouzas
e4d895902c
config-static-nodes: skip devices without WP_PROXY_FEATURE_INFO
2020-02-28 10:59:42 -05:00
Julian Bouzas
d3df321e3d
config-endpoint-context: skip nodes with null media-class
2020-02-28 10:48:43 -05:00
George Kiagiadakis
ca8d100b3f
meson: temporarily add check to conditionally enable the fade functionality
...
and in case it's missing, also #define some things to make compilation work,
since this is only available in a pipewire branch right now
2020-02-28 13:25:35 +02:00
Julian Bouzas
a861e47643
config-policy: fade in/out when streams are linked/unlinked
2020-02-27 08:39:15 -05:00
Julian Bouzas
8c674b9f69
base-endpoint: add wp_base_endpoint_begin_fade API
2020-02-27 08:39:15 -05:00
Julian Bouzas
b1d03cd637
stream: add wp_audio_stream_begin_fade API
2020-02-27 08:39:15 -05:00
Julian Bouzas
eaea2156cb
stream: create an audio-fade-source control node if there is a control port
2020-02-27 08:37:15 -05:00
Julian Bouzas
16cdac6dd6
convert/adapter: enable control port if input direction
2020-02-27 08:37:15 -05:00
Julian Bouzas
2439cab55f
convert: use factory name SPA macro
2020-02-27 08:37:15 -05:00
Julian Bouzas
8aa695770c
tests: config-policy: run the main loop in the same thread
2020-02-26 15:51:58 -05:00
Julian Bouzas
fefa4b9191
config-endpoint-context: add _get_length API
2020-02-26 11:36:09 -05:00
Julian Bouzas
49716f603c
config-static-nodes-context: add _get_length API
2020-02-26 11:05:02 -05:00
Julian Bouzas
8e719eb47c
config-static-nodes: use WP_PROXY_FEATURES_STANDARD when agumenting static nodes
...
This will solve a possible race condition in the unit test when destroying the
autotestsrc proxy while its node_event_info is being called.
2020-02-25 09:57:02 -05:00
George Kiagiadakis
87cc64b40b
module-session: export session after the core is connected
...
wp_exported_export() used to do that internally, but it's cleaner
to do it this way now
2020-02-14 17:18:58 +02:00
George Kiagiadakis
753e708544
object-manager: refactor to be able to track locally created proxies
...
There are 3 kinds of WpProxy objects:
* the ones that are created as a result of binding a global
from the registry
* the ones that are created as a result of calling into a remote
factory (wp_node_new_from_factory, etc...)
* the ones that are a local implementation of an object
(WpImplNode, etc...) and are exported
Previously the object manager was only able to track the first kind.
With these changes we can now also have globals associated with
WpProxies that were created earlier (and caused the creation of the global).
This saves some resources and reduces round-trips (in case client
code wants to change properties of an object that is locally
implemented, it shouldn't need to do a round-trip through the server)
2020-02-14 17:12:23 +02:00
George Kiagiadakis
a92e1a64ec
global & object-manager: use GType instead of the pipewire type
2020-02-12 14:15:51 +02:00
George Kiagiadakis
c9cab2cd53
endpoint: refactor into WpEndpoint & WpImplEndpoint
2020-02-12 11:30:21 +02:00
George Kiagiadakis
8e50fab112
session: refactor into WpSession & WpImplSession
2020-02-12 11:28:02 +02:00