]> sigrok.org Git - libsigrok.git/commitdiff
New API function sr_session_dev_list()
authorBert Vermeulen <redacted>
Mon, 2 Sep 2013 12:24:32 +0000 (14:24 +0200)
committerBert Vermeulen <redacted>
Mon, 2 Sep 2013 12:24:32 +0000 (14:24 +0200)
This exposes the list of devices added to the session. In the case of
loading a session from file, these struct sr_dev_inst are otherwise
not exposed to the frontend. See bug 145.

session.c

index 15be92c8237a2b5a0c5627d250b9fadc4598995f..b52c91a374540de5eadd41c2cf030666b08706eb 100644 (file)
--- a/session.c
+++ b/session.c
@@ -179,6 +179,31 @@ SR_API int sr_session_dev_add(const struct sr_dev_inst *sdi)
        return SR_OK;
 }
 
+/**
+ * List all device instances attached to the current session.
+ *
+ * @param devlist A pointer where the device instance list will be
+ *                stored on return. If no devices are in the session,
+ *                this will be NULL. Each element in the list points
+ *                to a struct sr_dev_inst *.
+ *                The list must be freed by the caller, but not the
+ *                elements pointed to.
+ *
+ * @return SR_OK upon success, SR_ERR upon invalid arguments.
+ */
+SR_API int sr_session_dev_list(GSList **devlist)
+{
+
+       *devlist = NULL;
+
+       if (!session)
+               return SR_ERR;
+
+       *devlist = g_slist_copy(session->devs);
+
+       return SR_OK;
+}
+
 /**
  * Remove all datafeed callbacks in the current session.
  *