Hi,
We are working with a new consumer All-in-One platform with HDA audio (Realtek codec).
Upon plugging in an audio device into one of the audio jacks, under Windows, a prompt appears which says: Which device did you plug in? And you can select from several options: Mic In / Headphone / Speaker Out Screenshot: https://imgur.com/a/mrUolHN
The system vendor is asking if we can implement the same under Linux.
At first glance, this sounds quite similar to what happens on other models when you plug in a headset under GNOME: a dialog pops up asking if you connected a mic, headphones, or a headset. Under the surface, such headset jacks seems to correspond to 2 separate HDA pins (one input and one output) and this dialog seems to manage which streams are enabled or muted.
However, this case is different. We have experimented, and the jack corresponds to just a single HDA pin. We can manually quirk or retask this pin to be an input or an output and it works in the direction that we choose. But that's a far cry from having a nice GUI that automatically comes up asking the user how the pin should be configured.
Is there any current solution or work in progress with the goal of offering this functionality?
If not, brainstorming, possible solutions could include:
1. Taking the hdajackretask idea but making it user-accessible and user-friendly (currently it goes through debugfs and must be done by root). This would require the creation of a new kernel interface to expose pin reconfiguration in a nicer way, which would have to be plumbed through pulseaudio and GNOME.
2. Could ALSA ignore the pin config here and provide both input and output streams for this pin? Then pulseaudio + GUI could pick which one to use - similar to the existing Headset dialog. This would still require some work on pulseaudio and the corresponding UI, but it might be a less invasive project.
Thanks, Daniel