X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=libsigrok.h;h=6cda5543223d17cfceb225c0dce40ded25899feb;hb=0f75d6f5a9b5d9d479dc03d67a8c828f99dce8f0;hp=24934baab44f09cde065b83edbd07037269ece17;hpb=b9470914d045f05e445e9f25a3b4f0cc79bc6681;p=libsigrok.git
diff --git a/libsigrok.h b/libsigrok.h
index 24934baa..6cda5543 100644
--- a/libsigrok.h
+++ b/libsigrok.h
@@ -72,9 +72,13 @@ enum {
SR_ERR_SAMPLERATE = -5, /**< Incorrect samplerate. */
SR_ERR_NA = -6, /**< Not applicable. */
SR_ERR_DEV_CLOSED = -7, /**< Device is closed, but needs to be open. */
+
+ /*
+ * Note: When adding entries here, don't forget to also update the
+ * sr_strerror() and sr_strerror_name() functions in error.c.
+ */
};
-#define SR_MAX_NUM_PROBES 64 /* Limited by uint64_t. */
#define SR_MAX_PROBENAME_LEN 32
/* Handy little macros */
@@ -450,7 +454,7 @@ struct sr_output_format {
* data_out
parameter, so the caller knows not to try
* and g_free() it.
*
- * Note: This API call is obsolete, use recv() instead.
+ * Note: This API call is obsolete, use receive() instead.
*
* @param o Pointer to the respective 'struct sr_output'.
* @param data_in Pointer to the input data buffer.
@@ -482,7 +486,7 @@ struct sr_output_format {
* it stored in the data_out
and length_out
* parameters, or NULL if no output was generated.
*
- * Note: This API call is obsolete, use recv() instead.
+ * Note: This API call is obsolete, use receive() instead.
*
* @param o Pointer to the respective 'struct sr_output'.
* @param event_type Type of event that occured.
@@ -492,11 +496,35 @@ struct sr_output_format {
* @return SR_OK upon success, a negative error code otherwise.
*/
int (*event) (struct sr_output *o, int event_type, uint8_t **data_out,
- uint64_t *length_out);
+ uint64_t *length_out);
- GString *(*recv) (struct sr_output *o, const struct sr_dev_inst *sdi,
- const struct sr_datafeed_packet *packet);
+ /**
+ * This function is passed a copy of every packed in the data feed.
+ * Any output generated by the output module in response to the
+ * packet should be returned in a newly allocated GString
+ * out
, which will be freed by the caller.
+ *
+ * Packets not of interest to the output module can just be ignored,
+ * and the out
parameter set to NULL.
+ *
+ * @param o Pointer to the respective 'struct sr_output'.
+ * @param sdi The device instance that generated the packet.
+ * @param packet The complete packet.
+ * @param out A pointer where a GString * should be stored if
+ * the module generates output, or NULL if not.
+ *
+ * @return SR_OK upon success, a negative error code otherwise.
+ */
+ int (*receive) (struct sr_output *o, const struct sr_dev_inst *sdi,
+ const struct sr_datafeed_packet *packet, GString **out);
+ /**
+ * This function is called after the caller is finished using
+ * the output module, and can be used to free any internal
+ * resources the module may keep.
+ *
+ * @return SR_OK upon success, a negative error code otherwise.
+ */
int (*cleanup) (struct sr_output *o);
};