/
/
/
# What does this implement/fix? `_forward_protocol_set_members` in the protocol linking controller had grown to do six different things at once and sat exactly at the project's max-statements limit, so the last small addition to it already tripped the linter. Split it into focused helpers so the next change to protocol grouping has room to breathe. No behaviour change: same calls in the same order, all existing tests pass untouched. **Related issue (if applicable):** - n/a ## Types of changes - [ ] Bugfix (non-breaking change which fixes an issue) — `bugfix` - [ ] New feature (non-breaking change which adds functionality) — `new-feature` - [ ] Enhancement to an existing feature — `enhancement` - [ ] New music/player/metadata/plugin provider — `new-provider` - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) — `breaking-change` - [ ] Refactor (no behaviour change) — `refactor` - [ ] Documentation only — `documentation` - [x] Maintenance / chore — `maintenance` - [ ] CI / workflow change — `ci` - [ ] Dependencies bump — `dependencies` Changes: - Extracted the child protocol activation loop into `_activate_protocol_on_added_children` (still runs before `set_members`, which is what keeps a joining speaker's volume control pointing at the interface carrying the audio). - Extracted the protocol switch decision and playback handover into `_activate_group_output_protocol`. - Extracted the teardown of the previously active protocol player into `_stop_previous_protocol`, which now returns the members to re-add. - Flattened the deeply nested `if` chains and dropped a leftover unused local. ## Checklist - [x] The code change is tested and works locally. - [x] `pre-commit run --all-files` passes. - [x] `pytest` passes, and tests have been added/updated under `tests/` where applicable. - [ ] For changes to shared models, the companion PR in `music-assistant/models` is linked. - [ ] For changes affecting the UI, the companion PR in `music-assistant/frontend` is linked. - [x] I have read and complied with the project's [AI Policy](https://github.com/music-assistant/.github/blob/main/AI_POLICY.md) for any AI-assisted contributions. - [ ] I have [raised a PR against the documentation repository](https://github.com/music-assistant/music-assistant.io/blob/main/CONTRIBUTING.md) targeting the main or beta branch as appropriate.