@@ -127,27 +127,30 @@ class AdvancedEqualizerDataBus: DataBus {
127127 }
128128
129129 if let json = try ? String ( contentsOf: file!) {
130- let presets = JSON ( parseJSON: json) . arrayObject as! [ [ String : Any ] ]
131- for var preset in presets {
132- let bands = preset [ " gains " ] as? [ Double ]
133- let name = preset [ " name " ] as? String
134-
135- if ( bands == nil || bands? . count != 10 || name == nil ) {
136- res. error ( " Invalid import file. Must be an array of objects of type { gains: Double[10], name: String } " )
137- return
130+ let presets = JSON ( parseJSON: json) . arrayValue
131+ for preset in presets {
132+ if let gains = preset [ " gains " ] . dictionary, let name = preset [ " name " ] . string {
133+ let global = gains [ " global " ] ? . double
134+ if let bands = gains [ " bands " ] ? . arrayObject as? [ Double ] {
135+ if preset [ " id " ] . string == " manual " {
136+ AdvancedEqualizer . updatePreset ( id: " manual " , gains: AdvancedEqualizerPresetGains (
137+ global: global ?? 0 , bands: bands
138+ ) )
139+ } else {
140+ _ = AdvancedEqualizer . createPreset ( name: name, gains: AdvancedEqualizerPresetGains (
141+ global: global ?? 0 , bands: bands
142+ ) )
143+ }
144+
145+ }
138146 }
139-
140- _ = AdvancedEqualizer . createPreset ( name: name!, gains: AdvancedEqualizerPresetGains (
141- global: 0 , bands: bands!
142- ) )
143147 }
144-
145148 res. send ( " Presets imported. " )
146149 } else {
147150 res. error ( " File is not readable format. " )
148151 }
149152
150-
153+
151154 }
152155 return nil
153156 }
0 commit comments