Skip to content

Commit bf9dcf1

Browse files
committed
feat(device): add Sony INZONE H5 (WH-G500)
Implements the Sony vendor HCI protocol over the 2.4 GHz USB dongle (VID 054C, PID 0EBF). Supports: - Battery (level + charging state) via BATTERY_INFO GET - Chatmix via GAME_CHAT_MIX_BALANCE GET (device 0..90 mapped to 0..128) - Sidetone via SIDETONE_VOLUME SET (0..128 mapped to device 0..50) - Mic volume via MIC_VOLUME SET (0..128 mapped to device 0..50) The control protocol lives on the Sony-vendor HID collection (usage page 0xFF04, report ID 0x02). Each report wraps an HCI packet: host issues COMMAND (opcode 0xFC00), device replies with EVENT (event code 0xFF). The exchange() helper builds the COMMAND, computes the checksum, validates the response shell, matches event_id + TID, and skips intervening NTFY_ACTIVE pushes from the dongle.
1 parent e3a2afa commit bf9dcf1

3 files changed

Lines changed: 388 additions & 0 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ A cross-platform tool to control USB gaming headsets on **Linux**, **macOS**, an
5151
| Audeze Maxwell 2 | All | x | x | | | x | x | x | | x | | | | | | | | x |
5252
| Lenovo Wireless VoIP Headset | All | x | x | | | x | | x | x | x | | | x | | x | | | |
5353
| Sony INZONE Buds | All | | x | | | | | | | | | | | | | | | |
54+
| Sony INZONE H5 | All | x | x | | | | x | | | | | | | x | | | | |
5455
| HeadsetControl Test device | All | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
5556

5657
**Platform:** All = Linux, macOS, Windows | L/M = Linux and macOS only

lib/device_registry.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848

4949
// Sony devices
5050
#include "devices/sony_inzone_buds.hpp"
51+
#include "devices/sony_inzone_h5.hpp"
5152

5253
// Test device
5354
#include "devices/headsetcontrol_test.hpp"
@@ -138,6 +139,7 @@ void DeviceRegistry::initialize()
138139

139140
// Sony devices
140141
registerDevice(std::make_unique<SonyINZONEBuds>());
142+
registerDevice(std::make_unique<SonyINZONEH5>());
141143

142144
// Test device
143145
registerDevice(std::make_unique<HeadsetControlTest>());

0 commit comments

Comments
 (0)