Skip to content

Commit 9dd22c0

Browse files
committed
re-format
1 parent 24dbcba commit 9dd22c0

8 files changed

Lines changed: 51 additions & 155 deletions

ios/AudioUtils.swift

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
/*
2-
* Copyright 2025 LiveKit
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
*/
16-
171
import AVFoundation
182

193
public class AudioUtils {

ios/LiveKitReactNativeModule.swift

Lines changed: 24 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,29 @@
1-
/*
2-
* Copyright 2025 LiveKit
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
*/
16-
171
import AVFAudio
182
import AVFoundation
193
import React
204
import livekit_react_native_webrtc
215

22-
enum LKEvents {
6+
struct LKEvents {
237
static let kEventVolumeProcessed = "LK_VOLUME_PROCESSED"
248
static let kEventMultibandProcessed = "LK_MULTIBAND_PROCESSED"
259
static let kEventAudioData = "LK_AUDIO_DATA"
2610
}
2711

2812
@objc(LivekitReactNativeModule)
2913
public class LivekitReactNativeModule: RCTEventEmitter {
14+
3015
// This cannot be initialized in init as self.bridge is given afterwards.
31-
private var _audioRendererManager: AudioRendererManager?
16+
private var _audioRendererManager: AudioRendererManager? = nil
3217
public var audioRendererManager: AudioRendererManager {
3318
if _audioRendererManager == nil {
34-
_audioRendererManager = AudioRendererManager(bridge: bridge)
19+
_audioRendererManager = AudioRendererManager(bridge: self.bridge)
3520
}
3621

3722
return _audioRendererManager!
3823
}
3924

4025
@objc
41-
override public init() {
26+
public override init() {
4227
super.init()
4328
let config = RTCAudioSessionConfiguration()
4429
config.category = AVAudioSession.Category.playAndRecord.rawValue
@@ -50,7 +35,7 @@ public class LivekitReactNativeModule: RCTEventEmitter {
5035

5136
@objc
5237
override public static func requiresMainQueueSetup() -> Bool {
53-
false
38+
return false
5439
}
5540

5641
@objc
@@ -133,7 +118,7 @@ public class LivekitReactNativeModule: RCTEventEmitter {
133118
}
134119

135120
@objc(getAudioOutputsWithResolver:withRejecter:)
136-
public func getAudioOutputs(resolve: RCTPromiseResolveBlock, reject _: RCTPromiseRejectBlock) {
121+
public func getAudioOutputs(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
137122
resolve(["default", "force_speaker"])
138123
}
139124

@@ -170,15 +155,15 @@ public class LivekitReactNativeModule: RCTEventEmitter {
170155
session.unlockForConfiguration()
171156
}
172157

173-
if let appleAudioCategory {
158+
if let appleAudioCategory = appleAudioCategory {
174159
config.category = AudioUtils.audioSessionCategoryFromString(appleAudioCategory).rawValue
175160
}
176161

177-
if let appleAudioCategoryOptions {
162+
if let appleAudioCategoryOptions = appleAudioCategoryOptions {
178163
config.categoryOptions = AudioUtils.audioSessionCategoryOptionsFromStrings(appleAudioCategoryOptions)
179164
}
180165

181-
if let appleAudioMode {
166+
if let appleAudioMode = appleAudioMode {
182167
config.mode = AudioUtils.audioSessionModeFromString(appleAudioMode).rawValue
183168
}
184169

@@ -189,40 +174,41 @@ public class LivekitReactNativeModule: RCTEventEmitter {
189174
reject("setAppleAudioConfiguration", "Error setting category: \(error.localizedDescription)", error)
190175
return
191176
}
177+
192178
}
193179

194180
@objc(createAudioSinkListener:trackId:)
195181
public func createAudioSinkListener(_ pcId: NSNumber, trackId: String) -> String {
196182
let renderer = AudioSinkRenderer(eventEmitter: self)
197-
let reactTag = audioRendererManager.registerRenderer(renderer)
183+
let reactTag = self.audioRendererManager.registerRenderer(renderer)
198184
renderer.reactTag = reactTag
199-
audioRendererManager.attach(renderer: renderer, pcId: pcId, trackId: trackId)
185+
self.audioRendererManager.attach(renderer: renderer, pcId: pcId, trackId: trackId)
200186

201187
return reactTag
202188
}
203189

204190
@objc(deleteAudioSinkListener:pcId:trackId:)
205191
public func deleteAudioSinkListener(_ reactTag: String, pcId: NSNumber, trackId: String) -> Any? {
206-
audioRendererManager.detach(rendererByTag: reactTag, pcId: pcId, trackId: trackId)
207-
audioRendererManager.unregisterRenderer(forReactTag: reactTag)
192+
self.audioRendererManager.detach(rendererByTag: reactTag, pcId: pcId, trackId: trackId)
193+
self.audioRendererManager.unregisterRenderer(forReactTag: reactTag)
208194

209195
return nil
210196
}
211197

212198
@objc(createVolumeProcessor:trackId:)
213199
public func createVolumeProcessor(_ pcId: NSNumber, trackId: String) -> String {
214200
let renderer = VolumeAudioRenderer(intervalMs: 40.0, eventEmitter: self)
215-
let reactTag = audioRendererManager.registerRenderer(renderer)
201+
let reactTag = self.audioRendererManager.registerRenderer(renderer)
216202
renderer.reactTag = reactTag
217-
audioRendererManager.attach(renderer: renderer, pcId: pcId, trackId: trackId)
203+
self.audioRendererManager.attach(renderer: renderer, pcId: pcId, trackId: trackId)
218204

219205
return reactTag
220206
}
221207

222208
@objc(deleteVolumeProcessor:pcId:trackId:)
223209
public func deleteVolumeProcessor(_ reactTag: String, pcId: NSNumber, trackId: String) -> Any? {
224-
audioRendererManager.detach(rendererByTag: reactTag, pcId: pcId, trackId: trackId)
225-
audioRendererManager.unregisterRenderer(forReactTag: reactTag)
210+
self.audioRendererManager.detach(rendererByTag: reactTag, pcId: pcId, trackId: trackId)
211+
self.audioRendererManager.unregisterRenderer(forReactTag: reactTag)
226212

227213
return nil
228214
}
@@ -241,17 +227,17 @@ public class LivekitReactNativeModule: RCTEventEmitter {
241227
intervalMs: intervalMs,
242228
eventEmitter: self
243229
)
244-
let reactTag = audioRendererManager.registerRenderer(renderer)
230+
let reactTag = self.audioRendererManager.registerRenderer(renderer)
245231
renderer.reactTag = reactTag
246-
audioRendererManager.attach(renderer: renderer, pcId: pcId, trackId: trackId)
232+
self.audioRendererManager.attach(renderer: renderer, pcId: pcId, trackId: trackId)
247233

248234
return reactTag
249235
}
250236

251237
@objc(deleteMultibandVolumeProcessor:pcId:trackId:)
252238
public func deleteMultibandVolumeProcessor(_ reactTag: String, pcId: NSNumber, trackId: String) -> Any? {
253-
audioRendererManager.detach(rendererByTag: reactTag, pcId: pcId, trackId: trackId)
254-
audioRendererManager.unregisterRenderer(forReactTag: reactTag)
239+
self.audioRendererManager.detach(rendererByTag: reactTag, pcId: pcId, trackId: trackId)
240+
self.audioRendererManager.unregisterRenderer(forReactTag: reactTag)
255241

256242
return nil
257243
}
@@ -265,7 +251,7 @@ public class LivekitReactNativeModule: RCTEventEmitter {
265251
}
266252

267253
override public func supportedEvents() -> [String]! {
268-
[
254+
return [
269255
LKEvents.kEventVolumeProcessed,
270256
LKEvents.kEventMultibandProcessed,
271257
LKEvents.kEventAudioData,

ios/Logging.swift

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
/*
2-
* Copyright 2025 LiveKit
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
*/
16-
171
public func lklog(_ object: Any, functionName: String = #function, fileName: String = #file, lineNumber: Int = #line) {
182
let className = (fileName as NSString).lastPathComponent
193
print("\(className).\(functionName):\(lineNumber) : \(object)\n")

ios/audio/AudioRendererManager.swift

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
/*
2-
* Copyright 2025 LiveKit
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
*/
16-
171
import livekit_react_native_webrtc
182

193
@objc
@@ -28,23 +12,23 @@ public class AudioRendererManager: NSObject {
2812
@objc
2913
public func registerRenderer(_ audioRenderer: RTCAudioRenderer) -> String {
3014
let reactTag = NSUUID().uuidString
31-
renderers[reactTag] = audioRenderer
15+
self.renderers[reactTag] = audioRenderer
3216
return reactTag
3317
}
3418

3519
@objc
3620
public func unregisterRenderer(forReactTag: String) {
37-
renderers.removeValue(forKey: forReactTag)
21+
self.renderers.removeValue(forKey: forReactTag)
3822
}
3923

4024
@objc
4125
public func unregisterRenderer(_ audioRenderer: RTCAudioRenderer) {
42-
renderers = renderers.filter { $0.value !== audioRenderer }
26+
self.renderers = self.renderers.filter({ $0.value !== audioRenderer })
4327
}
4428

4529
@objc
4630
public func attach(renderer: RTCAudioRenderer, pcId: NSNumber, trackId: String) {
47-
let webrtcModule = bridge.module(for: WebRTCModule.self) as! WebRTCModule
31+
let webrtcModule = self.bridge.module(for: WebRTCModule.self) as! WebRTCModule
4832
guard let track = webrtcModule.track(forId: trackId, pcId: pcId) as? RTCAudioTrack
4933
else {
5034
lklog("couldn't find audio track: pcId: \(pcId), trackId: \(trackId)")
@@ -60,7 +44,7 @@ public class AudioRendererManager: NSObject {
6044

6145
@objc
6246
public func detach(rendererByTag reactTag: String, pcId: NSNumber, trackId: String) {
63-
guard let renderer = renderers[reactTag]
47+
guard let renderer = self.renderers[reactTag]
6448
else {
6549
lklog("couldn't find renderer: tag: \(reactTag)")
6650
return
@@ -71,7 +55,7 @@ public class AudioRendererManager: NSObject {
7155

7256
@objc
7357
public func detach(renderer: RTCAudioRenderer, pcId: NSNumber, trackId: String) {
74-
let webrtcModule = bridge.module(for: WebRTCModule.self) as! WebRTCModule
58+
let webrtcModule = self.bridge.module(for: WebRTCModule.self) as! WebRTCModule
7559
guard let track = webrtcModule.track(forId: trackId, pcId: pcId) as? RTCAudioTrack
7660
else {
7761
lklog("couldn't find audio track: pcId: \(pcId), trackId: \(trackId)")

ios/audio/AudioSinkRenderer.swift

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
/*
2-
* Copyright 2025 LiveKit
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
*/
16-
171
import React
182
import livekit_react_native_webrtc
193

@@ -22,7 +6,7 @@ public class AudioSinkRenderer: BaseAudioSinkRenderer {
226
private let eventEmitter: RCTEventEmitter
237

248
@objc
25-
public var reactTag: String?
9+
public var reactTag: String? = nil
2610

2711
@objc
2812
public init(eventEmitter: RCTEventEmitter) {
@@ -56,13 +40,15 @@ public class AudioSinkRenderer: BaseAudioSinkRenderer {
5640
}
5741

5842
public class BaseAudioSinkRenderer: NSObject, RTCAudioRenderer {
59-
override public init() {
43+
44+
public override init() {
6045
super.init()
6146
}
6247

6348
public func render(pcmBuffer: AVAudioPCMBuffer) {
6449
onData(pcmBuffer)
6550
}
6651

67-
public func onData(_: AVAudioPCMBuffer) {}
52+
public func onData(_ pcmBuffer: AVAudioPCMBuffer) {
53+
}
6854
}

ios/audio/FFTProcessor.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,14 @@ public class FFTResult {
7474
}
7575

7676
class FFTProcessor {
77-
enum WindowType {
77+
public enum WindowType {
7878
case none
7979
case hanning
8080
case hamming
8181
}
8282

83-
let bufferSize: vDSP_Length
84-
let windowType: WindowType
83+
public let bufferSize: vDSP_Length
84+
public let windowType: WindowType
8585

8686
private let bufferHalfSize: vDSP_Length
8787
private let bufferLog2Size: vDSP_Length

0 commit comments

Comments
 (0)