| 314 | #endif |
| 315 | |
| 316 | bool isTransientAudioDeviceId(const QByteArray& id) |
| 317 | { |
| 318 | #ifdef Q_OS_LINUX |
| 319 | // PipeWire/pulse-shim churns these constantly (monitor sources, per-app |
| 320 | // loopbacks, fallback auto-null sink, echo-cancel/combine virtuals). |
| 321 | // They are never useful as a PC mic or local speaker target; treating |
| 322 | // them as "new devices" is what re-fires the dialog in #2864. |
| 323 | if (id.contains(".monitor")) return true; |
| 324 | if (id.startsWith("pulse_input_loopback")) return true; |
| 325 | if (id.contains("auto_null")) return true; |
| 326 | if (id.contains("echo-cancel")) return true; |
| 327 | if (id.contains("combined")) return true; |
| 328 | #else |
| 329 | Q_UNUSED(id); |
| 330 | #endif |
| 331 | return false; |
| 332 | } |
| 333 | |
| 334 | QList<QByteArray> audioDeviceIds(const QList<QAudioDevice>& devices) |
| 335 | { |
no test coverage detected