X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=bindings%2Fcxx%2Fclasses.cpp;h=d5477847653f85acb6f637b48de4a3ce677a9659;hb=HEAD;hp=12ab2c294abb6d62ae31acdfb74c60b5ead2e58b;hpb=a9ed2eb06953eb34fb019ae9a80e213c75790fab;p=libsigrok.git diff --git a/bindings/cxx/classes.cpp b/bindings/cxx/classes.cpp index 12ab2c29..d5477847 100644 --- a/bindings/cxx/classes.cpp +++ b/bindings/cxx/classes.cpp @@ -32,6 +32,8 @@ namespace sigrok { +using namespace std; + /** Helper function to translate C errors to C++ exceptions. */ static void check(int result) { @@ -285,12 +287,12 @@ shared_ptr Context::create_user_device( default_delete{}}; } -shared_ptr Context::create_header_packet(Glib::TimeVal start_time) +shared_ptr Context::create_header_packet(Glib::DateTime start_time) { auto header = g_new(struct sr_datafeed_header, 1); header->feed_version = 1; - header->starttime.tv_sec = start_time.tv_sec; - header->starttime.tv_usec = start_time.tv_usec; + header->starttime.tv_sec = start_time.to_unix(); + header->starttime.tv_usec = start_time.get_microsecond(); auto packet = g_new(struct sr_datafeed_packet, 1); packet->type = SR_DF_HEADER; packet->payload = header; @@ -1152,11 +1154,10 @@ int Header::feed_version() const return _structure->feed_version; } -Glib::TimeVal Header::start_time() const +Glib::DateTime Header::start_time() const { - return Glib::TimeVal( - _structure->starttime.tv_sec, - _structure->starttime.tv_usec); + Glib::DateTime time = Glib::DateTime::create_now_utc(_structure->starttime.tv_sec); + return time.add_seconds(_structure->starttime.tv_usec / 1.0e6); } Meta::Meta(const struct sr_datafeed_meta *structure) : @@ -1564,6 +1565,8 @@ Glib::VariantBase Option::parse_string(string value) dt = SR_T_FLOAT; } else if (g_variant_is_of_type(tmpl, G_VARIANT_TYPE_INT32)) { dt = SR_T_INT32; + } else if (g_variant_is_of_type(tmpl, G_VARIANT_TYPE_UINT32)) { + dt = SR_T_UINT32; } else { throw Error(SR_ERR_BUG); } @@ -1661,6 +1664,11 @@ Output::~Output() check(sr_output_free(_structure)); } +shared_ptr Output::format() +{ + return _format; +} + string Output::receive(shared_ptr packet) { GString *out;