@@ -57,6 +57,22 @@ class SoundDevicesViewController : UITableViewController {
5757 voiceprepswitch. addTarget ( self , action: #selector( SoundDevicesViewController . voicepreprocessingChanged ( _: ) ) , for: . valueChanged)
5858 sound_items. append ( voice_prepcell)
5959
60+ let dredcell = UITableViewCell ( style: . subtitle, reuseIdentifier: nil )
61+ let dredswitch = newTableCellSwitch ( dredcell, label: NSLocalizedString ( " AI Packet Loss Recovery (DRED) " , comment: " preferences " ) ,
62+ initial: settings. object ( forKey: PREF_AI_DRED) != nil && settings. bool ( forKey: PREF_AI_DRED) )
63+ dredcell. detailTextLabel!. text = NSLocalizedString ( " Make outgoing voice more resilient on unstable networks " ,
64+ comment: " Sound Devices " )
65+ dredswitch. addTarget ( self , action: #selector( SoundDevicesViewController . aiDredChanged ( _: ) ) , for: . valueChanged)
66+ sound_items. append ( dredcell)
67+
68+ let oscecell = UITableViewCell ( style: . subtitle, reuseIdentifier: nil )
69+ let osceswitch = newTableCellSwitch ( oscecell, label: NSLocalizedString ( " AI Speech Enhancement (OSCE) " , comment: " preferences " ) ,
70+ initial: settings. object ( forKey: PREF_AI_OSCE) != nil && settings. bool ( forKey: PREF_AI_OSCE) )
71+ oscecell. detailTextLabel!. text = NSLocalizedString ( " Improve clarity of received voice " ,
72+ comment: " Sound Devices " )
73+ osceswitch. addTarget ( self , action: #selector( SoundDevicesViewController . aiOsceChanged ( _: ) ) , for: . valueChanged)
74+ sound_items. append ( oscecell)
75+
6076 if #available( iOS 10 . 0 , * ) {
6177 let a2dpcell = UITableViewCell ( style: . subtitle, reuseIdentifier: nil )
6278 let a2dpswitch = newTableCellSwitch ( a2dpcell, label: NSLocalizedString ( " Bluetooth A2DP Playback " , comment: " Sound Devices " ) ,
@@ -219,13 +235,25 @@ class SoundDevicesViewController : UITableViewController {
219235 }
220236
221237 @objc func voicepreprocessingChanged( _ sender: UISwitch ) {
222-
238+
223239 let defaults = UserDefaults . standard
224240 defaults. set ( sender. isOn, forKey: PREF_VOICEPROCESSINGIO)
225-
241+
226242 setupSoundDevices ( )
227243 }
228244
245+ @objc func aiDredChanged( _ sender: UISwitch ) {
246+ let defaults = UserDefaults . standard
247+ defaults. set ( sender. isOn, forKey: PREF_AI_DRED)
248+ applyAIAudioEffect ( )
249+ }
250+
251+ @objc func aiOsceChanged( _ sender: UISwitch ) {
252+ let defaults = UserDefaults . standard
253+ defaults. set ( sender. isOn, forKey: PREF_AI_OSCE)
254+ applyAIAudioEffect ( )
255+ }
256+
229257 @objc func bluetoothA2DPChanged( _ sender: UISwitch ) {
230258
231259 let defaults = UserDefaults . standard
0 commit comments