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
2f43e3a1e7
lib: add new session-bin class to handle multiple session items
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
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
444814d753
tests: common: add common callbacks based on the si-simple-node-endpoint test
2020-04-23 17:54:49 +03:00
George Kiagiadakis
1c74a83a5c
tests: si-simple-node-endpoint: add export test
2020-04-23 17:25:57 +03:00
George Kiagiadakis
c1c91ce7d0
tests: add basic test for si-simple-node-endpoint
2020-04-23 15:49:32 +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
fe12e8ab6f
tests: enable WIREPLUMBER_DEBUG and set WIREPLUMBER_MODULE_DIR by default
...
+ better logs by default
+ allow loading modules in tests
2020-04-22 18:39:11 +03:00
George Kiagiadakis
1d157f016a
tests: move common fixture code to WpBaseTestFixture
2020-04-22 18:39:03 +03:00
George Kiagiadakis
4eaa99a698
tests: collect common helpers in the 'common' directory
2020-04-22 17:13:33 +03:00
George Kiagiadakis
32859356e8
module: add annotations in wp_module_load()
2020-04-22 17:06:29 +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
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
beb0056dfc
conf: remove loading of unexistent module-session
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
e08af1baa3
tests: fix redefined warnings when building spa-props test
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
fbddccd5bf
tests: session-item: add basic export operation tests
2020-04-16 17:57:21 +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
914e2b84df
tests: remove the global G_LOG_DOMAIN to avoid issues with including code from elsewhere
...
including wp/spa-props.c currently re-defines G_LOG_DOMAIN
in the spa-props.c unit test
2020-04-15 18:40:52 +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