#include "libsigrok.h"
#include "libsigrok-internal.h"
+/** @cond PRIVATE */
#define LOG_PREFIX "backend"
+/** @endcond */
extern struct sr_session *session;
*
* Initializing and shutting down libsigrok.
*
- * Before using any of the libsigrok functionality, sr_init() must
+ * Before using any of the libsigrok functionality (except
+ * sr_log_loglevel_set() and sr_log_opts_set()), sr_init() must
* be called to initialize the library, which will return a struct sr_context
* when the initialization was successful.
*
sr_err("No dev_list in driver %d ('%s').", i, d);
errors++;
}
- if (!drivers[i]->dev_clear) {
- sr_err("No dev_clear in driver %d ('%s').", i, d);
- errors++;
- }
/* Note: config_get() is optional. */
if (!drivers[i]->config_set) {
sr_err("No config_set in driver %d ('%s').", i, d);
errors++;
}
if (!outputs[i]->description) {
- sr_err("No description in module %d ('%s').", i, d);
+ sr_err("No description in module '%s'.", d);
errors++;
}
- if (outputs[i]->df_type < 10000 || outputs[i]->df_type > 10007) {
- sr_err("Invalid df_type %d in module %d ('%s').",
- outputs[i]->df_type, i, d);
+ if (!outputs[i]->receive) {
+ sr_err("No receive in module '%s'.", d);
errors++;
}
- /* All modules must provide a data or recv API callback. */
- if (!outputs[i]->data && !outputs[i]->receive) {
- sr_err("No data/receive in module %d ('%s').", i, d);
- errors++;
- }
-
- /*
- * Currently most API calls are optional (their function
- * pointers can thus be NULL) in theory: init, event, cleanup.
- */
-
if (errors == 0)
continue;