Skip to content

Instantly share code, notes, and snippets.

@tnishinaga
Created September 12, 2021 13:08
Show Gist options
  • Save tnishinaga/731e49de0907b5e497039f513f064f00 to your computer and use it in GitHub Desktop.
Save tnishinaga/731e49de0907b5e497039f513f064f00 to your computer and use it in GitHub Desktop.
diff --git a/bindings/cxx/classes.cpp b/bindings/cxx/classes.cpp
index f9f79273..d22035dd 100644
--- a/bindings/cxx/classes.cpp
+++ b/bindings/cxx/classes.cpp
@@ -287,12 +287,12 @@ shared_ptr<UserDevice> Context::create_user_device(
default_delete<UserDevice>{}};
}
-shared_ptr<Packet> Context::create_header_packet(Glib::TimeVal start_time)
+shared_ptr<Packet> Context::create_header_packet(Glib::TimeSpan 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 / 1000000;
+ header->starttime.tv_usec = start_time % 1000000;
auto packet = g_new(struct sr_datafeed_packet, 1);
packet->type = SR_DF_HEADER;
packet->payload = header;
@@ -1154,11 +1154,10 @@ int Header::feed_version() const
return _structure->feed_version;
}
-Glib::TimeVal Header::start_time() const
+Glib::TimeSpan Header::start_time() const
{
- return Glib::TimeVal(
- _structure->starttime.tv_sec,
- _structure->starttime.tv_usec);
+ return (_structure->starttime.tv_sec * 1000000
+ + _structure->starttime.tv_usec);
}
Meta::Meta(const struct sr_datafeed_meta *structure) :
diff --git a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp
index 97e54e17..357e2961 100644
--- a/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp
+++ b/bindings/cxx/include/libsigrokcxx/libsigrokcxx.hpp
@@ -274,7 +274,7 @@ public:
std::shared_ptr<UserDevice> create_user_device(
std::string vendor, std::string model, std::string version);
/** Create a header packet. */
- std::shared_ptr<Packet> create_header_packet(Glib::TimeVal start_time);
+ std::shared_ptr<Packet> create_header_packet(Glib::TimeSpan start_time);
/** Create a meta packet. */
std::shared_ptr<Packet> create_meta_packet(
std::map<const ConfigKey *, Glib::VariantBase> config);
@@ -711,7 +711,7 @@ public:
/* Feed version number. */
int feed_version() const;
/* Start time of this session. */
- Glib::TimeVal start_time() const;
+ Glib::TimeSpan start_time() const;
private:
explicit Header(const struct sr_datafeed_header *structure);
~Header();
diff --git a/bindings/cxx/libsigrokcxx.pc.in b/bindings/cxx/libsigrokcxx.pc.in
index 10a92f2d..ce5198d0 100644
--- a/bindings/cxx/libsigrokcxx.pc.in
+++ b/bindings/cxx/libsigrokcxx.pc.in
@@ -6,7 +6,7 @@ includedir=@includedir@
Name: libsigrokcxx
Description: C++ bindings for libsigrok
URL: http://www.sigrok.org
-Requires: libsigrok glibmm-2.4
+Requires: libsigrok glibmm-2.68
Version: @SR_PACKAGE_VERSION@
Libs: -L${libdir} -lsigrokcxx
Libs.private: -lm
diff --git a/configure.ac b/configure.ac
index 85a1af41..338e5baf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -373,7 +373,7 @@ AS_IF([test "x$HAVE_CXX11" != x1],
[SR_APPEND([sr_cxx_missing], [', '], ['C++11'])])
# The C++ bindings need glibmm.
-SR_PKG_CHECK([glibmm], [SR_PKGLIBS_CXX], [glibmm-2.4 >= 2.32.0])
+SR_PKG_CHECK([glibmm], [SR_PKGLIBS_CXX], [glibmm-2.68 >= 2.32.0])
AS_IF([test "x$sr_have_glibmm" != xyes],
[SR_APPEND([sr_cxx_missing], [', '], [glibmm])])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment