*/
#include <glib.h>
+#include "config.h" /* Needed for HAVE_LIBUSB_1_0 and others. */
#include "libsigrok.h"
#include "libsigrok-internal.h"
* <a href="http://sigrok.org/wiki/Input_output_formats">input/output
* file formats</a>.
*
- * @section sec_error_handling Error handling
+ * @section sec_api API reference
*
- * libsigrok functions usually return @ref SR_OK upon success, or a negative
- * error code on failure.
+ * See the "Modules" page for an introduction to various libsigrok
+ * related topics and the detailed API documentation of the respective
+ * functions.
+ *
+ * You can also browse the API documentation by file, or review all
+ * data structures.
*
* @section sec_mailinglists Mailing lists
*
* <a href="http://sigrok.org/wiki/Libsigrok">sigrok.org/wiki/Libsigrok</a>
*/
+/**
+ * @file
+ *
+ * Initializing and shutting down libsigrok.
+ */
+
/**
* @defgroup grp_init Initialization
*
* Initializing and shutting down libsigrok.
*
+ * Before using any of the libsigrok functionality, sr_init() must
+ * be called to initialize the library, which will return a struct sr_context
+ * when the initialization was successful.
+ *
+ * When libsigrok functionality is no longer needed, sr_exit() should be
+ * called, which will (among other things) free the struct sr_context.
+ *
+ * Example for a minimal program using libsigrok:
+ *
+ * @code{.c}
+ * #include <stdio.h>
+ * #include <libsigrok/libsigrok.h>
+ *
+ * int main(int argc, char **argv)
+ * {
+ * int ret;
+ * struct sr_context *sr_ctx;
+ *
+ * if ((ret = sr_init(&sr_ctx)) != SR_OK) {
+ * printf("Error initializing libsigrok (%s): %s.",
+ * sr_strerror_name(ret), sr_strerror(ret));
+ * return 1;
+ * }
+ *
+ * // Use libsigrok functions here...
+ *
+ * if ((ret = sr_exit(sr_ctx)) != SR_OK) {
+ * printf("Error shutting down libsigrok (%s): %s.",
+ * sr_strerror_name(ret), sr_strerror(ret));
+ * return 1;
+ * }
+ *
+ * return 0;
+ * }
+ * @endcode
+ *
* @{
*/