24 #include "libsigrok-internal.h"
27 #define LOG_PREFIX "device"
58 if (!(ch = g_try_malloc0(
sizeof(
struct sr_channel)))) {
59 sr_err(
"Channel malloc failed.");
67 ch->
name = g_strdup(name);
89 int channelnum,
const char *name)
96 sr_err(
"%s: sdi was NULL", __func__);
101 for (l = sdi->
channels; l; l = l->next) {
103 if (ch->
index == channelnum) {
105 ch->
name = g_strdup(name);
133 gboolean was_enabled;
139 for (l = sdi->
channels; l; l = l->next) {
141 if (ch->
index == channelnum) {
145 if (!state != !was_enabled && sdi->
driver
148 sdi, ch, SR_CHANNEL_SET_ENABLED);
188 for (l = sdi->
channels; l; l = l->next) {
190 if (ch->
index == channelnum) {
193 if (g_strcmp0(trigger, old_trigger) == 0)
196 ch->
trigger = g_strdup(trigger);
200 sdi, ch, SR_CHANNEL_SET_TRIGGER);
244 &gvar, sdi, NULL) !=
SR_OK)
248 devopts = g_variant_get_fixed_array(gvar, &num_opts,
sizeof(int32_t));
249 for (i = 0; i < num_opts; i++) {
250 if (devopts[i] == key) {
255 g_variant_unref(gvar);
277 if (!(sdi = g_try_malloc(
sizeof(
struct sr_dev_inst)))) {
278 sr_err(
"Device instance malloc failed.");
286 sdi->
vendor = vendor ? g_strdup(vendor) : NULL;
287 sdi->
model = model ? g_strdup(model) : NULL;
288 sdi->
version = version ? g_strdup(version) : NULL;
306 for (l = sdi->
channels; l; l = l->next) {
323 #ifdef HAVE_LIBUSB_1_0
334 SR_PRIV struct sr_usb_dev_inst *sr_usb_dev_inst_new(uint8_t bus,
335 uint8_t address,
struct libusb_device_handle *hdl)
337 struct sr_usb_dev_inst *udi;
339 if (!(udi = g_try_malloc(
sizeof(
struct sr_usb_dev_inst)))) {
340 sr_err(
"USB device instance malloc failed.");
345 udi->address = address;
355 SR_PRIV void sr_usb_dev_inst_free(
struct sr_usb_dev_inst *usb)
362 #ifdef HAVE_LIBSERIALPORT
380 SR_PRIV struct sr_serial_dev_inst *sr_serial_dev_inst_new(
const char *port,
381 const char *serialcomm)
383 struct sr_serial_dev_inst *serial;
386 sr_err(
"Serial port required.");
390 if (!(serial = g_try_malloc0(
sizeof(
struct sr_serial_dev_inst)))) {
391 sr_err(
"Serial device instance malloc failed.");
395 serial->port = g_strdup(port);
397 serial->serialcomm = g_strdup(serialcomm);
406 SR_PRIV void sr_serial_dev_inst_free(
struct sr_serial_dev_inst *serial)
408 g_free(serial->port);
409 g_free(serial->serialcomm);
415 SR_PRIV struct sr_usbtmc_dev_inst *sr_usbtmc_dev_inst_new(
const char *device)
417 struct sr_usbtmc_dev_inst *usbtmc;
420 sr_err(
"Device name required.");
424 if (!(usbtmc = g_try_malloc0(
sizeof(
struct sr_usbtmc_dev_inst)))) {
425 sr_err(
"USBTMC device instance malloc failed.");
429 usbtmc->device = g_strdup(device);
436 SR_PRIV void sr_usbtmc_dev_inst_free(
struct sr_usbtmc_dev_inst *usbtmc)
438 g_free(usbtmc->device);
476 sr_err(
"Invalid driver.");
483 ret = std_dev_clear(driver, NULL);