aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/transport
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2010-06-24 20:29:11 -0700
committerJosh Blum <josh@joshknows.com>2010-06-24 20:29:11 -0700
commit51cb8da5837adacbc626ee20aa58264e1b4b7a78 (patch)
treef83bd594377bcafd7e42b92be82ccc157f6e888c /host/lib/transport
parentfadd3a44a84e061412accd35c1c97db820190df8 (diff)
downloaduhd-51cb8da5837adacbc626ee20aa58264e1b4b7a78.tar.gz
uhd-51cb8da5837adacbc626ee20aa58264e1b4b7a78.tar.bz2
uhd-51cb8da5837adacbc626ee20aa58264e1b4b7a78.zip
uhd: reworked time_spec_t to be more flexible: arithmetic, comparison operators...
Replaced nsecs with fractional seconds in units of seconds. Replaced nsecs and secs members with public function members. time_spec_t has a more diverse set of constructors and methods. It can handle the cases where frac secs are greater than 1 second.
Diffstat (limited to 'host/lib/transport')
-rwxr-xr-xhost/lib/transport/gen_vrt.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/host/lib/transport/gen_vrt.py b/host/lib/transport/gen_vrt.py
index d1e553c41..8e0fce9ff 100755
--- a/host/lib/transport/gen_vrt.py
+++ b/host/lib/transport/gen_vrt.py
@@ -97,7 +97,7 @@ void vrt::pack_$(suffix)(
#end if
########## Integer Time ##########
#if $pred & $tsi_p
- header_buff[$num_header_words] = $(XE_MACRO)(metadata.time_spec.secs);
+ header_buff[$num_header_words] = $(XE_MACRO)(boost::uint32_t(metadata.time_spec.get_full_secs()));
#set $num_header_words += 1
#set $flags |= (0x3 << 22);
#end if
@@ -105,7 +105,7 @@ void vrt::pack_$(suffix)(
#if $pred & $tsf_p
header_buff[$num_header_words] = 0;
#set $num_header_words += 1
- header_buff[$num_header_words] = $(XE_MACRO)(metadata.time_spec.get_ticks(tick_rate));
+ header_buff[$num_header_words] = $(XE_MACRO)(boost::uint32_t(metadata.time_spec.get_tick_count(tick_rate)));
#set $num_header_words += 1
#set $flags |= (0x1 << 20);
#end if
@@ -147,6 +147,7 @@ void vrt::unpack_$(suffix)(
){
//clear the metadata
metadata = rx_metadata_t();
+ boost::uint32_t secs = 0, ticks = 0;
//extract vrt header
boost::uint32_t vrt_hdr_word = $(XE_MACRO)(header_buff[0]);
@@ -185,18 +186,19 @@ void vrt::unpack_$(suffix)(
########## Integer Time ##########
#if $pred & $tsi_p
#set $has_time_spec = True
- metadata.time_spec.secs = $(XE_MACRO)(header_buff[$num_header_words]);
+ secs = $(XE_MACRO)(header_buff[$num_header_words]);
#set $num_header_words += 1
#end if
########## Fractional Time ##########
#if $pred & $tsf_p
#set $has_time_spec = True
#set $num_header_words += 1
- metadata.time_spec.set_ticks($(XE_MACRO)(header_buff[$num_header_words]), tick_rate);
+ ticks = $(XE_MACRO)(header_buff[$num_header_words]);
#set $num_header_words += 1
#end if
#if $has_time_spec
metadata.has_time_spec = true;
+ metadata.time_spec = time_spec_t(secs, ticks, tick_rate);
#end if
########## Trailer ##########
#if $pred & $tlr_p