X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=libsigrok.h;h=6cda5543223d17cfceb225c0dce40ded25899feb;hb=7ab89f4827d516313cafc9b7b9670ee99dc9c584;hp=069e446fb1c839010b4c2f5ebcbc97b9d5243b39;hpb=9e2e98640ac2b12545f4923a143d06d3896f8435;p=libsigrok.git diff --git a/libsigrok.h b/libsigrok.h index 069e446f..6cda5543 100644 --- a/libsigrok.h +++ b/libsigrok.h @@ -1,5 +1,5 @@ /* - * This file is part of the sigrok project. + * This file is part of the libsigrok project. * * Copyright (C) 2013 Bert Vermeulen * @@ -71,9 +71,14 @@ enum { SR_ERR_BUG = -4, /**< Errors hinting at internal bugs. */ 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 */ @@ -137,14 +142,6 @@ enum { SR_T_KEYVALUE, }; -/** Rational number data type, containing numerator and denominator values. */ -struct sr_rational { - /** Numerator of the rational number. */ - uint64_t p; - /** Denominator of the rational number. */ - uint64_t q; -}; - /** Value for sr_datafeed_packet.type. */ enum { SR_DF_HEADER = 10000, @@ -457,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. @@ -489,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. @@ -499,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); };