extern "C" {
#endif
+/*
+ * Package version macros (can be used for conditional compilation).
+ */
+
+/** The libsigrokdecode package 'major' version number. */
+#define SRD_PACKAGE_VERSION_MAJOR @SRD_PACKAGE_VERSION_MAJOR@
+
+/** The libsigrokdecode package 'minor' version number. */
+#define SRD_PACKAGE_VERSION_MINOR @SRD_PACKAGE_VERSION_MINOR@
+
+/** The libsigrokdecode package 'micro' version number. */
+#define SRD_PACKAGE_VERSION_MICRO @SRD_PACKAGE_VERSION_MICRO@
+
+/** The libsigrokdecode package version ("major.minor.micro") as string. */
+#define SRD_PACKAGE_VERSION_STRING "@SRD_PACKAGE_VERSION@"
+
+/*
+ * Library/libtool version macros (can be used for conditional compilation).
+ */
+
+/** The libsigrokdecode libtool 'current' version number. */
+#define SRD_LIB_VERSION_CURRENT @SRD_LIB_VERSION_CURRENT@
+
+/** The libsigrokdecode libtool 'revision' version number. */
+#define SRD_LIB_VERSION_REVISION @SRD_LIB_VERSION_REVISION@
+
+/** The libsigrokdecode libtool 'age' version number. */
+#define SRD_LIB_VERSION_AGE @SRD_LIB_VERSION_AGE@
+
+/** The libsigrokdecode libtool version ("current:revision:age") as string. */
+#define SRD_LIB_VERSION_STRING "@SRD_LIB_VERSION@"
+
/*
* Status/error codes returned by libsigrokdecode functions.
*
*
* This uses the 'visibility' feature of gcc (requires gcc >= 4.0).
*
+ * This feature is not available on MinGW/Windows, as it is a feature of
+ * ELF files and MinGW/Windows uses PE files.
+ *
* Details: http://gcc.gnu.org/wiki/Visibility
*/
/* Marks public libsigrokdecode API symbols. */
+#ifndef _WIN32
#define SRD_API __attribute__((visibility("default")))
+#else
+#define SRD_API
+#endif
/* Marks private, non-public libsigrokdecode symbols (not part of the API). */
+#ifndef _WIN32
#define SRD_PRIV __attribute__((visibility("hidden")))
+#else
+#define SRD_PRIV
+#endif
/*
* When adding an output type, don't forget to...
/** The (short) decoder name. Must be non-NULL. */
char *name;
- /** The (long) decoder name. May be NULL. */
+ /** The (long) decoder name. Must be non-NULL. */
char *longname;
/** A (short, one-line) description of the decoder. Must be non-NULL. */
SRD_API int srd_init(const char *path);
SRD_API int srd_exit(void);
-SRD_API int srd_inst_options_set(struct srd_decoder_inst *di,
- GHashTable *options);
-SRD_API int srd_inst_probes_set(struct srd_decoder_inst *di,
- GHashTable *probes);
+SRD_API int srd_inst_option_set(struct srd_decoder_inst *di,
+ GHashTable *options);
+SRD_API int srd_inst_probe_set_all(struct srd_decoder_inst *di,
+ GHashTable *probes);
SRD_API struct srd_decoder_inst *srd_inst_new(const char *id,
GHashTable *options);
SRD_API int srd_inst_stack(struct srd_decoder_inst *di_from,
uint64_t samplerate);
SRD_API int srd_session_send(uint64_t start_samplenum, const uint8_t *inbuf,
uint64_t inbuflen);
-SRD_API int srd_register_callback(int output_type,
- srd_pd_output_callback_t cb, void *cb_data);
+SRD_API int srd_pd_output_callback_add(int output_type,
+ srd_pd_output_callback_t cb, void *cb_data);
/*--- decoder.c -------------------------------------------------------------*/
SRD_API int srd_decoder_unload(struct srd_decoder *dec);
SRD_API int srd_decoder_load_all(void);
SRD_API int srd_decoder_unload_all(void);
-SRD_API char *srd_decoder_doc(const struct srd_decoder *dec);
+SRD_API char *srd_decoder_doc_get(const struct srd_decoder *dec);
/*--- log.c -----------------------------------------------------------------*/
SRD_API int srd_log_logdomain_set(const char *logdomain);
SRD_API char *srd_log_logdomain_get(void);
+/*--- version.c -------------------------------------------------------------*/
+
+SRD_API int srd_package_version_major_get(void);
+SRD_API int srd_package_version_minor_get(void);
+SRD_API int srd_package_version_micro_get(void);
+SRD_API const char *srd_package_version_string_get(void);
+
+SRD_API int srd_lib_version_current_get(void);
+SRD_API int srd_lib_version_revision_get(void);
+SRD_API int srd_lib_version_age_get(void);
+SRD_API const char *srd_lib_version_string_get(void);
+
#ifdef __cplusplus
}
#endif