aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
diff options
context:
space:
mode:
Diffstat (limited to 'Alc')
-rw-r--r--Alc/alc.cpp10
-rw-r--r--Alc/backends/alsa.cpp6
-rw-r--r--Alc/backends/base.cpp6
-rw-r--r--Alc/backends/base.h12
-rw-r--r--Alc/backends/jack.cpp4
-rw-r--r--Alc/backends/opensl.cpp4
-rw-r--r--Alc/backends/pulseaudio.cpp4
-rw-r--r--Alc/backends/wasapi.cpp4
8 files changed, 25 insertions, 25 deletions
diff --git a/Alc/alc.cpp b/Alc/alc.cpp
index a5238aa5..a8ea1c53 100644
--- a/Alc/alc.cpp
+++ b/Alc/alc.cpp
@@ -3416,10 +3416,10 @@ ALC_API void ALC_APIENTRY alcGetInteger64vSOFT(ALCdevice *device, ALCenum pname,
ClockLatency clock{GetClockLatency(device)};
values[i++] = ALC_DEVICE_CLOCK_SOFT;
- values[i++] = clock.ClockTime;
+ values[i++] = clock.ClockTime.count();
values[i++] = ALC_DEVICE_LATENCY_SOFT;
- values[i++] = clock.Latency;
+ values[i++] = clock.Latency.count();
values[i++] = 0;
}
@@ -3444,7 +3444,7 @@ ALC_API void ALC_APIENTRY alcGetInteger64vSOFT(ALCdevice *device, ALCenum pname,
case ALC_DEVICE_LATENCY_SOFT:
{ std::lock_guard<almtx_t> _{device->BackendLock};
ClockLatency clock{GetClockLatency(device)};
- *values = clock.Latency;
+ *values = clock.Latency.count();
}
break;
@@ -3455,8 +3455,8 @@ ALC_API void ALC_APIENTRY alcGetInteger64vSOFT(ALCdevice *device, ALCenum pname,
{
std::lock_guard<almtx_t> _{device->BackendLock};
ClockLatency clock{GetClockLatency(device)};
- values[0] = clock.ClockTime;
- values[1] = clock.Latency;
+ values[0] = clock.ClockTime.count();
+ values[1] = clock.Latency.count();
}
break;
diff --git a/Alc/backends/alsa.cpp b/Alc/backends/alsa.cpp
index e1e861db..35c1f834 100644
--- a/Alc/backends/alsa.cpp
+++ b/Alc/backends/alsa.cpp
@@ -915,7 +915,8 @@ ClockLatency ALCplaybackAlsa_getClockLatency(ALCplaybackAlsa *self)
ERR("Failed to get pcm delay: %s\n", snd_strerror(err));
delay = 0;
}
- ret.Latency = std::max<snd_pcm_sframes_t>(0, delay) * DEVICE_CLOCK_RES / device->Frequency;
+ ret.Latency = std::chrono::seconds{std::max<snd_pcm_sframes_t>(0, delay)};
+ ret.Latency /= device->Frequency;
ALCplaybackAlsa_unlock(self);
return ret;
@@ -1286,7 +1287,8 @@ ClockLatency ALCcaptureAlsa_getClockLatency(ALCcaptureAlsa *self)
ERR("Failed to get pcm delay: %s\n", snd_strerror(err));
delay = 0;
}
- ret.Latency = std::max<snd_pcm_sframes_t>(0, delay) * DEVICE_CLOCK_RES / device->Frequency;
+ ret.Latency = std::chrono::seconds{std::max<snd_pcm_sframes_t>(0, delay)};
+ ret.Latency /= device->Frequency;
ALCcaptureAlsa_unlock(self);
return ret;
diff --git a/Alc/backends/base.cpp b/Alc/backends/base.cpp
index 1839d353..e4c7588c 100644
--- a/Alc/backends/base.cpp
+++ b/Alc/backends/base.cpp
@@ -18,7 +18,7 @@ void ALCdevice_Unlock(ALCdevice *device)
ClockLatency GetClockLatency(ALCdevice *device)
{
ClockLatency ret = V0(device->Backend,getClockLatency)();
- ret.Latency += device->FixedLatency.count();
+ ret.Latency += device->FixedLatency;
return ret;
}
@@ -65,8 +65,8 @@ ClockLatency ALCbackend_getClockLatency(ALCbackend *self)
* any given time during playback. Without a more accurate measurement from
* the output, this is an okay approximation.
*/
- ret.Latency = device->UpdateSize * DEVICE_CLOCK_RES / device->Frequency *
- maxu(device->NumUpdates-1, 1);
+ ret.Latency = std::chrono::seconds{device->UpdateSize*maxi(device->NumUpdates-1, 0)};
+ ret.Latency /= device->Frequency;
return ret;
}
diff --git a/Alc/backends/base.h b/Alc/backends/base.h
index db2127ef..f4de5176 100644
--- a/Alc/backends/base.h
+++ b/Alc/backends/base.h
@@ -3,28 +3,26 @@
#include "alMain.h"
+#include <chrono>
#include <string>
#include <mutex>
struct ClockLatency {
- /* FIXME: These should be nanoseconds. Will require changing backends that
- * provide this info.
- */
- ALint64 ClockTime;
- ALint64 Latency;
+ std::chrono::nanoseconds ClockTime;
+ std::chrono::nanoseconds Latency;
};
/* Helper to get the current clock time from the device's ClockBase, and
* SamplesDone converted from the sample rate.
*/
-inline ALuint64 GetDeviceClockTime(ALCdevice *device)
+inline std::chrono::nanoseconds GetDeviceClockTime(ALCdevice *device)
{
using std::chrono::seconds;
using std::chrono::nanoseconds;
using std::chrono::duration_cast;
auto ns = duration_cast<nanoseconds>(seconds{device->SamplesDone}) / device->Frequency;
- return (device->ClockBase + ns).count();
+ return device->ClockBase + ns;
}
void ALCdevice_Lock(ALCdevice *device);
diff --git a/Alc/backends/jack.cpp b/Alc/backends/jack.cpp
index 93dbaf13..cd02388d 100644
--- a/Alc/backends/jack.cpp
+++ b/Alc/backends/jack.cpp
@@ -503,8 +503,8 @@ static ClockLatency ALCjackPlayback_getClockLatency(ALCjackPlayback *self)
ALCjackPlayback_lock(self);
ret.ClockTime = GetDeviceClockTime(device);
- ret.Latency = ll_ringbuffer_read_space(self->Ring) * DEVICE_CLOCK_RES /
- device->Frequency;
+ ret.Latency = std::chrono::seconds{ll_ringbuffer_read_space(self->Ring)};
+ ret.Latency /= device->Frequency;
ALCjackPlayback_unlock(self);
return ret;
diff --git a/Alc/backends/opensl.cpp b/Alc/backends/opensl.cpp
index 2c516021..f7ad1595 100644
--- a/Alc/backends/opensl.cpp
+++ b/Alc/backends/opensl.cpp
@@ -654,8 +654,8 @@ static ClockLatency ALCopenslPlayback_getClockLatency(ALCopenslPlayback *self)
ALCopenslPlayback_lock(self);
ret.ClockTime = GetDeviceClockTime(device);
- ret.Latency = ll_ringbuffer_read_space(self->mRing)*device->UpdateSize *
- DEVICE_CLOCK_RES / device->Frequency;
+ ret.Latency = std::chrono::seconds{ll_ringbuffer_read_space(self->mRing)*device->UpdateSize};
+ ret.Latency /= device->Frequency;
ALCopenslPlayback_unlock(self);
return ret;
diff --git a/Alc/backends/pulseaudio.cpp b/Alc/backends/pulseaudio.cpp
index d0c1c229..9563cdd4 100644
--- a/Alc/backends/pulseaudio.cpp
+++ b/Alc/backends/pulseaudio.cpp
@@ -1213,7 +1213,7 @@ ClockLatency PulsePlayback_getClockLatency(PulsePlayback *self)
}
else if(UNLIKELY(neg))
latency = 0;
- ret.Latency = (ALint64)minu64(latency, U64(0x7fffffffffffffff)/1000) * 1000;
+ ret.Latency = std::chrono::microseconds{latency};
return ret;
}
@@ -1714,7 +1714,7 @@ ClockLatency PulseCapture_getClockLatency(PulseCapture *self)
}
else if(UNLIKELY(neg))
latency = 0;
- ret.Latency = (ALint64)minu64(latency, U64(0x7fffffffffffffff)/1000) * 1000;
+ ret.Latency = std::chrono::microseconds{latency};
return ret;
}
diff --git a/Alc/backends/wasapi.cpp b/Alc/backends/wasapi.cpp
index e531a9ae..52f324f7 100644
--- a/Alc/backends/wasapi.cpp
+++ b/Alc/backends/wasapi.cpp
@@ -1145,8 +1145,8 @@ ClockLatency ALCwasapiPlayback_getClockLatency(ALCwasapiPlayback *self)
ALCwasapiPlayback_lock(self);
ALCdevice *device{STATIC_CAST(ALCbackend, self)->mDevice};
ret.ClockTime = GetDeviceClockTime(device);
- ret.Latency = self->mPadding.load(std::memory_order_relaxed) * DEVICE_CLOCK_RES /
- device->Frequency;
+ ret.Latency = std::chrono::seconds{self->mPadding.load(std::memory_order_relaxed)};
+ ret.Latency /= device->Frequency;
ALCwasapiPlayback_unlock(self);
return ret;