From ff1605d69c0d76c80bb7806dccf0e3529b79a844 Mon Sep 17 00:00:00 2001 From: Sergey Ukolov Date: Fri, 14 Aug 2026 20:51:22 +0300 Subject: [PATCH 1/6] fix(macos): read per-earbud battery on TWS models requestBattery() probed the single-battery sub-type first and returned on any reply, so TWS earbuds never reached the dual probe and L/R stayed unset. Probe order now follows the model name (WF-*/LinkBuds try dual first), with a fallback to the other layout either way. - add DUAL2 (0x01) for the WF-C500/C510/C700N line - keep the per-earbud charging flags instead of discarding them - treat a level of 0 as "not reporting" (docked), not a flat battery - read the charging case (0x0a) - re-read battery on the dynamic poll so it stops going stale (v2 only: 0x22 is POWER_OFF on v1) Sub-types and byte offsets verified against a WF-1000XM5 by docking one earbud and watching byte [4] track it; captured frames are in Constants.h. --- Client/Constants.h | 27 +++++- Client/CrossPlatformGUI.cpp | 17 +++- Client/Headphones.cpp | 135 +++++++++++++++++++++++------ Client/Headphones.h | 18 +++- Client/macos/ContentView.swift | 40 +++++++-- Client/macos/HeadphonesBridge.h | 3 + Client/macos/HeadphonesBridge.mm | 16 ++++ Client/macos/HeadphonesModel.swift | 23 +++-- 8 files changed, 234 insertions(+), 45 deletions(-) diff --git a/Client/Constants.h b/Client/Constants.h index 91613ca9..7c36844e 100644 --- a/Client/Constants.h +++ b/Client/Constants.h @@ -33,9 +33,30 @@ namespace V2Command { inline constexpr unsigned char INIT_REQUEST = 0x00; // payload: 00 00 inline constexpr unsigned char INIT_REPLY = 0x01; // reply: 01 ... (8 bytes total => v2 device) - inline constexpr unsigned char BATTERY_GET = 0x22; // payload: 22 - inline constexpr unsigned char BATTERY_RET = 0x23; // reply: 23 - inline constexpr unsigned char BATTERY_NTFY = 0x25; // notify: 25 + inline constexpr unsigned char BATTERY_GET = 0x22; // payload: 22 + inline constexpr unsigned char BATTERY_RET = 0x23; // reply: 23 + inline constexpr unsigned char BATTERY_NTFY = 0x25; // notify: 25 + // Battery inquiry sub-types (payload byte 1). A device answers only the ones it actually has, so + // these have to be probed. TWS earbuds report DUAL (or DUAL2 on the WF-C5xx/C700N line) plus CASE; + // everything else reports SINGLE. Values and the DUAL byte layout match GadgetBridge's + // SonyProtocolImplV2.encodeBatteryType() / handleBattery(). + inline constexpr unsigned char BATTERY_SUB_SINGLE = 0x00; // RET 23 00 + inline constexpr unsigned char BATTERY_SUB_DUAL2 = 0x01; // WF-C500 / WF-C510 / WF-C700N + inline constexpr unsigned char BATTERY_SUB_DUAL = 0x09; // WF-1000XM4 / WF-1000XM5 / LinkBuds + inline constexpr unsigned char BATTERY_SUB_CASE = 0x0a; // RET 23 0a + // DUAL/DUAL2 reply: 23 . A level of 0 means that earbud isn't + // reporting (docked in the case / powered down) rather than "empty" - treat it as unknown. + // + // The reply can be LONGER than the reference layout, so size checks must be lower bounds, never + // equality. Captured from a WF-1000XM5 (fw 6.1.0), both earbuds out of the case and full: + // send 22 09 -> 23 09 64 00 64 00 64 64 (8 bytes; documented layout is 6) + // send 22 0a -> 23 0a 64 00 1e (5 bytes; documented layout is 4) + // Confirmed on hardware by docking one earbud and watching the frames change: + // right earbud in the case -> 23 09 64 00 00 00 64 64 (byte [4] = R went 0x64 -> 0x00) + // right earbud back out -> 23 09 64 00 64 00 64 64 + // So bytes [2]/[4] really are the L/R levels, as in the reference layout. The trailing bytes stayed + // fixed (0x64 0x64 on 22 09, 0x1e on 22 0a) across that change, which rules them out as per-earbud + // levels but leaves their meaning unknown - don't reuse them without a sample that moves them. inline constexpr unsigned char EQ_GET = 0x56; // payload: 56 00 inline constexpr unsigned char EQ_RET = 0x57; // reply: 57 00 06 inline constexpr unsigned char EQ_SET = 0x58; // preset: 58 00 00 ; custom: 58 00 A0 06 diff --git a/Client/CrossPlatformGUI.cpp b/Client/CrossPlatformGUI.cpp index 993d9a85..23203639 100644 --- a/Client/CrossPlatformGUI.cpp +++ b/Client/CrossPlatformGUI.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #define STB_IMAGE_IMPLEMENTATION #define STBI_ONLY_PNG @@ -192,6 +193,8 @@ void CrossPlatformGUI::_pumpConnectionState() try { this->_headphones.requestAmbientState(); } catch (const std::exception&) {} if (this->_isV2()) { + // Lets requestBattery() probe the per-earbud layout first on TWS models (WF-*/LinkBuds). + this->_headphones.setDeviceName(this->_connectedDevice.name); try { this->_headphones.requestBattery(); } catch (const std::exception&) {} try { this->_headphones.requestEqualizer(); } catch (const std::exception&) {} try { this->_headphones.requestDsee(); } catch (const std::exception&) {} @@ -357,9 +360,19 @@ void CrossPlatformGUI::_drawStatusHeader() if (this->_headphones.hasDualBattery()) { - ImGui::Text("Battery L %d%% R %d%%", this->_headphones.getBatteryLeft(), this->_headphones.getBatteryRight()); + // An earbud that isn't reporting (docked in the case / powered down) reads -1; show a dash. + auto budText = [](int level, bool charging) { + char buf[32]; + if (level < 0) snprintf(buf, sizeof(buf), "--"); + else snprintf(buf, sizeof(buf), "%d%%%s", level, charging ? "+" : ""); + return std::string(buf); + }; + ImGui::Text("Battery L %s R %s", + budText(this->_headphones.getBatteryLeft(), this->_headphones.isBatteryLeftCharging()).c_str(), + budText(this->_headphones.getBatteryRight(), this->_headphones.isBatteryRightCharging()).c_str()); if (this->_headphones.getBatteryCase() >= 0) - ImGui::Text("Case %d%%", this->_headphones.getBatteryCase()); + ImGui::Text("Case %d%%%s", this->_headphones.getBatteryCase(), + this->_headphones.isBatteryCaseCharging() ? " (charging)" : ""); } else { diff --git a/Client/Headphones.cpp b/Client/Headphones.cpp index 54d010f2..05fdf28e 100644 --- a/Client/Headphones.cpp +++ b/Client/Headphones.cpp @@ -5,6 +5,7 @@ #include #include #include +#include Headphones::Headphones(BluetoothWrapper& conn) : _conn(conn) { @@ -85,38 +86,119 @@ void Headphones::initDevice() ); } -void Headphones::requestBattery() +void Headphones::setDeviceName(const std::string& name) +{ + std::lock_guard guard(this->_propertyMtx); + this->_deviceName = name; +} + +// True for Sony's true-wireless earbuds, which report a battery per earbud instead of one for the +// whole device. Only used to pick the probe order - an unrecognised name still finds both layouts, +// just one timed-out inquiry slower. +bool Headphones::_looksLikeEarbuds() const { - // Single battery (over-ear and most models): GET 22 00 -> RET 23 00 + std::string name; + for (char c : this->_deviceName) name.push_back((char)std::tolower((unsigned char)c)); + return name.find("wf-") != std::string::npos || name.find("linkbuds") != std::string::npos; +} + +// Reads the per-earbud (and case) levels. Returns false if the device didn't answer this sub-type or +// answered with nothing usable, so the caller can fall back to the other layout. +bool Headphones::_requestDualBattery(unsigned char subType) +{ + Buffer resp; try { - auto resp = this->_conn.sendCommandAndReadResponse({ (char)V2Command::BATTERY_GET, 0x00 }, V2Command::BATTERY_RET, 0x00); - if (resp.size() >= 4) { - std::lock_guard guard(this->_propertyMtx); - this->_batteryLevel = (unsigned char)resp[2]; - this->_batteryCharging = resp[3] == 1; - return; // found a single battery; don't waste time probing the TWS types - } - } catch (...) {} + resp = this->_conn.sendCommandAndReadResponse( + { (char)V2Command::BATTERY_GET, (char)subType }, V2Command::BATTERY_RET, subType); + } catch (const std::exception&) { + return false; + } + if (resp.size() < 6) return false; + + const int left = (unsigned char)resp[2]; + const int right = (unsigned char)resp[4]; + // Both zero means neither earbud is reporting - an empty answer, not a pair of flat batteries. + if (left == 0 && right == 0) return false; - // TWS earbuds: dual L/R (22 09 -> 23 09 ) and case (22 0a -> 23 0a ). + std::lock_guard guard(this->_propertyMtx); + this->_hasDualBattery = true; + this->_batteryLeft = left > 0 ? left : -1; + this->_batteryRight = right > 0 ? right : -1; + this->_batteryLeftCharging = resp[3] == 1; + this->_batteryRightCharging = resp[5] == 1; + // Headline level: the emptier of the two earbuds that are actually reporting. + if (this->_batteryLeft >= 0 && this->_batteryRight >= 0) + this->_batteryLevel = std::min(this->_batteryLeft, this->_batteryRight); + else + this->_batteryLevel = std::max(this->_batteryLeft, this->_batteryRight); + this->_batteryCharging = this->_batteryLeftCharging || this->_batteryRightCharging; + return true; +} + +bool Headphones::_requestSingleBattery(unsigned char subType, int& levelOut, bool& chargingOut) +{ + Buffer resp; try { - auto resp = this->_conn.sendCommandAndReadResponse({ (char)V2Command::BATTERY_GET, 0x09 }, V2Command::BATTERY_RET, 0x09); - if (resp.size() >= 6) { - std::lock_guard guard(this->_propertyMtx); - this->_hasDualBattery = true; - this->_batteryLeft = (unsigned char)resp[2]; - this->_batteryRight = (unsigned char)resp[4]; - this->_batteryLevel = std::min(this->_batteryLeft, this->_batteryRight); + resp = this->_conn.sendCommandAndReadResponse( + { (char)V2Command::BATTERY_GET, (char)subType }, V2Command::BATTERY_RET, subType); + } catch (const std::exception&) { + return false; + } + if (resp.size() < 4) return false; + levelOut = (unsigned char)resp[2]; + chargingOut = resp[3] == 1; + return true; +} + +void Headphones::requestBattery() +{ + // A device only answers the battery sub-types it supports, and an unsupported inquiry costs a + // full recv timeout, so probe the layout this model is likely to use first. Crucially the dual + // probe must come before the single one on earbuds: some TWS models *do* answer the single + // inquiry (with a combined or zero level), and taking that answer would hide the per-earbud + // levels entirely. + if (this->_looksLikeEarbuds()) + { + if (this->_requestDualBattery(V2Command::BATTERY_SUB_DUAL) + || this->_requestDualBattery(V2Command::BATTERY_SUB_DUAL2)) + { + int caseLevel = -1; bool caseCharging = false; + if (this->_requestSingleBattery(V2Command::BATTERY_SUB_CASE, caseLevel, caseCharging)) { + std::lock_guard guard(this->_propertyMtx); + // The case reports 0 while it's disconnected from the buds; keep the last known value. + if (caseLevel > 0) { + this->_batteryCase = caseLevel; + this->_batteryCaseCharging = caseCharging; + } + } + return; } - } catch (...) {} + } - try { - auto resp = this->_conn.sendCommandAndReadResponse({ (char)V2Command::BATTERY_GET, 0x0a }, V2Command::BATTERY_RET, 0x0a); - if (resp.size() >= 4) { - std::lock_guard guard(this->_propertyMtx); - this->_batteryCase = (unsigned char)resp[2]; + // Single battery (over-ear and most other models). + int level = -1; bool charging = false; + if (this->_requestSingleBattery(V2Command::BATTERY_SUB_SINGLE, level, charging)) { + std::lock_guard guard(this->_propertyMtx); + this->_batteryLevel = level; + this->_batteryCharging = charging; + return; + } + + // Unrecognised name that turned out to be earbuds after all. + if (!this->_looksLikeEarbuds()) { + if (this->_requestDualBattery(V2Command::BATTERY_SUB_DUAL) + || this->_requestDualBattery(V2Command::BATTERY_SUB_DUAL2)) + { + int caseLevel = -1; bool caseCharging = false; + if (this->_requestSingleBattery(V2Command::BATTERY_SUB_CASE, caseLevel, caseCharging)) { + std::lock_guard guard(this->_propertyMtx); + if (caseLevel > 0) { + this->_batteryCase = caseLevel; + this->_batteryCaseCharging = caseCharging; + } + } } - } catch (...) {} + } } int Headphones::getBatteryLevel() @@ -133,6 +215,9 @@ bool Headphones::hasDualBattery() { return this->_hasDualBattery; } int Headphones::getBatteryLeft() { return this->_batteryLeft; } int Headphones::getBatteryRight() { return this->_batteryRight; } int Headphones::getBatteryCase() { return this->_batteryCase; } +bool Headphones::isBatteryLeftCharging() { return this->_batteryLeftCharging; } +bool Headphones::isBatteryRightCharging() { return this->_batteryRightCharging; } +bool Headphones::isBatteryCaseCharging() { return this->_batteryCaseCharging; } void Headphones::requestEqualizer() { diff --git a/Client/Headphones.h b/Client/Headphones.h index 6197d569..7fddd20f 100644 --- a/Client/Headphones.h +++ b/Client/Headphones.h @@ -37,15 +37,22 @@ class Headphones { // Handshake the device expects before it answers inquiry (GET) commands on the v2 protocol. void initDevice(); + // Model name of the connected device (e.g. "WF-1000XM5"). Only a hint: it picks which battery + // layout to probe first, so set it before the first requestBattery() to save a timed-out inquiry. + void setDeviceName(const std::string& name); + // Battery (v2 inquiry). getBatteryLevel() returns -1 until requestBattery() succeeds. // For TWS earbuds requestBattery() also fills the per-earbud + case levels (hasDualBattery()). void requestBattery(); - int getBatteryLevel(); + int getBatteryLevel(); // for earbuds: the emptier of the two bool isBatteryCharging(); bool hasDualBattery(); int getBatteryLeft(); // -1 if n/a int getBatteryRight(); int getBatteryCase(); + bool isBatteryLeftCharging(); + bool isBatteryRightCharging(); + bool isBatteryCaseCharging(); // Equalizer (v2). requestEqualizer() reads current state; setEqualizerPreset() pushes a preset immediately. void requestEqualizer(); @@ -101,6 +108,15 @@ class Headphones { int _batteryLeft = -1; int _batteryRight = -1; int _batteryCase = -1; + bool _batteryLeftCharging = false; + bool _batteryRightCharging = false; + bool _batteryCaseCharging = false; + std::string _deviceName; + + bool _looksLikeEarbuds() const; + // Both return false if the device didn't answer that battery sub-type. + bool _requestDualBattery(unsigned char subType); + bool _requestSingleBattery(unsigned char subType, int& levelOut, bool& chargingOut); EQ_PRESET _eqPreset = EQ_PRESET::OFF; std::vector _eqBands = { 0, 0, 0, 0, 0 }; int _eqClearBass = 0; diff --git a/Client/macos/ContentView.swift b/Client/macos/ContentView.swift index 45b0388a..402c5ff7 100644 --- a/Client/macos/ContentView.swift +++ b/Client/macos/ContentView.swift @@ -149,12 +149,13 @@ struct ContentView: View { HStack(spacing: 7) { if model.hasDualBattery { - Image(systemName: "battery.100") - .font(.system(size: 13)) - .foregroundColor(Theme.accent) - Text("L \(model.batteryLeft)% R \(model.batteryRight)%") - .font(.system(size: 13, weight: .semibold)) - .foregroundColor(Theme.secondary) + // Earbuds report a battery each, plus the case when it's connected. An earbud that + // isn't reporting (docked / powered down) comes through as -1 and is left out. + budBattery("L", model.batteryLeft, charging: model.batteryLeftCharging) + budBattery("R", model.batteryRight, charging: model.batteryRightCharging) + if model.batteryCase >= 0 { + budBattery("Case", model.batteryCase, charging: model.batteryCaseCharging) + } } else if model.batteryLevel >= 0 { Image(systemName: model.batteryCharging ? "bolt.fill" : batterySymbol(model.batteryLevel)) .font(.system(size: 13)) @@ -396,8 +397,11 @@ struct ContentView: View { .padding(.bottom, 10) aboutRow("Status", model.connected ? "Connected" : "Disconnected") if model.hasDualBattery { - aboutRow("Battery L / R", "\(model.batteryLeft)% / \(model.batteryRight)%") - if model.batteryCase >= 0 { aboutRow("Case", "\(model.batteryCase)%") } + aboutRow("Battery L", batteryText(model.batteryLeft, model.batteryLeftCharging)) + aboutRow("Battery R", batteryText(model.batteryRight, model.batteryRightCharging)) + if model.batteryCase >= 0 { + aboutRow("Case", batteryText(model.batteryCase, model.batteryCaseCharging)) + } } else if model.batteryLevel >= 0 { aboutRow("Battery", "\(model.batteryLevel)%\(model.batteryCharging ? " (charging)" : "")") } @@ -415,6 +419,11 @@ struct ContentView: View { .background(Theme.card) } + private func batteryText(_ level: Int, _ charging: Bool) -> String { + guard level >= 0 else { return "—" } + return "\(level)%\(charging ? " (charging)" : "")" + } + private func aboutRow(_ label: String, _ value: String) -> some View { HStack { Text(label).font(.system(size: 12)).foregroundColor(Theme.secondary) @@ -430,6 +439,21 @@ struct ContentView: View { return NSImage(named: slug) } + // One "L 82%" chip, with a bolt in place of the battery glyph while that unit is charging. + // A docked/powered-down earbud reports no level; show it dimmed as "R --" rather than dropping the + // chip, so it reads as "in the case" instead of looking like the app lost track of it. + private func budBattery(_ label: String, _ level: Int, charging: Bool) -> some View { + HStack(spacing: 3) { + Image(systemName: level < 0 ? "battery.0" : (charging ? "bolt.fill" : batterySymbol(level))) + .font(.system(size: 12)) + .foregroundColor(level < 0 ? Theme.secondary.opacity(0.5) + : (level <= 20 && !charging ? .red.opacity(0.9) : Theme.accent)) + Text(level < 0 ? "\(label) --" : "\(label) \(level)%") + .font(.system(size: 13, weight: .semibold)) + .foregroundColor(Theme.secondary.opacity(level < 0 ? 0.5 : 1.0)) + } + } + private func batterySymbol(_ level: Int) -> String { switch level { case ...15: return "battery.0" diff --git a/Client/macos/HeadphonesBridge.h b/Client/macos/HeadphonesBridge.h index dfbdd039..d33f4d38 100644 --- a/Client/macos/HeadphonesBridge.h +++ b/Client/macos/HeadphonesBridge.h @@ -37,6 +37,9 @@ typedef NS_ENUM(NSInteger, SHCAmbientMode) { @property (nonatomic, readonly) NSInteger batteryLeft; // -1 if n/a @property (nonatomic, readonly) NSInteger batteryRight; @property (nonatomic, readonly) NSInteger batteryCase; +@property (nonatomic, readonly) BOOL batteryLeftCharging; +@property (nonatomic, readonly) BOOL batteryRightCharging; +@property (nonatomic, readonly) BOOL batteryCaseCharging; @property (nonatomic, readonly) NSInteger eqPreset; // raw preset byte (EQ_PRESET) @property (nonatomic, readonly) BOOL supportsEqualizer; // v2 devices only @property (nonatomic, readonly) NSInteger clearBass; // -10..10 diff --git a/Client/macos/HeadphonesBridge.mm b/Client/macos/HeadphonesBridge.mm index 4f1b58d3..9e53d1be 100644 --- a/Client/macos/HeadphonesBridge.mm +++ b/Client/macos/HeadphonesBridge.mm @@ -14,12 +14,17 @@ // RecoverableException comes in transitively via BluetoothWrapper.h -> IBluetoothConnector.h -> Exceptions.h. // (Exceptions.h isn't a project file reference, so it can't be #included directly from this directory.) +// The dynamic poll fires every 2s; re-read the battery every 15th tick (~30s), which is far more often +// than a headphone battery meaningfully moves but cheap enough not to crowd out the ambient/NC polling. +static const unsigned kBatteryPollEveryNTicks = 15; + @implementation HeadphonesBridge { std::unique_ptr _bt; std::unique_ptr _hp; NSString *_deviceName; NSString *_deviceMac; BOOL _initialized; + unsigned _dynamicTick; // All user-initiated commands run on this SERIAL queue so quick successive taps reach the device in // order (a concurrent queue let them race and land out of order). dispatch_queue_t _cmdQueue; @@ -90,6 +95,9 @@ - (BOOL)hasDualBattery { return _hp && _hp->hasDualBattery(); } - (NSInteger)batteryLeft { return _hp ? _hp->getBatteryLeft() : -1; } - (NSInteger)batteryRight { return _hp ? _hp->getBatteryRight() : -1; } - (NSInteger)batteryCase { return _hp ? _hp->getBatteryCase() : -1; } +- (BOOL)batteryLeftCharging { return _hp && _hp->isBatteryLeftCharging(); } +- (BOOL)batteryRightCharging { return _hp && _hp->isBatteryRightCharging(); } +- (BOOL)batteryCaseCharging { return _hp && _hp->isBatteryCaseCharging(); } - (NSInteger)eqPreset { return _hp ? (NSInteger)_hp->getEqualizerPreset() : 0; @@ -181,6 +189,8 @@ - (void)scanAndConnectWithCompletion:(void (^)(BOOL, NSString * _Nullable))compl _deviceName = [device nameOrAddress]; _deviceMac = [device addressString]; _hp = std::make_unique(*_bt); + // Lets requestBattery() probe the per-earbud layout first on TWS models (WF-*/LinkBuds). + _hp->setDeviceName(_deviceName ? [_deviceName UTF8String] : ""); completion(YES, nil); } @@ -231,10 +241,16 @@ - (void)refreshStatusWithCompletion:(void (^)(void))completion { - (void)refreshDynamicWithCompletion:(void (^)(void))completion { if (!_hp || !self.connected) { completion(); return; } Headphones *hp = _hp.get(); + BOOL isV2 = _bt->getProtocolVersion() == SonyProtocolVersion::V2; dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // The headphone's physical button only changes ambient/NC, so that's all we poll (keeps traffic low). // requestAmbientState() is protocol-aware (v2 uses 66 17, v1 uses 66 02), so this is safe on both. try { hp->requestAmbientState(); } catch (std::exception &exc) {} + // Battery drains, earbuds get docked and the case charges them, so re-read it too - but only + // every Nth poll, since it costs up to three inquiries on TWS. v2 only: 0x22 is POWER_OFF on v1. + if (isV2 && self->_dynamicTick++ % kBatteryPollEveryNTicks == 0) { + try { hp->requestBattery(); } catch (std::exception &exc) {} + } dispatch_async(dispatch_get_main_queue(), ^{ completion(); }); }); } diff --git a/Client/macos/HeadphonesModel.swift b/Client/macos/HeadphonesModel.swift index cda475ad..01e70282 100644 --- a/Client/macos/HeadphonesModel.swift +++ b/Client/macos/HeadphonesModel.swift @@ -26,6 +26,9 @@ final class HeadphonesModel: ObservableObject { @Published var batteryLeft = -1 @Published var batteryRight = -1 @Published var batteryCase = -1 + @Published var batteryLeftCharging = false + @Published var batteryRightCharging = false + @Published var batteryCaseCharging = false @Published var eqPreset = 0 @Published var supportsEqualizer = false @Published var eqBands = [0, 0, 0, 0, 0] @@ -69,12 +72,7 @@ final class HeadphonesModel: ObservableObject { func refreshStatus() { bridge.refreshStatus { - self.batteryLevel = self.bridge.batteryLevel - self.batteryCharging = self.bridge.batteryCharging - self.hasDualBattery = self.bridge.hasDualBattery - self.batteryLeft = self.bridge.batteryLeft - self.batteryRight = self.bridge.batteryRight - self.batteryCase = self.bridge.batteryCase + self.syncBatteryFromBridge() self.eqPreset = self.bridge.eqPreset self.clearBass = self.bridge.clearBass self.dsee = self.bridge.dsee @@ -90,6 +88,18 @@ final class HeadphonesModel: ObservableObject { } } + private func syncBatteryFromBridge() { + batteryLevel = bridge.batteryLevel + batteryCharging = bridge.batteryCharging + hasDualBattery = bridge.hasDualBattery + batteryLeft = bridge.batteryLeft + batteryRight = bridge.batteryRight + batteryCase = bridge.batteryCase + batteryLeftCharging = bridge.batteryLeftCharging + batteryRightCharging = bridge.batteryRightCharging + batteryCaseCharging = bridge.batteryCaseCharging + } + func setAutoPowerOff(_ index: Int) { autoPowerOff = index errorMessage = nil @@ -121,6 +131,7 @@ final class HeadphonesModel: ObservableObject { self.clearBass = self.bridge.clearBass self.dsee = self.bridge.dsee self.eqBands = (0..<5).map { self.bridge.equalizerBand(at: $0) } + self.syncBatteryFromBridge() } } } From ac78f13f75a9328ba0803fa521a556345ce47af4 Mon Sep 17 00:00:00 2001 From: Sergey Ukolov Date: Fri, 14 Aug 2026 20:51:30 +0300 Subject: [PATCH 2/6] fix(macos): don't write to a freed RFCOMM channel after disconnect rfcommchannel was a non-owning __bridge pointer that was never cleared when the link dropped, so a poll already in flight would writeSync: to a released channel and crash (EXC_BAD_ACCESS / pointer auth failure). Docking an earbud was enough to trigger it. Retain the channel and clear it under a mutex, so a concurrent send sees either a live channel or nil; send() now raises a recoverable error instead. Also fixes a self-join: the RFCOMM delegate runs on uthread's own run loop, so rfcommChannelClosed -> disconnect() was joining that thread from itself. recv() now wakes on disconnect rather than waiting out its full timeout. --- Client/macos/MacOSBluetoothConnector.h | 5 +- Client/macos/MacOSBluetoothConnector.mm | 62 +++++++++++++++++++------ 2 files changed, 52 insertions(+), 15 deletions(-) diff --git a/Client/macos/MacOSBluetoothConnector.h b/Client/macos/MacOSBluetoothConnector.h index 186b06a4..7ad6679d 100644 --- a/Client/macos/MacOSBluetoothConnector.h +++ b/Client/macos/MacOSBluetoothConnector.h @@ -37,6 +37,9 @@ class MacOSBluetoothConnector final : public IBluetoothConnector private: void *rfcommDevice; - void *rfcommchannel; + // Retained (CFBridgingRetain) so the channel object stays alive as long as we hold the pointer, and + // guarded by channelMtx because the run-loop thread clears it on close while command threads send. + void *rfcommchannel = nullptr; + std::mutex channelMtx; std::thread uthread; }; diff --git a/Client/macos/MacOSBluetoothConnector.mm b/Client/macos/MacOSBluetoothConnector.mm index bd2db624..0ba317db 100644 --- a/Client/macos/MacOSBluetoothConnector.mm +++ b/Client/macos/MacOSBluetoothConnector.mm @@ -64,7 +64,18 @@ static void _debugHexDump(const char* label, const char* buf, size_t length) #ifdef SHC_DEBUG_PROTOCOL _debugHexDump("send", buf, length); #endif - [(__bridge IOBluetoothRFCOMMChannel*)rfcommchannel writeSync:(void*)buf length:length]; + // Take a strong reference under the lock: the earbuds can drop the link at any moment (docking a bud + // in the case does it), and the run-loop thread clears rfcommchannel from rfcommChannelClosed. Without + // this, a poll already in flight would writeSync: to a freed channel and crash with EXC_BAD_ACCESS. + IOBluetoothRFCOMMChannel *chan = nil; + { + std::lock_guard g(channelMtx); + chan = (__bridge IOBluetoothRFCOMMChannel*) rfcommchannel; + } + if (chan == nil || !chan.isOpen) { + throw RecoverableException("The headphones disconnected.", true); + } + [chan writeSync:(void*)buf length:length]; return (int)length; } @@ -126,8 +137,11 @@ static void _debugHexDump(const char* label, const char* buf, size_t length) connectPromise.set_exception(excPtr); return; } - // store the channel - macOSBluetoothConnector->rfcommchannel = (__bridge void*) channel; + // store the channel (retained; released in closeConnection) + { + std::lock_guard g(macOSBluetoothConnector->channelMtx); + macOSBluetoothConnector->rfcommchannel = (void*) CFBridgingRetain(channel); + } macOSBluetoothConnector->protocolVersion = protocolVersion; macOSBluetoothConnector->running = true; @@ -172,9 +186,11 @@ static void _debugHexDump(const char* label, const char* buf, size_t length) // wait for newly received data, but time out so an unanswered inquiry (probing an unsupported // feature) or a dropped link doesn't block the caller forever. std::unique_lock g(receiveDataMutex); - bool gotData = receiveDataConditionVariable.wait_for(g, std::chrono::milliseconds(2500), - [this]{ return !receivedBytes.empty(); }); - if (!gotData) { + // Also wake on disconnect, so a dropped link surfaces immediately instead of after the full timeout. + receiveDataConditionVariable.wait_for(g, std::chrono::milliseconds(2500), + [this]{ return !receivedBytes.empty() || !running; }); + if (receivedBytes.empty()) { + if (!running) throw RecoverableException("The headphones disconnected.", true); throw RecoverableException("recv timed out", false); } @@ -225,20 +241,37 @@ static void _debugHexDump(const char* label, const char* buf, size_t length) void MacOSBluetoothConnector::disconnect() noexcept { - // close connection - closeConnection(); + // Clear running first: closeConnection() wakes any blocked recv(), and that waiter's predicate + // checks this flag, so it has to be false by the time the notify lands. running = false; + closeConnection(); // notify the other thread that we are done disconnecting disconnectionConditionVariable.notify_all(); - // wait for the thread to finish - uthread.join(); + // wait for the thread to finish. The RFCOMM delegate callbacks run on uthread's own run loop, so + // rfcommChannelClosed -> disconnect() lands here on uthread itself; joining that would deadlock. + // Setting running=false above is enough to end its loop, so just let it unwind. + if (uthread.joinable()) { + if (uthread.get_id() != std::this_thread::get_id()) uthread.join(); + else uthread.detach(); + } } void MacOSBluetoothConnector::closeConnection() { - // get the channel - IOBluetoothRFCOMMChannel *chan = (__bridge IOBluetoothRFCOMMChannel*) rfcommchannel; + // Hand the retain over to ARC and clear the member under the lock, so any concurrent send()/recv() + // either sees the live channel or sees nil - never a dangling pointer. + IOBluetoothRFCOMMChannel *chan = nil; + { + std::lock_guard g(channelMtx); + chan = (IOBluetoothRFCOMMChannel*) CFBridgingRelease(rfcommchannel); + rfcommchannel = nullptr; + } + if (chan == nil) return; // already closed [chan setDelegate: nil]; - // close the channel [chan closeChannel]; + // Wake anyone blocked in recv() so they observe the disconnect instead of waiting out the timeout. + { + std::lock_guard g(receiveDataMutex); + receiveDataConditionVariable.notify_all(); + } } @@ -246,6 +279,7 @@ static void _debugHexDump(const char* label, const char* buf, size_t length) { if (!running) return false; + std::lock_guard g(channelMtx); IOBluetoothRFCOMMChannel *chan = (__bridge IOBluetoothRFCOMMChannel*) rfcommchannel; - return chan.isOpen; + return chan != nil && chan.isOpen; } From ae4e0c74bedceb22e6a82bc549fa5aafd67b51da Mon Sep 17 00:00:00 2001 From: Sergey Ukolov Date: Fri, 14 Aug 2026 20:51:38 +0300 Subject: [PATCH 3/6] fix(macos): give the app icon macOS squircle geometry The icon was a full-bleed square, which looks wrong in the Dock. Reshape to Apple's grid: 824x824 body centred in 1024, continuous (not circular) corner curve, subtle drop shadow. Artwork unchanged. --- .../AppIcon.appiconset/icon_1024.png | Bin 97688 -> 86745 bytes .../AppIcon.appiconset/icon_128.png | Bin 5381 -> 5736 bytes .../AppIcon.appiconset/icon_16.png | Bin 649 -> 563 bytes .../AppIcon.appiconset/icon_256.png | Bin 13651 -> 14137 bytes .../AppIcon.appiconset/icon_32.png | Bin 1180 -> 1268 bytes .../AppIcon.appiconset/icon_512.png | Bin 15795 -> 40422 bytes .../AppIcon.appiconset/icon_64.png | Bin 2417 -> 2617 bytes 7 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_1024.png b/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_1024.png index d04c24d295d512cf9823d086a7ed230337a31ccd..1549669ad787d8f00fd603d309008b3953a98e21 100644 GIT binary patch literal 86745 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 X-*Z}G?XUm$51c0FEzeb*agF~!s~WmR literal 97688 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 F{{V{dH)H?+ diff --git a/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_128.png b/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_128.png index 69b33b6703d3f85c78f6072868c0a30b8e6b4548..0be9d29362e970de7048f3ef2aca91dd506c3732 100644 GIT binary patch literal 5736 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 diff --git a/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_16.png b/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_16.png index 4a18806e899eed332159ceb853715e62840f009d..45d1691119ff615aacdb82cc9ce5367cd9f4124f 100644 GIT binary patch delta 539 zcmV+$0_6RP1+xT@BYy$-|V zm*Z4Oq=+(rIoQ5#>f@IU66bRtB9Q?}L#^+jV3_jz%)f?c5p-kZn4Vm?rAN=K>)Pl= zEvl-Wvl^TWwNqt+xEPD-l_aXmKw@bgZZkG_o7U-<)W0J zrbM#qxWarYOpJ9d^AtB8eCE~r@5IA(;(b*Q5{e79v`pcvs(JIf8W?7+m`7%8! d`{%##8x+{1y+30nFXR9K002ovPDHLkV1l(Q3)=ty literal 649 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|DpDgn(|mmy zw18|51{Ovs23C*~Ahu(ahO^xmH5iz|;!F$-?U@WLP&Ix)8U#Fm7^DY6GcRC-ss@TJ zV1la_Sip>6gS4^Vay<&9I14-?iy0WWg+Z8+Vb&Z8plPc-T^vI!1m{lL?;RZ|a@_v> z_qa)IM>2x9Cbc?+wsYAlOR;4e5tU@%7`Uo9N z@;Ruu(0Sg<%B#!XAAjk4b%uMsR>gw@d%xH0pI?1`?{x;3r&AX{KXuM{u~@=pGtdu^ygl7_w^_s6~oZ$()a^ijl_b1OMdep^gotO98U%K$Mf%lSD_F&I7cBOglxnCaY)|_%)dSpXxak;|T zw5<#GTqf^A&OnvM#!oC?lgHA_vY;m>pBuA9Qk+9nC~&p(wr`Fl0r z?ythVv2PcKO+T-F*5OA)spRP+k{&m9)ScM<*Lj*5e}U~^&MopQS!FzresF&HyYThR oUGCuy<=$Hs{p}1q`9Hm$fsb*ezewYWhoC6+boFyt=akR{0N^F@P5=M^ diff --git a/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_256.png b/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_256.png index f4b375c0b5391b4453a01010f7e9ca3071ae273d..35f8a1f7e5d550229551059c26d0e9f30fa3514f 100644 GIT binary patch literal 14137 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 Mp`xQ)sc41#KZpH-y8r+H literal 13651 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 SH#z{}dZePITz%g<{C@ywVw{Ws diff --git a/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_32.png b/Client/macos/Assets.xcassets/AppIcon.appiconset/icon_32.png index c2ca3816a8630176168458f1ab2850cb28af5e92..ba31dce348b294b981831b43b00dc9cdeb13eb6d 100644 GIT binary patch delta 1249 zcmV<71RndG3G@k&BYy~lZno_p_H?>IT2&Xh2MU}|9! z*-KCw5=0c*L*QFI1rcEqy+uTX^kUFML{twNL2qe(WG0qYl4E9$gJzMXsW^@w-I;sN z*|E>v=Xz%5ei|*swkZcnVkt3lC}d9{a+S&BC`C&1xbl0BJa9n{RzgS)Y3>My!ijg4>V)pPqp@QJSiWv;Zh={CLT_m)S5wME z(Sw4g$Y+CkAoG@QVsPyUeaqg$%?+Y;(CEau3C)oVz)4OtG7;#>2<2XwQ_xZC%?rgu zAbD>N1Iu1wC}t#gr%k@jgi7K%?J};1?Fd@KjhjAR1~Ms)t2907kWxWMj1=<_O2`Ycp9OQt z&w)z<$_LN0HBW7ijaEbnC&w$dwlC~{3x9O7ZVLiKJnZ=DDwoPt`aDID2~m+cZ=L5@ z;-ZBQMlaQ#wZ@)yKRYuf{G?+?gz-tA=a2l3CU%T+r>Cfi>_Iv&>=d~Z^OSFt<00000 LNkvXXu0mjf-??VA delta 1161 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 I$0_Q60MN^5F8}}l literal 15795 zcmeHuXH=72wC0--AQmKuNGDN2Y!rdeOQI+$B3M!SXOtEqAiX958wx~G0YM-N7Nob( zi!Il%33=62?W2L$cd&HaJ>>@E+ zUMErKs7{xFtoP2d*#eSEot=>h5Z^yM3_qc)6PSGhXHNX2KRbO!qP*_oGA(gBwZzNy zs+Z4IbMwBLQK?-mZH3dDS84CbrdNF$TV>mLA*f6xV+t}JA*G3fW+~NxQL6FkGITU0jj(~iL-F5f`@43x5>~h909V8sm z#X*$93w|BeaUK&dr_oRdMA?1-sxrlA{dst%#Mt9P z>0M_YJVbHezH6nyYc1>v8pOd{m1-l;+~wb*%E%PnXC1lyDR@ zSa3e1YFIiGqpZBOJHfx1wha!gZHGbqIanui)W`dLVl3(B!U*UE3-QvCp27hPA;=U;a##52h0BbS@|3%H` zZ6RP#A_l6u?A3OKyRyCDf^8ZdAt4l!0%1S!k}eqWog?E(ee(1m)9y;Fp~GcnsWbGkIIaMUkr6Bi|I9Q&K~J$@ zdBgt8WP3b4S~(`i_2i$V{b0{(00uZJ5|*=lTh{#4Dp5wU)w(*EXqW~;N^;oNBFt0! z$|i|uj9ox|rR#s~n^`be&W|-_=?gqPVG~}uAdCFgDBP(ro(>>>MFwEw(|yT*#)dUU zF{o{5aXzZ&JmLXBmn$$|n#d}^mb?zZ5jD(FZW&$Ou>_PGHXsBt(?UQi)pwamH&Dn( z)oR4jj-6*W?;3iN401IHtVh%MK!Y4ov;AC2uAQGF z5>DX<{x|FEYCS5Ah;r6A*mwYmm~rK!%2hIq5sUI=_+n)qB z6@4-C+`9Q6=`w_?1jQ5em%Sq0vY(3zyJYoH+%ThC5Uz5^D1`Fv4L|#wFd}^&Kr#hTnU9spPcIS7idS|s2%&>B z7-Xyl5{^^ig7TW`j4~2YZ5fJF&_&~`Y)n7CuMq%CkmrVvc3Pu0@_hfrMaDPzI)U14S4+7l4>4E)lys{F{TfyX%sPud@1T)z~RdN*J+V_*<41hv2?c zIECO!a6%d1W51M8F;I#TM2QKB=xMt?kA(l){1Ae>Me31YobI>)aLHCf%KkUZHtmH& z8^ewZ?s&}4Ivzp`A8ehocv>twLpnB(jj@w-5N|O-J(_k!z-pyP{M07VE`BZ;EqC+> zKe3lu=j%zt-3DHjBl4U_!d0qcBf5nUE=v5JOSB#E+>B@LC}l}^MSNAxHDY|S_vJ)9 zE-F%om26RVR~Qey1fk$_qFyUIrw2GtC-c>A#LW=gr77mHAA&l#iGW=Z2eF-_wqCId z9&K>S#rkXLe;~cRx=QL+snST1T*zP6Ff~zcS3$s1S1^N`?L`C^4dnIFGu+*4BG^ei zU(}y3iU8dCaW@yF&bUa7oqEGhK3MhKw=9BFi55R>5s!Lw{v--_A4G~=-kY8fN}4;L zElu$h%8}$LWjd+dg@Bo_Jesz3L1p)&I~_BPQMgy!s4^2a&xZjnR2e-!tuZ>?0Z_9q z$FEQb@j@-;_j*$dShyk{x()JM;h$abH>!5V1fPZ}F{KWRC{-k)V@3^$m{wFq8gA{$ zAqK7M{#a~1!4p2$?1Y3L(gVic(vfsMid0KlDMiAc&5c~oYuE({Og}HNER-_!$!N$b znpF>I#rbhB21)nlri|oNh6n;aKMa1AYGq-rcSK#{hlv*+ShR>deBC?_GwA;sFhUNO z^v<}{H--rB`0hVU~_&_J)baz>wJ<73n;5JH`IV^+- zVP)XydlP9GyDa%Dmxn=W{e22xt!_l|a7CDQ_32QYql*DQ%mctp1PRY9>6`ClZ)@9A zj7Q;CxhP@3Dt~KI@El_&&AuLr84P}XJJTtk?!V#*$lt)*YDSjN^RO2!9nBnF?gAdV z_#K1N&b-IUZ0TC*I!={t5zLBB8H5W_ zTv!NUCJS6B>{LXRpFD@4?!g*W+{uhlM;6H(AfSl}(Jb|j-1ejEaR6&8e(-fBFN|>V z1KzH^_cx=QlF3Da!`Fx%@Wb(L=J+ZV(;hrVGij*$;gY~q5(-g=b%{{?fI$Urq~kIF z45;BT*7Qg1H_!jm*K`M^xv6J5*7{_+qiVyL6abUv#&2fcdM5^RKQRS_dL*`vDOo(= zGBV;WMtp^}q~W*oQfs;y*b)JFWcBA8S-%5b<RsQuvs94Kq_2s zM>R}y<2r{*6SQC+u@^8W05dbI2<LtM-d5M)m~*u6kG0+oE=7&x~D4`S!WQGr(?93QZpaFs_Wm~83odb zmw;t*o*E+`U*+iU-5;H8d$NcQCNe``uRdp7ccWJl}C`tP~r85oqfg8|kTz6)^;+r^P zjLL2k(zRg|>~`h$iF)*cTYlD{%Lt6T^g|V;ok5yE#w)%Z#nj?;8z5z>Nmr4?S!Y=JK&M5Fx%>%o`gv3v=|`1 zzbrsVy^o=&f%v$VFV3s~C%S1e4+*!wY~nn|09x+#XRK93K^92;$t>TS9XV=!u>`LS z*R&Shijn0vH5j{cgY4r)AmrV_2p3#f(N}gn_mmfVk9fDgh6)J5nYeMSJH~8Bqj|x9Puc}V4 z;64|dHwn_~*E^1n=DE<$+nQ=tR0S>it0G#jxVA|KA9H!wl%A(wTpw6wh0T9|_G7V) zM#Y^AEjwY07M`RV?aDF-Jd)b4&liQWE_5qdCFf+36bS<(dIdjpPHY9=1Q=`aKXhWt z+oA_PUl0q}mbXJXmK?@6V*7TE=VW*JbW8X0AB7Q_LqeI{G?FJP?m+#VCsVsLSm9?a zmfmQ3buUiOr6&6Y&z7TYFz^PH`%a&-?pu6D&l2#}anqr4~ln(IIK32yv_AgVQ zh347RE~_{Vq;7ibgfmuOxFscfhv2jTWoDca_QW1e_5)e^b$!31E`!-eLS<_V#@c%C z@kIe9;Vc9h5}B8LJMTt332?9~t&tH)dVTx61|CyVDTFxYkq@dWTf=2JIIQ;)!5 zG1>3DFgDPJ4l+q3=^o8wZ(?~gA-~~vAE-z*+nq@st#`J|DB-IN0F^o&LCEq`&!`IO z|6pP(>{z*2wZm(Mclcm=(N+3Rp}5|h`)I)ckBJxzN`sp`%67re7Dzsi-`X3YbUVn&PA& zoBv7uSA0=!QpDcl3`s<~M@nL~jp^8N<;WlYNq)W0ZFeKqb^s7<$9_8V{G9&RdJxea ziE&5&4_T!3A{feaL%Z4C?>}WEq4fl6j9V^zXuFrv^xQidU&XLya?av0*V7b`ve@-w zA(XBwBmw2a$RY^`7mA8ZR!s+^n7{-w;F2YtUeN5Wo5Q|0${-mFBV4@VsyjCH_lP6X zm-*GzJLHhuhQZc({nhh%*aPg2DSqmY+jj-v6L{3q;-uzYtNB83(|lY+!A^YD)srT7 zWeSh=fE*q*k{gKj7eP3`fiYLc)ZPFV|ITeme3n0{iaa!1poc87oo_gTOmXhLWRAz& ztvkM6^IG-$hCm-bbEu1l>v($K(p!eT(5R{FP4 zieBXAFMnX7QdivRH4H|sd;~!Ik!_E9<|by)s?a{^Yj@Ml5mOOF+&r_bElziB?NBP!|#{^P)Fm}W%dV=ssQ&q!u+Kmo|-aLk$ zTHV+FEf)!=_N8Nu?wC%!2O?#y968PM?{%T!iBn_hAy6&=Nui60<_f}D06wzP{`?Nw1?DVw5#ROh3kAB>LX7;kE1%JN&DAv#-@+*T@kp-b1a=fq`Bhy}}Y`zbJEMhRJp=Hg!8~vn{ zWwznVK8`@wRx!=4D|aYYiXN}tVI|PM(9E$qbEUq}95&OL? zMoj)Dm-iWbwK*|z$k(8&=XZl{!tHe)Ix!oTY9pw-kFQNKDN#M?TiqPiB=}$LHeIiR zrMQjU{=h%!rc;(#{OtlR=6(A5nxx6&tvtqs6IgHWNrH9t>&9F?mCa$&=p65KT1Wgo z`re>GdGwB+efcsyKS+$~j%z20arfdv2a>K?M@`hD%(6~(MBf%*9amX)ionupHK$WH zzhEWSyGK-(Nd1@N%ML8e$lHS&E#u+-1=kM+3d*)mildKT^yuSt-748d%WV7ATrhIz zx*IR(J|1@Cb4^qb?;%D`jjT8w9=S*i*dX?YnIjI0=0uuW1vsByNmuI=p$^_i_R^ov zNh>Bs=v6dzzA#4|o6nCvXL-_1|2vHq*w=0F>oKMHL2+V^X}5NLLHgpq74N+iYjX-c zPGN!*t16gw9=65pD$G{rpBo)NEHbO{gpSrG~;hk5Trx+HuQ-54@9TK7b=oyjt?CLfl5mMdE6rs*? zwwZ%cr*7u{Mb~I^gvCQbpwh{K(%7IDE1^fNw-V$no-975siTdzwprNXZw+c zk@#O2)D0aoQ)0xOPzuZ4@hDPuQm23%3AD1U-34=0tVj1%1Z5A%9Z{>Y*LJ+-#Nz2W z*2R3(R6lJ&ct%|JPWT(bm>ROC*^Gy9Qt%&sK)c?`$k^)Mvnb?){gx=V4xvmfMdX=F z3I~y~1GSMM6!+d|)%a!tN&3RS7?hq3w@LTNC9f6bD`rvM)4Pv^iY*_!G-V^t4IRr7 z_OndPpe}n?zZ#=(q@{JK2!kRW84tnv;=T4DUYqEl?m08*-XO57!CY-e-U-4Za#s1M zHSX6>(6vA|dY5$1DvrC|yi*ontM#4wjJyD3LOz%U!uY;rzLrkMcd?G)rTDLhy z3|?^PHVSuyn|t0fb(Yw7lfIwr;-z}q77F(53~D}xF%CvRr{yzYN8iu3@o>R=aIm1U(~kL0|egQj64z3@pifT#gWw?_kkWpK)6NAA_h6>yWqS}8uSV-KX2aC18`&y zS_=E5`KTkl=BP)(eZiyCEU@btOLz)(tB>gkXRqWG$AwFsv3dhn7Z3fadWyG7y>Zzj`0{mF%ps#bV&F?+;Xnh)kf|Hwabywrh# z$6RGitAMUVDNu)hYLOtP@G^V0f@<`A&e!K=V2htBAoD$i5JNV992-bM$5LvRD>gAr zVohgJA89n_(Qaaa&%DA3f3WMR*YY&<%?Ttv>NnLDH9T&+wY0|Qlkk~C$TM$jqX>~X zt?hR}GS-O)skq~hSl1FzTWX_I`;mvH=Pr8&%7eVATbOAq|5`cK?k+gn))D@8>oBhd=KBM8J3>b$(uvu5Qi3+YQxxv>EV^@zyhD&F}#k zn|gTTTetK3OGROaW({9mL_I1qr9a1@#9X=ATPg(S82AB?i(8XkjmDsgt=lnn38m#2 zl$2{wQYf5uo7>sFfqYCJnv7U4-3fnQIwFqvBB1?C2^Fo3JTE2FR|_oFVG6*X78>b1Agjk zrz0wx)8nQm^SlQMKMi{EPLno^y(W>4o26-@%1;0h;QV~+ zzT~AqV5bnU(~2zhT0uijuU+)zeY zeogzzf3onQQKX~q@FUsrg7UnAfPwQ7(ou|Erl+W_Gj%@UGwR6B6Q-qj`g5AN{a(Z# z$Md<9gw(6it0dwF&`9>P*fN$xgj7E>M*%&CHvi$@RhfWMcK5yVwK1!m*x0i21e_qm zggA^a9;hj&Wj-G@Y55{7IG!S$a!S6jsaH6%xhmbRBW|CQcQy94GXgR1-Lzt8{q?}Z ze2LXM_UjQrbbs3CD@8(pq?^D?ZD0QKQNsiktEuwomscA0JWFX0wC%4RHs+vhKb9fhLe%#9Ou1m)RJ2*~V~Qp0HPz{L zy^*9zH@DHjOWJ6C;(3@W0C4IlgRqFuti}wwEJfz60~U3A3*wk9z4Yej#Swy(ZsZ|}4 z=UN>;j!meT6$3x9KNMQ9D*lFS4fIcslX(TdUM5TEe9R2N<>xHvBhNGkb?<`TRco#4 zG)tPoAUoT41qC+cdY9rcfd%`zYx=zI5hHiNqa-SGyL34RSpl#1AP(-*kl4B)LAG_` z^zyu9Og#R*_Ej(`dA?Df-sOKvduHyf@x&|Z0OsP#Jb%H`cNnRwYsEc_KX@YERwL;f zdt{S3^`;}ulI1)-HzL8bV9ZTrNMDy%vsGBscV{!(3B95Lfp2oK?9Qeu?p`;TJrzlr z+926ZM75UeAGGMPI^Z_Ca*H)EClyf%x}at^G;DlcWd=5mYp=gB$C3h#RxZ%sI4&+4 z%d%~070Q;Tu9|UTh}S)NJK@Z-Vg$8_a4zSLiykxR*{a@7IP0NN0ZU7QTzLSZU%Fyxj_=?Ad90dpleh*tgl$=Kqpu3-rZ{ z_79omR$IR{_`Uv}T%4LY54rif&%^Yxm&Ei6etk^&1FFWN)T~-j#LvkN_TSjb(qF$# zB9GKce3*;b1#jB-?G^eZ^;UB|EWO)0*(`tx4f(rEVzh zmenpG<;d*-hU8s%jFXMIKm(|jO#vA*94gYyoi^T`hH!_E-B2?v4F08JUFKrEL0oqd zf-XrWePkylMT}R|>RpZ^5tRp#hD4GB=U51C)*CeXxen4dVP$Ox&k=M#o^NcmC6B0- zFXlVE3k&KpIS)DZe7mp!Ew6mg|1#mOZ#hhqL%p#?QMX|m6{?MKA2@jPPJ&U0cgcXFt>g-8YF|Av)K>PQ9k_} zcoA?H3gJs$c!^>A^q^n=qaS3NJ3av`u_h$)}hXN^KmcLN}D7taZ2 z()i$z|42i;!N)Yk&Sz7jt2(Eku~%WqKYeBlQr44V51uUs2Qt1MnYjpX4k^w{{ndK25q=2;3C-G8aE$VX!0S_034s;ON9%{jc zLeSGR$*j`zNgGYnAsaT>+dVhIHd$7vzIRZs4_7Y_3B?Vqd@Fb!ikqF*4Xx_z-&a06 zyV!k#WwaAabX-&O2hNPVTKK3r zxbvQVQuikCXp4Gwe9 z1U=s}$o4tIMwi%RHLWxQ*QhL}5|ug@&1cw^#+-w2oUIs$q>(L+H=?$$CW4*fJU}q! zpSA(dj@T~a2df;D=PEaLMxentHAeOCZZ1aZ`zPBjJoB_&&$s-6<3<7>pGtQb4@7P*9ZOy;yaNqCc zogui%mBAoz0#>vJw=D{(qBif-TYt{RE~rJIy8wI%?|k!;cEISapR)7V=Y>%}NQ7yzZVtL^s~lPrHzf+?uAwZWDRH~l8y$=#~>lOrkya$hwKJsKMCd5c=75k`Q!`i;t{c{Wlr)M`4E*D;*>eDK%)Be>MLG&H_&dkv{^h zX9(e(w>E{-7GBX@*ffKY76mxY>Acj-ij53+l4K<3)aTZ$ucLbqAy^<9y?16bUlz2= zl8$%U7z5|Zmr}3%wMf3)QKgf7-O)lw}0Yh|gSkRm%Z5 z|LOFALaIm6UjrIQ1cl8~Ju!c&x`U__fexZTlEdvSnQb2n7|YhEr};rG5_-V{i~e515$Mf_ z5R}FZY%Dpz0vlgx2puY(3oFrIFF2s>mhG+s9!iJ=^4BFGj7j4dK{!Jvaybz4Ai)tE zi#QXJKv?W?87$uh&-AnD%Rf!)3kYSD8?ubH06K@NSmswsSB(*r$DJkfk2n*%YO8s` zkr;KWKpMd)2Uqu>WEmCL9V&qqVz`*JPctO93EJoc{W>2s7R0}pL5{cYZ5eA?^f$qt zEwETPUwIHq{$)#~S$LS)m68JI>zvq3>>6(bTJ98tt4+`#XIqhfiayQXn1qph{m#=e zlQJ#p%QSpH+0-6Gx&ZqOwhATly$(d6xd-X8mMWX3S0 zNNR4DtUKOb#wbS@^P8y7wVx83leSJ9ANl%uC=->efd|Xbm4piUN|)KwNewOueXB78Gfz@ogmcM&#a0WW=a9is&l<)1Y5}OOQ`o^q>qQ2XzE^||cML^GZ zaQQU)n=$lK9q5|TJ9=+JAMWutps?RjMH5RbX?;Zf zGRbhP>D}IaPs?}ZF?TYK)Rlz^@$o}-(L&&^E`hQ z^Dj2Fv`EyG|NMs9BqPZ6f_Iw66eSEcPC>JET#kG>)2k@0P_i3CjAXk^3V6&~&lAeXC5(Z5-IdIYyu^7&;1P64x zlkKWPhBn70&cJR^4l)Irgl4=oTb(CpT-bMLs{7#CwWcbm&G8UF2??3QMap!t8*i2H za=(9ZC3-c~ATj9rnydL4+tuW2^D!yipEvzyX_-f|mFZh3NY@Rd>6N48kLpG&L5s5A zXRX&cPyDUKnks#T>HK9I)>~(Nh3&9nF>B8!b*5aTx5izEt@fDhvVwgq$_h>#p>03s z&UE$YWh|~uRA<)ZDARSp_4gHkYC>CTeUaQUlO`q3^=wRs94Mh`AmHG>T+2!~ao3HL zSWjQ3t14-ESKpe>QPm?m4=H6rS6ZV^&3n$}D!krI?p4ub6&A15TvPaU1k$Y*p*$X% zM8AvvC0=PVH5i-;uL=NzVH!9WEwmEmdaP6`OhywIPwN%@b9tHw+kA8s68Y9;a87-<=tbx(nq{jpc zD_V*ZiF5ZX8dITE7_bUo6?mwU52O0`L07(28w8$imaFoSbJ@V7$vshTjUoTXG0+ja zA8-9E{D(^3)>5+0d8QgP{7hi4oWYcR0Tx}~9Gy8_f>`-D?69GpW?o)6wwsdpYdem& zY%64&)7!BlgAtEk&-Ij%pZYX^K_e(pmR{fQ*2i^Pd5X{C?@N+f(i7qfCceyjuAemB zW4-;Ujt%@!F*|rB=7}Qgs`+Q*P4~>w*rdZN)T5Bxa`gACxi0eX*HG2q_`>s(M@kTM zd61R3l~dpnx@$gvPNQB-dgM0bOO1ifh1YJ?yl{wFW6i2SfmI@u-K;+bD!*36D+QEz zs`!B^Lw^iPPP2T5ZbK^+aQ(!|O8;xka`g0~)}((Q_A?vBK1G08y~cYUXF~73ijyrB zrPD>M;ZKjkac2cC3|#lzcIZh?(9fWOsOjPe=D>r`36fYKcJu<4xGUKKR`Leuru4Dh zW_*P86xYBDB}vGs*4cq?p z9p}XBpktMSP#Z{AuU0)yuWW8ryqObq=6rtkp96>oZ&eyOZUp_q98<1DAzywAfX?01 zfc!%`R@NKZL^;iWrU^e+X81gFYA2aNKCM z>*OK|I(Lg<1Mub<%Cxn}vt>C5ww;6yg~>e`0UM)zij{RwZpVm|W9+~-%ETanA~z=) zvvn8jsdeD%tV_WxX;($yyvtTFD3=kG=Q&X5xCX6B!057ye$|Jg)c0ER4Y>>)>+?=t z_(C{k9wKE`;PUL+7JcjpWfDw1^i6o>+MNRz*d2YkKM?$#W;KuFyAxKdz7!o-RLFd7%3}}Iva9{U9 zkXmqx+m~lSr(&R6kHHhw%`43hoJxK60Kgpv&o`=i=PtY(_%O#aD*+zC==6#59C(yZ zy8hFxxs85{IjVSwyD$WF#WrnjCi=?J5{VbB6@&}_^{!|H8hVX{J_5RjWI@HE?YIFw z1q1!o2zOVPle2OXQ6d3gnB&AeA`&&4<@)Xz6e%%z?GkHq|L@ zWP^-kHFub@+p=;|Q^7#*AJohQfA><|!gIi9HPSP%LphC`eIC;~ei7)g&e8U78!j-B z&&H6P&#kH3Afx#@1HV!;-B!^RgL0Ip0GAdg|Iw&_6c>5KfBi8C{44@;k2~j;|7@k= zP&m2gsd ziJLIvjx3wV2LT390`k6*B%7xhxgOx`b zuxoYCOsz7-lfVApft?xB*!pY>W{I7NkhTTTNS#&XvE_;jkc6Mw1ldLQuhcvEE*q46 z1NmKCLZ&(H)micZF^X))D?jaebpH@Y$L=D~8D^J3Ab|b$p(D`K@I3NLB+xD2uR>K3 zd1T5_=p|N7_w9_7UNKi0EF>h$15fAyEg@AY3L#k@TR0wb=*aXFrROsgOz=SpUnb;h zxBMa4I8;Xi@TOUj-j0}wZ;kyIL3G*UJu9D^<+A(^7hH}d)3{aV0B zdz`1rJXW5NagY+s_vVifKmT!psAKoE^r;y5f)sk4=WP*uFbw!~v$0;7d;QS7j(y7p z3|OE$KasS>xX_hT0nAM73jWijz4*YDyAM9#o>x2Wti74w@!;y9u(c{FYd7JfRel#F zl*o0*RoGMXF{aP_STDr+F6&A^w7--_x0sA^z4?)Gdc zhq_P%hZHJTW%>mvKhp&3n*YQDrL>a{9?Wdwj{2uXdLtNm(fttp+l$P7%=3)%#%Frv zfX__;59!tJmHnJ1!KQnZ&!J&!80A>sRHo}zl?0<5p-AX zCtqn5nMvsZsbiNYpyz>UpAyu=BXPEl>SX_eH>gQ z=#`1>gZu_#HlT74^<&rPHTdpW6{UmgguuF!S9$clh(Nc7o*ArLmwT+FzOBWD&6#gf z0Qw;n_s?4^B^Bxwk2Lt-k`}32p!cyq&Y+0^QqKEp*1n0H@jiJXbIh&z9UZ}?BctGw zP@gp(UJQis;2PCEu(d4FTbwg?si}JDnANA>8UtV1n>ak^QPppfH~z8yv$o?@3{`)j zYR>iNJKHsTuv0d`Bjz3HW!K3b(>Z0b(AfxMPLi*8<+ZKB&u@)kWuWe#jy@Lq!H6?> zHzAi01m?!|nCe@K_AZ=MT;&M@U(8A@c5gcu^k?|^f6&f?8HjcLN&dlD+~wJBEhTU88qj5d({Z>)0 z;0s|G6f~NKF1>`-8%N>kjcou3Gs_7di5!j&h+jGn0$O-Cvd#m_mzOkwrB@&f0S}ev zuL&9qc?HwIfiZ~)DhJQv|8yUs{2Y8oy%`Q{we*qx`YxD$6MXY5LDD><6}|D(N+0_) zk4r1>MUDJC&}J98UHiwk9VVg$tv;$QSJc(=h^K)!7s85`b>&-Iy`aboGJQk!0epaJ z@(I)XgUIaQzCW`qYC(_!I8AbDyFWTEIN%l8pwGCLiZesUCN~RTXnsy;S=10T$m&7+ zza5K$7J#awpT_tOXgQ2c?VzWKS}Pp2egBK+OaugJrkBj> zD%h5p%~+_JKCw6LIIEpr98kEt;f$Y8500^Ss_ncd)35TjAZs$Ei)U;*3>vHYw4<>l zHMDwsm_=(V-CIv28LW54@lCKu^@7|_j^CzF5h)PV03g73X@ wwHgF9ftDcz=^BDxRVV-dpZ~Aho*%< zZp}jqf~u4U8iB-X#RIMSRw4DFeFIfcsihJUg;GdSNrF_6Dhh~P$|dE}#w0XA5-yEN z<2dWJ*Bg8HoT+BcoaAKVUGLdT;;Q+i(b&6ZX1@P_zWKgy=6}q>CAlP*n98E-&A zp%Bi6Tn@_Wd`$(G!~}E!L(PG|C`3fM4p|I|32<$FPt5Ea0}RT|E>qb>8!j{vkGu`kiV3m#K z4Xq(z^Z?h(;HZGkCF>bjyOV+Sd*~SWZm6fSp(zlt)|RTfJy6An3}-l2TOejg83IgkbsZAnC?DzjbT0muCE`^& z2X71YY%LL0vB(;Y=GnUGeBN~+ZNRIuB)H%iA|y^^5uaJZz;#ctbYnz>tRNz>Dxw0* z`MOcPVU$xhEuIUR6sQvTO5scJ1A*`B8hoiq0Ds^2@fCC~`UV|~o}xJNcXEgBXX4|h z&Lu)cNod`Ysm7kH(m;Riw3+~I1yMGO%mL_}C05fKrF&M16Jq$MJ|@XIV&^M5GIHorw`p3QYcGDvQFAluFzVNx+yhM`a? zWs06GM}m_Q1WHjVL#Zq%`{4S@)Q)cJL)lSbv@j7vgi%B2XML2OKUW}oufj<$vQ{t$ z2#`8_D=2AX`mnGEKEE8qQh{^?6O(Wvrx+elk${F3R3_s>nBE*1ff)Uy<>$D23wao5c$)_uQ+1%r_@4t;A7 z!0}PV+lK;nza8+=r+O&}JSQZ=^+Ss&2a0l8AwFp@P9|4EA&A+e^J72FD3N%3HtjSHhkUTFR%JMw>L1K z>%Bv%te1vDmI6FCMThHB$d7aMAHUy}x4o)RC3~Zy5nnVm$fa;tbpFTWMmoKNXsBy&{ytA;4D-pS#TE*0p(l z^0VJ^@Ri??J86MS6GmDFynkf`2*OZy-;W0A?RO}jEY}a-tbqVDIN>0R1^ivxS+jc^ z(|evHm(vl##Sa2h&|2UvAwXJ>f7KP8+_q&NL9R~l6~HNu!>;X!7q_84c^|i@o1b65 znk|1mND!3GS>Ti7uzNea@P8y6I}GV8PERjN z1#IlkvZ5!=(XnDUj+%o6_%_~eyt)gf14P`#R|3~2EbVZGJnZ@ty!b~LK4O5=v%q*l z5%{LxRMunNK({3zTxN5M0HM9Ng8AJpE0=mu3d~HMCz>S34QGAg6ztvsFK&b3qvrrO zxvrH6>KA)EXt%hHHh+xrE=@ppr_NI=W=O9M{aT>IfkF;mc>@0WFdY8`GBX1|w{ykf ztW|HW`hfE!dL`l7L#Vuhp>7y@07gzhI$az1MG&{qhS8*q6?`Tp1A6C+FwIYE-~#pu z*l({fq^6;3Ug-Jj0d8E2;Kb>2GiiRC2~eRQIF&DP^wVj2mw#snh84~}8NQMj~p1`rH^xlTw@Wo+r;-pL?89R*{pwl@I}e}a2Y=5WW?H}MN;&2@OXo+`I?x>H zXY_zxr^oJp7x>PzhnTcyi7lA?Gts)*xw)*-_;`|$GzqQ{JbCB@H|+Qqubn93W<8vg zG!~&P#hmXMQo_?=eL(7FT|?M?Zye{_&%DdY;&eMUKgW}VL1pU?lD;4*TT6KTc%EyY zKEUl)_J48Lsy^2AW$8-0X8U|*1V7-zi4xC#oadpT|FC~V$ImdgXd!q}f#tlOMU5*m zYk`*=d3jQ~dmHS|uxde;!LAf3DalQhIh>#3z^O?l^%1bSMH04YL&B%AtONEWxkBp! zy}-dnFG=amq9cTovpi>>5u%-!qz+mvUecGNqkq8f?ca&>IirD6;mstyO%MWCo-Nu+ zMD$F1_WF8gVKIz0a*I3zECJrNc;?dO=-Eo7>$?_1)e91}BxTEHp!h#TLZoBS>K@@} zNV0Z=yA_zMxGa6KfzGt%quZgAR_CQ;)1oiYS=BBEF?W7m51 z?~3X^ei98T6M>GdpGEz&8gw;@W;PI~00000NkvXXu0mjf#Bc%9 delta 2407 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 From 40e65d44dff0390c1617d77b817a7b9eaa3b4aba Mon Sep 17 00:00:00 2001 From: Sergey Ukolov Date: Fri, 14 Aug 2026 22:31:02 +0300 Subject: [PATCH 4/6] fix(macos): stop settings snapping back after a link glitch A short audio dropout was enough to desync the response stream for the rest of the session: changing NC/Ambient or an EQ preset reverted a second or two later, and DSEE wouldn't toggle at all. _readMessage() left the parser stranded whenever a chunk arrived garbled or truncated - bytes before the first START_MARKER were concatenated into the message, and a second start marker threw. 60/61/62 are escaped inside a frame, so a start marker unambiguously begins one; resync on it in both cases, and cap the buffer so a stream that never delivers an END_MARKER can't grow it forever. _waitForAck() read exactly one frame and assumed it was the ACK. The device pushes unsolicited notifications on the same stream (a state change, a press of the headset's own button), so it could take _seqNumber from the wrong frame - and the device dedupes on that sequence number, silently discarding the next command as a duplicate. Wait for an actual ACK frame instead; skipped notifications are still acked back by _readMessage(). Also: - requestAmbientState() matches sub-type 0x17 rather than any 0x67, so a notification with a different layout is no longer parsed as the reply - the read-back no longer overwrites a change that hasn't been sent yet. It cleared the pending change too (isChanged() went false), so the command was never sent at all. discardAmbientChanges() releases that state when a write genuinely fails, so polling can't stay suppressed - the 2s poll stopped republishing dsee/eqPreset/eqBands, which it never re-read - they came straight back from the C++ cache, which only updates once a write succeeds. Failed writes roll back explicitly with the error instead, and the EQ sliders no longer fight the timer mid-drag --- Client/BluetoothWrapper.cpp | 61 +++++++++++++++++++++++------- Client/Headphones.cpp | 30 ++++++++++++--- Client/Headphones.h | 4 ++ Client/macos/HeadphonesBridge.mm | 3 ++ Client/macos/HeadphonesModel.swift | 32 ++++++++++------ 5 files changed, 101 insertions(+), 29 deletions(-) diff --git a/Client/BluetoothWrapper.cpp b/Client/BluetoothWrapper.cpp index cd3cb744..18ba7136 100644 --- a/Client/BluetoothWrapper.cpp +++ b/Client/BluetoothWrapper.cpp @@ -1,5 +1,10 @@ #include "BluetoothWrapper.h" +// How many frames one transaction will read before giving up. The device interleaves ACKs and +// unsolicited notifications with the reply we're after, so a handful of unrelated frames is normal; +// this only bounds a device that never sends what we asked for. +static constexpr int MAX_FRAMES_PER_TRANSACTION = 16; + BluetoothWrapper::BluetoothWrapper(std::unique_ptr connector) { this->_connector.swap(connector); @@ -72,7 +77,7 @@ Buffer BluetoothWrapper::sendCommandAndReadResponse(const std::vector& byt this->_connector->send(data.data(), data.size()); // The device replies with an ACK and then the RET frame; unrelated notifications may interleave. - for (int i = 0; i < 16; i++) + for (int i = 0; i < MAX_FRAMES_PER_TRANSACTION; i++) { auto msg = this->_readMessage(); if (msg.dataType == DATA_TYPE::ACK) @@ -92,8 +97,22 @@ Buffer BluetoothWrapper::sendCommandAndReadResponse(const std::vector& byt void BluetoothWrapper::_waitForAck() { - auto msg = this->_readMessage(); - this->_seqNumber = msg.seqNumber; + // The device answers a command with an ACK, but it also pushes unsolicited notifications of its own + // (a state change, a press of the headset's own button) that can arrive first. Reading exactly one + // frame and assuming it was the ACK left the response stream one frame behind for the rest of the + // session, and took _seqNumber from the wrong frame - the device dedupes on that sequence number, so + // it then silently ignored the next command while the UI snapped back to the old value. + // Skipped notifications are still acked back to the device by _readMessage(). + for (int i = 0; i < MAX_FRAMES_PER_TRANSACTION; i++) + { + auto msg = this->_readMessage(); + if (msg.dataType == DATA_TYPE::ACK) + { + this->_seqNumber = msg.seqNumber; + return; + } + } + throw RecoverableException("No ack received from device", true); } CommandSerializer::Message BluetoothWrapper::_readMessage() @@ -119,18 +138,24 @@ CommandSerializer::Message BluetoothWrapper::_readMessage() numRecvd = this->_connector->recv(buf, sizeof(buf)); } - size_t messageStart = 0; - size_t messageEnd = numRecvd; - - for (size_t i = 0; i < numRecvd; i++) + // Every 60/61/62 inside a frame is escaped, so a START_MARKER can only ever begin one. That makes + // resyncing unambiguous, which is what matters after a brief link glitch garbles or truncates a + // chunk: bytes before the first START_MARKER are the tail of a frame we can no longer parse, and + // a second START_MARKER means the frame we were collecting never finished. Both cases resync on + // the new marker here. Previously the first silently concatenated garbage into the message and + // the second threw, in either case leaving the parser stranded mid-stream for the rest of the + // session - every command after that failed and the UI kept snapping back to the old value. + size_t messageStart = ongoingMessage ? 0 : static_cast(numRecvd); + size_t messageEnd = static_cast(numRecvd); + + for (size_t i = 0; i < static_cast(numRecvd); i++) { if (buf[i] == START_MARKER) { - if (ongoingMessage) - { - throw RecoverableException("Invalid: Multiple start markers without an end marker", true); - } + // Whatever we had collected was a truncated frame, not the start of this one. + msgBytes.clear(); messageStart = i + 1; + messageEnd = static_cast(numRecvd); ongoingMessage = true; } else if (ongoingMessage && buf[i] == END_MARKER) @@ -139,13 +164,23 @@ CommandSerializer::Message BluetoothWrapper::_readMessage() ongoingMessage = false; messageFinished = true; // A single recv() can return more than one framed message back-to-back; keep whatever's - // past this message's END_MARKER for the next _waitForAck() call instead of dropping it. + // past this message's END_MARKER for the next read instead of dropping it. this->_leftoverBytes.assign(buf + i + 1, buf + numRecvd); break; } } - msgBytes.insert(msgBytes.end(), buf + messageStart, buf + messageEnd); + if (messageStart < messageEnd) + { + msgBytes.insert(msgBytes.end(), buf + messageStart, buf + messageEnd); + } + + // Bail out on a stream that keeps delivering bytes but never an END_MARKER, so the next read can + // resync on the next START_MARKER instead of growing this buffer forever. + if (msgBytes.size() > MAX_BLUETOOTH_MESSAGE_SIZE) + { + throw RecoverableException("Invalid: message exceeded the maximum size without an end marker", true); + } } while (!messageFinished); auto msg = CommandSerializer::unpackBtMessage(msgBytes); diff --git a/Client/Headphones.cpp b/Client/Headphones.cpp index 05fdf28e..f621d640 100644 --- a/Client/Headphones.cpp +++ b/Client/Headphones.cpp @@ -335,7 +335,9 @@ void Headphones::requestAmbientState() if (protocolVersion == SonyProtocolVersion::V2) { // GET: 66 17 -> RET: 67 17 01 - auto resp = this->_conn.sendCommandAndReadResponse({ 0x66, 0x17 }, 0x67); + // Match the sub-type too: 0x67 also carries unsolicited notifications with a different layout, + // and accepting one of those parsed / out of unrelated bytes. + auto resp = this->_conn.sendCommandAndReadResponse({ 0x66, 0x17 }, 0x67, 0x17); if (resp.size() >= 7) { bool on = resp[3] != 0; @@ -343,10 +345,17 @@ void Headphones::requestAmbientState() bool voice = resp[5] != 0; int level = (unsigned char)resp[6]; std::lock_guard guard(this->_propertyMtx); - // Update both current and desired so the UI reflects reality and isChanged() stays false. - this->_ambientSoundControl.current = this->_ambientSoundControl.desired = on; - this->_asmLevel.current = this->_asmLevel.desired = ambient ? level : 0; - this->_focusOnVoice.current = this->_focusOnVoice.desired = voice; + // A change the user just made may not be on the wire yet - the UI writes the desired values + // and only then queues the send - and this reply was produced before it. Adopting it would + // both revert the user's choice and clear the pending change (isChanged() goes false), so the + // command would never be sent at all. Leave everything alone until setChanges() has flushed it. + if (this->_ambientSoundControl.isFulfilled() && this->_asmLevel.isFulfilled() && this->_focusOnVoice.isFulfilled()) + { + // Update both current and desired so the UI reflects reality and isChanged() stays false. + this->_ambientSoundControl.current = this->_ambientSoundControl.desired = on; + this->_asmLevel.current = this->_asmLevel.desired = ambient ? level : 0; + this->_focusOnVoice.current = this->_focusOnVoice.desired = voice; + } } } else @@ -458,6 +467,17 @@ void Headphones::setAdaptiveVolume(bool enabled) this->_adaptiveVolume = enabled; } +// requestAmbientState() deliberately refuses to adopt device state while a change is pending, so a write +// that never reached the device would otherwise block the read-back for the rest of the session - the UI +// would freeze on a value the headphones never took. Dropping the pending change lets polling resume. +void Headphones::discardAmbientChanges() +{ + std::lock_guard guard(this->_propertyMtx); + this->_ambientSoundControl.desired = this->_ambientSoundControl.current; + this->_asmLevel.desired = this->_asmLevel.current; + this->_focusOnVoice.desired = this->_focusOnVoice.current; +} + bool Headphones::isChanged() { return !(this->_ambientSoundControl.isFulfilled() && this->_asmLevel.isFulfilled() && this->_focusOnVoice.isFulfilled() && this->_surroundPosition.isFulfilled() && this->_vptType.isFulfilled()); diff --git a/Client/Headphones.h b/Client/Headphones.h index 7fddd20f..8099e71f 100644 --- a/Client/Headphones.h +++ b/Client/Headphones.h @@ -95,6 +95,10 @@ class Headphones { bool isChanged(); void setChanges(); + + // Rolls a failed ambient/NC write back to the last known device state. Must be called when + // setChanges() throws - see the comment on the definition. + void discardAmbientChanges(); private: Property _ambientSoundControl = { 0 }; Property _focusOnVoice = { 0 }; diff --git a/Client/macos/HeadphonesBridge.mm b/Client/macos/HeadphonesBridge.mm index 9e53d1be..e57d5aeb 100644 --- a/Client/macos/HeadphonesBridge.mm +++ b/Client/macos/HeadphonesBridge.mm @@ -352,6 +352,9 @@ - (void)applyMode:(SHCAmbientMode)mode ok = NO; error = @(exc.what()); } + // The write never landed, so stop it counting as pending - otherwise the ambient read-back stays + // suppressed and the UI freezes on a value the headphones never took. + if (!ok) hp->discardAmbientChanges(); dispatch_async(dispatch_get_main_queue(), ^{ completion(ok, error); }); diff --git a/Client/macos/HeadphonesModel.swift b/Client/macos/HeadphonesModel.swift index 01e70282..75b50a6e 100644 --- a/Client/macos/HeadphonesModel.swift +++ b/Client/macos/HeadphonesModel.swift @@ -124,13 +124,14 @@ final class HeadphonesModel: ObservableObject { dynamicTimer = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: true) { [weak self] _ in guard let self = self, self.connected else { return } self.bridge.refreshDynamic { + // Only publish what refreshDynamic actually re-read: ambient/NC state and the battery. + // The EQ and DSEE values used to be assigned here too, but nothing re-reads them on this + // path - they came straight back from the C++ cache, which is only updated once a write + // succeeds. So a write that failed had its control snap back to the old value two + // seconds later, and dragging an EQ slider fought this timer. self.mode = self.bridge.mode let level = self.bridge.ambientLevel if level > 0 { self.ambientLevel = level } - self.eqPreset = self.bridge.eqPreset - self.clearBass = self.bridge.clearBass - self.dsee = self.bridge.dsee - self.eqBands = (0..<5).map { self.bridge.equalizerBand(at: $0) } self.syncBatteryFromBridge() } } @@ -141,11 +142,16 @@ final class HeadphonesModel: ObservableObject { dynamicTimer = nil } + // The controls below update optimistically and are corrected here if the write failed, rather than + // being silently overwritten by the next poll tick. func setEqualizer(_ preset: Int) { eqPreset = preset errorMessage = nil bridge.setEqualizerPreset(preset) { ok, error in - if !ok, let error = error { self.errorMessage = error } + if !ok { + self.eqPreset = self.bridge.eqPreset + if let error = error { self.errorMessage = error } + } } } @@ -153,6 +159,8 @@ final class HeadphonesModel: ObservableObject { func applyCustomEq() { eqPreset = 0xA0 errorMessage = nil + // Deliberately no roll-back here: this fires continuously while a slider is dragged, and yanking + // the bands back mid-drag is the exact jumpiness we're fixing. The next drag event corrects it. bridge.setCustomEqualizerBass(clearBass, bands: eqBands.map { NSNumber(value: $0) }) { ok, error in if !ok, let error = error { self.errorMessage = error } } @@ -162,7 +170,10 @@ final class HeadphonesModel: ObservableObject { dsee = on errorMessage = nil bridge.setDsee(on) { ok, error in - if !ok, let error = error { self.errorMessage = error } + if !ok { + self.dsee = self.bridge.dsee + if let error = error { self.errorMessage = error } + } } } @@ -213,11 +224,10 @@ final class HeadphonesModel: ObservableObject { private func pushState() { errorMessage = nil bridge.applyMode(mode, level: ambientLevel, focusVoice: focusOnVoice) { ok, error in - if ok { - self.syncFromBridge() - } else if let error = error { - self.errorMessage = error - } + // Sync either way: on failure the bridge has rolled the pending change back, so this shows + // what the headphones are actually set to instead of leaving the UI lying. + self.syncFromBridge() + if !ok, let error = error { self.errorMessage = error } } } From 35bea412c3022ffa8015944ab97ebbf61d0cbfdb Mon Sep 17 00:00:00 2001 From: Sergey Ukolov Date: Tue, 18 Aug 2026 03:58:54 +0300 Subject: [PATCH 5/6] Allow to choose quality/stability --- Client/Constants.h | 27 +++++++++++++++-- Client/CrossPlatformGUI.cpp | 28 ++++++++++++++++++ Client/CrossPlatformGUI.h | 2 ++ Client/Headphones.cpp | 32 ++++++++++++++++++++ Client/Headphones.h | 11 +++++++ Client/macos/ContentView.swift | 47 ++++++++++++++++++++++++++++++ Client/macos/HeadphonesBridge.h | 6 ++++ Client/macos/HeadphonesBridge.mm | 14 +++++++++ Client/macos/HeadphonesModel.swift | 26 ++++++++++++++++- 9 files changed, 189 insertions(+), 4 deletions(-) diff --git a/Client/Constants.h b/Client/Constants.h index 7c36844e..e893917b 100644 --- a/Client/Constants.h +++ b/Client/Constants.h @@ -60,9 +60,21 @@ namespace V2Command inline constexpr unsigned char EQ_GET = 0x56; // payload: 56 00 inline constexpr unsigned char EQ_RET = 0x57; // reply: 57 00 06 inline constexpr unsigned char EQ_SET = 0x58; // preset: 58 00 00 ; custom: 58 00 A0 06 - inline constexpr unsigned char DSEE_GET = 0xe6; // payload: e6 01 - inline constexpr unsigned char DSEE_RET = 0xe7; // reply: e7 01 - inline constexpr unsigned char DSEE_SET = 0xe8; // payload: e8 01 + // AUDIO parameter family. The opcode trio is shared by every audio parameter; the sub-type byte + // (payload[1]) picks which one, so DSEE and the sound-quality mode differ only in that byte. + inline constexpr unsigned char AUDIO_GET = 0xe6; // GET e6 -> RET e7 + inline constexpr unsigned char AUDIO_RET = 0xe7; + inline constexpr unsigned char AUDIO_SET = 0xe8; // SET e8 + inline constexpr unsigned char DSEE_GET = AUDIO_GET; // payload: e6 01 + inline constexpr unsigned char DSEE_RET = AUDIO_RET; // reply: e7 01 + inline constexpr unsigned char DSEE_SET = AUDIO_SET; // payload: e8 01 + // AUDIO sub-types (Sony's AudioInquiredType). Only the ones we actually send are listed. + inline constexpr unsigned char SUB_CONNECTION_MODE = 0x00; // sound quality mode, plain + inline constexpr unsigned char SUB_UPSCALING = 0x01; // DSEE + inline constexpr unsigned char SUB_CONNECTION_MODE_LDAC = 0x02; // same, on LDAC-capable models + // Deliberately NOT sent: 0x05 (CONNECTION_MODE_CLASSIC_AUDIO_LE_AUDIO). Its SET carries a fourth byte + // that also switches the device between Classic and LE Audio, which would drop the link for reasons + // the user didn't ask for. Devices that only answer 0x05 simply report the feature as unsupported. inline constexpr unsigned char FW_GET = 0x04; // payload: 04 02 -> RET 05 02 inline constexpr unsigned char FW_RET = 0x05; inline constexpr unsigned char CODEC_GET = 0x12; // payload: 12 02 -> RET 13 02 @@ -78,6 +90,15 @@ namespace V2Command inline constexpr unsigned char SUB_SPEAK_TO_CHAT = 0x0c; } +// Sound quality mode ("Bluetooth connection quality" in the Sony app) - the value byte of the +// AUDIO CONNECTION_MODE sub-types. Sony's PriorMode enum also has LOW_LATENCY_PRIOR_BETA (0x02), which +// no shipping model exposes in its app, so we don't offer it. +enum class PRIOR_MODE : unsigned char +{ + SOUND_QUALITY = 0x00, + STABLE_CONNECTION = 0x01 +}; + // v2 equalizer preset ids (byte value sent/received at EQ payload[2]). enum class EQ_PRESET : unsigned char { diff --git a/Client/CrossPlatformGUI.cpp b/Client/CrossPlatformGUI.cpp index 23203639..fdd84734 100644 --- a/Client/CrossPlatformGUI.cpp +++ b/Client/CrossPlatformGUI.cpp @@ -51,6 +51,7 @@ bool CrossPlatformGUI::performGUIPass() this->_drawEqualizer(); this->_drawDsee(); } + this->_drawSoundQualityMode(); this->_drawOptionalFeatures(); if (!this->_isV2()) this->_drawSurroundControls(); @@ -226,6 +227,7 @@ void CrossPlatformGUI::_pumpConnectionState() this->_uiAutoPowerOff = this->_headphones.getAutoPowerOff(); this->_uiSpeakToChat = this->_headphones.getSpeakToChat(); this->_uiAdaptiveVolume = this->_headphones.getAdaptiveVolume(); + this->_uiPrioritizeSoundQuality = this->_headphones.getSoundQualityMode() == PRIOR_MODE::SOUND_QUALITY; } // Poll the button-changeable ASM state so the app reflects changes made on the headphone itself. @@ -265,6 +267,7 @@ void CrossPlatformGUI::_syncUIFromHeadphones() this->_uiAutoPowerOff = this->_headphones.getAutoPowerOff(); this->_uiSpeakToChat = this->_headphones.getSpeakToChat(); this->_uiAdaptiveVolume = this->_headphones.getAdaptiveVolume(); + this->_uiPrioritizeSoundQuality = this->_headphones.getSoundQualityMode() == PRIOR_MODE::SOUND_QUALITY; } std::string CrossPlatformGUI::_resourceBase() @@ -505,6 +508,31 @@ void CrossPlatformGUI::_drawDsee() this->_endCard(); } +void CrossPlatformGUI::_drawSoundQualityMode() +{ + if (!this->_headphones.hasSoundQualityMode()) + return; + + if (!this->_beginCard("##sqmode")) { this->_endCard(); return; } + this->_cardTitle("Bluetooth Connection"); + + if (this->_headphones.hasCodec()) + ImGui::TextDisabled("Current codec: %s", this->_headphones.getCodec().c_str()); + + int mode = this->_uiPrioritizeSoundQuality ? 0 : 1; + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + if (ImGui::Combo("##sqprio", &mode, "Prioritize Sound Quality\0Prioritize Stable Connection\0\0")) + { + this->_uiPrioritizeSoundQuality = (mode == 0); + PRIOR_MODE v = mode == 0 ? PRIOR_MODE::SOUND_QUALITY : PRIOR_MODE::STABLE_CONNECTION; + this->_sendFeatureCommand([this, v]() { this->_headphones.setSoundQualityMode(v); }); + } + + ImGui::TextDisabled("The headphones reconnect to apply this."); + + this->_endCard(); +} + void CrossPlatformGUI::_drawOptionalFeatures() { const bool any = this->_headphones.hasAutoPowerOff() || this->_headphones.hasSpeakToChat() || diff --git a/Client/CrossPlatformGUI.h b/Client/CrossPlatformGUI.h index f396939f..0f6e0f42 100644 --- a/Client/CrossPlatformGUI.h +++ b/Client/CrossPlatformGUI.h @@ -44,6 +44,7 @@ class CrossPlatformGUI void _drawASMControls(); void _drawEqualizer(); void _drawDsee(); + void _drawSoundQualityMode(); void _drawOptionalFeatures(); void _drawSurroundControls(); @@ -94,6 +95,7 @@ class CrossPlatformGUI int _uiAutoPowerOff = 0; bool _uiSpeakToChat = false; bool _uiAdaptiveVolume = false; + bool _uiPrioritizeSoundQuality = true; int _uiSoundPosition = 0; int _uiVptType = 0; diff --git a/Client/Headphones.cpp b/Client/Headphones.cpp index f621d640..184de395 100644 --- a/Client/Headphones.cpp +++ b/Client/Headphones.cpp @@ -430,6 +430,25 @@ void Headphones::probeCapabilities() auto r = this->_conn.sendCommandAndReadResponse({ (char)V2Command::BTNMODE_GET, (char)V2Command::SUB_SPEAK_TO_CHAT }, V2Command::BTNMODE_RET, V2Command::SUB_SPEAK_TO_CHAT); if (r.size() >= 3) { std::lock_guard g(this->_propertyMtx); this->_speakToChat = (r[2] == 0); this->_hasSpeakToChat = true; } } catch (...) {} + + // Sound quality mode. A model exposes it under exactly one sub-type - LDAC-capable devices + // (WF/WH-1000XM*) answer the LDAC variant, the rest the plain one - so probe both and keep whichever + // replied. Both share the same 3-byte layout: RET e7 . + for (unsigned char sub : { V2Command::SUB_CONNECTION_MODE_LDAC, V2Command::SUB_CONNECTION_MODE }) + { + try { + auto r = this->_conn.sendCommandAndReadResponse({ (char)V2Command::AUDIO_GET, (char)sub }, V2Command::AUDIO_RET, sub); + // Only 0x00/0x01 are modes we can round-trip; anything else means we've misread the layout. + if (r.size() >= 3 && (r[2] == 0x00 || r[2] == 0x01)) + { + std::lock_guard g(this->_propertyMtx); + this->_soundQualityModeSubType = sub; + this->_soundQualityMode = (PRIOR_MODE)(unsigned char)r[2]; + this->_hasSoundQualityMode = true; + break; + } + } catch (...) {} + } } bool Headphones::hasAutoPowerOff() { return this->_hasAutoPowerOff; } @@ -467,6 +486,19 @@ void Headphones::setAdaptiveVolume(bool enabled) this->_adaptiveVolume = enabled; } +bool Headphones::hasSoundQualityMode() { return this->_hasSoundQualityMode; } +PRIOR_MODE Headphones::getSoundQualityMode() { return this->_soundQualityMode; } +void Headphones::setSoundQualityMode(PRIOR_MODE mode) +{ + if (!this->_hasSoundQualityMode) return; + // SET: e8 , on the same sub-type the probe found. + // Fire-and-forget on purpose: the device tears the A2DP link down to re-negotiate the codec, which + // takes the RFCOMM channel with it, so waiting for a reply here would just time out. + this->_conn.sendCommand({ (char)V2Command::AUDIO_SET, (char)this->_soundQualityModeSubType, (char)mode }); + std::lock_guard guard(this->_propertyMtx); + this->_soundQualityMode = mode; +} + // requestAmbientState() deliberately refuses to adopt device state while a change is pending, so a write // that never reached the device would otherwise block the read-back for the rest of the session - the UI // would freeze on a value the headphones never took. Dropping the pending change lets polling resume. diff --git a/Client/Headphones.h b/Client/Headphones.h index 8099e71f..2197a032 100644 --- a/Client/Headphones.h +++ b/Client/Headphones.h @@ -93,6 +93,13 @@ class Headphones { bool getAdaptiveVolume(); void setAdaptiveVolume(bool enabled); + // Sound quality mode: prioritise sound quality vs. a stable connection. Changing it makes the + // headphones re-negotiate the A2DP link, so the RFCOMM connection drops right after the write - + // callers should expect a disconnect rather than treat it as a failure. + bool hasSoundQualityMode(); + PRIOR_MODE getSoundQualityMode(); + void setSoundQualityMode(PRIOR_MODE mode); + bool isChanged(); void setChanges(); @@ -131,6 +138,10 @@ class Headphones { bool _hasCodec = false; std::string _codec; bool _hasSpeakToChat = false; bool _speakToChat = false; bool _hasAdaptiveVolume = false; bool _adaptiveVolume = false; + // Which AUDIO sub-type this device answered on: SET has to go back out on the same one. + bool _hasSoundQualityMode = false; + unsigned char _soundQualityModeSubType = V2Command::SUB_CONNECTION_MODE; + PRIOR_MODE _soundQualityMode = PRIOR_MODE::SOUND_QUALITY; std::mutex _propertyMtx; diff --git a/Client/macos/ContentView.swift b/Client/macos/ContentView.swift index 402c5ff7..e79c9944 100644 --- a/Client/macos/ContentView.swift +++ b/Client/macos/ContentView.swift @@ -79,6 +79,9 @@ struct ContentView: View { equalizerCard dseeCard } + if model.hasSoundQualityMode { + soundQualityCard + } if model.hasAdaptiveVolume || model.hasSpeakToChat || model.hasAutoPowerOff { settingsCard } @@ -324,6 +327,50 @@ struct ContentView: View { .clipShape(RoundedRectangle(cornerRadius: 16, style: .continuous)) } + private var soundQualityCard: some View { + VStack(alignment: .leading, spacing: 10) { + HStack(alignment: .firstTextBaseline) { + Text("Bluetooth Connection") + .font(.system(size: 15, weight: .semibold)) + .foregroundColor(.white) + Spacer() + if !model.codec.isEmpty { + Text(model.codec) + .font(.system(size: 11, weight: .semibold, design: .monospaced)) + .foregroundColor(Theme.secondary) + } + } + HStack(spacing: 8) { + priorityChip("Sound Quality", selected: model.prioritizeSoundQuality) { + model.setPrioritizeSoundQuality(true) + } + priorityChip("Stable Connection", selected: !model.prioritizeSoundQuality) { + model.setPrioritizeSoundQuality(false) + } + } + Text("The headphones reconnect to apply this.") + .font(.system(size: 11)) + .foregroundColor(Theme.secondary) + } + .padding(18) + .frame(maxWidth: .infinity, alignment: .leading) + .background(Theme.card) + .clipShape(RoundedRectangle(cornerRadius: 16, style: .continuous)) + } + + private func priorityChip(_ name: String, selected: Bool, action: @escaping () -> Void) -> some View { + Button(action: action) { + Text(name) + .font(.system(size: 12, weight: .medium)) + .foregroundColor(selected ? .white : Theme.secondary) + .frame(maxWidth: .infinity) + .padding(.vertical, 8) + .background(selected ? Theme.accent : Theme.cardHi) + .clipShape(RoundedRectangle(cornerRadius: 9, style: .continuous)) + } + .buttonStyle(PlainButtonStyle()) + } + private func eqChip(_ name: String, _ code: Int) -> some View { let selected = model.eqPreset == code return Button(action: { model.setEqualizer(code) }) { diff --git a/Client/macos/HeadphonesBridge.h b/Client/macos/HeadphonesBridge.h index d33f4d38..c8d5aeca 100644 --- a/Client/macos/HeadphonesBridge.h +++ b/Client/macos/HeadphonesBridge.h @@ -56,6 +56,8 @@ typedef NS_ENUM(NSInteger, SHCAmbientMode) { @property (nonatomic, readonly) BOOL speakToChat; @property (nonatomic, readonly) BOOL hasAdaptiveVolume; @property (nonatomic, readonly) BOOL adaptiveVolume; +@property (nonatomic, readonly) BOOL hasSoundQualityMode; +@property (nonatomic, readonly) BOOL prioritizeSoundQuality; // NO = prioritize stable connection // Runs the native Bluetooth device picker (modal, main thread) and connects to the chosen device. // completion is called on the main thread. @@ -88,6 +90,10 @@ typedef NS_ENUM(NSInteger, SHCAmbientMode) { - (void)setSpeakToChat:(BOOL)enabled completion:(void (^)(BOOL ok, NSString * _Nullable error))completion; - (void)setAdaptiveVolume:(BOOL)enabled completion:(void (^)(BOOL ok, NSString * _Nullable error))completion; +// Switches the Bluetooth connection priority. The headphones re-negotiate the audio link, so the +// connection normally drops a moment after this returns - that is the device working as intended. +- (void)setPrioritizeSoundQuality:(BOOL)prioritize completion:(void (^)(BOOL ok, NSString * _Nullable error))completion; + // Re-reads the fast-changing state (ambient/NC, level, EQ, DSEE) so changes made with the headphone's // own button show up in the app. Called on a timer while connected. - (void)refreshDynamicWithCompletion:(void (^)(void))completion; diff --git a/Client/macos/HeadphonesBridge.mm b/Client/macos/HeadphonesBridge.mm index e57d5aeb..72601ff1 100644 --- a/Client/macos/HeadphonesBridge.mm +++ b/Client/macos/HeadphonesBridge.mm @@ -129,6 +129,8 @@ - (BOOL)hasSpeakToChat { return _hp && _hp->hasSpeakToChat(); } - (BOOL)speakToChat { return _hp && _hp->getSpeakToChat(); } - (BOOL)hasAdaptiveVolume { return _hp && _hp->hasAdaptiveVolume(); } - (BOOL)adaptiveVolume { return _hp && _hp->getAdaptiveVolume(); } +- (BOOL)hasSoundQualityMode { return _hp && _hp->hasSoundQualityMode(); } +- (BOOL)prioritizeSoundQuality { return _hp && _hp->getSoundQualityMode() == PRIOR_MODE::SOUND_QUALITY; } static BOOL SHCLooksLikeSonyHeadset(NSString *name) { if (name.length == 0) return NO; @@ -391,4 +393,16 @@ - (void)setAdaptiveVolume:(BOOL)enabled completion:(void (^)(BOOL, NSString * _N }); } +- (void)setPrioritizeSoundQuality:(BOOL)prioritize completion:(void (^)(BOOL, NSString * _Nullable))completion { + if (!_hp || !self.connected) { completion(NO, @"Not connected."); return; } + Headphones *hp = _hp.get(); + dispatch_async(_cmdQueue, ^{ + NSString *error = nil; BOOL ok = YES; + try { + hp->setSoundQualityMode(prioritize ? PRIOR_MODE::SOUND_QUALITY : PRIOR_MODE::STABLE_CONNECTION); + } catch (std::exception &exc) { ok = NO; error = @(exc.what()); } + dispatch_async(dispatch_get_main_queue(), ^{ completion(ok, error); }); + }); +} + @end diff --git a/Client/macos/HeadphonesModel.swift b/Client/macos/HeadphonesModel.swift index 75b50a6e..25f1dbd6 100644 --- a/Client/macos/HeadphonesModel.swift +++ b/Client/macos/HeadphonesModel.swift @@ -43,6 +43,8 @@ final class HeadphonesModel: ObservableObject { @Published var speakToChat = false @Published var hasAdaptiveVolume = false @Published var adaptiveVolume = false + @Published var hasSoundQualityMode = false + @Published var prioritizeSoundQuality = true @Published var deviceMac = "" @Published var protocolVersion = "" @@ -50,6 +52,8 @@ final class HeadphonesModel: ObservableObject { private var pollTimer: Timer? private var dynamicTimer: Timer? + // Set when we issue a write that we know makes the device drop the link on purpose. + private var expectingLinkReset = false func connect() { connecting = true @@ -85,6 +89,8 @@ final class HeadphonesModel: ObservableObject { self.speakToChat = self.bridge.speakToChat self.hasAdaptiveVolume = self.bridge.hasAdaptiveVolume self.adaptiveVolume = self.bridge.adaptiveVolume + self.hasSoundQualityMode = self.bridge.hasSoundQualityMode + self.prioritizeSoundQuality = self.bridge.prioritizeSoundQuality } } @@ -118,6 +124,21 @@ final class HeadphonesModel: ObservableObject { bridge.setAdaptiveVolume(on) { ok, error in if !ok, let e = error { self.errorMessage = e } } } + func setPrioritizeSoundQuality(_ on: Bool) { + prioritizeSoundQuality = on + errorMessage = nil + // The headphones re-negotiate the audio link for the new priority, which drops RFCOMM with it. + // Arm the connection watcher so that shows up as an explanation rather than as a bare failure. + expectingLinkReset = true + bridge.setPrioritizeSoundQuality(on) { ok, error in + if !ok { + self.expectingLinkReset = false + self.prioritizeSoundQuality = self.bridge.prioritizeSoundQuality + if let error = error { self.errorMessage = error } + } + } + } + // Poll the button-changeable state so the app stays in sync when you use the headphone's own controls. private func startDynamicPolling() { stopDynamicPolling() @@ -194,7 +215,10 @@ final class HeadphonesModel: ObservableObject { if self.connected && !self.bridge.connected { self.connected = false self.deviceName = "" - self.errorMessage = "Headphones disconnected." + self.errorMessage = self.expectingLinkReset + ? "Sound quality mode changed — the headphones reconnect on their own. Connect again in a few seconds." + : "Headphones disconnected." + self.expectingLinkReset = false self.stopWatchingConnection() self.stopDynamicPolling() } From 43a9221a1873079e07587236589dc057f99ede82 Mon Sep 17 00:00:00 2001 From: Sergey Ukolov Date: Wed, 19 Aug 2026 00:07:53 +0300 Subject: [PATCH 6/6] fix: read back the EQ bands after switching preset Selecting Manual showed the previous preset's slider positions, not the custom curve stored on the device. The bands were only ever read once, on connect, where the device reports the curve of whatever preset is active - setEqualizerPreset() then sent 58 00 00 and updated the cached preset byte alone, so the cached bands stayed behind. Touching a slider from there wrote those stale values back, overwriting the stored curve. Re-read with requestEqualizer() after the write, so the cache holds the bands that belong to the preset the device just switched to. The read-back is guarded: it runs after the property lock is released (requestEqualizer() takes the same non-recursive mutex), and a failed read leaves the bands stale rather than reporting the write that already landed as failed. The macOS model publishes eqPreset/clearBass/eqBands on a successful preset write, and the ImGui GUI pulls them into its sliders once the command future completes - neither re-read them on any other path. --- Client/CrossPlatformGUI.cpp | 12 ++++++++++++ Client/CrossPlatformGUI.h | 3 +++ Client/Headphones.cpp | 18 ++++++++++++++++-- Client/macos/HeadphonesModel.swift | 7 +++++++ 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/Client/CrossPlatformGUI.cpp b/Client/CrossPlatformGUI.cpp index fdd84734..0b807d60 100644 --- a/Client/CrossPlatformGUI.cpp +++ b/Client/CrossPlatformGUI.cpp @@ -463,6 +463,9 @@ void CrossPlatformGUI::_drawEqualizer() { this->_uiEqPreset = presets[i].val; int p = presets[i].val; + // setEqualizerPreset() re-reads the bands that go with the new preset (the device restores the + // stored custom curve for Manual), so pull them into the sliders once the command lands. + this->_eqBandsNeedSync = true; this->_sendFeatureCommand([this, p]() { this->_headphones.setEqualizerPreset((EQ_PRESET)p); }); } if (sel) ImGui::PopStyleColor(); @@ -606,6 +609,15 @@ void CrossPlatformGUI::_sendPendingASMChanges() try { this->_featureCommandFuture.get(); } catch (const RecoverableException& e) { if (e.shouldDisconnect) this->_bt.disconnect(); this->_mq.addMessage(e.what()); } catch (const std::exception& e) { this->_mq.addMessage(e.what()); } + + if (this->_eqBandsNeedSync) + { + this->_eqBandsNeedSync = false; + this->_uiEqPreset = (int)(unsigned char)this->_headphones.getEqualizerPreset(); + for (int i = 0; i < 5; ++i) + this->_uiEqBands[i] = this->_headphones.getEqualizerBand(i); + this->_uiClearBass = this->_headphones.getClearBass(); + } } if (this->_sendCommandFuture.valid() && this->_sendCommandFuture.ready()) diff --git a/Client/CrossPlatformGUI.h b/Client/CrossPlatformGUI.h index 0f6e0f42..a40008a2 100644 --- a/Client/CrossPlatformGUI.h +++ b/Client/CrossPlatformGUI.h @@ -91,6 +91,9 @@ class CrossPlatformGUI int _uiEqPreset = 0; std::array _uiEqBands = { 0, 0, 0, 0, 0 }; int _uiClearBass = 0; + // Set when a preset write is in flight, so the band sliders take the values the device reports for + // that preset once it completes instead of keeping the previous preset's. + bool _eqBandsNeedSync = false; bool _uiDsee = false; int _uiAutoPowerOff = 0; bool _uiSpeakToChat = false; diff --git a/Client/Headphones.cpp b/Client/Headphones.cpp index 184de395..0ef6ecf3 100644 --- a/Client/Headphones.cpp +++ b/Client/Headphones.cpp @@ -256,8 +256,22 @@ void Headphones::setEqualizerPreset(EQ_PRESET preset) (char)static_cast(preset), 0x00 }); - std::lock_guard guard(this->_propertyMtx); - this->_eqPreset = preset; + { + std::lock_guard guard(this->_propertyMtx); + this->_eqPreset = preset; + } + // The band values that go with the new preset live on the device, not here: selecting MANUAL restores + // the custom curve the user last stored on the headphones, and every other preset has its own fixed + // curve. Without this read-back the cached bands stay whatever the *previous* preset had, so switching + // to Manual showed the wrong slider positions. A failed read-back mustn't fail the write that already + // went through - the cached preset above is still correct, only the bands would be stale. + try + { + this->requestEqualizer(); + } + catch (const std::exception&) + { + } } void Headphones::setEqualizerCustom(int clearBass, const std::vector& bands) diff --git a/Client/macos/HeadphonesModel.swift b/Client/macos/HeadphonesModel.swift index 25f1dbd6..b2d18e4e 100644 --- a/Client/macos/HeadphonesModel.swift +++ b/Client/macos/HeadphonesModel.swift @@ -172,7 +172,14 @@ final class HeadphonesModel: ObservableObject { if !ok { self.eqPreset = self.bridge.eqPreset if let error = error { self.errorMessage = error } + return } + // The bridge re-reads the EQ after the write, so this picks up the band values that belong to + // the preset just selected - in particular the custom curve the device restores for Manual, + // which is what the sliders below the chips show. + self.eqPreset = self.bridge.eqPreset + self.clearBass = self.bridge.clearBass + self.eqBands = (0..<5).map { self.bridge.equalizerBand(at: $0) } } }