Lines Matching refs:scanner
91 capabilities_t *scanner;
314 snprintf(tmp, sizeof(tmp), "%s scanner", (is ? is : "flatbed or ADF"));
383 * \brief Function that checks if the url of the received scanner is secured or not (http / https).
553 escl_device->is = strdup("flatbed or ADF scanner");
596 escl_device->is = strdup("flatbed or ADF scanner");
671 int n = handler->scanner->caps[handler->scanner->source].SupportedResolutions[0] + 1;
674 DBG(10, "SEARCH RESOLUTION [ %d | %d]\n", resol, (int)handler->scanner->caps[handler->scanner->source].SupportedResolutions[x]);
675 if (resol == handler->scanner->caps[handler->scanner->source].SupportedResolutions[x])
677 else if (resol < handler->scanner->caps[handler->scanner->source].SupportedResolutions[x])
680 return handler->scanner->caps[handler->scanner->source].SupportedResolutions[1];
685 old = handler->scanner->caps[handler->scanner->source].SupportedResolutions[x];
693 * \brief Function thzt initializes all the needed options of the received scanner
706 if (!s->scanner) return SANE_STATUS_INVAL;
708 int source = s->scanner->source;
710 s->scanner->source = ADFDUPLEX;
713 s->scanner->source = ADFSIMPLEX;
715 s->scanner->source = PLATEN;
716 if (source == s->scanner->source) return status;
717 s->scanner->caps[s->scanner->source].default_color =
718 strdup(s->scanner->caps[source].default_color);
719 s->scanner->caps[s->scanner->source].default_resolution =
720 _get_resolution(s, s->scanner->caps[source].default_resolution);
722 if (s->scanner->caps[s->scanner->source].ColorModes == NULL) {
723 if (s->scanner->caps[PLATEN].ColorModes)
724 s->scanner->source = PLATEN;
725 else if (s->scanner->caps[ADFSIMPLEX].ColorModes)
726 s->scanner->source = ADFSIMPLEX;
727 else if (s->scanner->caps[ADFDUPLEX].ColorModes)
728 s->scanner->source = ADFDUPLEX;
732 if (s->scanner->source == PLATEN) {
735 else if (s->scanner->source == ADFDUPLEX) {
738 else if (s->scanner->source == ADFSIMPLEX) {
743 PIXEL_TO_MM((s->scanner->caps[s->scanner->source].MaxWidth -
744 s->scanner->caps[s->scanner->source].MinWidth),
747 s->x_range2.min = PIXEL_TO_MM(s->scanner->caps[s->scanner->source].MinWidth, 300.0);
748 s->x_range2.max = PIXEL_TO_MM(s->scanner->caps[s->scanner->source].MaxWidth, 300.0);
752 PIXEL_TO_MM((s->scanner->caps[s->scanner->source].MaxHeight -
753 s->scanner->caps[s->scanner->source].MinHeight),
756 s->y_range2.min = PIXEL_TO_MM(s->scanner->caps[s->scanner->source].MinHeight, 300.0);
757 s->y_range2.max = PIXEL_TO_MM(s->scanner->caps[s->scanner->source].MaxHeight, 300.0);
760 s->opt[OPT_MODE].constraint.string_list = s->scanner->caps[s->scanner->source].ColorModes;
765 if (s->scanner->caps[s->scanner->source].default_color) {
767 if (!strcmp(s->scanner->caps[s->scanner->source].default_color, "Grayscale8"))
769 else if (!strcmp(s->scanner->caps[s->scanner->source].default_color, "BlackAndWhite1"))
773 for (x = 0; s->scanner->caps[s->scanner->source].ColorModes[x]; x++) {
774 if (s->scanner->caps[s->scanner->source].ColorModes[x] &&
775 !strcasecmp(s->scanner->caps[s->scanner->source].ColorModes[x], s->val[OPT_MODE].s)) {
781 if (!s->scanner->caps[s->scanner->source].default_color || found == 0) {
782 if (s->scanner->caps[s->scanner->source].default_color)
783 free(s->scanner->caps[s->scanner->source].default_color);
784 s->val[OPT_MODE].s = strdup(s->scanner->caps[s->scanner->source].ColorModes[0]);
786 s->scanner->caps[s->scanner->source].default_color = strdup("Grayscale8");
788 s->scanner->caps[s->scanner->source].default_color = strdup("BlackAndWhite1");
790 s->scanner->caps[s->scanner->source].default_color = strdup("RGB24");
796 if (!s->scanner->caps[s->scanner->source].default_color) {
800 s->val[OPT_RESOLUTION].w = s->scanner->caps[s->scanner->source].default_resolution;
808 s->val[OPT_SCAN_SOURCE].s = strdup (s->scanner->Sources[s->scanner->source]);
815 * \brief Function thzt initializes all the needed options of the received scanner
828 if (!s->scanner) return SANE_STATUS_INVAL;
830 int source = s->scanner->source;
833 s->scanner->source = ADFDUPLEX;
836 s->scanner->source = ADFSIMPLEX;
838 s->scanner->source = PLATEN;
839 if (source == s->scanner->source) return status;
841 if (s->scanner->caps[s->scanner->source].ColorModes == NULL) {
842 if (s->scanner->caps[PLATEN].ColorModes)
843 s->scanner->source = PLATEN;
844 else if (s->scanner->caps[ADFSIMPLEX].ColorModes)
845 s->scanner->source = ADFSIMPLEX;
846 else if (s->scanner->caps[ADFDUPLEX].ColorModes)
847 s->scanner->source = ADFDUPLEX;
851 if (s->scanner->source == PLATEN) {
854 else if (s->scanner->source == ADFDUPLEX) {
857 else if (s->scanner->source == ADFSIMPLEX) {
868 PIXEL_TO_MM((s->scanner->caps[s->scanner->source].MaxWidth -
869 s->scanner->caps[s->scanner->source].MinWidth),
872 s->x_range2.min = PIXEL_TO_MM(s->scanner->caps[s->scanner->source].MinWidth, 300.0);
873 s->x_range2.max = PIXEL_TO_MM(s->scanner->caps[s->scanner->source].MaxWidth, 300.0);
877 PIXEL_TO_MM((s->scanner->caps[s->scanner->source].MaxHeight -
878 s->scanner->caps[s->scanner->source].MinHeight),
881 s->y_range2.min = PIXEL_TO_MM(s->scanner->caps[s->scanner->source].MinHeight, 300.0);
882 s->y_range2.max = PIXEL_TO_MM(s->scanner->caps[s->scanner->source].MaxHeight, 300.0);
903 s->opt[OPT_MODE].constraint.string_list = s->scanner->caps[s->scanner->source].ColorModes;
904 if (s->scanner->caps[s->scanner->source].default_color) {
905 if (!strcasecmp(s->scanner->caps[s->scanner->source].default_color, "Grayscale8"))
907 else if (!strcasecmp(s->scanner->caps[s->scanner->source].default_color, "BlackAndWhite1"))
913 s->val[OPT_MODE].s = (char *)strdup(s->scanner->caps[s->scanner->source].ColorModes[0]);
915 s->scanner->caps[s->scanner->source].default_color = strdup("Grayscale8");
918 s->scanner->caps[s->scanner->source].default_color =
922 s->scanner->caps[s->scanner->source].default_color =
930 DBG (10, "++ Color Mode Default allocation [%s].\n", s->scanner->caps[s->scanner->source].default_color);
931 s->opt[OPT_MODE].size = max_string_size(s->scanner->caps[s->scanner->source].ColorModes);
932 if (!s->scanner->caps[s->scanner->source].default_color) {
936 DBG (10, "Color Mode Default allocation (%s).\n", s->scanner->caps[s->scanner->source].default_color);
944 s->opt[OPT_RESOLUTION].constraint.word_list = s->scanner->caps[s->scanner->source].SupportedResolutions;
945 s->val[OPT_RESOLUTION].w = s->scanner->caps[s->scanner->source].SupportedResolutions[1];
946 s->scanner->caps[s->scanner->source].default_resolution = s->scanner->caps[s->scanner->source].SupportedResolutions[1];
1017 s->opt[OPT_SCAN_SOURCE].size = _source_size_max(s->scanner->Sources);
1020 s->opt[OPT_SCAN_SOURCE].constraint.string_list = s->scanner->Sources;
1023 s->val[OPT_SCAN_SOURCE].s = strdup (s->scanner->Sources[s->scanner->source]);
1040 if (s->scanner->brightness) {
1042 s->val[OPT_BRIGHTNESS].w = s->scanner->brightness->value;
1044 s->brightness_range.min=s->scanner->brightness->min;
1045 s->brightness_range.max=s->scanner->brightness->max;
1059 if (s->scanner->contrast) {
1061 s->val[OPT_CONTRAST].w = s->scanner->contrast->value;
1063 s->contrast_range.min=s->scanner->contrast->min;
1064 s->contrast_range.max=s->scanner->contrast->max;
1078 if (s->scanner->sharpen) {
1080 s->val[OPT_SHARPEN].w = s->scanner->sharpen->value;
1082 s->sharpen_range.min=s->scanner->sharpen->min;
1083 s->sharpen_range.max=s->scanner->sharpen->max;
1098 if (s->scanner->threshold) {
1100 s->val[OPT_THRESHOLD].w = s->scanner->threshold->value;
1102 s->thresold_range.min= s->scanner->threshold->min;
1103 s->thresold_range.max=s->scanner->threshold->max;
1112 if (s->scanner->threshold)
1114 if (s->scanner->brightness)
1116 if (s->scanner->contrast)
1118 if (s->scanner->sharpen)
1122 if (s->scanner->threshold)
1124 if (s->scanner->brightness)
1126 if (s->scanner->contrast)
1128 if (s->scanner->sharpen)
1295 handler->scanner = escl_capabilities(device, blacklist, &status);
1337 if (handler->scanner->tmp)
1339 fclose(handler->scanner->tmp);
1340 handler->scanner->tmp = NULL;
1342 handler->scanner->work = SANE_FALSE;
1344 escl_scanner(handler->device, handler->scanner->scanJob, handler->result);
1347 free(handler->scanner->scanJob);
1348 handler->scanner->scanJob = NULL;
1368 * \brief Function that retrieves a descriptor from the n number option of the scanner
1466 handler->scanner->caps[handler->scanner->source].default_color = strdup("Grayscale8");
1470 handler->scanner->caps[handler->scanner->source].default_color =
1475 handler->scanner->caps[handler->scanner->source].default_color =
1479 DBG (10, "Color Mode allocation (%s).\n", handler->scanner->caps[handler->scanner->source].default_color);
1482 if (handler->scanner->brightness)
1484 if (handler->scanner->contrast)
1486 if (handler->scanner->threshold)
1488 if (handler->scanner->sharpen)
1491 if (handler->scanner->threshold)
1495 if (handler->scanner->brightness)
1497 if (handler->scanner->contrast)
1499 if (handler->scanner->sharpen)
1505 handler->scanner->caps[handler->scanner->source].default_resolution = handler->val[n].w;
1564 if (handler->scanner->work == SANE_FALSE) {
1566 handler->scanner->source,
1575 if(handler->scanner->caps[handler->scanner->source].default_color)
1576 free(handler->scanner->caps[handler->scanner->source].default_color);
1580 handler->scanner->caps[handler->scanner->source].default_color =
1583 handler->scanner->caps[handler->scanner->source].default_color =
1585 if (!handler->scanner->caps[handler->scanner->source].default_color) {
1589 for (i = 1; i < handler->scanner->caps[handler->scanner->source].SupportedResolutionsSize; i++)
1591 if (val > handler->scanner->caps[handler->scanner->source].SupportedResolutions[i])
1592 val = handler->scanner->caps[handler->scanner->source].SupportedResolutions[i];
1594 handler->scanner->caps[handler->scanner->source].default_resolution = val;
1598 handler->scanner->caps[handler->scanner->source].default_resolution =
1600 if (!handler->scanner->caps[handler->scanner->source].default_color) {
1602 handler->scanner->caps[handler->scanner->source].default_color = strdup("Grayscale8");
1604 handler->scanner->caps[handler->scanner->source].default_color =
1607 handler->scanner->caps[handler->scanner->source].default_color =
1611 DBG (10, "Before newjob Color Mode allocation (%s).\n", handler->scanner->caps[handler->scanner->source].default_color);
1612 handler->scanner->caps[handler->scanner->source].height =
1614 handler->scanner->caps[handler->scanner->source].width =
1617 handler->scanner->caps[handler->scanner->source].pos_x = 0;
1619 handler->scanner->caps[handler->scanner->source].pos_x =
1623 handler->scanner->caps[handler->scanner->source].pos_y = 0;
1625 handler->scanner->caps[handler->scanner->source].pos_y =
1629 handler->scanner->caps[handler->scanner->source].pos_x,
1630 handler->scanner->caps[handler->scanner->source].pos_y,
1631 handler->scanner->caps[handler->scanner->source].width,
1632 handler->scanner->caps[handler->scanner->source].height);
1633 if (!handler->scanner->caps[handler->scanner->source].default_color) {
1638 if (handler->scanner->threshold) {
1642 handler->scanner->val_threshold = handler->val[OPT_THRESHOLD].w;
1643 handler->scanner->use_threshold = 1;
1647 handler->scanner->use_threshold = 0;
1653 if (handler->scanner->sharpen) {
1657 handler->scanner->val_sharpen = handler->val[OPT_SHARPEN].w;
1658 handler->scanner->use_sharpen = 1;
1662 handler->scanner->use_sharpen = 0;
1668 if (handler->scanner->contrast) {
1672 handler->scanner->val_contrast = handler->val[OPT_CONTRAST].w;
1673 handler->scanner->use_contrast = 1;
1677 handler->scanner->use_contrast = 0;
1683 if (handler->scanner->brightness) {
1687 handler->scanner->val_brightness = handler->val[OPT_BRIGHTNESS].w;
1688 handler->scanner->use_brightness = 1;
1692 handler->scanner->use_brightness = 0;
1698 handler->result = escl_newjob(handler->scanner, handler->device, &status);
1706 handler->scanner->source,
1712 handler->scanner->work = SANE_FALSE;
1716 status = escl_scan(handler->scanner, handler->device, handler->scanner->scanJob, handler->result);
1719 if (!strcmp(handler->scanner->caps[handler->scanner->source].default_format, "image/jpeg"))
1721 status = get_JPEG_data(handler->scanner, &w, &he, &bps);
1723 else if (!strcmp(handler->scanner->caps[handler->scanner->source].default_format, "image/png"))
1725 status = get_PNG_data(handler->scanner, &w, &he, &bps);
1727 else if (!strcmp(handler->scanner->caps[handler->scanner->source].default_format, "image/tiff"))
1729 status = get_TIFF_data(handler->scanner, &w, &he, &bps);
1731 else if (!strcmp(handler->scanner->caps[handler->scanner->source].default_format, "application/pdf"))
1733 status = get_PDF_data(handler->scanner, &w, &he, &bps);
1740 DBG(10, "2-Size Image (%ld)[%dx%d|%dx%d]\n", handler->scanner->img_size, 0, 0, w, he);
1750 handler->scanner->work = SANE_FALSE;
1814 if (handler->scanner->img_data == NULL)
1817 readbyte = min((handler->scanner->img_size - handler->scanner->img_read), maxlen);
1818 memcpy(buf, handler->scanner->img_data + handler->scanner->img_read, readbyte);
1819 handler->scanner->img_read = handler->scanner->img_read + readbyte;
1821 if (handler->scanner->img_read == handler->scanner->img_size)
1823 else if (handler->scanner->img_read > handler->scanner->img_size) {
1826 free(handler->scanner->img_data);
1827 handler->scanner->img_data = NULL;
1834 free(handler->scanner->img_data);
1835 handler->scanner->img_data = NULL;
1836 if (handler->scanner->source != PLATEN) {
1839 handler->scanner->source,
1845 handler->scanner->work = SANE_TRUE;