George Kiagiadakis
adc4b20487
session-bin: improve iterator
2020-05-04 18:03:53 +03:00
George Kiagiadakis
82abe41759
session-bin: add _get_n_children() method
2020-05-04 14:13:32 +03:00
George Kiagiadakis
9612d35ca4
si-interfaces: drop the multi-endpoint interface
...
It's not well-defined; we'll come back to that later
2020-05-04 09:35:22 +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
230c103f18
session-item: add _get_parent API
2020-05-03 19:54:31 +03:00
Julian Bouzas
2f43e3a1e7
lib: add new session-bin class to handle multiple session items
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
735b44c238
object-manager/proxy: sprinkle some debug/trace statements
2020-05-03 19:44:42 +03:00
George Kiagiadakis
3617ca07ae
lib: align node/endpoint/session features ports/streams/endpoints,links
...
- Use similar code for consistency
- Add changed signals everywhere
- Port to the new object-manager API
2020-05-03 19:42:42 +03:00
George Kiagiadakis
83f399395c
proxy: emit 'bound' after setting FEATURE_BOUND
...
signal handlers expect FEATURE_BOUND to be set
2020-05-03 17:46:49 +03:00
George Kiagiadakis
9e1b5de93f
object-manager: port to WpObjectInterest and add more useful API based on it
2020-05-01 19:23:54 +03:00
George Kiagiadakis
db40a593b3
lib: implement WpObjectInterest
2020-05-01 19:21:08 +03:00
George Kiagiadakis
70214fcd26
debug: add wp_critical* macros
2020-05-01 12:00:28 +03:00
George Kiagiadakis
738b88aaba
debug: randomize object printout colors
...
This way we can more easily distinguish different objects when
looking at the log, although it's not perfect
2020-04-27 11:49:55 +03:00
George Kiagiadakis
2c1df41a16
debug: optimize wp_log_level_is_enabled()
...
Add the 'const' attribute to let the compiler know that it doesn't
need to call it multiple times for the same debug level argument,
since the enabled log levels cannot change at runtime.
2020-04-27 10:57:59 +03:00
George Kiagiadakis
1faa752cd0
core: trace pw main loop execution
2020-04-24 20:42:27 +03:00
George Kiagiadakis
9f1b46eed6
object-manager: implement the 'installed' signal and improve state management
...
The 'installed' signal can be used to know that there are no
known objects that are being prepared internally, so the object
manager is ready to use.
This also improves internal state management so that the 'objects-changed'
signal cannot be fired earlier than it should. Previously there
were corner cases with complex proxy features, as the object manager
relied on the fact that after a core 'sync' it is safe to assume
that all proxies are augmented... that's not always the case.
2020-04-24 20:36:53 +03:00
George Kiagiadakis
1c74a83a5c
tests: si-simple-node-endpoint: add export test
2020-04-23 17:25:57 +03:00
George Kiagiadakis
99f7220064
node: ensure FEATURE_PORTS gets enabled after the ports are discovered
...
+ add a ports-changed signal
2020-04-23 15:23:41 +03:00
George Kiagiadakis
d61b7904f9
modules: fix small issues in the session items
2020-04-23 15:22:32 +03:00
George Kiagiadakis
32859356e8
module: add annotations in wp_module_load()
2020-04-22 17:06:29 +03:00
George Kiagiadakis
45059cb348
si-interfaces: add default implementations of optional methods
...
Implementations are not required to provide implementations for these
if they don't need them
2020-04-22 13:49:37 +03:00
George Kiagiadakis
78fe4dc30e
spa-type: add the AUDIO_CHANNEL table
2020-04-22 13:44:40 +03:00
George Kiagiadakis
33e67f2189
port: add wp_port_get_direction()
2020-04-22 10:59:12 +03:00
George Kiagiadakis
72ff4577c5
node: add useful API to access node info, associated ports and state changes
2020-04-22 10:57:30 +03:00
Julian Bouzas
135b1c2cbf
object-manager: only get proxy properties when needed
2020-04-21 16:11:05 -04:00
Julian Bouzas
0045fe03c9
proxy: add set and get control vmethods, and remove them from sub-classes
2020-04-21 16:11:05 -04:00
Julian Bouzas
cfbcb5eca3
proxy: use WpSpaPod instead of struct spa_pod in public API
2020-04-21 16:11:05 -04:00
Julian Bouzas
fe4bef8bbc
spa-pod: fix constness and add get_object_type_name and get_choice_type_name
2020-04-21 16:11:05 -04:00
Julian Bouzas
03c15a8132
spa-type: add format, param-port-config and param-profile tables
2020-04-21 16:10:38 -04:00
Julian Bouzas
058f8ae1e0
spa-pod: add wp_spa_pod_equal API
2020-04-21 09:38:36 -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
78cdf4b8e6
debug: use the "default" domain to log messages without a domain
...
This allows filtering messages without a domain using WIREPLUMBER_DEBUG
2020-04-15 18:33:33 +03:00
George Kiagiadakis
9ca342f89f
debug: update all library code to use the new debug system
...
+ enable the new log writer on the executables
+ enable structured logging in the tests
2020-04-14 18:31:17 +03:00
George Kiagiadakis
5bf40e86cb
endpoint: fix compiler warnings
2020-04-14 15:18:44 +03:00
George Kiagiadakis
2ac6210b6d
Merge branch 'master' into next
2020-04-14 15:17:01 +03:00
George Kiagiadakis
ecbcabdc05
debug: add support for redirecting pipewire's log to the glib one
2020-04-14 14:59:55 +03:00
George Kiagiadakis
c80b87208b
lib: add a debug logging system
...
This extends GLib's logging system, so it is compatible with
g_debug() and friends, but it uses a better logging format and
supports filtering debug domains with wildcards, like in gst.
2020-04-14 12:16:41 +03:00
Julian Bouzas
8c209ecf48
lib: add spa pod API
2020-04-13 13:32:04 -04:00
George Kiagiadakis
5d74bceac0
endpoint: implement create_link()
2020-04-11 11:05:26 +03:00
George Kiagiadakis
0e855d854a
modules: implement si-standard-link, the default WpSiLink implementation
2020-04-11 11:05:09 +03:00
Julian Bouzas
b79fcf9418
lib: add spa type API
2020-04-09 13:09:57 -04:00
George Kiagiadakis
9ac59f05e0
endpoint-link: use the session item's activation state to implement the link's state
2020-04-09 19:27:33 +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
Julian Bouzas
5846fb919f
lib: add iterator base class API
2020-04-07 14:18:11 -04:00
George Kiagiadakis
27d1fd1ddd
session-item: enable all standard endpoint features
2020-04-01 15:37:43 +03:00
George Kiagiadakis
fd358a643a
session: add FEATURE_LINKS, a feature to cache endpoint link proxies
2020-04-01 13:53:45 +03:00