Lines Matching defs:handler

57 #define IS_ACTIVE(OPTION) (((handler->opt[OPTION].cap) & SANE_CAP_INACTIVE) == 0)
177 escl_free_handler(escl_sane_t *handler)
179 if (handler == NULL)
182 escl_free_device(handler->device);
183 free(handler);
668 _get_resolution(escl_sane_t *handler, int resol)
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];
1260 * and returns a 'handler' using 'SANE_Handle *h', representing it.
1272 escl_sane_t *handler = NULL;
1288 handler = (escl_sane_t *)calloc(1, sizeof(escl_sane_t));
1289 if (handler == NULL) {
1293 handler->device = device; // Handler owns device now.
1295 handler->scanner = escl_capabilities(device, blacklist, &status);
1297 escl_free_handler(handler);
1302 status = init_options(NULL, handler);
1304 escl_free_handler(handler);
1307 handler->ps.depth = 8;
1308 handler->ps.last_frame = SANE_TRUE;
1309 handler->ps.format = SANE_FRAME_RGB;
1310 handler->ps.pixels_per_line = MM_TO_PIXEL(handler->val[OPT_BR_X].w, 300.0);
1311 handler->ps.lines = MM_TO_PIXEL(handler->val[OPT_BR_Y].w, 300.0);
1312 handler->ps.bytes_per_line = handler->ps.pixels_per_line * 3;
1313 status = sane_get_parameters(handler, 0);
1315 escl_free_handler(handler);
1318 handler->cancel = SANE_FALSE;
1319 handler->write_scan_data = SANE_FALSE;
1320 handler->decompress_scan_data = SANE_FALSE;
1321 handler->end_read = SANE_FALSE;
1322 *h = handler;
1336 escl_sane_t *handler = h;
1337 if (handler->scanner->tmp)
1339 fclose(handler->scanner->tmp);
1340 handler->scanner->tmp = NULL;
1342 handler->scanner->work = SANE_FALSE;
1343 handler->cancel = SANE_TRUE;
1344 escl_scanner(handler->device, handler->scanner->scanJob, handler->result);
1345 free(handler->result);
1346 handler->result = NULL;
1347 free(handler->scanner->scanJob);
1348 handler->scanner->scanJob = NULL;
1402 escl_sane_t *handler = h;
1421 *(SANE_Word *) v = handler->val[n].w;
1425 strcpy (v, handler->val[n].s);
1445 handler->val[n].w = *(SANE_Word *) v;
1451 init_options_small((SANE_String_Const)v, handler);
1456 if (handler->val[n].s)
1457 free (handler->val[n].s);
1458 handler->val[n].s = strdup (v);
1459 if (!handler->val[n].s) {
1465 if (!strcasecmp(handler->val[n].s, SANE_VALUE_SCAN_MODE_GRAY)) {
1466 handler->scanner->caps[handler->scanner->source].default_color = strdup("Grayscale8");
1469 else if (!strcasecmp(handler->val[n].s, SANE_VALUE_SCAN_MODE_LINEART)) {
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)
1483 handler->opt[OPT_BRIGHTNESS].cap |= SANE_CAP_INACTIVE;
1484 if (handler->scanner->contrast)
1485 handler->opt[OPT_CONTRAST].cap |= SANE_CAP_INACTIVE;
1486 if (handler->scanner->threshold)
1487 handler->opt[OPT_THRESHOLD].cap |= SANE_CAP_INACTIVE;
1488 if (handler->scanner->sharpen)
1489 handler->opt[OPT_SHARPEN].cap |= SANE_CAP_INACTIVE;
1490 if (!strcasecmp(handler->val[n].s, SANE_VALUE_SCAN_MODE_LINEART)) {
1491 if (handler->scanner->threshold)
1492 handler->opt[OPT_THRESHOLD].cap &= ~SANE_CAP_INACTIVE;
1495 if (handler->scanner->brightness)
1496 handler->opt[OPT_BRIGHTNESS].cap &= ~SANE_CAP_INACTIVE;
1497 if (handler->scanner->contrast)
1498 handler->opt[OPT_CONTRAST].cap &= ~SANE_CAP_INACTIVE;
1499 if (handler->scanner->sharpen)
1500 handler->opt[OPT_SHARPEN].cap &= ~SANE_CAP_INACTIVE;
1504 handler->val[n].w = _get_resolution(handler, (int)(*(SANE_Word *) v));
1505 handler->scanner->caps[handler->scanner->source].default_resolution = handler->val[n].w;
1551 escl_sane_t *handler = h;
1556 if (handler->device == NULL) {
1557 DBG(1, "Missing handler device.\n");
1560 handler->cancel = SANE_FALSE;
1561 handler->write_scan_data = SANE_FALSE;
1562 handler->decompress_scan_data = SANE_FALSE;
1563 handler->end_read = SANE_FALSE;
1564 if (handler->scanner->work == SANE_FALSE) {
1565 SANE_Status st = escl_status(handler->device,
1566 handler->scanner->source,
1571 if (handler->val[OPT_PREVIEW].w == SANE_TRUE)
1575 if(handler->scanner->caps[handler->scanner->source].default_color)
1576 free(handler->scanner->caps[handler->scanner->source].default_color);
1578 if (handler->val[OPT_GRAY_PREVIEW].w == SANE_TRUE ||
1579 !strcasecmp(handler->val[OPT_MODE].s, SANE_VALUE_SCAN_MODE_GRAY))
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 =
1599 handler->val[OPT_RESOLUTION].w;
1600 if (!handler->scanner->caps[handler->scanner->source].default_color) {
1601 if (!strcasecmp(handler->val[OPT_MODE].s, SANE_VALUE_SCAN_MODE_GRAY))
1602 handler->scanner->caps[handler->scanner->source].default_color = strdup("Grayscale8");
1603 else if (!strcasecmp(handler->val[OPT_MODE].s, SANE_VALUE_SCAN_MODE_LINEART))
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 =
1613 MM_TO_PIXEL(handler->val[OPT_BR_Y].w, 300.0);
1614 handler->scanner->caps[handler->scanner->source].width =
1615 MM_TO_PIXEL(handler->val[OPT_BR_X].w, 300.0);;
1616 if (handler->x_range1.min == handler->val[OPT_TL_X].w)
1617 handler->scanner->caps[handler->scanner->source].pos_x = 0;
1619 handler->scanner->caps[handler->scanner->source].pos_x =
1620 MM_TO_PIXEL((handler->val[OPT_TL_X].w - handler->x_range1.min),
1622 if (handler->y_range1.min == handler->val[OPT_TL_X].w)
1623 handler->scanner->caps[handler->scanner->source].pos_y = 0;
1625 handler->scanner->caps[handler->scanner->source].pos_y =
1626 MM_TO_PIXEL((handler->val[OPT_TL_Y].w - handler->y_range1.min),
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) {
1641 DBG(10, "Use Thresold [%d]\n", handler->val[OPT_THRESHOLD].w);
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) {
1656 DBG(10, "Use Sharpen [%d]\n", handler->val[OPT_SHARPEN].w);
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) {
1671 DBG(10, "Use Contrast [%d]\n", handler->val[OPT_CONTRAST].w);
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) {
1686 DBG(10, "Use Brightness [%d]\n", handler->val[OPT_BRIGHTNESS].w);
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);
1705 SANE_Status st = escl_status(handler->device,
1706 handler->scanner->source,
1707 handler->result,
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);
1744 handler->ps.depth = 8;
1745 handler->ps.pixels_per_line = w;
1746 handler->ps.lines = he;
1747 handler->ps.bytes_per_line = w * bps;
1748 handler->ps.last_frame = SANE_TRUE;
1749 handler->ps.format = SANE_FRAME_RGB;
1750 handler->scanner->work = SANE_FALSE;
1751 // DBG(10, "NEXT Frame [%s]\n", (handler->ps.last_frame ? "Non" : "Oui"));
1769 escl_sane_t *handler = h;
1775 p->last_frame = handler->ps.last_frame;
1777 p->pixels_per_line = handler->ps.pixels_per_line;
1778 p->lines = handler->ps.lines;
1779 p->bytes_per_line = handler->ps.bytes_per_line;
1798 escl_sane_t *handler = h;
1802 if (!handler | !buf | !len)
1805 if (handler->cancel)
1807 if (!handler->write_scan_data)
1808 handler->write_scan_data = SANE_TRUE;
1809 if (!handler->decompress_scan_data) {
1812 handler->decompress_scan_data = SANE_TRUE;
1814 if (handler->scanner->img_data == NULL)
1816 if (!handler->end_read) {
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)
1822 handler->end_read = SANE_TRUE;
1823 else if (handler->scanner->img_read > handler->scanner->img_size) {
1825 handler->end_read = SANE_TRUE;
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) {
1838 SANE_Status st = escl_status(handler->device,
1839 handler->scanner->source,
1840 handler->result,
1845 handler->scanner->work = SANE_TRUE;
1846 handler->ps.last_frame = !next_page;