]> sigrok.org Git - libsigrok.git/blobdiff - src/session_file.c
Add SR_T_MQLIST.
[libsigrok.git] / src / session_file.c
index b8a1cb60d8e098d2986319767db2760a982ec461..5aed89b8bbf2530cccfc21c0d1d3cba1ff9ed616 100644 (file)
@@ -26,8 +26,7 @@
 #include <errno.h>
 #include <glib.h>
 #include <glib/gstdio.h>
-#include "config.h" /* Needed for PACKAGE_VERSION and others. */
-#include "libsigrok.h"
+#include <libsigrok/libsigrok.h>
 #include "libsigrok-internal.h"
 
 /** @cond PRIVATE */
@@ -105,6 +104,7 @@ SR_PRIV int sr_sessionfile_check(const char *filename)
 /**
  * Load the session from the specified filename.
  *
+ * @param ctx The context in which to load the session.
  * @param filename The name of the session file to load.
  * @param session The session to load the file into.
  *
@@ -113,7 +113,8 @@ SR_PRIV int sr_sessionfile_check(const char *filename)
  * @retval SR_ERR_DATA Malformed session file
  * @retval SR_ERR This is not a session file
  */
-SR_API int sr_session_load(const char *filename, struct sr_session **session)
+SR_API int sr_session_load(struct sr_context *ctx, const char *filename,
+               struct sr_session **session)
 {
        GKeyFile *kf;
        GPtrArray *capturefiles;
@@ -151,7 +152,7 @@ SR_API int sr_session_load(const char *filename, struct sr_session **session)
                return SR_ERR;
        }
 
-       if ((ret = sr_session_new(session)) != SR_OK)
+       if ((ret = sr_session_new(ctx, session)) != SR_OK)
                return ret;
 
        ret = SR_OK;
@@ -180,11 +181,10 @@ SR_API int sr_session_load(const char *filename, struct sr_session **session)
                                        sr_session_dev_add(*session, sdi);
                                        (*session)->owned_devs = g_slist_append(
                                                        (*session)->owned_devs, sdi);
-
-                                       sr_config_set(sdi, NULL, SR_CONF_SESSIONFILE,
-                                                       g_variant_new_string(filename));
-                                       sr_config_set(sdi, NULL, SR_CONF_CAPTUREFILE,
-                                                       g_variant_new_string(val));
+                                       sdi->driver->config_set(SR_CONF_SESSIONFILE,
+                                                       g_variant_new_string(filename), sdi, NULL);
+                                       sdi->driver->config_set(SR_CONF_CAPTUREFILE,
+                                                       g_variant_new_string(val), sdi, NULL);
                                        g_ptr_array_add(capturefiles, val);
                                } else if (!strcmp(keys[j], "samplerate")) {
                                        if (!sdi) {
@@ -192,24 +192,24 @@ SR_API int sr_session_load(const char *filename, struct sr_session **session)
                                                break;
                                        }
                                        sr_parse_sizestring(val, &tmp_u64);
-                                       sr_config_set(sdi, NULL, SR_CONF_SAMPLERATE,
-                                                       g_variant_new_uint64(tmp_u64));
+                                       sdi->driver->config_set(SR_CONF_SAMPLERATE,
+                                                       g_variant_new_uint64(tmp_u64), sdi, NULL);
                                } else if (!strcmp(keys[j], "unitsize")) {
                                        if (!sdi) {
                                                ret = SR_ERR_DATA;
                                                break;
                                        }
                                        tmp_u64 = strtoull(val, NULL, 10);
-                                       sr_config_set(sdi, NULL, SR_CONF_CAPTURE_UNITSIZE,
-                                                       g_variant_new_uint64(tmp_u64));
+                                       sdi->driver->config_set(SR_CONF_CAPTURE_UNITSIZE,
+                                                       g_variant_new_uint64(tmp_u64), sdi, NULL);
                                } else if (!strcmp(keys[j], "total probes")) {
                                        if (!sdi) {
                                                ret = SR_ERR_DATA;
                                                break;
                                        }
                                        total_channels = strtoull(val, NULL, 10);
-                                       sr_config_set(sdi, NULL, SR_CONF_NUM_LOGIC_CHANNELS,
-                                                       g_variant_new_uint64(total_channels));
+                                       sdi->driver->config_set(SR_CONF_NUM_LOGIC_CHANNELS,
+                                                       g_variant_new_uint64(total_channels), sdi, NULL);
                                        for (p = 0; p < total_channels; p++) {
                                                snprintf(channelname, SR_MAX_CHANNELNAME_LEN, "%" PRIu64, p);
                                                sr_channel_new(sdi, p, SR_CHANNEL_LOGIC, FALSE,
@@ -350,7 +350,7 @@ SR_API int sr_session_save_init(struct sr_session *session,
        close(tmpfile);
        meta = g_fopen(metafile, "wb");
        fprintf(meta, "[global]\n");
-       fprintf(meta, "sigrok version = %s\n", PACKAGE_VERSION);
+       fprintf(meta, "sigrok version = %s\n", SR_PACKAGE_VERSION_STRING);
 
        /* metadata */
        fprintf(meta, "[device 1]\n");