Skip to content

Commit

Permalink
fix silly spelling mistake in public API
Browse files Browse the repository at this point in the history
Unfortunately this a backwards incompatible change to the public API,
so this will go out as a new major release. I decided against @deprecating it
since it's in too many places and too confusing with two almost identical
spellings. Plus it should mostly be an easy Find+Replace fix to migrate.

fixes #64
  • Loading branch information
dmrschmidt committed Apr 21, 2023
1 parent f46cf06 commit cc52054
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 59 deletions.
27 changes: 14 additions & 13 deletions Example/DSWaveformImageExample-iOS/Base.lproj/Main.storyboard
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21225" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="Pyc-yZ-fIy">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="Pyc-yZ-fIy">
<device id="retina4_0" orientation="portrait" appearance="light"/>
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21207"/>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
<capability name="System colors in document resources" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
Expand All @@ -20,28 +21,28 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<stackView opaque="NO" contentMode="scaleAspectFit" axis="vertical" distribution="fillEqually" translatesAutoresizingMaskIntoConstraints="NO" id="w9S-UI-8uW">
<rect key="frame" x="0.0" y="0.0" width="320" height="519"/>
<rect key="frame" x="0.0" y="20" width="320" height="499"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="3wf-8h-Skp">
<rect key="frame" x="0.0" y="0.0" width="320" height="173"/>
<rect key="frame" x="0.0" y="0.0" width="320" height="166.5"/>
<constraints>
<constraint firstAttribute="width" secondItem="3wf-8h-Skp" secondAttribute="height" multiplier="16:9" priority="900" id="Eou-Wo-W75"/>
</constraints>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="J48-qg-hXd" customClass="WaveformImageView" customModule="DSWaveformImageViews">
<rect key="frame" x="0.0" y="173" width="320" height="173"/>
<rect key="frame" x="0.0" y="166.5" width="320" height="166"/>
<constraints>
<constraint firstAttribute="width" secondItem="J48-qg-hXd" secondAttribute="height" multiplier="16:9" priority="900" id="t5F-rm-fdn"/>
</constraints>
</imageView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CYg-li-IN5" userLabel="Blend Mode Illustration View">
<rect key="frame" x="0.0" y="346" width="320" height="173"/>
<rect key="frame" x="0.0" y="332.5" width="320" height="166.5"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="background" translatesAutoresizingMaskIntoConstraints="NO" id="1Wo-Xw-tr3">
<rect key="frame" x="0.0" y="0.0" width="320" height="173"/>
<rect key="frame" x="0.0" y="0.0" width="320" height="166.5"/>
</imageView>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="aQM-Ik-oVa">
<rect key="frame" x="0.0" y="0.0" width="320" height="173"/>
<rect key="frame" x="0.0" y="0.0" width="320" height="166.5"/>
<constraints>
<constraint firstAttribute="width" secondItem="aQM-Ik-oVa" secondAttribute="height" multiplier="16:9" priority="900" id="Exg-81-t2N"/>
</constraints>
Expand Down Expand Up @@ -129,13 +130,13 @@
</connections>
</button>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="rcG-A7-gKZ" customClass="WaveformLiveView" customModule="DSWaveformImageViews">
<rect key="frame" x="16" y="220" width="288" height="253"/>
<rect key="frame" x="16" y="240" width="288" height="233"/>
<color key="backgroundColor" systemColor="systemGray6Color"/>
</view>
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="GbK-7o-DjF">
<rect key="frame" x="16" y="8" width="288" height="204"/>
<rect key="frame" x="16" y="28" width="288" height="204"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Dampening" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hy1-ka-Pzi">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Damping" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hy1-ka-Pzi">
<rect key="frame" x="0.0" y="0.0" width="288" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
Expand All @@ -149,13 +150,13 @@
<segment title="Both"/>
</segments>
<connections>
<action selector="didChangeDampeningSides:" destination="ogB-yT-rId" eventType="valueChanged" id="Aic-e2-phE"/>
<action selector="didChangeDampingSides:" destination="ogB-yT-rId" eventType="valueChanged" id="Aic-e2-phE"/>
</connections>
</segmentedControl>
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.125" minValue="0.0" maxValue="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="NxC-DE-nEF">
<rect key="frame" x="-2" y="67.5" width="292" height="31"/>
<connections>
<action selector="didChangeDampeningPercentage:" destination="ogB-yT-rId" eventType="valueChanged" id="9Lo-lS-QDh"/>
<action selector="didChangeDampingPercentage:" destination="ogB-yT-rId" eventType="valueChanged" id="9Lo-lS-QDh"/>
</connections>
</slider>
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="HQx-IP-opZ">
Expand Down
10 changes: 5 additions & 5 deletions Example/DSWaveformImageExample-iOS/RecordingViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,15 +39,15 @@ class RecordingViewController: UIViewController {
waveformView.shouldDrawSilencePadding = sender.isOn
}

@IBAction func didChangeDampeningPercentage(_ sender: UISlider) {
@IBAction func didChangeDampingPercentage(_ sender: UISlider) {
waveformView.configuration = waveformView.configuration.with(
dampening: waveformView.configuration.dampening?.with(percentage: sender.value)
damping: waveformView.configuration.damping?.with(percentage: sender.value)
)
}

@IBAction func didChangeDampeningSides(_ sender: UISegmentedControl) {
@IBAction func didChangeDampingSides(_ sender: UISegmentedControl) {
waveformView.configuration = waveformView.configuration.with(
dampening: waveformView.configuration.dampening?.with(
damping: waveformView.configuration.damping?.with(
sides: sideForSelection(index: sender.selectedSegmentIndex)
)
)
Expand All @@ -73,7 +73,7 @@ class RecordingViewController: UIViewController {
}
}

private func sideForSelection(index: Int) -> Waveform.Dampening.Sides {
private func sideForSelection(index: Int) -> Waveform.Damping.Sides {
switch index {
case 0: return .left
case 1: return .right
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ struct RecordingIndicatorView: View {

@State var configuration: Waveform.Configuration = .init(
style: .striped(.init(color: .systemGray, width: 3, spacing: 3)),
dampening: .init()
damping: .init()
)

static let timeFormatter: DateComponentsFormatter = {
Expand Down
2 changes: 1 addition & 1 deletion Example/DSWaveformImageExample-iOS/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class ViewController: UIViewController {
UIColor.red
]
),
dampening: .init(percentage: 0.2, sides: .right, easing: { x in pow(x, 4) }),
damping: .init(percentage: 0.2, sides: .right, easing: { x in pow(x, 4) }),
verticalScalingFactor: 2),
renderer: CircularWaveformRenderer()
) { image in
Expand Down
4 changes: 2 additions & 2 deletions Sources/DSWaveformImage/WaveformImageDrawer+iOS.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ public extension WaveformImageDrawer {
let format = UIGraphicsImageRendererFormat()
format.scale = configuration.scale
let imageRenderer = UIGraphicsImageRenderer(size: configuration.size, format: format)
let dampenedSamples = configuration.shouldDampen ? dampen(samples, with: configuration) : samples
let dampedSamples = configuration.shouldDamp ? damp(samples, with: configuration) : samples

return imageRenderer.image { renderContext in
draw(on: renderContext.cgContext, from: dampenedSamples, with: configuration, renderer: renderer)
draw(on: renderContext.cgContext, from: dampedSamples, with: configuration, renderer: renderer)
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions Sources/DSWaveformImage/WaveformImageDrawer+macOS.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ public extension WaveformImageDrawer {
return nil
}

let dampenedSamples = configuration.shouldDampen ? dampen(samples, with: configuration) : samples
let dampedSamples = configuration.shouldDamp ? damp(samples, with: configuration) : samples
return NSImage(size: configuration.size, flipped: false) { rect in
guard let context = NSGraphicsContext.current?.cgContext else {
fatalError("Missing context")
}
self.draw(on: context, from: dampenedSamples, with: configuration, renderer: renderer)
self.draw(on: context, from: dampedSamples, with: configuration, renderer: renderer)
return true
}
}
Expand Down
30 changes: 15 additions & 15 deletions Sources/DSWaveformImage/WaveformImageDrawer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@ extension WaveformImageDrawer {
// move the window, so that its always at the end (appears to move from right to left)
let startSample = max(0, samples.count - samplesNeeded)
let clippedSamples = Array(samples[startSample..<samples.count])
let dampenedSamples = configuration.shouldDampen ? dampen(clippedSamples, with: configuration) : clippedSamples
let paddedSamples = shouldDrawSilencePadding ? Array(repeating: 1, count: samplesNeeded - clippedSamples.count) + dampenedSamples : dampenedSamples
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)
}
Expand All @@ -98,15 +98,15 @@ extension WaveformImageDrawer {
renderer.render(samples: samples, on: context, with: configuration, lastOffset: lastOffset)
}

/// Dampen the samples for a smoother animation.
func dampen(_ samples: [Float], with configuration: Waveform.Configuration) -> [Float] {
guard let dampening = configuration.dampening, dampening.percentage > 0 else {
/// Damp the samples for a smoother animation.
func damp(_ samples: [Float], with configuration: Waveform.Configuration) -> [Float] {
guard let damping = configuration.damping, damping.percentage > 0 else {
return samples
}

let count = Float(samples.count)
return samples.enumerated().map { x, value -> Float in
1 - ((1 - value) * dampFactor(x: Float(x), count: count, with: dampening))
1 - ((1 - value) * dampFactor(x: Float(x), count: count, with: damping))
}
}
}
Expand All @@ -125,8 +125,8 @@ private extension WaveformImageDrawer {
completionHandler(nil)
return
}
let dampenedSamples = configuration.shouldDampen ? self.dampen(samples, with: configuration) : samples
completionHandler(self.waveformImage(from: dampenedSamples, with: configuration, renderer: renderer))
let dampedSamples = configuration.shouldDamp ? self.damp(samples, with: configuration) : samples
completionHandler(self.waveformImage(from: dampedSamples, with: configuration, renderer: renderer))
}
}

Expand Down Expand Up @@ -155,15 +155,15 @@ private extension WaveformImageDrawer {
}
}

private func dampFactor(x: Float, count: Float, with dampening: Waveform.Dampening) -> Float {
if (dampening.sides == .left || dampening.sides == .both) && x < count * dampening.percentage {
// increasing linear dampening within the left 8th (default)
private func dampFactor(x: Float, count: Float, with damping: Waveform.Damping) -> Float {
if (damping.sides == .left || damping.sides == .both) && x < count * damping.percentage {
// increasing linear damping within the left 8th (default)
// basically (x : 1/8) with x in (0..<1/8)
return dampening.easing(x / (count * dampening.percentage))
} else if (dampening.sides == .right || dampening.sides == .both) && x > ((1 / dampening.percentage) - 1) * (count * dampening.percentage) {
// decaying linear dampening within the right 8th
return damping.easing(x / (count * damping.percentage))
} else if (damping.sides == .right || damping.sides == .both) && x > ((1 / damping.percentage) - 1) * (count * damping.percentage) {
// decaying linear damping within the right 8th
// basically also (x : 1/8), but since x in (7/8>...1) x is "inverted" as x = x - 7/8
return dampening.easing(1 - (x - (((1 / dampening.percentage) - 1) * (count * dampening.percentage))) / (count * dampening.percentage))
return damping.easing(1 - (x - (((1 / damping.percentage) - 1) * (count * damping.percentage))) / (count * damping.percentage))
}
return 1
}
Expand Down
Loading

0 comments on commit cc52054

Please sign in to comment.