use capi;
use std::cmp::Ordering;
use libc::timeval;
pub const MSEC_PER_SEC: ::sample::Usecs = 1000;
pub const USEC_PER_SEC: ::sample::Usecs = 1000000;
pub const NSEC_PER_SEC: u64 = 1000000000;
pub const USEC_PER_MSEC: ::sample::Usecs = 1000;
pub const NSEC_PER_MSEC: u64 = 1000000;
pub const NSEC_PER_USEC: u64 = 1000;
pub const USEC_INVALID: ::sample::Usecs = capi::PA_USEC_INVALID;
pub const USEC_MAX: ::sample::Usecs = capi::PA_USEC_MAX;
pub fn get_time_of_day(tv: &mut timeval) -> &mut timeval {
unsafe { capi::pa_gettimeofday(tv) };
tv
}
pub fn diff(a: &timeval, b: &timeval) -> ::sample::Usecs {
unsafe { capi::pa_timeval_diff(a, b) }
}
pub fn cmp(a: &timeval, b: &timeval) -> Ordering {
match unsafe { capi::pa_timeval_cmp(a, b) } {
0 => Ordering::Equal,
r if r < 0 => Ordering::Less,
_ => Ordering::Greater,
}
}
pub fn age(tv: &timeval) -> ::sample::Usecs {
unsafe { capi::pa_timeval_age(tv) }
}
pub fn add(tv: &mut timeval, v: ::sample::Usecs) {
unsafe { capi::pa_timeval_add(tv, v); }
}
pub fn sub(tv: &mut timeval, v: ::sample::Usecs) {
unsafe { capi::pa_timeval_sub(tv, v); }
}
pub fn set(tv: &mut timeval, v: ::sample::Usecs) {
unsafe { capi::pa_timeval_store(tv, v); }
}
pub fn get(tv: &timeval) -> ::sample::Usecs {
unsafe { capi::pa_timeval_load(tv) }
}