• buckle -f is good for debugging

    From Adam Borowski@21:1/5 to All on Mon Jul 17 07:20:01 2017
    "bucklespring" lets you pretend you have a keyboard for grown-ups, and
    "buckle -f" is the only sane way to start it (as otherwise it'd be silent
    for any keys not present on the author's crippled rump "Space Saver"
    variant).

    A week ago, I had to urgently replace my microphone headphones. So I
    strolled to a brick-an-mortar shop to pick from what they had. The only set that appeared decent enough had an USB connector instead of a pair of jacks like $DEITY intended. They give pretty good sound, although a bright
    BLINKING light on the volume control is grounds for murder. Too bad, the volume control, consisting of four buttons instead of a wheel, mostly didn't work (except for the "mic mute" button).

    A few days later, I finally got around to work on fixing ALSA support in Clementine (one of my four reasons why: https://angband.pl/tmp/clem/).
    While doing so, I started bucklespring as a test for handling audio devices open by another program.

    I try to adjust volume level of the headphones, and, by muscle memory, reach for the volume control on the cable. It still doesn't work, but I _hear_
    the buttons. WTF? Turns out that three of the buttons, instead of being handled in hardware, present themselves to the computer as a keyboard, and
    send XF86AudioLowerVolume, XF86AudioRaiseVolume and XF86AudioMute key codes, assuming they're handled by the OS. They were not, at least in the config I had, but binding them appropriately is no rocket surgery.

    It still puzzles me why the manufacturer found it more cost effective to implement one button a physically different way than the three others, requiring a whole keyboard emulation stack, but hey, at least it works now.


    So... buckle up! This way nothing else will surprise you by masquerading as
    a keyboard!

    --
    ⢀⣴⠾⠻⢶⣦⠀
    ⣾⠁⢠⠒⠀⣿⡁ A dumb species has no way to open a tuna can. ⢿⡄⠘⠷⠚⠋⠀ A smart species invents a can opener. ⠈⠳⣄⠀⠀⠀⠀ A master species delegates.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Ian Jackson@21:1/5 to Adam Borowski on Mon Jul 17 17:40:02 2017
    Adam Borowski writes ("buckle -f is good for debugging"):
    It still puzzles me why the manufacturer found it more cost effective to implement one button a physically different way than the three others, requiring a whole keyboard emulation stack, but hey, at least it works now.

    The USB stack is just software. Doing it this way avoids having to do
    anything nontrivial to the audio path in the microcontroller.
    (Buttons are cheaper than potentiometers and last longer too.)

    I'd like to think that the mic mute switch is that way for privacy
    reasons, but it's probably simply that it is easy to implement: just
    interrupt the mic wire. It even saves a gpio line to the
    microcontroller.

    Ian.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)