[PR #417] linux: fix connected device detection failure when using wireplumber 0.5.13 #394

Open
opened 2026-03-02 12:41:00 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/kavishdevar/librepods/pull/417
Author: @jamescarter2001
Created: 1/4/2026
Status: 🔄 Open

Base: mainHead: wireplumber-connected-device-fix


📝 Commits (2)

  • e4048a2 fix connected device detection when using latest wireplumber version
  • 69bb94b apply CodeRabbit feedback

📊 Changes

4 files changed (+62 additions, -12 deletions)

View changed files

📝 linux/main.cpp (+4 -7)
📝 linux/media/mediacontroller.cpp (+3 -3)
📝 linux/media/pulseaudiocontroller.cpp (+53 -2)
📝 linux/media/pulseaudiocontroller.h (+2 -0)

📄 Description

https://github.com/kavishdevar/librepods/issues/418

The latest wireplumber version appears to break the MediaController class's "isActiveOutputDeviceAirPods" check, affecting features such as ear detection and conversational awareness. This appears to be due to a name formatting change when querying the default sink name.

Steps to reproduce in the current version:

  1. With wireplumber 0.5.13 installed, start librepods and connect AirPods
  2. Ensure ear detection pausing is enabled and start playing some audio on your system
  3. Remove an AirPod. Ear detection should fail

This PR fixes the issue.

Summary by CodeRabbit

  • New Features

    • Added direct MAC-based device identification for audio sinks to ensure exact-device matching.
  • Bug Fixes

    • Stopped modifying device address format (keeps colons) so connected devices are recognized consistently.
    • Improved A2DP activation and metadata handling when devices connect or wake from sleep for more reliable playback.

✏️ Tip: You can customize this high-level summary in your review settings.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/kavishdevar/librepods/pull/417 **Author:** [@jamescarter2001](https://github.com/jamescarter2001) **Created:** 1/4/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `wireplumber-connected-device-fix` --- ### 📝 Commits (2) - [`e4048a2`](https://github.com/kavishdevar/librepods/commit/e4048a2ba628cf509cd3bae12d4a57ac9a3aec7e) fix connected device detection when using latest wireplumber version - [`69bb94b`](https://github.com/kavishdevar/librepods/commit/69bb94b963940b1f5d4ec946d13eab85be08956d) apply CodeRabbit feedback ### 📊 Changes **4 files changed** (+62 additions, -12 deletions) <details> <summary>View changed files</summary> 📝 `linux/main.cpp` (+4 -7) 📝 `linux/media/mediacontroller.cpp` (+3 -3) 📝 `linux/media/pulseaudiocontroller.cpp` (+53 -2) 📝 `linux/media/pulseaudiocontroller.h` (+2 -0) </details> ### 📄 Description https://github.com/kavishdevar/librepods/issues/418 The latest wireplumber version appears to break the MediaController class's "isActiveOutputDeviceAirPods" check, affecting features such as ear detection and conversational awareness. This appears to be due to a name formatting change when querying the default sink name. Steps to reproduce in the current version: 1. With wireplumber 0.5.13 installed, start librepods and connect AirPods 2. Ensure ear detection pausing is enabled and start playing some audio on your system 3. Remove an AirPod. Ear detection should fail This PR fixes the issue. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added direct MAC-based device identification for audio sinks to ensure exact-device matching. * **Bug Fixes** * Stopped modifying device address format (keeps colons) so connected devices are recognized consistently. * Improved A2DP activation and metadata handling when devices connect or wake from sleep for more reliable playback. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librepods#394
No description provided.