- tmp_str = g_variant_get_string(data, NULL);
- for (i = 0; i < ARRAY_SIZE(trigger_sources); i++) {
- if (!strcmp(trigger_sources[i], tmp_str)) {
- g_free(devc->trigger_source);
- devc->trigger_source = g_strdup(trigger_sources[i]);
- if (!strcmp(devc->trigger_source, "AC Line"))
- tmp_str = "LINE";
- else if (!strcmp(devc->trigger_source, "CH1"))
- tmp_str = "C1";
- else if (!strcmp(devc->trigger_source, "CH2"))
- tmp_str = "C2";
- else if (!strcmp(devc->trigger_source, "CH3"))
- tmp_str = "C3";
- else if (!strcmp(devc->trigger_source, "CH4"))
- tmp_str = "C4";
- else if (!strcmp(devc->trigger_source, "Ext"))
- tmp_str = "EX";
- else if (!strcmp(devc->trigger_source, "Ext /5"))
- tmp_str = "EX5";
- else
- tmp_str = (char *) devc->trigger_source;
- ret = siglent_sds_config_set(sdi, "TRSE EDGE,SR,%s,OFF", tmp_str);
- break;
- }
- }
- if (i == ARRAY_SIZE(trigger_sources)) {
- sr_err("Invalid trigger source index: %d.", i);
- ret = SR_ERR_ARG;
- }
- break;
+ if ((idx = std_str_idx(data, ARRAY_AND_SIZE(trigger_sources))) < 0)
+ return SR_ERR_ARG;
+ g_free(devc->trigger_source);
+ devc->trigger_source = g_strdup(trigger_sources[idx]);
+ if (!strcmp(devc->trigger_source, "AC Line"))
+ tmp_str = "LINE";
+ else if (!strcmp(devc->trigger_source, "CH1"))
+ tmp_str = "C1";
+ else if (!strcmp(devc->trigger_source, "CH2"))
+ tmp_str = "C2";
+ else if (!strcmp(devc->trigger_source, "CH3"))
+ tmp_str = "C3";
+ else if (!strcmp(devc->trigger_source, "CH4"))
+ tmp_str = "C4";
+ else if (!strcmp(devc->trigger_source, "Ext"))
+ tmp_str = "EX";
+ else if (!strcmp(devc->trigger_source, "Ext /5"))
+ tmp_str = "EX5";
+ else
+ tmp_str = (char *)devc->trigger_source;
+ return siglent_sds_config_set(sdi, "TRSE EDGE,SR,%s,OFF", tmp_str);