X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=bindings%2Fcxx%2Fclasses.cpp;h=61fb0f7d5e46948c5cbb4574cff9176881884350;hb=000f504f246f713a86d653e0d6ee6c98a07e74fd;hp=c88dc56683473d21c419333a5a0aa231b9d85195;hpb=61e6e2da45373acea5dab93a6ede57aae9901b1b;p=libsigrok.git
diff --git a/bindings/cxx/classes.cpp b/bindings/cxx/classes.cpp
index c88dc566..61fb0f7d 100644
--- a/bindings/cxx/classes.cpp
+++ b/bindings/cxx/classes.cpp
@@ -17,7 +17,13 @@
* along with this program. If not, see .
*/
-#include "libsigrokcxx/libsigrokcxx.hpp"
+/* Needed for isascii(), as used in the GNU libstdc++ headers */
+#ifndef _XOPEN_SOURCE
+#define _XOPEN_SOURCE 600
+#endif
+
+#include
+#include
#include
#include
@@ -77,7 +83,7 @@ Context::Context() :
{
check(sr_init(&_structure));
- struct sr_dev_driver **driver_list = sr_driver_list();
+ struct sr_dev_driver **driver_list = sr_driver_list(_structure);
if (driver_list)
for (int i = 0; driver_list[i]; i++)
_drivers[driver_list[i]->name] =
@@ -161,16 +167,6 @@ void Context::set_log_level(const LogLevel *level)
check(sr_log_loglevel_set(level->id()));
}
-string Context::log_domain()
-{
- return valid_string(sr_log_logdomain_get());
-}
-
-void Context::set_log_domain(string value)
-{
- check(sr_log_logdomain_set(value.c_str()));
-}
-
static int call_log_callback(void *cb_data, int loglevel, const char *format, va_list args)
{
va_list args_copy;
@@ -888,7 +884,7 @@ Session::Session(shared_ptr context) :
_context(context),
_saving(false)
{
- check(sr_session_new(context->structure, &_structure));
+ check(sr_session_new(context->_structure, &_structure));
_context->_session = this;
}
@@ -898,7 +894,7 @@ Session::Session(shared_ptr context, string filename) :
_filename(filename),
_saving(false)
{
- check(sr_session_load(filename.c_str(), &_structure));
+ check(sr_session_load(context->_structure, filename.c_str(), &_structure));
GSList *dev_list;
check(sr_session_dev_list(_structure, &dev_list));
for (GSList *dev = dev_list; dev; dev = dev->next)
@@ -1438,9 +1434,9 @@ shared_ptr Input::device()
return _device->get_shared_pointer(shared_from_this());
}
-void Input::send(string data)
+void Input::send(void *data, size_t length)
{
- auto gstr = g_string_new(data.c_str());
+ auto gstr = g_string_new_len((gchar *)data, length);
auto ret = sr_input_send(_structure, gstr);
g_string_free(gstr, false);
check(ret);
@@ -1565,10 +1561,33 @@ shared_ptr