+ case SR_CONF_EXTERNAL_CLOCK:
+ if (g_variant_get_boolean(data)) {
+ sr_info("Enabling external clock.");
+ devc->flag_reg |= FLAG_CLOCK_EXTERNAL;
+ } else {
+ sr_info("Disabled external clock.");
+ devc->flag_reg &= ~FLAG_CLOCK_EXTERNAL;
+ }
+ ret = SR_OK;
+ break;
+ case SR_CONF_PATTERN_MODE:
+ stropt = g_variant_get_string(data, NULL);
+ ret = SR_OK;
+ flag = 0xffff;
+ if (!strcmp(stropt, STR_PATTERN_NONE)) {
+ sr_info("Disabling test modes.");
+ flag = 0x0000;
+ }else if (!strcmp(stropt, STR_PATTERN_INTERNAL)) {
+ sr_info("Enabling internal test mode.");
+ flag = FLAG_INTERNAL_TEST_MODE;
+ } else if (!strcmp(stropt, STR_PATTERN_EXTERNAL)) {
+ sr_info("Enabling external test mode.");
+ flag = FLAG_EXTERNAL_TEST_MODE;
+ } else {
+ ret = SR_ERR;
+ }
+ if (flag != 0xffff) {
+ devc->flag_reg &= ~(FLAG_INTERNAL_TEST_MODE | FLAG_EXTERNAL_TEST_MODE);
+ devc->flag_reg |= flag;
+ }
+ break;
+ case SR_CONF_SWAP:
+ if (g_variant_get_boolean(data)) {
+ sr_info("Enabling channel swapping.");
+ devc->flag_reg |= FLAG_SWAP_PROBES;
+ } else {
+ sr_info("Disabling channel swapping.");
+ devc->flag_reg &= ~FLAG_SWAP_PROBES;
+ }
+ ret = SR_OK;
+ break;
+