shared: Add timespec_from_proto helper function
Add helper function to convert tv_sec_hi, tv_sec_lo, tv_nsec triplets, used for sending high-resolution timestamp data over the wayland protocol, to struct timespec values. Replace existing conversion code with the helper function. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
committed by
Pekka Paalanen
parent
c83fdaa555
commit
787fa611de
@@ -34,6 +34,7 @@
|
||||
|
||||
#include "shared/helpers.h"
|
||||
#include "shared/xalloc.h"
|
||||
#include "shared/timespec-util.h"
|
||||
#include "weston-test-client-helper.h"
|
||||
#include "presentation-time-client-protocol.h"
|
||||
|
||||
@@ -85,14 +86,6 @@ struct feedback {
|
||||
uint32_t flags;
|
||||
};
|
||||
|
||||
static void
|
||||
timespec_from_proto(struct timespec *tm, uint32_t tv_sec_hi,
|
||||
uint32_t tv_sec_lo, uint32_t tv_nsec)
|
||||
{
|
||||
tm->tv_sec = ((uint64_t)tv_sec_hi << 32) + tv_sec_lo;
|
||||
tm->tv_nsec = tv_nsec;
|
||||
}
|
||||
|
||||
static void
|
||||
feedback_sync_output(void *data,
|
||||
struct wp_presentation_feedback *presentation_feedback,
|
||||
|
||||
@@ -238,6 +238,23 @@ ZUC_TEST(timespec_test, timespec_from_msec)
|
||||
ZUC_ASSERT_EQ(1000000, a.tv_nsec);
|
||||
}
|
||||
|
||||
ZUC_TEST(timespec_test, timespec_from_proto)
|
||||
{
|
||||
struct timespec a;
|
||||
|
||||
timespec_from_proto(&a, 0, 0, 0);
|
||||
ZUC_ASSERT_EQ(0, a.tv_sec);
|
||||
ZUC_ASSERT_EQ(0, a.tv_nsec);
|
||||
|
||||
timespec_from_proto(&a, 0, 1234, 9999);
|
||||
ZUC_ASSERT_EQ(1234, a.tv_sec);
|
||||
ZUC_ASSERT_EQ(9999, a.tv_nsec);
|
||||
|
||||
timespec_from_proto(&a, 0x1234, 0x5678, 1);
|
||||
ZUC_ASSERT_EQ((time_t)0x0000123400005678LL, a.tv_sec);
|
||||
ZUC_ASSERT_EQ(1, a.tv_nsec);
|
||||
}
|
||||
|
||||
ZUC_TEST(timespec_test, timespec_is_zero)
|
||||
{
|
||||
struct timespec zero = { 0 };
|
||||
|
||||
Reference in New Issue
Block a user