Device Profile/Route Management Scripts¶
These scripts are tasked to select appropriate profiles and routes for each device.
Hooks¶
Hook name | File | Triggered by | Action |
---|---|---|---|
device/select-profile | select-profile.lua | device added or EnumProfiles changed | schedules a ‘select-profile’ event |
device/select-route | select-routes.lua | device added or EnumRoute changed | updates the device info cache with the latest routes and schedules a ‘select-routes’ event, if needed |
device/store-user-selected-profile | select-profile.lua | device Profile param changed | stores profile into the state file if it was selected by the user (profile.save == true) |
device/store-or-restore-routes | select-routes.lua | device Route param changed | stores or restores Route selections based on the current state; may push a ‘select-routes’ event to update properties |
Hook name | File | Description |
---|---|---|
device/find-stored-profile | state-profile.lua | selects the profile that has been stored in the state file (user’s explicit selection) |
device/find-best-profile | find-best-profile.lua | finds the best profile for a device based on profile priorities and availability |
device/apply-profile | apply-profile.lua | applies the selected profile to the device |
Hook name | File | Description |
---|---|---|
device/find-stored-routes | state-routes.lua | restores routes selection for a newly selected profile |
device/find-best-routes | find-best-routes.lua | finds the best routes based on availability and priority |
device/apply-route-props | state-routes.lua | augments the selected routes to include properties stored in the state file (volume, channel map, codecs, …)” |
device/apply-routes | apply-routes.lua | applies the selected routes to the device |
select-profile event¶
High priority event to select a profile for a given device. The event hooks must also apply the profile.
The event “subject” is the device (WpDevice) object.
This event has no special properties.
Name | Description |
---|---|
selected-profile |
|
select-routes event¶
High priority event to select routes for a given profile. The event hooks must also apply the routes.
The event “subject” is the device (WpDevice) object.
Property name | Description |
---|---|
profile.changed | true if a new profile has been selected / false if only the available routes changed |
profile.name | the active profile’s name |
profile.active-device-ids | json array of integers containing the active device IDs for which to select routes |
Name | Description |
---|---|
selected-routes |
|