X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=device.c;h=055c37194716f5cd710604ecc0b401b5d045e8a7;hb=71422cb6eb8be34f6fca8a3be7ebe10fe1bea319;hp=212ddb7dc91c1f6289f4f09cc2753dd520fb8efa;hpb=8102cee4d495c7402a7ca70ec40414312129c1f2;p=libsigrok.git diff --git a/device.c b/device.c index 212ddb7d..055c3719 100644 --- a/device.c +++ b/device.c @@ -23,7 +23,9 @@ #include "libsigrok.h" #include "libsigrok-internal.h" +/** @cond PRIVATE */ #define LOG_PREFIX "device" +/** @endcond */ /** * @file @@ -40,54 +42,54 @@ */ /** @private - * Allocate and initialize new struct sr_probe - * @param[in] index @copydoc sr_probe::index - * @param[in] type @copydoc sr_probe::type - * @param[in] enabled @copydoc sr_probe::enabled - * @param[in] name @copydoc sr_probe::name + * Allocate and initialize new struct sr_channel + * @param[in] index @copydoc sr_channel::index + * @param[in] type @copydoc sr_channel::type + * @param[in] enabled @copydoc sr_channel::enabled + * @param[in] name @copydoc sr_channel::name * - * @return NULL (failure) or new struct sr_probe*. + * @return NULL (failure) or new struct sr_channel*. */ -SR_PRIV struct sr_probe *sr_probe_new(int index, int type, +SR_PRIV struct sr_channel *sr_channel_new(int index, int type, gboolean enabled, const char *name) { - struct sr_probe *probe; + struct sr_channel *ch; - if (!(probe = g_try_malloc0(sizeof(struct sr_probe)))) { - sr_err("Probe malloc failed."); + if (!(ch = g_try_malloc0(sizeof(struct sr_channel)))) { + sr_err("Channel malloc failed."); return NULL; } - probe->index = index; - probe->type = type; - probe->enabled = enabled; + ch->index = index; + ch->type = type; + ch->enabled = enabled; if (name) - probe->name = g_strdup(name); + ch->name = g_strdup(name); - return probe; + return ch; } /** - * Set the name of the specified probe in the specified device. + * Set the name of the specified channel in the specified device. * - * If the probe already has a different name assigned to it, it will be + * If the channel already has a different name assigned to it, it will be * removed, and the new name will be saved instead. * - * @param sdi The device instance the probe is connected to. - * @param[in] probenum The number of the probe whose name to set. - * Note that the probe numbers start at 0. - * @param[in] name The new name that the specified probe should get. A copy + * @param sdi The device instance the channel is connected to. + * @param[in] channelnum The number of the channel whose name to set. + * Note that the channel numbers start at 0. + * @param[in] name The new name that the specified channel should get. A copy * of the string is made. * * @return SR_OK on success, or SR_ERR_ARG on invalid arguments. * * @since 0.2.0 */ -SR_API int sr_dev_probe_name_set(const struct sr_dev_inst *sdi, - int probenum, const char *name) +SR_API int sr_dev_channel_name_set(const struct sr_dev_inst *sdi, + int channelnum, const char *name) { GSList *l; - struct sr_probe *probe; + struct sr_channel *ch; int ret; if (!sdi) { @@ -96,11 +98,11 @@ SR_API int sr_dev_probe_name_set(const struct sr_dev_inst *sdi, } ret = SR_ERR_ARG; - for (l = sdi->probes; l; l = l->next) { - probe = l->data; - if (probe->index == probenum) { - g_free(probe->name); - probe->name = g_strdup(name); + for (l = sdi->channels; l; l = l->next) { + ch = l->data; + if (ch->index == channelnum) { + g_free(ch->name); + ch->name = g_strdup(name); ret = SR_OK; break; } @@ -110,23 +112,23 @@ SR_API int sr_dev_probe_name_set(const struct sr_dev_inst *sdi, } /** - * Enable or disable a probe on the specified device. + * Enable or disable a channel on the specified device. * - * @param sdi The device instance the probe is connected to. - * @param probenum The probe number, starting from 0. - * @param state TRUE to enable the probe, FALSE to disable. + * @param sdi The device instance the channel is connected to. + * @param channelnum The channel number, starting from 0. + * @param state TRUE to enable the channel, FALSE to disable. * * @return SR_OK on success or SR_ERR on failure. In case of invalid - * arguments, SR_ERR_ARG is returned and the probe enabled state + * arguments, SR_ERR_ARG is returned and the channel enabled state * remains unchanged. * * @since 0.2.0 */ -SR_API int sr_dev_probe_enable(const struct sr_dev_inst *sdi, int probenum, +SR_API int sr_dev_channel_enable(const struct sr_dev_inst *sdi, int channelnum, gboolean state) { GSList *l; - struct sr_probe *probe; + struct sr_channel *ch; int ret; gboolean was_enabled; @@ -134,19 +136,19 @@ SR_API int sr_dev_probe_enable(const struct sr_dev_inst *sdi, int probenum, return SR_ERR_ARG; ret = SR_ERR_ARG; - for (l = sdi->probes; l; l = l->next) { - probe = l->data; - if (probe->index == probenum) { - was_enabled = probe->enabled; - probe->enabled = state; + for (l = sdi->channels; l; l = l->next) { + ch = l->data; + if (ch->index == channelnum) { + was_enabled = ch->enabled; + ch->enabled = state; ret = SR_OK; if (!state != !was_enabled && sdi->driver - && sdi->driver->config_probe_set) { - ret = sdi->driver->config_probe_set( - sdi, probe, SR_PROBE_SET_ENABLED); + && sdi->driver->config_channel_set) { + ret = sdi->driver->config_channel_set( + sdi, ch, SR_CHANNEL_SET_ENABLED); /* Roll back change if it wasn't applicable. */ if (ret == SR_ERR_ARG) - probe->enabled = was_enabled; + ch->enabled = was_enabled; } break; } @@ -156,13 +158,13 @@ SR_API int sr_dev_probe_enable(const struct sr_dev_inst *sdi, int probenum, } /** - * Add a trigger to the specified device (and the specified probe). + * Add a trigger to the specified device (and the specified channel). * - * If the specified probe of this device already has a trigger, it will + * If the specified channel of this device already has a trigger, it will * be silently replaced. * * @param[in,out] sdi Pointer to the device instance; must not be NULL. - * @param[in] probenum Number of probe, starting at 0. + * @param[in] channelnum Number of channel, starting at 0. * @param[in] trigger Trigger string, in the format used by sigrok-cli * * @return SR_OK on success or SR_ERR on failure. In case of invalid @@ -171,11 +173,11 @@ SR_API int sr_dev_probe_enable(const struct sr_dev_inst *sdi, int probenum, * * @since 0.2.0 */ -SR_API int sr_dev_trigger_set(const struct sr_dev_inst *sdi, int probenum, +SR_API int sr_dev_trigger_set(const struct sr_dev_inst *sdi, int channelnum, const char *trigger) { GSList *l; - struct sr_probe *probe; + struct sr_channel *ch; char *old_trigger; int ret; @@ -183,23 +185,23 @@ SR_API int sr_dev_trigger_set(const struct sr_dev_inst *sdi, int probenum, return SR_ERR_ARG; ret = SR_ERR_ARG; - for (l = sdi->probes; l; l = l->next) { - probe = l->data; - if (probe->index == probenum) { - old_trigger = probe->trigger; + for (l = sdi->channels; l; l = l->next) { + ch = l->data; + if (ch->index == channelnum) { + old_trigger = ch->trigger; ret = SR_OK; if (g_strcmp0(trigger, old_trigger) == 0) break; /* Set new trigger if it has changed. */ - probe->trigger = g_strdup(trigger); + ch->trigger = g_strdup(trigger); - if (sdi->driver && sdi->driver->config_probe_set) { - ret = sdi->driver->config_probe_set( - sdi, probe, SR_PROBE_SET_TRIGGER); + if (sdi->driver && sdi->driver->config_channel_set) { + ret = sdi->driver->config_channel_set( + sdi, ch, SR_CHANNEL_SET_TRIGGER); /* Roll back change if it wasn't applicable. */ if (ret == SR_ERR_ARG) { - g_free(probe->trigger); - probe->trigger = old_trigger; + g_free(ch->trigger); + ch->trigger = old_trigger; break; } } @@ -284,8 +286,8 @@ SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status, sdi->vendor = vendor ? g_strdup(vendor) : NULL; sdi->model = model ? g_strdup(model) : NULL; sdi->version = version ? g_strdup(version) : NULL; - sdi->probes = NULL; - sdi->probe_groups = NULL; + sdi->channels = NULL; + sdi->channel_groups = NULL; sdi->conn = NULL; sdi->priv = NULL; @@ -298,19 +300,19 @@ SR_PRIV struct sr_dev_inst *sr_dev_inst_new(int index, int status, */ SR_PRIV void sr_dev_inst_free(struct sr_dev_inst *sdi) { - struct sr_probe *probe; + struct sr_channel *ch; GSList *l; - for (l = sdi->probes; l; l = l->next) { - probe = l->data; - g_free(probe->name); - g_free(probe->trigger); - g_free(probe); + for (l = sdi->channels; l; l = l->next) { + ch = l->data; + g_free(ch->name); + g_free(ch->trigger); + g_free(ch); } - g_slist_free(sdi->probes); + g_slist_free(sdi->channels); - if (sdi->probe_groups) - g_slist_free(sdi->probe_groups); + if (sdi->channel_groups) + g_slist_free(sdi->channel_groups); g_free(sdi->vendor); g_free(sdi->model);