George Kiagiadakis
013a61b440
scripts/lib: add policy-config script library
2023-04-17 07:48:18 -04:00
George Kiagiadakis
e5764e33a4
scripts: split policy-hooks into separate files, one for each hook
2023-04-17 07:48:18 -04:00
George Kiagiadakis
515b3f07d1
m-lua-scripting: api: bind WpEvent set_data/get_data
2023-04-17 07:48:18 -04:00
George Kiagiadakis
6c3bd9e27d
event: add datalist to store arbitrary data on the event
2023-04-17 07:48:18 -04:00
George Kiagiadakis
55122b84b4
m-standard-event-source: add "schedule-rescan" action signal
...
This can be used anywhere else in the codebase to push a "rescan-session"
event, making sure that there is only one such event pushed on the stack,
no matter how many times this is called.
2023-04-17 07:48:18 -04:00
George Kiagiadakis
24db3fe24a
event-hook: rewrite the hook priorities enum
...
Hooks need to have a priority relative to the event they are executed on,
so it does not make much sense to have all kinds of different priorities
based also on the event type and/or the module where they are defined.
Also, it wouldn't be acceptable to have such an enumeration on the public API.
2023-04-17 07:48:18 -04:00
George Kiagiadakis
e2b9cb0b5e
m-standard-event-source: export the push_event function as an action signal
2023-04-17 07:48:18 -04:00
George Kiagiadakis
252c5b4935
m-standard-event-source: refactor around a central "push_event" function
...
Also redo some priorities and rename the object-changed event
to metadata-changed
2023-04-17 07:48:18 -04:00
George Kiagiadakis
79d8c9f5d9
m-standard-event-source: pass self as the event's source object
2023-04-17 07:48:18 -04:00
George Kiagiadakis
ab1668af15
m-standard-event-source: add object-manager property
2023-04-17 07:48:18 -04:00
George Kiagiadakis
b2f2e3f745
m-standard-event-source: add SiLink to the object type & priority list
...
Just to avoid warnings for now
2023-04-17 07:48:18 -04:00
George Kiagiadakis
48635cb780
m-standard-event-source: manage all kinds of session items in the om
...
So that we can also work with SiLink objects with this object manager
2023-04-17 07:48:18 -04:00
George Kiagiadakis
c0322cb34f
m-standard-event-source: remove the devices object manager
...
That makes no sense to have. The only script that uses this can easily
be rewriten so that it uses object-added/removed instead.
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
7be388c881
main: Free the component deps using the correct API
2023-04-17 07:48:18 -04:00
Julian Bouzas
102792527a
lib: remove deprecated APIs
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
c0905c233f
m-settings: trigger init of WpSettings object
...
After the creation of metadata with config data, m-settings will also need to
trigger the init of WpSettings Object/API. Earlier this was done in main.c as
part of init transition but the logic there is much more generalized now and so
it has been moved here.
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
d9d3a49f5a
settings: remove unnecessary log message
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
85900fba64
m-lua-scripting: support dangling components
...
- Dangling components are those not present in the json config files but present
in the wireplumber lookup folders.
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
6f039003ec
component-loader: support dangling components
...
- Dangling components are those not present in the json config files but present
in the wireplumber lookup folders.
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
904751ede1
main.c: refactor the init transition with priority tag
...
- Support `priority` tag in definition of wireplumber components in json
config files.
- Support loading dangling components. These are components which are
NOT present in the json config files but present in the wireplumber
lookup folders.
- Simplify the init transition by removing the unneeded steps.
2023-04-17 07:48:18 -04:00
Julian Bouzas
78b0dd58db
conf: move endpoints into wireplumber.settings
2023-04-17 07:48:18 -04:00
George Kiagiadakis
497f30453d
lib: event-hook/dispatcher: constness and staticness fixes
2023-04-17 07:48:18 -04:00
Julian Bouzas
1da43c6031
settings: append matches if the rule name matches
2023-04-17 07:48:18 -04:00
Julian Bouzas
36cba7fe55
config: comment all remaining rules
2023-04-17 07:48:18 -04:00
Julian Bouzas
6afca096e8
policy-device-profile.lua: use default rules if none are defined
2023-04-17 07:48:18 -04:00
Julian Bouzas
56087777f6
bluez.lua: use default rules if none are defined
2023-04-17 07:48:18 -04:00
Julian Bouzas
ed79e9a4d0
alsa.lua: use default rules if none are defined
2023-04-17 07:48:18 -04:00
Julian Bouzas
4bb949fd89
access-default.lua: use default rules if none are defined
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
119b99dc23
event-dispatcher: Add a trace log msg to indicate the events created
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
0fadd4f4fd
wpexec: Add support for event dispatcher
...
-Scripts loaded with wpexec will also need 'module-standard-event-source'
to be able to convert the pipewire signals to wireplumber events.
-Simplify the init transition states.
2023-04-17 07:48:18 -04:00
Julian Bouzas
a8d6d50e2a
config: use wireplumber nomenclature for the setting names
2023-04-17 07:48:18 -04:00
Julian Bouzas
fe21c2f8b2
config: comment persistent.settings to false as it is its default value
2023-04-17 07:48:18 -04:00
Julian Bouzas
6a612db57a
config: make remaining non rule settings optional
2023-04-17 07:48:18 -04:00
Julian Bouzas
f1fbeaa661
m-lua-scripting: add fallback value for parse_{array|object}_safe() APIs
2023-04-17 07:48:18 -04:00
Julian Bouzas
f416482f65
config: always comment the default values
...
This allows users to know what values are set by default.
2023-04-17 07:48:18 -04:00
Julian Bouzas
f6c4590299
config: consider dependency valid if not defined in WpSettings
...
Needed so that the configuration is fully commented.
2023-04-17 07:48:18 -04:00
Julian Bouzas
c5c36b26ba
config: move all components into wireplumber.conf
2023-04-17 07:48:18 -04:00
Julian Bouzas
8df09a872b
config: fix flags for libpipewire-module-rt
2023-04-17 07:48:18 -04:00
Julian Bouzas
5dcb4f0037
config: use the pipewire directory
2023-04-17 07:48:18 -04:00
Julian Bouzas
d79d3e1465
policy-device-endpoint.lua: remove unused move configuration
2023-04-17 07:48:18 -04:00
Julian Bouzas
a23168af52
policy-hooks.lua: set move configuration to true by default
2023-04-17 07:48:18 -04:00
Julian Bouzas
048a975818
common-utils.lua: use different timeout callbacks for different states
...
This allows saving different states at the same time.
2023-04-17 07:48:18 -04:00
Julian Bouzas
c64139afbe
conf: comment persistent.settings as it is disable by default
2023-04-17 07:48:18 -04:00
Julian Bouzas
3c26f278cd
module-settings: refactor to only load state file when plugin is enabled
...
Also fixes issues with persistent.settings not working if no changes have
happened.
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
f4382da5ba
policy-hooks.lua: An example of user injectible hook
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
bbe3b919d3
policy-{node|hooks}.lua: Fix issues in Zoom Desktop Video Sharing.
...
Fixes #339
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
40a1c3b948
m-lua-scripting: Return the event in the push_event API
2023-04-17 07:48:18 -04:00
Ashok Sidipotu
68eaede3e4
event-dispatcher: Group after-events-with-event hooks of a session item
...
after-events-with-event hooks are rendered based on the priority, this means
when a rescan event happens, all the findDefinedTarget hooks(of different
session items) are run first and then all the findDefinedTarget hooks, so on.
This kind of scheduling of hooks was removing the established link between zoom
voice engine and digial mic. Also It is slightly difficult to follow the flow in
the logs.
Instead of arranging the hooks flately based on priority, better scheme to
prioritize them in two layers. First all the hooks for an event or session items
are grouped and with in that group, priority of the hook is honored.
src/scripts/policy-hooks.lua # modified: src/scripts/policy-node.lua #
2023-04-17 07:48:18 -04:00
Julian Bouzas
89dcd64003
settings: make sure WpSpaJson is valid after doing wp_iterator_next()
2023-04-17 07:48:18 -04:00
Julian Bouzas
b84261773a
settings: make sure WpSpaJson is not NULL when checking its type
2023-04-17 07:48:18 -04:00