Lines Matching defs:opt

551         dev->opt[i].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
552 dev->opt[i].size = sizeof(SANE_Word);
553 dev->opt[i].type = SANE_TYPE_FIXED;
557 dev->opt[OPT_NUMOPTIONS].name = SANE_NAME_NUM_OPTIONS;
558 dev->opt[OPT_NUMOPTIONS].title = SANE_TITLE_NUM_OPTIONS;
559 dev->opt[OPT_NUMOPTIONS].desc = SANE_DESC_NUM_OPTIONS;
560 dev->opt[OPT_NUMOPTIONS].type = SANE_TYPE_INT;
561 dev->opt[OPT_NUMOPTIONS].cap = SANE_CAP_SOFT_DETECT;
564 dev->opt[OPT_GROUP_STD].name = SANE_NAME_STANDARD;
565 dev->opt[OPT_GROUP_STD].title = SANE_TITLE_STANDARD;
566 dev->opt[OPT_GROUP_STD].desc = SANE_DESC_STANDARD;
567 dev->opt[OPT_GROUP_STD].type = SANE_TYPE_GROUP;
568 dev->opt[OPT_GROUP_STD].cap = 0;
570 dev->opt[OPT_RESOLUTION].name = SANE_NAME_SCAN_RESOLUTION;
571 dev->opt[OPT_RESOLUTION].title = SANE_TITLE_SCAN_RESOLUTION;
572 dev->opt[OPT_RESOLUTION].desc = SANE_DESC_SCAN_RESOLUTION;
573 dev->opt[OPT_RESOLUTION].type = SANE_TYPE_INT;
574 dev->opt[OPT_RESOLUTION].cap = SANE_CAP_SOFT_SELECT|SANE_CAP_SOFT_DETECT;
575 dev->opt[OPT_RESOLUTION].unit = SANE_UNIT_DPI;
576 dev->opt[OPT_RESOLUTION].constraint_type = SANE_CONSTRAINT_WORD_LIST;
577 dev->opt[OPT_RESOLUTION].constraint.word_list = dev->dpi_list;
579 dev->opt[OPT_MODE].name = SANE_NAME_SCAN_MODE;
580 dev->opt[OPT_MODE].title = SANE_TITLE_SCAN_MODE;
581 dev->opt[OPT_MODE].desc = SANE_DESC_SCAN_MODE;
582 dev->opt[OPT_MODE].type = SANE_TYPE_STRING;
583 dev->opt[OPT_MODE].size = max_string_size(scan_modes);
584 dev->opt[OPT_MODE].cap = SANE_CAP_SOFT_SELECT|SANE_CAP_SOFT_DETECT;
585 dev->opt[OPT_MODE].constraint_type = SANE_CONSTRAINT_STRING_LIST;
586 dev->opt[OPT_MODE].constraint.string_list = scan_modes;
588 dev->opt[OPT_THRESHOLD].name = SANE_NAME_HIGHLIGHT;
589 dev->opt[OPT_THRESHOLD].title = SANE_TITLE_THRESHOLD;
590 dev->opt[OPT_THRESHOLD].desc = SANE_DESC_THRESHOLD;
591 dev->opt[OPT_THRESHOLD].unit = SANE_UNIT_PERCENT;
592 dev->opt[OPT_THRESHOLD].cap = SANE_CAP_SOFT_SELECT|SANE_CAP_SOFT_DETECT;
593 dev->opt[OPT_THRESHOLD].constraint_type = SANE_CONSTRAINT_RANGE;
594 dev->opt[OPT_THRESHOLD].constraint.range = &threshold;
596 dev->opt[OPT_SOURCE].name = SANE_NAME_SCAN_SOURCE;
597 dev->opt[OPT_SOURCE].title = SANE_TITLE_SCAN_SOURCE;
598 dev->opt[OPT_SOURCE].desc = SANE_DESC_SCAN_SOURCE;
599 dev->opt[OPT_SOURCE].type = SANE_TYPE_STRING;
600 dev->opt[OPT_SOURCE].size = max_string_size(doc_sources);
601 dev->opt[OPT_SOURCE].cap = SANE_CAP_SOFT_SELECT|SANE_CAP_SOFT_DETECT;
602 dev->opt[OPT_SOURCE].constraint_type = SANE_CONSTRAINT_STRING_LIST;
603 dev->opt[OPT_SOURCE].constraint.string_list = doc_sources;
605 dev->opt[OPT_JPEG].name = "jpeg";
606 dev->opt[OPT_JPEG].title = SANE_I18N("jpeg compression");
607 dev->opt[OPT_JPEG].desc = SANE_I18N("JPEG Image Compression");
608 dev->opt[OPT_JPEG].unit = SANE_UNIT_NONE;
609 dev->opt[OPT_JPEG].type = SANE_TYPE_BOOL;
610 dev->opt[OPT_JPEG].cap |= SANE_CAP_ADVANCED;
614 dev->opt[OPT_JPEG].cap |= SANE_CAP_INACTIVE;
617 dev->opt[OPT_JPEG].cap |= SANE_CAP_INACTIVE;
621 dev->opt[OPT_GROUP_GEO].name = SANE_NAME_GEOMETRY;
622 dev->opt[OPT_GROUP_GEO].title = SANE_TITLE_GEOMETRY;
623 dev->opt[OPT_GROUP_GEO].desc = SANE_DESC_GEOMETRY;
624 dev->opt[OPT_GROUP_GEO].type = SANE_TYPE_GROUP;
625 dev->opt[OPT_GROUP_GEO].cap = 0;
627 dev->opt[OPT_SCAN_TL_X].name = SANE_NAME_SCAN_TL_X;
628 dev->opt[OPT_SCAN_TL_X].title = SANE_TITLE_SCAN_TL_X;
629 dev->opt[OPT_SCAN_TL_X].desc = SANE_DESC_SCAN_TL_X;
630 dev->opt[OPT_SCAN_TL_X].unit = SANE_UNIT_MM;
631 dev->opt[OPT_SCAN_TL_X].constraint_type = SANE_CONSTRAINT_RANGE;
632 dev->opt[OPT_SCAN_TL_X].constraint.range = &dev->win_x_range;
634 dev->opt[OPT_SCAN_TL_Y].name = SANE_NAME_SCAN_TL_Y;
635 dev->opt[OPT_SCAN_TL_Y].title = SANE_TITLE_SCAN_TL_Y;
636 dev->opt[OPT_SCAN_TL_Y].desc = SANE_DESC_SCAN_TL_Y;
637 dev->opt[OPT_SCAN_TL_Y].unit = SANE_UNIT_MM;
638 dev->opt[OPT_SCAN_TL_Y].constraint_type = SANE_CONSTRAINT_RANGE;
639 dev->opt[OPT_SCAN_TL_Y].constraint.range = &dev->win_y_range;
641 dev->opt[OPT_SCAN_BR_X].name = SANE_NAME_SCAN_BR_X;
642 dev->opt[OPT_SCAN_BR_X].title = SANE_TITLE_SCAN_BR_X;
643 dev->opt[OPT_SCAN_BR_X].desc = SANE_DESC_SCAN_BR_X;
644 dev->opt[OPT_SCAN_BR_X].unit = SANE_UNIT_MM;
645 dev->opt[OPT_SCAN_BR_X].constraint_type = SANE_CONSTRAINT_RANGE;
646 dev->opt[OPT_SCAN_BR_X].constraint.range = &dev->win_x_range;
648 dev->opt[OPT_SCAN_BR_Y].name = SANE_NAME_SCAN_BR_Y;
649 dev->opt[OPT_SCAN_BR_Y].title = SANE_TITLE_SCAN_BR_Y;
650 dev->opt[OPT_SCAN_BR_Y].desc = SANE_DESC_SCAN_BR_Y;
651 dev->opt[OPT_SCAN_BR_Y].unit = SANE_UNIT_MM;
652 dev->opt[OPT_SCAN_BR_Y].constraint_type = SANE_CONSTRAINT_RANGE;
653 dev->opt[OPT_SCAN_BR_Y].constraint.range = &dev->win_y_range;
717 dev->opt[OPT_THRESHOLD].cap &= ~SANE_CAP_INACTIVE;
719 dev->opt[OPT_THRESHOLD].cap |= SANE_CAP_INACTIVE;
744 if (dev->val[i].w < dev->opt[i].constraint.range->min)
745 dev->val[i].w = dev->opt[i].constraint.range->min;
746 if (dev->val[i].w > dev->opt[i].constraint.range->max)
747 dev->val[i].w = dev->opt[i].constraint.range->max;
894 sane_get_option_descriptor(SANE_Handle h, SANE_Int opt)
898 DBG(3, "%s: %p, %d\n", __func__, h, opt);
899 if (opt >= NUM_OPTIONS || opt < 0)
901 return &dev->opt[opt];
905 sane_control_option(SANE_Handle h, SANE_Int opt, SANE_Action act,
910 DBG(3, "%s: %p, %d, <%d>, %p, %p\n", __func__, h, opt, act, val, (void *)info);
911 if (!dev || opt >= NUM_OPTIONS || opt < 0)
918 if (dev->opt[opt].type == SANE_TYPE_STRING)
919 strcpy(val, dev->val[opt].s);
921 *(SANE_Word *)val = dev->val[opt].w;
928 if (dev->opt[opt].constraint_type == SANE_CONSTRAINT_STRING_LIST) {
929 dev->val[opt].s = string_match(dev->opt[opt].constraint.string_list, val);
930 if (info && strcasecmp(dev->val[opt].s, val))
932 } else if (opt == OPT_RESOLUTION)
933 dev->val[opt].w = res_dpi_codes[dpi_to_code(*(SANE_Word *)val)];
935 dev->val[opt].w = *(SANE_Word *)val;
937 memcpy(&xopt, &dev->opt, sizeof(xopt));
946 if (memcmp(&xopt, &dev->opt, sizeof(xopt)))
950 if (i == opt)
958 DBG(4, "%s: %d, <%d> => %08x, %x\n", __func__, opt, act,