4#ifndef HART_DO_NOT_ADD_UNITS
36#define HART_DECLARE_ALIASES_FOR_UNITS
37 constexpr hart::Unit native = hart::Unit::native;
38 constexpr hart::Unit linear = hart::Unit::linear;
39 constexpr hart::Unit dB = hart::Unit::dB;
40 constexpr hart::Unit frames = hart::Unit::frames;
41 constexpr hart::Unit seconds = hart::Unit::seconds;
42 constexpr hart::Unit Hz = hart::Unit::Hz;
43 constexpr hart::Unit ratio = hart::Unit::ratio;
44 constexpr hart::Unit none = hart::Unit::none;
52constexpr double operator"" _s (
long double val) {
return static_cast<
double> (val); }
53constexpr double operator"" _s (
unsigned long long int val) {
return static_cast<
double> (val); }
54constexpr double operator"" _ms (
long double val) {
return static_cast<
double> (1e-3 * val); }
55constexpr double operator"" _ms (
unsigned long long int val) {
return static_cast<
double> (1e-3 * val); }
56constexpr double operator"" _us (
long double val) {
return static_cast<
double> (1e-6 * val); }
57constexpr double operator"" _us (
unsigned long long int val) {
return static_cast<
double> (1e-6 * val); }
58constexpr double operator"" _ns (
long double val) {
return static_cast<
double> (1e-9 * val); }
59constexpr double operator"" _ns (
unsigned long long int val) {
return static_cast<
double> (1e-9 * val); }
60constexpr double operator"" _dB (
long double val) {
return static_cast<
double> (val); }
61constexpr double operator"" _dB (
unsigned long long int val) {
return static_cast<
double> (val); }
62constexpr double operator"" _dBTP (
long double val) {
return static_cast<
double> (val); }
63constexpr double operator"" _dBTP (
unsigned long long int val) {
return static_cast<
double> (val); }
64constexpr double operator"" _Hz (
long double val) {
return static_cast<
double> (val); }
65constexpr double operator"" _Hz (
unsigned long long int val) {
return static_cast<
double> (val); }
66constexpr double operator"" _kHz (
long double val) {
return static_cast<
double> (1e3 * val); }
67constexpr double operator"" _kHz (
unsigned long long val) {
return static_cast<
double> (1e3 * val); }
68constexpr double operator"" _rad (
long double val) {
return static_cast<
double> (val); }
69constexpr double operator"" _rad (
unsigned long long val) {
return static_cast<
double>(val); }
71constexpr double operator"" _deg (
unsigned long long val) {
return static_cast<
double>(val) *
hart::pi / 180.0; }
72constexpr double operator"" _cents (
long double val) {
return static_cast<
double> (val); }
73constexpr double operator"" _cents (
unsigned long long val) {
return static_cast<
double>(val); }
double operator""_dB_as_ratio(long double val)
constexpr double operator""_dBTP(long double val)
constexpr double operator""_us(unsigned long long int val)
constexpr double operator""_kHz(unsigned long long val)
constexpr double halfPi_rad
constexpr double twoPi_rad
constexpr double operator""_cents(unsigned long long val)
constexpr double operator""_Hz(unsigned long long int val)
constexpr double operator""_s(long double val)
constexpr double operator""_dB(unsigned long long int val)
constexpr double operator""_rad(long double val)
constexpr double operator""_s(unsigned long long int val)
constexpr double operator""_ns(unsigned long long int val)
double operator""_dB_as_ratio(unsigned long long int val)
constexpr double operator""_ms(unsigned long long int val)
constexpr double operator""_dB(long double val)
double operator""_ratio_as_dB(unsigned long long int val)
double operator""_ratio_as_dB(long double val)
constexpr double operator""_deg(long double val)
constexpr double operator""_cents(long double val)
constexpr double operator""_kHz(long double val)
constexpr double operator""_deg(unsigned long long val)
constexpr double operator""_us(long double val)
constexpr double operator""_rad(unsigned long long val)
constexpr double operator""_Hz(long double val)
constexpr double operator""_dBTP(unsigned long long int val)
constexpr double operator""_ms(long double val)
constexpr double operator""_ns(long double val)
constexpr double twoPi
2 * pi
constexpr double halfPi
pi / 2
constexpr double inf
Infinity.
static SampleType ratioToDecibels(SampleType valueLinear)
Converts linear value (ratio) to dB.
static SampleType decibelsToRatio(SampleType valueDb)
Converts dB to linear value (ratio)
Unit
Represents a physical unit.
@ dB
Value of something in decibels. Can represent voltage, power, or a domain-specific unit like "LUFS" o...
@ seconds
Time stamps, intervals, durations.
@ native
Default (native) unit of whatever returns some value.
@ linear
Value of a sample (voltage) in a linear domain.
@ frames
Value of something in frames (samples)