Skip to content

Commit 56c6483

Browse files
committed
Some nits
Signed-off-by: dimitris-c <d.chatzieleftheriou@gmail.com>
1 parent fca0930 commit 56c6483

2 files changed

Lines changed: 36 additions & 30 deletions

File tree

AudioStreaming/Core/Network/NetworkingClient.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,15 @@ enum DataStreamError: Error {
1313
public enum NetworkError: Error, Equatable {
1414
case failure(Error)
1515
case serverError
16+
case missingData
1617
public static func == (lhs: NetworkError, rhs: NetworkError) -> Bool {
1718
switch (lhs, rhs) {
1819
case (.failure, failure):
1920
return true
2021
case (.serverError, .serverError):
2122
return true
23+
case (.missingData, .missingData):
24+
return true
2225
default:
2326
return false
2427
}

AudioStreaming/Streaming/Audio Source/RemoteAudioSource.swift

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ public class RemoteAudioSource: AudioStreamSource {
151151
guard let self = self else { return }
152152
guard connection.isConnected else { return }
153153
if self.waitingForNetwork {
154-
self.seek(at: self.supportsSeek ? self.position : 0 )
154+
self.seek(at: self.supportsSeek ? self.position : 0)
155155
self.waitingForNetwork = false
156156
}
157157
}
@@ -177,8 +177,10 @@ public class RemoteAudioSource: AudioStreamSource {
177177
case let .response(urlResponse):
178178
parseResponseHeader(response: urlResponse)
179179
streamOperationQueue.isSuspended = false
180-
case let .stream(event):
181-
handleStreamEvent(event: event)
180+
case let .stream(.success(response)):
181+
handleSuccessfulStreamEvent(response: response)
182+
case let .stream(.failure(error)):
183+
handleFailedStreamEvent(error: error)
182184
case let .complete(event):
183185
if let error = event.error {
184186
delegate?.errorOccurred(source: self, error: error)
@@ -191,38 +193,39 @@ public class RemoteAudioSource: AudioStreamSource {
191193
}
192194
}
193195

194-
private func handleStreamEvent(event: NetworkDataStream.StreamResult) {
195-
switch event {
196-
case let .success(value):
197-
if let audioData = value.data {
198-
addStreamOperation { [weak self] in
199-
guard let self = self else { return }
200-
if self.shouldTryParsingIcycastHeaders {
201-
let (header, extractedAudio) = self.icycastHeadersProcessor.process(data: audioData)
202-
if let header = header {
203-
self.shouldTryParsingIcycastHeaders = false
204-
let parser = IcycastHeaderParser()
205-
self.parsedHeaderOutput = parser.parse(input: header)
206-
if let metadataStep = self.parsedHeaderOutput?.metadataStep {
207-
self.metadataStreamProcessor.metadataAvailable(step: metadataStep)
208-
}
209-
}
210-
let audioCount = self.processAudio(data: extractedAudio)
211-
self.relativePosition += audioCount
212-
return
196+
private func handleSuccessfulStreamEvent(response: NetworkDataStream.Response) {
197+
guard let audioData = response.data else {
198+
self.delegate?.errorOccurred(source: self, error: NetworkError.missingData)
199+
return
200+
}
201+
addStreamOperation { [weak self] in
202+
guard let self = self else { return }
203+
if self.shouldTryParsingIcycastHeaders {
204+
let (header, extractedAudio) = self.icycastHeadersProcessor.process(data: audioData)
205+
if let header = header {
206+
self.shouldTryParsingIcycastHeaders = false
207+
let parser = IcycastHeaderParser()
208+
self.parsedHeaderOutput = parser.parse(input: header)
209+
if let metadataStep = self.parsedHeaderOutput?.metadataStep {
210+
self.metadataStreamProcessor.metadataAvailable(step: metadataStep)
213211
}
214-
let audioCount = self.processAudio(data: audioData)
215-
self.relativePosition += audioCount
216212
}
217-
}
218-
case .failure:
219-
if !netStatusService.isConnected {
220-
waitingForNetwork = true
213+
let audioCount = self.processAudio(data: extractedAudio)
214+
self.relativePosition += audioCount
221215
return
222216
}
223-
waitingForNetwork = false
224-
retryOnError()
217+
let audioCount = self.processAudio(data: audioData)
218+
self.relativePosition += audioCount
219+
}
220+
}
221+
222+
private func handleFailedStreamEvent(error: Error) {
223+
if !netStatusService.isConnected {
224+
waitingForNetwork = true
225+
return
225226
}
227+
waitingForNetwork = false
228+
retryOnError()
226229
}
227230

228231
/// Processing audio data, extracting metadata if needed.

0 commit comments

Comments
 (0)