UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Call for help: Testing headset buttons

    Scheduled Pinned Locked Moved OS
    28 Posts 9 Posters 5.1k Views 4 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      This topic has been deleted. Only users with topic management privileges can see it.
      • flohackF Offline
        flohack @poVoq
        last edited by

        @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 πŸ˜‰

        My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

        poVoqP 1 Reply Last reply Reply Quote 0
        • poVoqP Offline
          poVoq @flohack
          last edited by

          Ah, I guess. Sometimes it seems to get confused though switching away from bluetooth devices etc.

          Fairphone 5 (waiting for port)

          1 Reply Last reply Reply Quote 0
          • Mario.CHM Offline
            Mario.CH
            last edited by

            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 ?

            πŸ“± Oneplus Nord N100 UT20.40 (OTA5); then Xperia X (since 2020) at last UT 20.04(OTA5), now out of service due to defective camera
            🐎 When you realize you are riding a dead horse, get off!
            My languages skill: πŸ‡¨πŸ‡­πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ, and only orally: πŸ‡¬πŸ‡§ πŸ‡ΉπŸ‡­

            flohackF 1 Reply Last reply Reply Quote 1
            • flohackF Offline
              flohack @Mario.CH
              last edited by

              @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...

              My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

              Mario.CHM 1 Reply Last reply Reply Quote 0
              • Mario.CHM Offline
                Mario.CH @flohack
                last edited by

                @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.

                πŸ“± Oneplus Nord N100 UT20.40 (OTA5); then Xperia X (since 2020) at last UT 20.04(OTA5), now out of service due to defective camera
                🐎 When you realize you are riding a dead horse, get off!
                My languages skill: πŸ‡¨πŸ‡­πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ, and only orally: πŸ‡¬πŸ‡§ πŸ‡ΉπŸ‡­

                1 Reply Last reply Reply Quote 0
                • ? Offline
                  A Former User
                  last edited by

                  I'm a bit late, but here's my version of events:

                  Devices:
                  Cosmo Communicator
                  PinePhone Rev1.2b

                  Headsets:
                  3 different sets of wired headsets, one with 3 buttons, one with 2 buttons, one with 1 button

                  On 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.

                  1 Reply Last reply Reply Quote 0
                  • c4pp4C Offline
                    c4pp4
                    last edited by

                    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 ------------
                    
                    poVoqP 1 Reply Last reply Reply Quote 0
                    • poVoqP Offline
                      poVoq @c4pp4
                      last edited by

                      @c4pp4 Ah, cool, so USB headset audio is already supported? That would be nice to add to the button support as well.

                      Fairphone 5 (waiting for port)

                      flohackF 1 Reply Last reply Reply Quote 0
                      • flohackF Offline
                        flohack @poVoq
                        last edited by

                        @povoq Well headset audio should work for music with any headset (wired, BT) but call audio seems to be broken for BT.

                        My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

                        poVoqP 1 Reply Last reply Reply Quote 0
                        • poVoqP Offline
                          poVoq @flohack
                          last edited by

                          @flohack Well, I was surprised as "wired" as in headphone jack is completly different from USB headsets.

                          Fairphone 5 (waiting for port)

                          flohackF 1 Reply Last reply Reply Quote 0
                          • flohackF Offline
                            flohack @poVoq
                            last edited by

                            @povoq Ohh I see. That would be new, that USB devices work πŸ˜‰

                            My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

                            CiberSheepC 1 Reply Last reply Reply Quote 0
                            • CiberSheepC Offline
                              CiberSheep @flohack
                              last edited by

                              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

                              Another planet, another time, another universe!

                              1 Reply Last reply Reply Quote 0
                              • rikR Offline
                                rik
                                last edited by rik

                                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 + and volume - buttons are not detected, but the play / pause button is detected (correctly) as KEY_MEDIA. However, pressing it 1 time gives 2 events, both the value 1 and the value 0 entries above are from a single key press.

                                flohackF 1 Reply Last reply Reply Quote 0
                                • rikR Offline
                                  rik @kugiigi
                                  last edited by rik

                                  @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.....

                                  1 Reply Last reply Reply Quote 0
                                  • flohackF Offline
                                    flohack @rik
                                    last edited by

                                    @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.

                                    My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

                                    1 Reply Last reply Reply Quote 1
                                    • rikR Offline
                                      rik
                                      last edited by rik

                                      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 πŸ™‚

                                      1 Reply Last reply Reply Quote 0
                                      • Z zubozrout referenced this topic on
                                      • First post
                                        Last post