21 #include "libsigrokdecode-internal.h" 25 #include <glib/gprintf.h> 45 static int srd_logv(
void *cb_data,
int loglevel,
const char *format,
55 static void *srd_log_cb_data = NULL;
77 if (loglevel < SRD_LOG_NONE || loglevel >
SRD_LOG_SPEW) {
78 srd_err(
"Invalid loglevel %d.", loglevel);
82 cur_loglevel = loglevel;
84 srd_dbg(
"libsigrokdecode loglevel set to %d.", loglevel);
120 srd_err(
"log: %s: cb was NULL", __func__);
127 srd_log_cb_data = cb_data;
149 *cb_data = srd_log_cb_data;
169 srd_log_cb = srd_logv;
170 srd_log_cb_data = NULL;
175 static int srd_logv(
void *cb_data,
int loglevel,
const char *format,
183 if (fputs(
"srd: ", stderr) < 0
184 || g_vfprintf(stderr, format, args) < 0
185 || putc(
'\n', stderr) < 0)
194 SRD_PRIV int srd_log(
int loglevel,
const char *format, ...)
200 if (loglevel > cur_loglevel)
203 va_start(args, format);
204 ret = srd_log_cb(srd_log_cb_data, loglevel, format, args);
Output very noisy debug messages.
Generic/unspecified error.
int srd_log_callback_set_default(void)
Set the libsigrokdecode log callback to the default built-in one.
int(* srd_log_callback)(void *cb_data, int loglevel, const char *format, va_list args)
int srd_log_callback_get(srd_log_callback *cb, void **cb_data)
Get the libsigrokdecode log callback routine and callback data.
int srd_log_loglevel_set(int loglevel)
Set the libsigrokdecode loglevel.
int srd_log_callback_set(srd_log_callback cb, void *cb_data)
Set the libsigrokdecode log callback to the specified function.
int srd_log_loglevel_get(void)
Get the libsigrokdecode loglevel.
The public libsigrokdecode header file to be used by frontends.