@@ -15,6 +15,7 @@ class DeviceInfo : public QObject
1515 Q_PROPERTY (QString batteryStatus READ batteryStatus WRITE setBatteryStatus NOTIFY batteryStatusChanged)
1616 Q_PROPERTY (int noiseControlMode READ noiseControlModeInt WRITE setNoiseControlModeInt NOTIFY noiseControlModeChangedInt)
1717 Q_PROPERTY (bool conversationalAwareness READ conversationalAwareness WRITE setConversationalAwareness NOTIFY conversationalAwarenessChanged)
18+ Q_PROPERTY (bool hearingAidEnabled READ hearingAidEnabled WRITE setHearingAidEnabled NOTIFY hearingAidEnabledChanged)
1819 Q_PROPERTY (int adaptiveNoiseLevel READ adaptiveNoiseLevel WRITE setAdaptiveNoiseLevel NOTIFY adaptiveNoiseLevelChanged)
1920 Q_PROPERTY (QString deviceName READ deviceName WRITE setDeviceName NOTIFY deviceNameChanged)
2021 Q_PROPERTY (Battery *battery READ getBattery CONSTANT)
@@ -67,6 +68,16 @@ class DeviceInfo : public QObject
6768 }
6869 }
6970
71+ bool hearingAidEnabled () const { return m_hearingAidEnabled; }
72+ void setHearingAidEnabled (bool enabled)
73+ {
74+ if (m_hearingAidEnabled != enabled)
75+ {
76+ m_hearingAidEnabled = enabled;
77+ emit hearingAidEnabledChanged (enabled);
78+ }
79+ }
80+
7081 int adaptiveNoiseLevel () const { return m_adaptiveNoiseLevel; }
7182 void setAdaptiveNoiseLevel (int level)
7283 {
@@ -159,6 +170,7 @@ class DeviceInfo : public QObject
159170 setNoiseControlMode (NoiseControlMode::Off);
160171 setBluetoothAddress (" " );
161172 getEarDetection ()->reset ();
173+ setHearingAidEnabled (false );
162174 }
163175
164176 void saveToSettings (QSettings &settings)
@@ -168,6 +180,7 @@ class DeviceInfo : public QObject
168180 settings.setValue (" model" , static_cast <int >(model ()));
169181 settings.setValue (" magicAccIRK" , magicAccIRK ());
170182 settings.setValue (" magicAccEncKey" , magicAccEncKey ());
183+ settings.setValue (" hearingAidEnabled" , hearingAidEnabled ());
171184 settings.endGroup ();
172185 }
173186 void loadFromSettings (const QSettings &settings)
@@ -176,6 +189,7 @@ class DeviceInfo : public QObject
176189 setModel (static_cast <AirPodsModel>(settings.value (" DeviceInfo/model" , (int )(AirPodsModel::Unknown)).toInt ()));
177190 setMagicAccIRK (settings.value (" DeviceInfo/magicAccIRK" , QByteArray ()).toByteArray ());
178191 setMagicAccEncKey (settings.value (" DeviceInfo/magicAccEncKey" , QByteArray ()).toByteArray ());
192+ setHearingAidEnabled (settings.value (" DeviceInfo/hearingAidEnabled" , false ).toBool ());
179193 }
180194
181195 void updateBatteryStatus ()
@@ -191,6 +205,7 @@ class DeviceInfo : public QObject
191205 void noiseControlModeChanged (NoiseControlMode mode);
192206 void noiseControlModeChangedInt (int mode);
193207 void conversationalAwarenessChanged (bool enabled);
208+ void hearingAidEnabledChanged (bool enabled);
194209 void adaptiveNoiseLevelChanged (int level);
195210 void deviceNameChanged (const QString &name);
196211 void primaryChanged ();
@@ -202,6 +217,7 @@ class DeviceInfo : public QObject
202217 QString m_batteryStatus;
203218 NoiseControlMode m_noiseControlMode = NoiseControlMode::Transparency;
204219 bool m_conversationalAwareness = false ;
220+ bool m_hearingAidEnabled = false ;
205221 int m_adaptiveNoiseLevel = 50 ;
206222 QString m_deviceName;
207223 Battery *m_battery;
0 commit comments