]> sigrok.org Git - libsigrok.git/commitdiff
input: provide accessor routine for (struct sr_input *)->module
authorGerhard Sittig <redacted>
Sun, 13 May 2018 06:54:48 +0000 (08:54 +0200)
committerUwe Hermann <redacted>
Thu, 17 May 2018 20:31:27 +0000 (22:31 +0200)
Add a public API routine which allows applications to query the
sr_input_module from an sr_input.

include/libsigrok/proto.h
src/input/input.c

index 350cffa35127a86d75a33623d82301114cba452e..2017f7123de04982b50620182e0871806f052e58 100644 (file)
@@ -170,6 +170,7 @@ SR_API struct sr_input *sr_input_new(const struct sr_input_module *imod,
                GHashTable *options);
 SR_API int sr_input_scan_buffer(GString *buf, const struct sr_input **in);
 SR_API int sr_input_scan_file(const char *filename, const struct sr_input **in);
+SR_API const struct sr_input_module *sr_input_module_get(const struct sr_input *in);
 SR_API struct sr_dev_inst *sr_input_dev_inst_get(const struct sr_input *in);
 SR_API int sr_input_send(const struct sr_input *in, GString *buf);
 SR_API int sr_input_end(const struct sr_input *in);
index ee19d66169ece22b67254fdf4c330afbcccb62c7..2a23aec2bd81d4a7a4326fb8c06c9acf3b1c47f4 100644 (file)
@@ -532,6 +532,22 @@ SR_API int sr_input_scan_file(const char *filename, const struct sr_input **in)
        return SR_ERR;
 }
 
+/**
+ * Return the input instance's module "class". This can be used to find out
+ * which input module handles a specific input file. This is especially
+ * useful when an application did not create the input stream by specifying
+ * an input module, but instead some shortcut or convenience wrapper did.
+ *
+ * @since 0.6.0
+ */
+SR_API const struct sr_input_module *sr_input_module_get(const struct sr_input *in)
+{
+       if (!in)
+               return NULL;
+
+       return in->module;
+}
+
 /**
  * Return the input instance's (virtual) device instance. This can be
  * used to find out the number of channels and other information.