import CallsKit import Foundation import LiveKitWebRTC // Test-only audio device. No samples are captured or rendered. WebRTC invokes // this protocol serially on its audio thread, as specified by RTCAudioDevice. final class SilentAudioDevice: NSObject, RTCAudioDevice { let deviceInputSampleRate = 48000.0 let deviceOutputSampleRate = 48000.0 let inputIOBufferDuration = 0.01 let outputIOBufferDuration = 0.01 let inputNumberOfChannels = 1 let outputNumberOfChannels = 1 let inputLatency = 0.0 let outputLatency = 0.0 var isInitialized = false var isPlayoutInitialized = false var isRecordingInitialized = false var isPlaying = false var isRecording = false func initialize(with delegate: RTCAudioDeviceDelegate) -> Bool { isInitialized = true return true } func terminateDevice() -> Bool { isInitialized = false isPlaying = false isRecording = false return true } func initializePlayout() -> Bool { isPlayoutInitialized = true return true } func startPlayout() -> Bool { isPlaying = true return true } func stopPlayout() -> Bool { isPlaying = false return true } func initializeRecording() -> Bool { isRecordingInitialized = true return true } func startRecording() -> Bool { isRecording = true return true } func stopRecording() -> Bool { isRecording = false return true } }