Call for help: Testing headset buttons
-
@povoq That should be the events that switch the audio sink to the headset. That should already be handled properly otherwise you would not hear anything
-
Ah, I guess. Sometimes it seems to get confused though switching away from bluetooth devices etc.
-
Device Sony Xperia X (F5121)
When plugging in the original Inears headset <MHA750>, the volume control changes from speaker to earphone, then drops right back to speaker after about 1.5 seconds.I tried the evtest anyway with the following 2 results, not sure if they are helpful. Because nothing really happened during the test run, not until I opened the <write to file> file to see what happened.
Available devices: /dev/input/event0: qpnp_pon /dev/input/event1: bu520x1nvx /dev/input/event2: somc_chg_unplug_key /dev/input/event3: gpio-keys /dev/input/event4: clearpad /dev/input/event5: msm8976-tasha-snd-card Headset Jack /dev/input/event6: msm8976-tasha-snd-card Button Jack Select the device event number [0-6]: 6 Input driver version is 1.0.1 Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0 Input device name: "msm8976-tasha-snd-card Button Jack" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 114 (KEY_VOLUMEDOWN) Event code 115 (KEY_VOLUMEUP) Event code 226 (KEY_MEDIA) Event code 260 (BTN_4) Event code 261 (BTN_5) Event code 582 (KEY_VOICECOMMAND) Properties: Property type 6 (?) Testing ... (interrupt to exit) second test <dito> Select the device event number [0-6]: 5 Input driver version is 1.0.1 Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0 Input device name: "msm8976-tasha-snd-card Headset Jack" Supported events: Event type 0 (EV_SYN) Event type 5 (EV_SW) Event code 2 (SW_HEADPHONE_INSERT) state 0 Event code 4 (SW_MICROPHONE_INSERT) state 0 Event code 6 (SW_LINEOUT_INSERT) state 0 Event code 7 (SW_JACK_PHYSICAL_INSERT) state 0 Event code 15 (?) state 0 Event code 16 (?) state 0 Event code 17 (?) state 0 Event code 18 (?) state 0 Properties: Testing ... (interrupt to exit) Event: time 1619464909.762451, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 1 Event: time 1619464909.762451, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 1 Event: time 1619464909.762451, type 5 (EV_SW), code 7 (SW_JACK_PHYSICAL_INSERT), value 1 Event: time 1619464909.762451, type 5 (EV_SW), code 17 (?), value 1 Event: time 1619464909.762451, -------------- SYN_REPORT ------------ Event: time 1619464910.860134, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0 Event: time 1619464910.860134, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 0 Event: time 1619464910.860134, type 5 (EV_SW), code 7 (SW_JACK_PHYSICAL_INSERT), value 0 Event: time 1619464910.860134, type 5 (EV_SW), code 17 (?), value 0 Event: time 1619464910.860134, -------------- SYN_REPORT ------------ Event: time 1619464946.781515, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 1 Event: time 1619464946.781515, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 1 Event: time 1619464946.781515, type 5 (EV_SW), code 7 (SW_JACK_PHYSICAL_INSERT), value 1 Event: time 1619464946.781515, type 5 (EV_SW), code 17 (?), value 1 Event: time 1619464946.781515, -------------- SYN_REPORT ------------ Event: time 1619464952.772939, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0 Event: time 1619464952.772939, type 5 (EV_SW), code 4 (SW_MICROPHONE_INSERT), value 0 Event: time 1619464952.772939, type 5 (EV_SW), code 7 (SW_JACK_PHYSICAL_INSERT), value 0 Event: time 1619464952.772939, type 5 (EV_SW), code 17 (?), value 0
Is this helpful ?
-
@mario-ch Well partially, but normally the evdev for inserting and removing headsets is different from the button control. So with the button device nothing happened? I guess that would be the right one...
-
@flohack So, I now played a song as a comparison and plugged in the Inears headset.
The Jack has switched from speaker to earphone and I could hear the music, but the volume buttons did not work.
In addition, the Evtest with <6>; with the same result as above (first test), namely nothing. -
I'm a bit late, but here's my version of events:
Devices:
Cosmo Communicator
PinePhone Rev1.2bHeadsets:
3 different sets of wired headsets, one with 3 buttons, one with 2 buttons, one with 1 buttonOn the Cosmo, selecting:
'/dev/input/event0: ACCDET'For all buttons on all headsets I get:
type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
-------------- SYN_REPORT ------------
type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
-------------- SYN_REPORT ------------There were 'Event code 114 (KEY_VOLUMEDOWN)' and 'Event code 115 (KEY_VOLUMEUP)' amongst other things listed in the 'Supported events' list, but I didn't see them on any button press.
On the PinePhone, after entering 'evtest' I got no 'Available devices', after entering 'sudo evtest' I got some choices, but none gave any response.
-
Device: Xiaomi Mi A2
Wired USB earphones with three buttons: Mi Dual Driver Earphones (Type-C) (https://www.amazon.de/XIAOMI-KopfhΓΆrer-WeiΓ-Audio-Stecker/dp/B07MLRXJBC)Available devices: /dev/input/event0: qpnp_pon /dev/input/event1: NVTCapacitiveTouchScreen /dev/input/event2: uinput-goodix /dev/input/event3: hall-switch-input /dev/input/event4: gpio-keys /dev/input/event5: sdm660-snd-card Headset Jack /dev/input/event6: sdm660-snd-card Button Jack /dev/input/event7: uinput-fpc Select the device event number [0-7]: 6 Input driver version is 1.0.1 Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0 Input device name: "sdm660-snd-card Button Jack" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 114 (KEY_VOLUMEDOWN) Event code 115 (KEY_VOLUMEUP) Event code 226 (KEY_MEDIA) Event code 260 (BTN_4) Event code 261 (BTN_5) Event code 582 (KEY_VOICECOMMAND) Properties: Property type 6 (?) Testing ... (interrupt to exit) Event: time 1620770065.854970, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1 Event: time 1620770065.854970, -------------- SYN_REPORT ------------ Event: time 1620770065.855140, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 0 Event: time 1620770065.855140, -------------- SYN_REPORT ------------ Event: time 1620770067.377695, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 1 Event: time 1620770067.377695, -------------- SYN_REPORT ------------ Event: time 1620770067.377772, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 0 Event: time 1620770067.377772, -------------- SYN_REPORT ------------ Event: time 1620770068.851389, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1 Event: time 1620770068.851389, -------------- SYN_REPORT ------------ Event: time 1620770068.851508, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0 Event: time 1620770068.851508, -------------- SYN_REPORT ------------
-
@c4pp4 Ah, cool, so USB headset audio is already supported? That would be nice to add to the button support as well.
-
@povoq Well headset audio should work for music with any headset (wired, BT) but call audio seems to be broken for BT.
-
@flohack Well, I was surprised as "wired" as in headphone jack is completly different from USB headsets.
-
@povoq Ohh I see. That would be new, that USB devices work
-
Oh, I didn't understand I could test wired ones
I have ones of those white, hard ones with 3 buttons, vol+, vol- and white button:Select the device event number [0-5]: 4 Input driver version is 1.0.1 Input device ID: bus 0x19 vendor 0x0 product 0x0 version 0x0 Input device name: "ACCDET" [...] Properties: Testing ... (interrupt to exit) Event: time 1620815706.095935, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1 Event: time 1620815706.095935, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Only white central button works, not the volume ones
-
Nexus 5, RC Channel (2021-W18), wired headset w/
play/pause
,volume +
,volume -
buttons:phablet@ubuntu-phablet:~$ sudo evtest No device specified, trying to scan all of /dev/input/event* Available devices: /dev/input/event0: qpnp_pon /dev/input/event1: touch_dev /dev/input/event2: gpio-keys /dev/input/event3: hs_detect /dev/input/event4: msm8974-taiko-mtp-snd-card Button Jack /dev/input/event5: msm8974-taiko-mtp-snd-card Headset Jack Select the device event number [0-5]: 3 Input driver version is 1.0.1 Input device ID: bus 0x0 vendor 0x1 product 0x1 version 0x1 Input device name: "hs_detect" Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 114 (KEY_VOLUMEDOWN) Event code 115 (KEY_VOLUMEUP) Event code 226 (KEY_MEDIA) Event type 5 (EV_SW) Event code 2 (SW_HEADPHONE_INSERT) state 1 Event code 4 (SW_MICROPHONE_INSERT) state 1 Properties: Testing ... (interrupt to exit) Event: time 439671.235176, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 1 Event: time 439671.235866, -------------- SYN_REPORT ------------ Event: time 439671.400194, type 1 (EV_KEY), code 226 (KEY_MEDIA), value 0 Event: time 439671.400336, -------------- SYN_REPORT ------------
So the
volume +
andvolume -
buttons are not detected, but theplay / pause
button is detected (correctly) asKEY_MEDIA
. However, pressing it 1 time gives 2 events, both thevalue 1
and thevalue 0
entries above are from a single key press. -
@kugiigi this means the device you are inspecting isn't associated with your headset (or it isn't detecting any button presses). Try again with another device selected. If it is a bluetooth device and you have selected the correct device (by mac address for bluetooth) then I think that means unfortunately button detection isn't working for that device. Can you try other bluetooth devices and / or other wired headsets?
UPDATE: I tried with 2 bluetooth devices and got no detected events either.....
-
@rik Yeah the 2 events are okay, you could have different functions for a long and a short press, so thats why it needs to send press and release.
-
Nexus 5, RC Channel (2021-W18), 2 bluetooth headsets (Mpow M30 earbuds, Anker Sound Core Mini speaker): no events detected when pressing play/pause, volume buttons but sound does work to both devices
-