Commit graph

533 commits

Author SHA1 Message Date
Julian Bouzas
e810d32719 tests: add basic test for si-audio-softdsp-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
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