HeadsetControl has been released in version 4.0.0.
HeadsetControl is a cross-platform tool for controlling USB gaming headsets on Linux, macOS and Windows - it manages sidetone, battery status, LED lighting and equalizers, among other things.
Version 4.0.0 marks the first stable release built on a complete rewrite from C to C++20. It brings type-safe error handling, a new high-level library API, and support for over 20 new headsets, including models from Audeze, Corsair, HyperX, Logitech and Sony.
Highlights - the C++20 Rewrite:
- Type-safe error handling with
Result<T>returning rich results instead of ambiguous return codes- New high-level library API enabling HeadsetControl as a library via C++ (
#include <headsetcontrol.hpp>), C/FFI (#include <headsetcontrol_c.h>), with static and optional shared targets- Protocol templates (
HIDPPDevice,SteelSeriesDevice,CorsairDevice) reducing per-device code by 60-80%- Data-driven feature system replacing giant switch statements with capability-descriptor tables
- Comprehensive test suite including unit, mock-device, and integration tests
- Reorganized project layout into
lib/,cli/,tests/directoriesBreaking Changes:
- Requires C++20 compiler (GCC 13+, Clang 16+, Apple Clang 15+, MSVC 2019 16.10+)
- Source reorganized; headers renamed
.h→.hpp- New library targets and install layout
New Device Support:
20+ devices added including Audeze Maxwell 2, Corsair Virtuoso variants, HyperX Cloud III/II, Lenovo Wireless VoIP, Logitech ASTRO A50 Gen 5, Sony INZONE models, SteelSeries Arctis Nova variants, and Plantronics/Poly Voyager 8200 UC.
New Features:
- Noise filter capability (Audeze Maxwell)
- Parametric equalizer (SteelSeries Arctis Nova 3P)
- USB vendor/product name retrieval
- Per-capability platform specification
- Packaging: Windows NSIS installer, Linux AppImage/
.deb/.rpmNotable Fixes:
Multiple battery reporting corrections across SteelSeries, Logitech, and HyperX devices; inverted ChatMix mapping fixes; out-of-range battery voltage handling improvements.

Source: GitHub