Sapd / HeadsetControl

Sidetone and Battery status for Logitech G930, G533, G633, G933 SteelSeries Arctis 7/PRO 2019 and Corsair VOID (Pro) in Linux and MacOSX
GNU General Public License v3.0
1.47k stars 178 forks source link

URB Interupt / JBL Q810 #357

Open SWW13 opened 5 months ago

SWW13 commented 5 months ago

Description

I'm working on support for the JBL Quantum 810 which seems to report most status with an URB_INTERRUPT.

Is there a way listen to these interrupts? This would probably need some refactoring to implement a headset daemon, which could be out of scope for this project.

I'm also open to other ideas on how to poke the device to give out its state.


All the status updates and commands I have reversed so far are commented my fork of the project (see above).

For example the ANC (Active Noise Cancling) state change when the button on the device is pressed:

ANC On: image ANC Off: image


USB Captures of most status changes by the device and software, if somebody likes to look into this: headset-usb-capture.zip

On which OS does the problem happen?

Linux

Sapd commented 5 months ago

Is there a way listen to these interrupts? This would probably need some refactoring to implement a headset daemon, which could be out of scope for this project.

In general you can use hid_read or

headsetcontrol --dev -- --receive

In any case it needs to be polled.

There is also an example daemon implementation for the corsair void: https://github.com/Sapd/HeadsetControl/blob/eeab45c40a6f0c48d4fb2437678363ac2e1d0e44/src/devices/corsair_void.c#L392

But was not really continued. Its a bit hard to integrate it with the rest of the application, probably also needs a special design regarding uniform output.