#define DEFAULT_OUTPUT_FORMAT "bits:width=64"
+static struct sr_context *sr_ctx = NULL;
+
static uint64_t limit_samples = 0;
static uint64_t limit_frames = 0;
static struct sr_output_format *output_format = NULL;
return NULL;
}
g_free(drvname);
- if (sr_driver_init(driver) != SR_OK) {
+ if (sr_driver_init(sr_ctx, driver) != SR_OK) {
g_critical("Failed to initialize driver.");
return NULL;
}
drivers = sr_driver_list();
for (i = 0; drivers[i]; i++) {
driver = drivers[i];
- if (sr_driver_init(driver) != SR_OK) {
+ if (sr_driver_init(sr_ctx, driver) != SR_OK) {
g_critical("Failed to initialize driver.");
return NULL;
}
}
static void datafeed_in(const struct sr_dev_inst *sdi,
- struct sr_datafeed_packet *packet)
+ const struct sr_datafeed_packet *packet)
{
static struct sr_output *o = NULL;
static int logic_probelist[SR_MAX_NUM_PROBES] = { -1 };
static FILE *outfile = NULL;
static int num_analog_probes = 0;
struct sr_probe *probe;
- struct sr_datafeed_logic *logic;
- struct sr_datafeed_meta_logic *meta_logic;
- struct sr_datafeed_analog *analog;
- struct sr_datafeed_meta_analog *meta_analog;
+ const struct sr_datafeed_logic *logic;
+ const struct sr_datafeed_meta_logic *meta_logic;
+ const struct sr_datafeed_analog *analog;
+ const struct sr_datafeed_meta_analog *meta_analog;
static int num_enabled_analog_probes = 0;
int num_enabled_probes, sample_size, ret, i;
uint64_t output_len, filter_out_len;
int ret;
char **pdtokens, **pdtok, *pd_name;
- /* Avoid compiler warnings. */
(void)dev;
ret = 0;
g_critical("Failed to set device option '%s'.", (char *)key);
return ret;
}
- else
- break;
}
return SR_OK;
static void logger(const gchar *log_domain, GLogLevelFlags log_level,
const gchar *message, gpointer cb_data)
{
- /* Avoid compiler warnings. */
(void)log_domain;
(void)cb_data;
if (!g_option_context_parse(context, &argc, &argv, &error)) {
g_critical("%s", error->message);
- goto done_noexit;
+ goto done;
}
/* Set the loglevel (amount of messages to output) for libsigrok. */
if (sr_log_loglevel_set(opt_loglevel) != SR_OK)
- goto done_noexit;
+ goto done;
/* Set the loglevel (amount of messages to output) for libsigrokdecode. */
if (srd_log_loglevel_set(opt_loglevel) != SRD_OK)
- goto done_noexit;
+ goto done;
- if (sr_init() != SR_OK)
- goto done_noexit;
+ if (sr_init(&sr_ctx) != SR_OK)
+ goto done;
if (opt_pds) {
if (srd_init(NULL) != SRD_OK)
ret = 0;
done:
- sr_exit();
+ if (sr_ctx)
+ sr_exit(sr_ctx);
-done_noexit:
g_option_context_free(context);
return ret;