Lines Matching refs:opt
83 #define ENABLE(OPTION) s->opt[OPTION].cap &= ~SANE_CAP_INACTIVE
84 #define DISABLE(OPTION) s->opt[OPTION].cap |= SANE_CAP_INACTIVE
85 #define IS_ACTIVE(OPTION) (((s->opt[OPTION].cap) & SANE_CAP_INACTIVE) == 0)
1281 memset (s->opt, 0, sizeof (s->opt));
1286 s->opt[i].size = sizeof (SANE_Word);
1287 s->opt[i].cap = SANE_CAP_SOFT_SELECT | SANE_CAP_SOFT_DETECT;
1290 s->opt[OPT_NUM_OPTS].title = SANE_TITLE_NUM_OPTIONS;
1291 s->opt[OPT_NUM_OPTS].desc = SANE_DESC_NUM_OPTIONS;
1292 s->opt[OPT_NUM_OPTS].type = SANE_TYPE_INT;
1293 s->opt[OPT_NUM_OPTS].cap = SANE_CAP_SOFT_DETECT;
1298 s->opt[OPT_HWDETECT_GROUP].title = "Hardware";
1299 s->opt[OPT_HWDETECT_GROUP].desc = "Detected during hardware probing";
1300 s->opt[OPT_HWDETECT_GROUP].type = SANE_TYPE_GROUP;
1301 s->opt[OPT_HWDETECT_GROUP].cap = 0;
1302 s->opt[OPT_HWDETECT_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
1304 s->opt[OPT_MODEL].name = "model";
1305 s->opt[OPT_MODEL].title = "Model";
1306 s->opt[OPT_MODEL].desc = "Model and capabilities";
1307 s->opt[OPT_MODEL].type = SANE_TYPE_STRING;
1308 s->opt[OPT_MODEL].cap = SANE_CAP_SOFT_DETECT;
1309 s->opt[OPT_MODEL].constraint_type = SANE_CONSTRAINT_NONE;
1310 s->opt[OPT_MODEL].size = max_string_size (SupportedModel);
1316 s->opt[OPT_MODE_GROUP].title = "Scan Mode";
1317 s->opt[OPT_MODE_GROUP].desc = "";
1318 s->opt[OPT_MODE_GROUP].type = SANE_TYPE_GROUP;
1319 s->opt[OPT_MODE_GROUP].cap = 0;
1320 s->opt[OPT_MODE_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
1360 s->opt[OPT_MODE].name = SANE_NAME_SCAN_MODE;
1361 s->opt[OPT_MODE].title = SANE_TITLE_SCAN_MODE;
1362 s->opt[OPT_MODE].desc = SANE_DESC_SCAN_MODE;
1363 s->opt[OPT_MODE].type = SANE_TYPE_STRING;
1364 s->opt[OPT_MODE].constraint_type = SANE_CONSTRAINT_STRING_LIST;
1365 s->opt[OPT_MODE].size = max_string_size (mode_list);
1366 s->opt[OPT_MODE].constraint.string_list = mode_list;
1371 s->opt[OPT_RESOLUTION].name = SANE_NAME_SCAN_RESOLUTION;
1372 s->opt[OPT_RESOLUTION].title = SANE_TITLE_SCAN_RESOLUTION;
1373 s->opt[OPT_RESOLUTION].desc = SANE_DESC_SCAN_RESOLUTION;
1374 s->opt[OPT_RESOLUTION].type = SANE_TYPE_INT;
1375 s->opt[OPT_RESOLUTION].unit = SANE_UNIT_DPI;
1377 s->opt[OPT_RESOLUTION].constraint_type = SANE_CONSTRAINT_WORD_LIST;
1378 s->opt[OPT_RESOLUTION].constraint.word_list = resbit_list;
1382 s->opt[OPT_PREVIEW].name = SANE_NAME_PREVIEW;
1383 s->opt[OPT_PREVIEW].title = SANE_TITLE_PREVIEW;
1384 s->opt[OPT_PREVIEW].desc = SANE_DESC_PREVIEW;
1385 s->opt[OPT_PREVIEW].cap = SANE_CAP_SOFT_DETECT | SANE_CAP_SOFT_SELECT;
1386 s->opt[OPT_PREVIEW].type = SANE_TYPE_BOOL;
1390 s->opt[OPT_GEOMETRY_GROUP].title = "Geometry";
1391 s->opt[OPT_GEOMETRY_GROUP].desc = "";
1392 s->opt[OPT_GEOMETRY_GROUP].type = SANE_TYPE_GROUP;
1393 s->opt[OPT_GEOMETRY_GROUP].cap = SANE_CAP_ADVANCED;
1394 s->opt[OPT_GEOMETRY_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
1397 s->opt[OPT_TL_X].name = SANE_NAME_SCAN_TL_X;
1398 s->opt[OPT_TL_X].title = SANE_TITLE_SCAN_TL_X;
1399 s->opt[OPT_TL_X].desc = SANE_DESC_SCAN_TL_X;
1400 s->opt[OPT_TL_X].type = SANE_TYPE_FIXED;
1401 s->opt[OPT_TL_X].unit = SANE_UNIT_MM;
1402 s->opt[OPT_TL_X].constraint_type = SANE_CONSTRAINT_RANGE;
1403 s->opt[OPT_TL_X].constraint.range = &s->hw->x_range;
1407 s->opt[OPT_TL_Y].name = SANE_NAME_SCAN_TL_Y;
1408 s->opt[OPT_TL_Y].title = SANE_TITLE_SCAN_TL_Y;
1409 s->opt[OPT_TL_Y].desc = SANE_DESC_SCAN_TL_Y;
1410 s->opt[OPT_TL_Y].type = SANE_TYPE_FIXED;
1411 s->opt[OPT_TL_Y].unit = SANE_UNIT_MM;
1412 s->opt[OPT_TL_Y].constraint_type = SANE_CONSTRAINT_RANGE;
1413 s->opt[OPT_TL_Y].constraint.range = &s->hw->y_range;
1417 s->opt[OPT_BR_X].name = SANE_NAME_SCAN_BR_X;
1418 s->opt[OPT_BR_X].title = SANE_TITLE_SCAN_BR_X;
1419 s->opt[OPT_BR_X].desc = SANE_DESC_SCAN_BR_X;
1420 s->opt[OPT_BR_X].type = SANE_TYPE_FIXED;
1421 s->opt[OPT_BR_X].unit = SANE_UNIT_MM;
1422 s->opt[OPT_BR_X].constraint_type = SANE_CONSTRAINT_RANGE;
1423 s->opt[OPT_BR_X].constraint.range = &s->hw->x_range;
1427 s->opt[OPT_BR_Y].name = SANE_NAME_SCAN_BR_Y;
1428 s->opt[OPT_BR_Y].title = SANE_TITLE_SCAN_BR_Y;
1429 s->opt[OPT_BR_Y].desc = SANE_DESC_SCAN_BR_Y;
1430 s->opt[OPT_BR_Y].type = SANE_TYPE_FIXED;
1431 s->opt[OPT_BR_Y].unit = SANE_UNIT_MM;
1432 s->opt[OPT_BR_Y].constraint_type = SANE_CONSTRAINT_RANGE;
1433 s->opt[OPT_BR_Y].constraint.range = &s->hw->y_range;
1439 s->opt[OPT_ENHANCEMENT_GROUP].title = "Enhancement";
1440 s->opt[OPT_ENHANCEMENT_GROUP].desc = "";
1441 s->opt[OPT_ENHANCEMENT_GROUP].type = SANE_TYPE_GROUP;
1442 s->opt[OPT_ENHANCEMENT_GROUP].cap = 0;
1443 s->opt[OPT_ENHANCEMENT_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
1446 s->opt[OPT_BRIGHTNESS].name = SANE_NAME_BRIGHTNESS;
1447 s->opt[OPT_BRIGHTNESS].title = SANE_TITLE_BRIGHTNESS;
1448 s->opt[OPT_BRIGHTNESS].desc = SANE_DESC_BRIGHTNESS;
1449 s->opt[OPT_BRIGHTNESS].type = SANE_TYPE_INT;
1450 s->opt[OPT_BRIGHTNESS].unit = SANE_UNIT_NONE;
1451 s->opt[OPT_BRIGHTNESS].constraint_type = SANE_CONSTRAINT_RANGE;
1452 s->opt[OPT_BRIGHTNESS].constraint.range = &byte_range;
1456 s->opt[OPT_CONTRAST].name = SANE_NAME_CONTRAST;
1457 s->opt[OPT_CONTRAST].title = SANE_TITLE_CONTRAST;
1458 s->opt[OPT_CONTRAST].desc = SANE_DESC_CONTRAST
1460 s->opt[OPT_CONTRAST].type = SANE_TYPE_INT;
1461 s->opt[OPT_CONTRAST].unit = SANE_UNIT_NONE;
1462 s->opt[OPT_CONTRAST].constraint_type = SANE_CONSTRAINT_RANGE;
1463 s->opt[OPT_CONTRAST].constraint.range = &byte_range;
1467 s->opt[OPT_THRESHOLD].name = SANE_NAME_THRESHOLD;
1468 s->opt[OPT_THRESHOLD].title = SANE_TITLE_THRESHOLD;
1469 s->opt[OPT_THRESHOLD].desc = SANE_DESC_THRESHOLD;
1470 s->opt[OPT_THRESHOLD].type = SANE_TYPE_INT;
1471 s->opt[OPT_THRESHOLD].unit = SANE_UNIT_NONE;
1472 s->opt[OPT_THRESHOLD].constraint_type = SANE_CONSTRAINT_RANGE;
1473 s->opt[OPT_THRESHOLD].constraint.range = &byte_range;
1479 s->opt[OPT_GRAYMAP].name = "graymap";
1480 s->opt[OPT_GRAYMAP].title = "GrayMap";
1481 s->opt[OPT_GRAYMAP].desc = "Fixed Gamma Enhancing";
1482 s->opt[OPT_GRAYMAP].type = SANE_TYPE_STRING;
1483 s->opt[OPT_GRAYMAP].constraint_type = SANE_CONSTRAINT_STRING_LIST;
1485 s->opt[OPT_GRAYMAP].cap |= SANE_CAP_INACTIVE;
1486 s->opt[OPT_GRAYMAP].constraint.string_list = graymap_list;
1487 s->opt[OPT_GRAYMAP].size = max_string_size (graymap_list);
1491 s->opt[OPT_AUTOBACKGROUND].name = "abj";
1492 s->opt[OPT_AUTOBACKGROUND].title = "Use Auto Background Adjustment";
1493 s->opt[OPT_AUTOBACKGROUND].desc =
1498 s->opt[OPT_AUTOBACKGROUND].type = SANE_TYPE_BOOL;
1502 s->opt[OPT_AUTOBACKGROUND_THRESHOLD].name = "abjthreshold";
1503 s->opt[OPT_AUTOBACKGROUND_THRESHOLD].title = "Auto Background Adjustment Threshold";
1504 s->opt[OPT_AUTOBACKGROUND_THRESHOLD].desc = "Selects the automatically adjustable threshold";
1505 s->opt[OPT_AUTOBACKGROUND_THRESHOLD].type = SANE_TYPE_INT;
1506 s->opt[OPT_AUTOBACKGROUND_THRESHOLD].unit = SANE_UNIT_NONE;
1507 s->opt[OPT_AUTOBACKGROUND_THRESHOLD].constraint_type = SANE_CONSTRAINT_RANGE;
1511 s->opt[OPT_AUTOBACKGROUND_THRESHOLD].cap |= SANE_CAP_INACTIVE;
1513 s->opt[OPT_AUTOBACKGROUND_THRESHOLD].constraint.range = &byte_range;
1520 s->opt[OPT_HALFTONE_PATTERN].name = SANE_NAME_HALFTONE_PATTERN;
1521 s->opt[OPT_HALFTONE_PATTERN].title = SANE_TITLE_HALFTONE_PATTERN;
1522 s->opt[OPT_HALFTONE_PATTERN].desc = SANE_DESC_HALFTONE_PATTERN;
1523 s->opt[OPT_HALFTONE_PATTERN].size = max_string_size (halftone_pattern_list);
1524 s->opt[OPT_HALFTONE_PATTERN].type = SANE_TYPE_STRING;
1525 s->opt[OPT_HALFTONE_PATTERN].cap |= SANE_CAP_AUTOMATIC;
1526 s->opt[OPT_HALFTONE_PATTERN].constraint_type = SANE_CONSTRAINT_STRING_LIST;
1527 s->opt[OPT_HALFTONE_PATTERN].constraint.string_list = halftone_pattern_list;
1531 s->opt[OPT_HALFTONE_PATTERN].cap |= SANE_CAP_INACTIVE;
1535 s->opt[OPT_HALFTONE_FILE].name = "halftone-pattern-file";
1536 s->opt[OPT_HALFTONE_FILE].title = "Halftone Pattern File";
1537 s->opt[OPT_HALFTONE_FILE].desc =
1539 s->opt[OPT_HALFTONE_FILE].type = SANE_TYPE_STRING;
1540 s->opt[OPT_HALFTONE_FILE].cap |= SANE_CAP_INACTIVE;
1541 s->opt[OPT_HALFTONE_FILE].size = 256;
1545 s->opt[OPT_VOLT_REF].name = "volt-ref";
1546 s->opt[OPT_VOLT_REF].title = "Volt Reference";
1547 s->opt[OPT_VOLT_REF].desc ="It's brightness equivalent.";
1548 s->opt[OPT_VOLT_REF].type = SANE_TYPE_BOOL;
1550 s->opt[OPT_VOLT_REF].cap |= SANE_CAP_INACTIVE;
1553 s->opt[OPT_VOLT_REF_TOP].name = "volt-ref-top";
1554 s->opt[OPT_VOLT_REF_TOP].title = "Top Voltage Reference";
1555 s->opt[OPT_VOLT_REF_TOP].desc = "I really do not know.";
1556 s->opt[OPT_VOLT_REF_TOP].type = SANE_TYPE_INT;
1557 s->opt[OPT_VOLT_REF_TOP].unit = SANE_UNIT_NONE;
1559 s->opt[OPT_VOLT_REF_TOP].cap |= SANE_CAP_INACTIVE;
1560 s->opt[OPT_VOLT_REF_TOP].constraint_type = SANE_CONSTRAINT_RANGE;
1561 s->opt[OPT_VOLT_REF_TOP].constraint.range = &byte_range;
1564 s->opt[OPT_VOLT_REF_BOTTOM].name = "volt-ref-bottom";
1565 s->opt[OPT_VOLT_REF_BOTTOM].title = "Bottom Voltage Reference";
1566 s->opt[OPT_VOLT_REF_BOTTOM].desc = "I really do not know.";
1567 s->opt[OPT_VOLT_REF_BOTTOM].type = SANE_TYPE_INT;
1568 s->opt[OPT_VOLT_REF_BOTTOM].unit = SANE_UNIT_NONE;
1570 s->opt[OPT_VOLT_REF_BOTTOM].cap |= SANE_CAP_INACTIVE;
1571 s->opt[OPT_VOLT_REF_BOTTOM].constraint_type = SANE_CONSTRAINT_RANGE;
1572 s->opt[OPT_VOLT_REF_BOTTOM].constraint.range = &byte_range;
1577 s->opt[OPT_MISC_GROUP].title = "Miscallaneous";
1578 s->opt[OPT_MISC_GROUP].desc = "";
1579 s->opt[OPT_MISC_GROUP].type = SANE_TYPE_GROUP;
1580 s->opt[OPT_MISC_GROUP].cap = SANE_CAP_ADVANCED;
1581 s->opt[OPT_MISC_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
1585 s->opt[OPT_LAMP].name = "lamp";
1586 s->opt[OPT_LAMP].title = "Lamp";
1587 s->opt[OPT_LAMP].desc = "Hold the lamp on during scans.";
1588 s->opt[OPT_LAMP].type = SANE_TYPE_BOOL;
1594 s->opt[OPT_WAIT].name = "wait";
1595 s->opt[OPT_WAIT].title = "Wait";
1596 s->opt[OPT_WAIT].desc = "You may issue the scan command but the actual "
1601 s->opt[OPT_WAIT].type = SANE_TYPE_BOOL;
1603 s->opt[OPT_WAIT].cap |= SANE_CAP_INACTIVE;
1610 s->opt[OPT_CALIBRATE].name = "calibrate";
1611 s->opt[OPT_CALIBRATE].title = "Calibrate";
1612 s->opt[OPT_CALIBRATE].desc = "You may avoid the calibration before "
1614 s->opt[OPT_CALIBRATE].type = SANE_TYPE_BOOL;
1616 s->opt[OPT_CALIBRATE].cap |= SANE_CAP_INACTIVE;
1620 s->opt[OPT_SPEED].name = SANE_NAME_SCAN_SPEED;
1621 s->opt[OPT_SPEED].title = SANE_TITLE_SCAN_SPEED;
1622 s->opt[OPT_SPEED].desc = SANE_DESC_SCAN_SPEED;
1623 s->opt[OPT_SPEED].type = SANE_TYPE_STRING;
1625 s->opt[OPT_SPEED].cap |= SANE_CAP_INACTIVE;
1626 s->opt[OPT_SPEED].size = max_string_size (speed_list);
1627 s->opt[OPT_SPEED].constraint_type = SANE_CONSTRAINT_STRING_LIST;
1628 s->opt[OPT_SPEED].constraint.string_list = speed_list;
1634 s->opt[OPT_LED].name = "led";
1635 s->opt[OPT_LED].title = "LED";
1636 s->opt[OPT_LED].desc ="This option controls the setting of the ambler LED.";
1637 s->opt[OPT_LED].type = SANE_TYPE_BOOL;
1639 s->opt[OPT_LED].cap |= SANE_CAP_INACTIVE;
1643 s->opt[OPT_CCD].name = "ccd";
1644 s->opt[OPT_CCD].title = "CCD Power";
1645 s->opt[OPT_CCD].desc ="This option controls the power to the CCD array.";
1646 s->opt[OPT_CCD].type = SANE_TYPE_BOOL;
1648 s->opt[OPT_CCD].cap |= SANE_CAP_INACTIVE;
1652 s->opt[OPT_MTF_CIRCUIT].name = "mtf";
1653 s->opt[OPT_MTF_CIRCUIT].title = "MTF Circuit";
1654 s->opt[OPT_MTF_CIRCUIT].desc ="Turns the MTF (Modulation Transfer Function) "
1656 s->opt[OPT_MTF_CIRCUIT].type = SANE_TYPE_BOOL;
1658 s->opt[OPT_MTF_CIRCUIT].cap |= SANE_CAP_INACTIVE;
1663 s->opt[OPT_ICP].name = "icp";
1664 s->opt[OPT_ICP].title = "ICP";
1665 s->opt[OPT_ICP].desc ="What is an ICP anyway?";
1666 s->opt[OPT_ICP].type = SANE_TYPE_BOOL;
1668 s->opt[OPT_ICP].cap |= SANE_CAP_INACTIVE;
1673 s->opt[OPT_POLARITY].name = "polarity";
1674 s->opt[OPT_POLARITY].title = "Data Polarity";
1675 s->opt[OPT_POLARITY].desc = "Reverse black and white.";
1676 s->opt[OPT_POLARITY].type = SANE_TYPE_BOOL;
1678 s->opt[OPT_POLARITY].cap |= SANE_CAP_INACTIVE;
1684 s->opt[OPT_COLOR_GROUP].title = SANE_VALUE_SCAN_MODE_COLOR;
1685 s->opt[OPT_COLOR_GROUP].desc = "";
1686 s->opt[OPT_COLOR_GROUP].type = SANE_TYPE_GROUP;
1687 s->opt[OPT_COLOR_GROUP].cap = SANE_CAP_ADVANCED;
1688 s->opt[OPT_COLOR_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
1692 s->opt[OPT_CALIBRATION_VECTOR].name = "calibration-vector";
1693 s->opt[OPT_CALIBRATION_VECTOR].title = "Calibration Vector";
1694 s->opt[OPT_CALIBRATION_VECTOR].desc = "Calibration vector for the CCD array.";
1695 s->opt[OPT_CALIBRATION_VECTOR].type = SANE_TYPE_INT;
1697 s->opt[OPT_CALIBRATION_VECTOR].cap |= SANE_CAP_INACTIVE;
1698 s->opt[OPT_CALIBRATION_VECTOR].unit = SANE_UNIT_NONE;
1699 s->opt[OPT_CALIBRATION_VECTOR].size = 2550 * sizeof (SANE_Word);
1700 s->opt[OPT_CALIBRATION_VECTOR].constraint_type = SANE_CONSTRAINT_RANGE;
1701 s->opt[OPT_CALIBRATION_VECTOR].constraint.range = &u8_range;
1705 s->opt[OPT_CALIBRATION_VECTOR_RED].name = "calibration-vector-red";
1706 s->opt[OPT_CALIBRATION_VECTOR_RED].title = "Calibration Vector for Red";
1707 s->opt[OPT_CALIBRATION_VECTOR_RED].desc = "Calibration vector for the CCD array.";
1708 s->opt[OPT_CALIBRATION_VECTOR_RED].type = SANE_TYPE_INT;
1710 s->opt[OPT_CALIBRATION_VECTOR_RED].cap |= SANE_CAP_INACTIVE;
1711 s->opt[OPT_CALIBRATION_VECTOR_RED].unit = SANE_UNIT_NONE;
1712 s->opt[OPT_CALIBRATION_VECTOR_RED].size = 2700 * sizeof (SANE_Word);
1713 s->opt[OPT_CALIBRATION_VECTOR_RED].constraint_type = SANE_CONSTRAINT_RANGE;
1714 s->opt[OPT_CALIBRATION_VECTOR_RED].constraint.range = &u8_range;
1718 s->opt[OPT_CALIBRATION_VECTOR_GREEN].name = "calibration-vector-green";
1719 s->opt[OPT_CALIBRATION_VECTOR_GREEN].title = "Calibration Vector for Green";
1720 s->opt[OPT_CALIBRATION_VECTOR_GREEN].desc = "Calibration vector for the CCD array.";
1721 s->opt[OPT_CALIBRATION_VECTOR_GREEN].type = SANE_TYPE_INT;
1723 s->opt[OPT_CALIBRATION_VECTOR].cap |= SANE_CAP_INACTIVE;
1724 s->opt[OPT_CALIBRATION_VECTOR_GREEN].unit = SANE_UNIT_NONE;
1725 s->opt[OPT_CALIBRATION_VECTOR_GREEN].size = 2700 * sizeof (SANE_Word);
1726 s->opt[OPT_CALIBRATION_VECTOR_GREEN].constraint_type = SANE_CONSTRAINT_RANGE;
1727 s->opt[OPT_CALIBRATION_VECTOR_GREEN].constraint.range = &u8_range;
1731 s->opt[OPT_CALIBRATION_VECTOR_BLUE].name = "calibration-vector-blue";
1732 s->opt[OPT_CALIBRATION_VECTOR_BLUE].title = "Calibration Vector for Blue";
1733 s->opt[OPT_CALIBRATION_VECTOR_BLUE].desc = "Calibration vector for the CCD array.";
1734 s->opt[OPT_CALIBRATION_VECTOR_BLUE].type = SANE_TYPE_INT;
1736 s->opt[OPT_CALIBRATION_VECTOR_BLUE].cap |= SANE_CAP_INACTIVE;
1737 s->opt[OPT_CALIBRATION_VECTOR_BLUE].unit = SANE_UNIT_NONE;
1738 s->opt[OPT_CALIBRATION_VECTOR_BLUE].size = 2700 * sizeof (SANE_Word);
1739 s->opt[OPT_CALIBRATION_VECTOR_BLUE].constraint_type = SANE_CONSTRAINT_RANGE;
1740 s->opt[OPT_CALIBRATION_VECTOR_BLUE].constraint.range = &u8_range;
1745 s->opt[OPT_DOWNLOAD_CALIBRATION_VECTOR].name = "download-calibration";
1746 s->opt[OPT_DOWNLOAD_CALIBRATION_VECTOR].title = "Download Calibration Vector";
1747 s->opt[OPT_DOWNLOAD_CALIBRATION_VECTOR].desc = "Download calibration vector to scanner";
1748 s->opt[OPT_DOWNLOAD_CALIBRATION_VECTOR].type = SANE_TYPE_BUTTON;
1750 s->opt[OPT_DOWNLOAD_CALIBRATION_VECTOR].cap |= SANE_CAP_INACTIVE;
1753 s->opt[OPT_CUSTOM_CCT].name = "custom-cct";
1754 s->opt[OPT_CUSTOM_CCT].title = "Use Custom CCT";
1755 s->opt[OPT_CUSTOM_CCT].desc ="Determines whether a builtin "
1757 s->opt[OPT_CUSTOM_CCT].type = SANE_TYPE_BOOL;
1758 s->opt[OPT_CUSTOM_CCT].cap |= SANE_CAP_INACTIVE;
1760 s->opt[OPT_CUSTOM_CCT].cap |= SANE_CAP_INACTIVE;
1765 s->opt[OPT_CCT].name = "cct";
1766 s->opt[OPT_CCT].title = "3x3 Color Correction Table";
1767 s->opt[OPT_CCT].desc = "TODO: Color Correction is currently unsupported";
1768 s->opt[OPT_CCT].type = SANE_TYPE_FIXED;
1769 s->opt[OPT_CCT].cap |= SANE_CAP_INACTIVE;
1770 s->opt[OPT_CCT].unit = SANE_UNIT_NONE;
1771 s->opt[OPT_CCT].size = 9 * sizeof (SANE_Word);
1772 s->opt[OPT_CCT].constraint_type = SANE_CONSTRAINT_RANGE;
1773 s->opt[OPT_CCT].constraint.range = &u8_range;
1778 s->opt[OPT_DOWNLOAD_CCT].name = "download-3x3";
1779 s->opt[OPT_DOWNLOAD_CCT].title = "Download 3x3 CCT";
1780 s->opt[OPT_DOWNLOAD_CCT].desc = "Download 3x3 color correction table";
1781 s->opt[OPT_DOWNLOAD_CCT].type = SANE_TYPE_BUTTON;
1783 s->opt[OPT_DOWNLOAD_CCT].cap |= SANE_CAP_INACTIVE;
1787 s->opt[OPT_CUSTOM_GAMMA].name = SANE_NAME_CUSTOM_GAMMA;
1788 s->opt[OPT_CUSTOM_GAMMA].title = SANE_TITLE_CUSTOM_GAMMA;
1789 s->opt[OPT_CUSTOM_GAMMA].desc = SANE_DESC_CUSTOM_GAMMA;
1790 s->opt[OPT_CUSTOM_GAMMA].type = SANE_TYPE_BOOL;
1791 s->opt[OPT_CUSTOM_GAMMA].cap |= SANE_CAP_INACTIVE;
1795 s->opt[OPT_GAMMA_VECTOR_R].name = SANE_NAME_GAMMA_VECTOR_R;
1796 s->opt[OPT_GAMMA_VECTOR_R].title = SANE_TITLE_GAMMA_VECTOR_R;
1797 s->opt[OPT_GAMMA_VECTOR_R].desc = SANE_DESC_GAMMA_VECTOR_R;
1798 s->opt[OPT_GAMMA_VECTOR_R].type = SANE_TYPE_INT;
1799 s->opt[OPT_GAMMA_VECTOR_R].cap |= SANE_CAP_INACTIVE;
1800 s->opt[OPT_GAMMA_VECTOR_R].unit = SANE_UNIT_NONE;
1801 s->opt[OPT_GAMMA_VECTOR_R].size = 256 * sizeof (SANE_Word);
1802 s->opt[OPT_GAMMA_VECTOR_R].constraint_type = SANE_CONSTRAINT_RANGE;
1803 s->opt[OPT_GAMMA_VECTOR_R].constraint.range = &u8_range;
1807 s->opt[OPT_GAMMA_VECTOR_G].name = SANE_NAME_GAMMA_VECTOR_G;
1808 s->opt[OPT_GAMMA_VECTOR_G].title = SANE_TITLE_GAMMA_VECTOR_G;
1809 s->opt[OPT_GAMMA_VECTOR_G].desc = SANE_DESC_GAMMA_VECTOR_G;
1810 s->opt[OPT_GAMMA_VECTOR_G].type = SANE_TYPE_INT;
1811 s->opt[OPT_GAMMA_VECTOR_G].cap |= SANE_CAP_INACTIVE;
1812 s->opt[OPT_GAMMA_VECTOR_G].unit = SANE_UNIT_NONE;
1813 s->opt[OPT_GAMMA_VECTOR_G].size = 256 * sizeof (SANE_Word);
1814 s->opt[OPT_GAMMA_VECTOR_G].constraint_type = SANE_CONSTRAINT_RANGE;
1815 s->opt[OPT_GAMMA_VECTOR_G].constraint.range = &u8_range;
1819 s->opt[OPT_GAMMA_VECTOR_B].name = SANE_NAME_GAMMA_VECTOR_B;
1820 s->opt[OPT_GAMMA_VECTOR_B].title = SANE_TITLE_GAMMA_VECTOR_B;
1821 s->opt[OPT_GAMMA_VECTOR_B].desc = SANE_DESC_GAMMA_VECTOR_B;
1822 s->opt[OPT_GAMMA_VECTOR_B].type = SANE_TYPE_INT;
1823 s->opt[OPT_GAMMA_VECTOR_B].cap |= SANE_CAP_INACTIVE;
1824 s->opt[OPT_GAMMA_VECTOR_B].unit = SANE_UNIT_NONE;
1825 s->opt[OPT_GAMMA_VECTOR_B].size = 256 * sizeof (SANE_Word);
1826 s->opt[OPT_GAMMA_VECTOR_B].constraint_type = SANE_CONSTRAINT_RANGE;
1827 s->opt[OPT_GAMMA_VECTOR_B].constraint.range = &u8_range;
1831 s->opt[OPT_DOWNLOAD_GAMMA].name = "download-gamma";
1832 s->opt[OPT_DOWNLOAD_GAMMA].title = "Download Gamma Vector(s)";
1833 s->opt[OPT_DOWNLOAD_GAMMA].desc = "Download Gamma Vector(s).";
1834 s->opt[OPT_DOWNLOAD_GAMMA].type = SANE_TYPE_BUTTON;
1835 s->opt[OPT_DOWNLOAD_GAMMA].cap |= SANE_CAP_INACTIVE;
1837 s->opt[OPT_COLOR_SENSOR].name = "color-sensor";
1838 s->opt[OPT_COLOR_SENSOR].title = "Gray scan with";
1839 s->opt[OPT_COLOR_SENSOR].desc = "Select the color sensor to scan in gray mode.";
1840 s->opt[OPT_COLOR_SENSOR].type = SANE_TYPE_STRING;
1841 s->opt[OPT_COLOR_SENSOR].unit = SANE_UNIT_NONE;
1842 s->opt[OPT_COLOR_SENSOR].size = max_string_size (color_sensor_list);
1844 s->opt[OPT_COLOR_SENSOR].cap |= SANE_CAP_INACTIVE;
1845 s->opt[OPT_COLOR_SENSOR].constraint_type = SANE_CONSTRAINT_STRING_LIST;
1846 s->opt[OPT_COLOR_SENSOR].constraint.string_list = color_sensor_list;
2033 return s->opt + option;
2047 s->opt[option].name, option);
2050 switch (s->opt[option].type)
2084 cap = s->opt[option].cap;
2131 memcpy (val, s->val[option].wa, s->opt[option].size);
2141 status = sanei_constrain_value (s->opt + option, s->val[option].s,
2166 status = sanei_constrain_value (s->opt + option, val, info);
2229 memcpy (s->val[option].wa, val, s->opt[option].size);