29#include <mach/mach_time.h>
34struct CoreAudioTimeConversions
37 CoreAudioTimeConversions()
39 mach_timebase_info_data_t info{};
40 mach_timebase_info (&info);
41 numerator = info.numer;
42 denominator = info.denom;
45 uint64_t hostTimeToNanos (uint64_t hostTime)
const
47 return multiplyByRatio (hostTime, numerator, denominator);
50 uint64_t nanosToHostTime (uint64_t nanos)
const
52 return multiplyByRatio (nanos, denominator, numerator);
57 static uint64_t multiplyByRatio (uint64_t toMultiply, uint64_t numerator, uint64_t denominator)
59 #if defined (__SIZEOF_INT128__)
66 if (numerator != denominator)
69 result /= denominator;
72 return (uint64_t) result;
75 uint64_t numerator = 0, denominator = 0;