minor tidyup

This commit is contained in:
Nick Payne
2025-07-29 10:14:49 +01:00
parent fd82e3d9d9
commit 71b0c45a5c
5 changed files with 9 additions and 30 deletions
+2 -4
View File
@@ -96,12 +96,10 @@ public class AudioBuffer {
availableBytes -= bytesPerChunk availableBytes -= bytesPerChunk
let packet = AudioPacket( return AudioPacket(
timestamp: Date(), timestamp: Date(),
duration: chunkDuration, duration: chunkDuration,
rawAudioData: chunkData data: chunkData
) )
return packet
} }
} }
+3 -19
View File
@@ -54,7 +54,7 @@ public class AudioFormatConverter {
} }
public func transform(_ packet: AudioPacket) -> AudioPacket { public func transform(_ packet: AudioPacket) -> AudioPacket {
let inputData = packet.rawAudioData let inputData = packet.data
// Calculate frame counts // Calculate frame counts
let inputFrameCount = let inputFrameCount =
@@ -119,16 +119,10 @@ public class AudioFormatConverter {
return AudioPacket( return AudioPacket(
timestamp: packet.timestamp, timestamp: packet.timestamp,
duration: packet.duration, duration: packet.duration,
rawAudioData: outputData data: outputData
) )
} }
}
// MARK: - Convenience Constructors
extension AudioFormatConverter {
/// Create a converter to a specific sample rate with mono PCM 16-bit output
/// Since the tap already converts to mono, we hardcode channels to 1
public static func toSampleRate( public static func toSampleRate(
_ sampleRate: Double, from sourceFormat: AudioStreamBasicDescription _ sampleRate: Double, from sourceFormat: AudioStreamBasicDescription
) throws -> AudioFormatConverter { ) throws -> AudioFormatConverter {
@@ -145,17 +139,7 @@ extension AudioFormatConverter {
return try AudioFormatConverter(sourceFormat: sourceFormat, targetFormat: targetFormat) return try AudioFormatConverter(sourceFormat: sourceFormat, targetFormat: targetFormat)
} }
/// Common sample rates for validation
public static let supportedSampleRates: [Double] = [
8000, 16000, 22050, 24000, 32000, 44100, 48000,
]
/// Validate if a sample rate is supported
public static func isValidSampleRate(_ sampleRate: Double) -> Bool { public static func isValidSampleRate(_ sampleRate: Double) -> Bool {
return supportedSampleRates.contains(sampleRate) return [8000, 16000, 22050, 24000, 32000, 44100, 48000].contains(sampleRate)
} }
} }
// MARK: - Error Types
// AudioConverterError moved to Sources/Core/Errors/AudioTeeErrors.swift
+3 -3
View File
@@ -3,15 +3,15 @@ import Foundation
public struct AudioPacket { public struct AudioPacket {
public let timestamp: Date public let timestamp: Date
public let duration: Double public let duration: Double
public let rawAudioData: Data public let data: Data
public init( public init(
timestamp: Date, timestamp: Date,
duration: Double, duration: Double,
rawAudioData: Data data: Data
) { ) {
self.timestamp = timestamp self.timestamp = timestamp
self.duration = duration self.duration = duration
self.rawAudioData = rawAudioData self.data = data
} }
} }
@@ -6,7 +6,7 @@ public class BinaryAudioOutputHandler: AudioOutputHandler {
public func handleAudioPacket(_ packet: AudioPacket) { public func handleAudioPacket(_ packet: AudioPacket) {
// Write raw binary audio data directly to stdout // Write raw binary audio data directly to stdout
FileHandle.standardOutput.write(packet.rawAudioData) FileHandle.standardOutput.write(packet.data)
} }
public func handleMetadata(_ metadata: AudioStreamMetadata) { public func handleMetadata(_ metadata: AudioStreamMetadata) {
-3
View File
@@ -7,9 +7,6 @@ public enum MessageType: String, Codable {
case streamStart = "stream_start" case streamStart = "stream_start"
case streamStop = "stream_stop" case streamStop = "stream_stop"
// Audio data
case audio
// Logging // Logging
case info case info
case error case error