22 #include "libsigrokdecode-internal.h"
44 static int srd_logv(
void *cb_data,
int loglevel,
const char *format,
54 static void *srd_log_callback_data = NULL;
58 #define LOGDOMAIN_MAXLEN 30
59 #define LOGDOMAIN_DEFAULT "srd: "
83 if (loglevel < SRD_LOG_NONE || loglevel >
SRD_LOG_SPEW) {
84 srd_err(
"Invalid loglevel %d.", loglevel);
88 srd_loglevel = loglevel;
90 srd_dbg(
"libsigrokdecode loglevel set to %d.", loglevel);
126 srd_err(
"log: %s: logdomain was NULL", __func__);
133 srd_dbg(
"Log domain set to '%s'.", (
const char *)&srd_log_domain);
149 return g_strdup((
const char *)&srd_log_domain);
171 srd_err(
"log: %s: cb was NULL", __func__);
177 srd_log_callback = cb;
178 srd_log_callback_data = cb_data;
198 srd_log_callback = srd_logv;
199 srd_log_callback_data = NULL;
204 static int srd_logv(
void *cb_data,
int loglevel,
const char *format,
213 if (loglevel > srd_loglevel)
216 if (srd_log_domain[0] !=
'\0')
217 fprintf(stderr,
"%s", srd_log_domain);
218 ret = vfprintf(stderr, format, args);
219 fprintf(stderr,
"\n");
225 SRD_PRIV int srd_log(
int loglevel,
const char *format, ...)
230 va_start(args, format);
231 ret = srd_log_callback(srd_log_callback_data, loglevel, format, args);
238 SRD_PRIV int srd_spew(
const char *format, ...)
243 va_start(args, format);
244 ret = srd_log_callback(srd_log_callback_data,
SRD_LOG_SPEW,
252 SRD_PRIV int srd_dbg(
const char *format, ...)
257 va_start(args, format);
258 ret = srd_log_callback(srd_log_callback_data,
SRD_LOG_DBG,
266 SRD_PRIV int srd_info(
const char *format, ...)
271 va_start(args, format);
272 ret = srd_log_callback(srd_log_callback_data,
SRD_LOG_INFO,
280 SRD_PRIV int srd_warn(
const char *format, ...)
285 va_start(args, format);
286 ret = srd_log_callback(srd_log_callback_data,
SRD_LOG_WARN,
294 SRD_PRIV int srd_err(
const char *format, ...)
299 va_start(args, format);
300 ret = srd_log_callback(srd_log_callback_data,
SRD_LOG_ERR,