Cog/Transformers/NumberHertzToStringTransformer.swift
Christopher Snowhill 830d3bf3be [Info Inspector] Improve formatting of sample rate
Sample rate now has a locale independent formatting, and no longer uses
scientific notation for large numbers.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-06-30 00:28:03 -07:00

31 lines
811 B
Swift

//
// NumberHertzToStringTransformer.swift
// Cog
//
// Created by Christopher Snowhill on 6/29/22.
//
import Cocoa
@objc(NumberHertzToStringTransformer)
public final class NumberHertzToStringTransformer: ValueTransformer {
fileprivate static var floatFormatter: NumberFormatter {
let formatter = NumberFormatter()
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 0
formatter.minimumIntegerDigits = 1
formatter.roundingIncrement = 0.5
formatter.usesGroupingSeparator = true
formatter.groupingSeparator = ","
formatter.groupingSize = 3
return formatter
}
override public func transformedValue(_ value: Any?) -> Any? {
if let value = value as? NSNumber {
return "\(NumberHertzToStringTransformer.floatFormatter.string(from: value)!) Hz"
}
return nil
}
}