diff --git a/Sources/DSWaveformImage/WaveformImageDrawer+macOS.swift b/Sources/DSWaveformImage/WaveformImageDrawer+macOS.swift index 1b6a92a..34bcdc4 100644 --- a/Sources/DSWaveformImage/WaveformImageDrawer+macOS.swift +++ b/Sources/DSWaveformImage/WaveformImageDrawer+macOS.swift @@ -8,7 +8,7 @@ public extension WaveformImageDrawer { /// Renders a DSImage of the provided waveform samples. /// /// Samples need to be normalized within interval `(0...1)`. - func waveformImage(from samples: [Float], with configuration: Waveform.Configuration, renderer: WaveformRenderer) -> DSImage? { + func waveformImage(from samples: [Float], with configuration: Waveform.Configuration, renderer: WaveformRenderer, position: Waveform.Position = .middle) -> DSImage? { guard samples.count > 0, samples.count == Int(configuration.size.width * configuration.scale) else { print("ERROR: samples: \(samples.count) != \(configuration.size.width) * \(configuration.scale)") return nil @@ -19,7 +19,7 @@ public extension WaveformImageDrawer { guard let context = NSGraphicsContext.current?.cgContext else { fatalError("Missing context") } - self.draw(on: context, from: dampedSamples, with: configuration, renderer: renderer) + self.draw(on: context, from: dampedSamples, with: configuration, renderer: renderer, position: position) return true } } diff --git a/Sources/DSWaveformImage/WaveformImageDrawer.swift b/Sources/DSWaveformImage/WaveformImageDrawer.swift index e4b7014..0b5104e 100644 --- a/Sources/DSWaveformImage/WaveformImageDrawer.swift +++ b/Sources/DSWaveformImage/WaveformImageDrawer.swift @@ -63,7 +63,7 @@ extension WaveformImageDrawer { /// /// Samples need to be normalized within interval `(0...1)`. /// Ensure context size & scale match with the configuration's size & scale. - public func draw(waveform samples: [Float], on context: CGContext, with configuration: Waveform.Configuration, renderer: WaveformRenderer) { + public func draw(waveform samples: [Float], on context: CGContext, with configuration: Waveform.Configuration, renderer: WaveformRenderer, position: Waveform.Position = .middle) { guard samples.count > 0 || shouldDrawSilencePadding else { return } @@ -95,7 +95,7 @@ extension WaveformImageDrawer { let dampedSamples = configuration.shouldDamp ? damp(clippedSamples, with: configuration) : clippedSamples let paddedSamples = shouldDrawSilencePadding ? Array(repeating: 1, count: samplesNeeded - clippedSamples.count) + dampedSamples : dampedSamples - draw(on: context, from: paddedSamples, with: configuration, renderer: renderer) + draw(on: context, from: paddedSamples, with: configuration, renderer: renderer, position: position) } func draw(on context: CGContext, from samples: [Float], with configuration: Waveform.Configuration, renderer: WaveformRenderer, position: Waveform.Position = .middle) {